TensorFlow Lattice เป็นไลบรารีที่ใช้โมเดลตาข่ายที่ยืดหยุ่นควบคุมและตีความได้ ไลบรารีช่วยให้คุณสามารถฉีดความรู้โดเมนเข้าไปในกระบวนการเรียนรู้ผ่านสามัญสำนึกหรือ ข้อ จำกัด ด้านรูปร่างที่ ขับเคลื่อนด้วยนโยบาย สิ่งนี้ทำได้โดยใช้คอลเลกชันของ เลเยอร์ Keras ที่สามารถตอบสนองข้อ จำกัด เช่น monotonicity ความนูนและความไว้วางใจแบบคู่ นอกจากนี้ไลบรารียังมี ตัวประมาณค่ากระป๋องที่ ง่ายต่อการตั้ง ค่า
แนวคิด
ส่วนนี้เป็นคำอธิบายแบบเรียบง่ายใน Monotonic Calibrated Interpolated Look-Up Tables , JMLR 2016
คำโปรย
Lattice คือตารางการค้นหาแบบสอดแทรกที่สามารถประมาณความสัมพันธ์อินพุต - เอาต์พุตโดยพลการในข้อมูลของคุณ มันซ้อนทับเส้นตารางปกติบนพื้นที่ป้อนข้อมูลของคุณและเรียนรู้ค่าสำหรับผลลัพธ์ในจุดยอดของเส้นตาราง สำหรับจุดทดสอบ $ x $ $ f (x) $ จะถูกสอดแทรกเชิงเส้นจากค่าตาข่ายรอบ $ x $
ตัวอย่างง่ายๆด้านบนคือฟังก์ชันที่มีคุณสมบัติอินพุต 2 รายการและพารามิเตอร์ 4 ตัว: $ \ theta = [0, 0.2, 0.4, 1] $ ซึ่งเป็นค่าของฟังก์ชันที่มุมของพื้นที่อินพุต ฟังก์ชันที่เหลือถูกสอดแทรกจากพารามิเตอร์เหล่านี้
ฟังก์ชัน $ f (x) $ สามารถจับการโต้ตอบที่ไม่ใช่เชิงเส้นระหว่างคุณลักษณะต่างๆ คุณสามารถนึกถึงพารามิเตอร์โครงตาข่ายเป็นความสูงของเสาที่ตั้งอยู่บนพื้นบนกริดปกติและฟังก์ชันที่ได้ก็เหมือนกับการดึงผ้าให้ตึงกับเสาทั้งสี่
ด้วยคุณสมบัติ $ D $ และจุดยอด 2 จุดในแต่ละมิติตาข่ายปกติจะมีพารามิเตอร์ $ 2 ^ D $ เพื่อให้พอดีกับฟังก์ชันที่ยืดหยุ่นมากขึ้นคุณสามารถระบุโครงตาข่ายที่ละเอียดกว่าบนพื้นที่คุณลักษณะโดยมีจุดยอดมากขึ้นในแต่ละมิติ ฟังก์ชันการถดถอยแบบแลตทิซมีความต่อเนื่องและแตกต่างกันอย่างไม่มีที่สิ้นสุด
การสอบเทียบ
สมมติว่าตัวอย่างก่อนหน้านี้แสดงถึง ความสุขของผู้ใช้ที่ เรียนรู้ด้วยร้านกาแฟท้องถิ่นที่แนะนำซึ่งคำนวณโดยใช้คุณสมบัติ:
- ราคากาแฟอยู่ในช่วง 0 ถึง 20 ดอลลาร์
- ระยะทางไปยังผู้ใช้ในช่วง 0 ถึง 30 กิโลเมตร
เราต้องการให้โมเดลของเราเรียนรู้ความสุขของผู้ใช้ด้วยคำแนะนำร้านกาแฟในท้องถิ่น แบบจำลอง TensorFlow Lattice สามารถใช้ ฟังก์ชันเชิงเส้นทีละชิ้น (ด้วย tfl.layers.PWLCalibration
) เพื่อปรับเทียบและปรับคุณสมบัติอินพุตให้เป็นช่วงที่แลตทิซยอมรับ: 0.0 ถึง 1.0 ในตัวอย่างด้านบน ต่อไปนี้แสดงตัวอย่างฟังก์ชันการสอบเทียบที่มี 10 จุดสำคัญ:
มักเป็นความคิดที่ดีที่จะใช้จำนวนของคุณลักษณะเป็นจุดสำคัญในการป้อนข้อมูล เครื่องมือ ประมาณค่ากระป๋อง TensorFlow Lattice สามารถตั้งค่าจุดสำคัญอินพุตเป็นจำนวนคุณลักษณะโดยอัตโนมัติ
สำหรับคุณสมบัติที่เป็นหมวดหมู่ TensorFlow Lattice มีการสอบเทียบตามหมวดหมู่ (ด้วย tfl.layers.CategoricalCalibration
) โดยมีเอาต์พุตที่คล้ายกันที่จะป้อนเข้าในตาข่าย
ล้อมรอบ
จำนวนพารามิเตอร์ของชั้นตาข่ายจะเพิ่มขึ้นแบบทวีคูณตามจำนวนคุณสมบัติการป้อนข้อมูลดังนั้นจึงไม่สามารถปรับขนาดได้ดีถึงขนาดที่สูงมาก เพื่อเอาชนะข้อ จำกัด นี้ TensorFlow Lattice นำเสนอโครงตาข่ายที่รวมกัน (โดยเฉลี่ย) หลายช่องตาข่าย เล็ก ๆ ซึ่งช่วยให้แบบจำลองสามารถขยายจำนวนคุณสมบัติเชิงเส้นได้
ห้องสมุดมีวงดนตรีเหล่านี้สองรูปแบบ:
Random Tiny Lattices (RTL): แต่ละรุ่นย่อยใช้คุณลักษณะย่อยแบบสุ่ม (พร้อมการแทนที่)
Crystals : ขั้นตอนแรกของ Crystals จะฝึกโมเดล prefitting ที่ประมาณการการโต้ตอบของคุณลักษณะแบบคู่ จากนั้นจะจัดเรียงชุดสุดท้ายเพื่อให้คุณลักษณะที่มีการโต้ตอบที่ไม่ใช่เชิงเส้นมากขึ้นอยู่ในรูปแบบเดียวกัน
ทำไมต้อง TensorFlow Lattice?
คุณสามารถดูคำแนะนำสั้น ๆ เกี่ยวกับ TensorFlow Lattice ได้ใน โพสต์บล็อก TF นี้
การตีความ
เนื่องจากพารามิเตอร์ของแต่ละเลเยอร์เป็นผลลัพธ์ของเลเยอร์นั้นจึงง่ายต่อการวิเคราะห์ทำความเข้าใจและแก้ไขจุดบกพร่องแต่ละส่วนของโมเดล
โมเดลที่ถูกต้องและยืดหยุ่น
ด้วยการใช้ตาข่ายแบบละเอียดคุณจะได้รับฟังก์ชัน ที่ซับซ้อนตามอำเภอใจ ด้วยชั้นตาข่ายเดียว การใช้เครื่องสอบเทียบและโครงร่างหลายชั้นมักจะทำงานได้ดีในทางปฏิบัติและสามารถจับคู่หรือมีประสิทธิภาพดีกว่ารุ่น DNN ที่มีขนาดใกล้เคียงกัน
ข้อ จำกัด ของรูปร่างสามัญสำนึก
ข้อมูลการฝึกอบรมในโลกแห่งความเป็นจริงอาจแสดงข้อมูลรันไทม์ไม่เพียงพอ โซลูชัน ML ที่ยืดหยุ่นเช่น DNN หรือฟอเรสต์มักจะทำงานโดยไม่คาดคิดและรุนแรงในบางส่วนของพื้นที่อินพุตที่ไม่ครอบคลุมโดยข้อมูลการฝึก พฤติกรรมนี้เป็นปัญหาอย่างยิ่งเมื่อสามารถละเมิดข้อ จำกัด ด้านนโยบายหรือความเป็นธรรมได้
แม้ว่ารูปแบบทั่วไปของการทำให้เป็นมาตรฐานจะส่งผลให้เกิดการประมาณค่าที่สมเหตุสมผลมากขึ้น แต่ตัวกำหนดมาตรฐานไม่สามารถรับประกันพฤติกรรมของโมเดลที่เหมาะสมในพื้นที่อินพุตทั้งหมดโดยเฉพาะอย่างยิ่งกับอินพุตที่มีมิติสูง การเปลี่ยนไปใช้แบบจำลองที่ง่ายกว่าโดยมีพฤติกรรมที่ควบคุมและคาดเดาได้มากกว่าอาจทำให้ความแม่นยำของโมเดลมีค่าใช้จ่ายสูง
TF Lattice ทำให้สามารถใช้โมเดลที่ยืดหยุ่นได้ต่อไป แต่มีตัวเลือกมากมายในการฉีดความรู้โดเมนเข้าไปในกระบวนการเรียนรู้ผ่านสามัญสำนึกที่มีความหมายเชิงความหมายหรือ ข้อ จำกัด ด้านรูปร่างที่ ขับเคลื่อนด้วยนโยบาย:
- Monotonicity : คุณสามารถระบุได้ว่าเอาต์พุตควรเพิ่ม / ลดตามอินพุตเท่านั้น ในตัวอย่างของเราคุณอาจต้องการระบุว่าระยะทางที่เพิ่มขึ้นไปยังร้านกาแฟควรลดความต้องการของผู้ใช้ที่คาดการณ์ไว้เท่านั้น
ความนูน / ความเว้า : คุณสามารถระบุได้ว่ารูปร่างของฟังก์ชันสามารถนูนหรือเว้าได้ เมื่อผสมกับ monotonicity สิ่งนี้สามารถบังคับให้ฟังก์ชันแสดงผลตอบแทนที่ลดลงเมื่อเทียบกับคุณสมบัติที่กำหนด
Unimodality : คุณสามารถระบุได้ว่าฟังก์ชันควรมียอดเขาที่ไม่ซ้ำกันหรือหุบเขาที่ไม่เหมือนใคร สิ่งนี้ช่วยให้คุณแสดงถึงฟังก์ชันที่มี จุดที่น่าสนใจ เมื่อเทียบกับคุณสมบัติ
ความไว้วางใจ แบบคู่: ข้อ จำกัด นี้ใช้ได้กับคุณสมบัติคู่หนึ่งและชี้ให้เห็นว่าคุณสมบัติการป้อนข้อมูลหนึ่งแสดงถึงความไว้วางใจในคุณสมบัติอื่นอย่างมีนัยสำคัญ ตัวอย่างเช่นจำนวนรีวิวที่สูงขึ้นทำให้คุณมั่นใจในการให้คะแนนดาวโดยเฉลี่ยของร้านอาหารมากขึ้น แบบจำลองจะมีความอ่อนไหวมากขึ้นเมื่อเทียบกับระดับดาว (กล่าวคือจะมีความลาดชันที่มากขึ้นตามการให้คะแนน) เมื่อจำนวนบทวิจารณ์สูงขึ้น
ควบคุมความยืดหยุ่นด้วย Regularizers
นอกเหนือจากข้อ จำกัด ด้านรูปร่างแล้วโครงตาข่าย TensorFlow ยังมีตัวควบคุมจำนวนมากเพื่อควบคุมความยืดหยุ่นและความราบรื่นของฟังก์ชันสำหรับแต่ละเลเยอร์
Laplacian Regularizer : เอาต์พุตของจุดขัดแตะ / การสอบเทียบ / จุดสำคัญจะถูกกำหนดตามค่าของเพื่อนบ้านตามลำดับ ส่งผลให้มีฟังก์ชันที่ ประจบ
Hessian Regularizer : สิ่งนี้จะลงโทษอนุพันธ์แรกของเลเยอร์การสอบเทียบ PWL เพื่อทำให้ฟังก์ชันเป็น เชิงเส้นมากขึ้น
Wrinkle Regularizer : สิ่งนี้จะลงโทษอนุพันธ์อันดับสองของชั้นสอบเทียบ PWL เพื่อหลีกเลี่ยงการเปลี่ยนแปลงความโค้งอย่างกะทันหัน มันทำให้การทำงานราบรื่นขึ้น
Torsion Regularizer : เอาท์พุตของโครงตาข่ายจะถูกทำให้สม่ำเสมอเพื่อป้องกันการบิดตัวระหว่างคุณสมบัติต่างๆ กล่าวอีกนัยหนึ่งโมเดลจะได้รับการปรับให้เป็นอิสระระหว่างการมีส่วนร่วมของคุณสมบัติ
ผสมและจับคู่กับเลเยอร์ Keras อื่น ๆ
คุณสามารถใช้เลเยอร์ TF Lattice ร่วมกับเลเยอร์ Keras อื่น ๆ เพื่อสร้างโมเดลที่ จำกัด บางส่วนหรือเป็นประจำ ตัวอย่างเช่นสามารถใช้เลเยอร์การปรับเทียบ lattice หรือ PWL ที่ชั้นสุดท้ายของเครือข่ายที่ลึกซึ่งรวมถึงการฝังหรือเลเยอร์ Keras อื่น ๆ
เอกสาร
- Deontological Ethics By Monotonicity Shape Constraints , Serena Wang, Maya Gupta, International Conference on Artificial Intelligence and Statistics (AISTATS), 2020
- ข้อ จำกัด ด้านรูปร่างสำหรับฟังก์ชันชุด , Andrew Cotter, Maya Gupta, H. Jiang, Erez Louidor, Jim Muller, Taman Narayan, Serena Wang, Tao Zhu International Conference on Machine Learning (ICML), 2019
- ข้อ จำกัด ด้านรูปร่างผลตอบแทนที่ลดลงสำหรับความสามารถในการตีความและการ ทำให้เป็น ระเบียบ , Maya Gupta, Dara Bahri, Andrew Cotter, Kevin Canini, ความก้าวหน้าในระบบประมวลผลข้อมูลประสาท (NeurIPS), 2018
- Deep Lattice Networks and Partial Monotonic Functions , Seungil You, Kevin Canini, David Ding, Jan Pfeifer, Maya R. Gupta, Advances in Neural Information Processing Systems (NeurIPS), 2017
- ฟังก์ชั่นโมโนโทนิกที่รวดเร็วและยืดหยุ่นพร้อม Ensembles of Lattices , Mahdi Milani Fard, Kevin Canini, Andrew Cotter, Jan Pfeifer, Maya Gupta, ความก้าวหน้าในระบบประมวลผลข้อมูลประสาท (NeurIPS), 2016
- Monotonic Calibrated Interpolated Look-Up Tables , Maya Gupta, Andrew Cotter, Jan Pfeifer, Konstantin Voevodski, Kevin Canini, Alexander Mangylov, Wojciech Moczydlowski, Alexander van Esbroeck, Journal of Machine Learning Research (JMLR), 2016
- การถดถอยที่ปรับให้เหมาะสมสำหรับการประเมินฟังก์ชันที่มีประสิทธิภาพ , Eric Garcia, Raman Arora, Maya R. Gupta, ธุรกรรม IEEE เกี่ยวกับการประมวลผลภาพ, 2012
- Lattice Regression , Eric Garcia, Maya Gupta, ความก้าวหน้าในระบบประมวลผลข้อมูลประสาท (NeurIPS), 2009
บทช่วยสอนและเอกสาร API
สำหรับสถาปัตยกรรมโมเดลทั่วไปคุณสามารถใช้ โมเดลสำเร็จรูปของ Keras หรือ เครื่องมือประมาณการสำเร็จรูป ได้ คุณยังสามารถสร้างโมเดลที่กำหนดเองโดยใช้ เลเยอร์ TF Lattice Keras หรือผสมและจับคู่กับเลเยอร์ Keras อื่น ๆ ตรวจสอบ เอกสาร API ฉบับเต็ม สำหรับรายละเอียด