หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

ตาข่าย TensorFlow (TFL)

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 อื่น ๆ

เอกสาร

บทช่วยสอนและเอกสาร API

สำหรับสถาปัตยกรรมโมเดลทั่วไปคุณสามารถใช้ โมเดลสำเร็จรูป Keras หรือ เครื่องมือประมาณการสำเร็จรูป ได้ คุณยังสามารถสร้างโมเดลที่กำหนดเองโดยใช้ เลเยอร์ TF Lattice Keras หรือผสมและจับคู่กับเลเยอร์ Keras อื่น ๆ ตรวจสอบ เอกสาร API ฉบับเต็ม สำหรับรายละเอียด