TensorFlow Lattice เป็นไลบรารีที่ใช้โมเดล Lattice ที่ยืดหยุ่น ควบคุม และตีความได้ ไลบรารีช่วยให้คุณสามารถใส่ความรู้โดเมนลงในกระบวนการเรียนรู้ผ่านเงื่อนไขทั่วไปหรือ ข้อจำกัดด้านรูปร่าง ที่ขับเคลื่อนด้วยนโยบาย ซึ่งทำได้โดยใช้คอลเลกชันของ เลเยอร์ Keras ที่สามารถตอบสนองข้อจำกัดต่างๆ เช่น ความซ้ำซากจำเจ ความนูน และความน่าเชื่อถือแบบคู่ ห้องสมุดยังมี ตัวประมาณค่ากระป๋อง ที่ติดตั้งง่าย
แนวคิด
ส่วนนี้เป็นเวอร์ชันที่เข้าใจง่ายของคำอธิบายใน Monotonic Calibrated Interpolated Look-Up Tables , JMLR 2016
ตาข่าย
แลตทิซ คือตารางค้นหาแบบสอดแทรกซึ่งสามารถประมาณความสัมพันธ์อินพุต-เอาท์พุตตามอำเภอใจในข้อมูลของคุณ มันซ้อนทับตารางปกติบนพื้นที่อินพุตของคุณและเรียนรู้ค่าสำหรับเอาต์พุตในจุดยอดของกริด สำหรับจุดทดสอบ \(x\)\(f(x)\) จะถูก interpolated เชิงเส้นจากค่า lattice โดยรอบ \(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 จะฝึกโมเดลการ ปรับล่วงหน้า ที่ประเมินการโต้ตอบของฟีเจอร์แบบคู่ จากนั้นจะจัดเรียงชุดสุดท้ายเพื่อให้คุณลักษณะที่มีการโต้ตอบที่ไม่เป็นเชิงเส้นมากกว่าอยู่ในโครงตาข่ายเดียวกัน
ทำไมต้อง TensorFlow Lattice ?
คุณสามารถหาคำแนะนำสั้นๆ เกี่ยวกับ TensorFlow Lattice ได้ใน TF Blog post นี้
การตีความ
เนื่องจากพารามิเตอร์ของแต่ละเลเยอร์คือผลลัพธ์ของเลเยอร์นั้น จึงง่ายต่อการวิเคราะห์ ทำความเข้าใจ และดีบักแต่ละส่วนของโมเดล
โมเดลที่แม่นยำและยืดหยุ่น
คุณสามารถใช้ฟังก์ชัน ที่ซับซ้อนตามอำเภอใจ ได้ด้วยการใช้โครงตาข่ายชั้นเดียว การใช้เครื่องสอบเทียบและตะแกรงหลายชั้นมักจะทำงานได้ดีในทางปฏิบัติ และสามารถจับคู่หรือทำงานได้ดีกว่ารุ่น DNN ที่มีขนาดใกล้เคียงกัน
ข้อจำกัดรูปร่างสามัญสำนึก
ข้อมูลการฝึกในโลกแห่งความเป็นจริงอาจไม่เพียงพอสำหรับข้อมูลรันไทม์ โซลูชัน ML ที่ยืดหยุ่นได้ เช่น DNN หรือฟอเรสต์ มักจะทำงานโดยไม่คาดคิดและแม้กระทั่งอย่างดุเดือดในส่วนของพื้นที่อินพุตซึ่งไม่ได้ครอบคลุมโดยข้อมูลการฝึกอบรม พฤติกรรมนี้เป็นปัญหาโดยเฉพาะอย่างยิ่งเมื่อมีการละเมิดข้อจำกัดด้านนโยบายหรือความเป็นธรรม
แม้ว่ารูปแบบทั่วไปของการทำให้เป็นมาตรฐานอาจส่งผลให้เกิดการคาดการณ์ที่สมเหตุสมผลมากขึ้น ตัวปรับมาตรฐานไม่สามารถรับประกันพฤติกรรมของแบบจำลองที่สมเหตุสมผลได้ทั่วทั้งพื้นที่อินพุต โดยเฉพาะอย่างยิ่งกับอินพุตที่มีมิติสูง การเปลี่ยนไปใช้แบบจำลองที่ง่ายกว่าด้วยพฤติกรรมที่ควบคุมและคาดการณ์ได้ดีกว่า อาจทำให้ความแม่นยำของแบบจำลองต้องเสียค่าใช้จ่ายอย่างมาก
TF Lattice ทำให้สามารถใช้โมเดลที่ยืดหยุ่นต่อไปได้ แต่มีตัวเลือกมากมายในการใส่ความรู้โดเมนเข้าไปในกระบวนการเรียนรู้ผ่าน ข้อจำกัดด้านรูปแบบ ที่มีความหมายทั่วไปหรือตามนโยบาย:
- ความ ซ้ำซากจำเจ : คุณสามารถระบุได้ว่าเอาต์พุตควรเพิ่มขึ้น/ลดลงตามอินพุตเท่านั้น ในตัวอย่างของเรา คุณอาจต้องการระบุว่าระยะทางที่เพิ่มขึ้นไปยังร้านกาแฟควรลดการตั้งค่าของผู้ใช้ที่คาดการณ์ไว้เท่านั้น
ความนูน/ความเว้า : คุณสามารถระบุได้ว่ารูปร่างของฟังก์ชันสามารถนูนหรือเว้าได้ เมื่อผสมกับความซ้ำซากจำเจ ฟังก์ชันนี้สามารถบังคับให้ฟังก์ชันแสดงผลตอบแทนที่ลดลงตามคุณลักษณะที่กำหนด
Unimodality : คุณสามารถระบุได้ว่าฟังก์ชันควรมีจุดพีคหรือหุบเขาที่ไม่ซ้ำกัน ซึ่งช่วยให้คุณแสดงฟังก์ชันที่มี จุดที่น่าสนใจ เมื่อเทียบกับคุณลักษณะ
ความไว้วางใจ แบบคู่ : ข้อจำกัดนี้ใช้ได้กับคุณลักษณะหนึ่งคู่ และแนะนำว่าคุณลักษณะอินพุตหนึ่งรายการสะท้อนถึงความเชื่อถือในคุณลักษณะอื่น ตัวอย่างเช่น จำนวนรีวิวที่สูงขึ้นทำให้คุณมั่นใจในระดับดาวเฉลี่ยของร้านอาหารมากขึ้น โมเดลจะมีความละเอียดอ่อนมากขึ้นในแง่ของการจัดระดับดาว (กล่าวคือ มีความลาดชันที่ใหญ่กว่าเมื่อเทียบกับการให้คะแนน) เมื่อจำนวนบทวิจารณ์สูงขึ้น
ควบคุมความยืดหยุ่นด้วย Regularizers
นอกจากข้อจำกัดด้านรูปร่างแล้ว ตาข่าย TensorFlow ยังมีตัวปรับมาตรฐานจำนวนหนึ่งเพื่อควบคุมความยืดหยุ่นและความราบรื่นของฟังก์ชันสำหรับแต่ละเลเยอร์
Laplacian Regularizer : เอาต์พุตของจุดยอดตาข่าย/การปรับเทียบ/จุดสำคัญจะถูกทำให้เป็นมาตรฐานตามค่าของเพื่อนบ้านตามลำดับ ส่งผลให้การทำงาน ประจบสอพลอ
Hessian Regularizer : สิ่งนี้จะลงโทษอนุพันธ์อันดับแรกของชั้นการสอบเทียบ PWL เพื่อให้ฟังก์ชันเป็น เส้นตรงมากขึ้น
Wrinkle Regularizer : สิ่งนี้จะลงโทษอนุพันธ์อันดับสองของชั้นการสอบเทียบ PWL เพื่อหลีกเลี่ยงการเปลี่ยนแปลงอย่างกะทันหันในความโค้ง ทำให้การทำงานราบรื่นขึ้น
Torsion Regularizer : เอาต์พุตของโครงตาข่ายจะถูกทำให้เป็นมาตรฐานเพื่อป้องกันการบิดงอระหว่างคุณสมบัติต่างๆ กล่าวอีกนัยหนึ่ง โมเดลจะถูกทำให้เป็นมาตรฐานเพื่อความเป็นอิสระระหว่างการมีส่วนร่วมของคุณลักษณะ
มิกซ์แอนด์แมทช์กับเลเยอร์ Keras อื่นๆ
คุณสามารถใช้เลเยอร์ TF Lattice ร่วมกับเลเยอร์ Keras อื่นๆ เพื่อสร้างแบบจำลองที่มีข้อจำกัดบางส่วนหรือทำให้เป็นมาตรฐาน ตัวอย่างเช่น สามารถใช้เลเยอร์ Lattice หรือ PWL ที่เลเยอร์สุดท้ายของเครือข่ายที่ลึกกว่าที่มีการฝังหรือเลเยอร์ Keras อื่นๆ
เอกสาร
- จริยธรรมทาง Deontological โดยข้อ จำกัด รูปร่าง แบบโมโนโทนิก , Serena Wang, Maya Gupta, การประชุมนานาชาติด้านปัญญาประดิษฐ์และสถิติ (AISTATS), 2020
- ข้อจำกัดด้านรูปร่างสำหรับฟังก์ชันการตั้งค่า , Andrew Cotter, Maya Gupta, H. Jiang, Erez Louidor, Jim Muller, Taman Narayan, Serena Wang, Tao Zhu การประชุมนานาชาติด้านการเรียนรู้ของเครื่อง (ICML), 2019
- Diminishing Returns Shape Constraints for Interpretability and Regularization , Maya Gupta, Dara Bahri, Andrew Cotter, Kevin Canini, ความก้าวหน้าในระบบประมวลผลข้อมูลประสาท (NeurIPS), 2018
- Deep Lattice Networks และ Partial Monotonic Functions , Seungil You, Kevin Canini, David Ding, Jan Pfeifer, Maya R. Gupta, ความก้าวหน้าในระบบประมวลผลข้อมูลประสาท (NeurIPS), 2017
- ฟังก์ชันโมโนโทนิก ที่รวดเร็วและยืดหยุ่นพร้อมกลุ่ม 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, วารสารการวิจัยการเรียนรู้ของเครื่อง (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 ฉบับเต็ม สำหรับรายละเอียด