TensorFlow Lattice (TFL)

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

แนวคิด

ส่วนนี้เป็นเวอร์ชันที่เรียบง่ายของคำอธิบายใน Monotonic Calibrated Interpolated Look-Up Tables , JMLR 2016

ขัดแตะ

ตาข่าย คือตารางค้นหาแบบสอดแทรกซึ่งสามารถประมาณความสัมพันธ์อินพุต-เอาท์พุตตามอำเภอใจในข้อมูลของคุณ โดยจะซ้อนทับตารางปกติลงในพื้นที่อินพุตของคุณและเรียนรู้ค่าสำหรับเอาต์พุตในจุดยอดของตาราง สำหรับจุดทดสอบ \(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 ) เพื่อปรับเทียบและทำให้คุณสมบัติอินพุตเป็นมาตรฐานตามช่วงที่ Lattice ยอมรับ: 0.0 ถึง 1.0 ในตัวอย่าง Lattice ข้างต้น ต่อไปนี้แสดงตัวอย่างฟังก์ชันการสอบเทียบที่มีจุดสำคัญ 10 จุด:

บ่อยครั้งเป็นความคิดที่ดีที่จะใช้ควอนไทล์ของฟีเจอร์เป็นจุดสำคัญของอินพุต โมเดลที่สร้างไว้ล่วงหน้าของ TensorFlow Lattice สามารถตั้งค่าจุดสำคัญอินพุตให้กับควอนไทล์ของฟีเจอร์ได้โดยอัตโนมัติ

สำหรับคุณสมบัติเชิงหมวดหมู่ TensorFlow Lattice ให้การสอบเทียบตามหมวดหมู่ (ด้วย tfl.layers.CategoricalCalibration ) โดยมีขอบเขตเอาต์พุตที่คล้ายกันเพื่อป้อนเข้าไปในโครงตาข่าย

วงดนตรี

จำนวนพารามิเตอร์ของชั้นตาข่ายจะเพิ่มขึ้นแบบทวีคูณตามจำนวนคุณลักษณะอินพุต ดังนั้นจึงไม่สามารถปรับขนาดให้เป็นขนาดที่สูงมากได้ เพื่อเอาชนะข้อจำกัดนี้ TensorFlow Lattice นำเสนอโครงตาข่ายหลายชุดที่รวมโครงตาข่าย เล็กๆ หลายอัน (โดยเฉลี่ย) เข้าด้วยกัน ซึ่งช่วยให้โมเดลขยายเชิงเส้นตามจำนวนคุณลักษณะได้

ห้องสมุดมีวงดนตรีเหล่านี้สองรูปแบบ:

  • Random Tiny Lattices (RTL): แต่ละโมเดลย่อยใช้ชุดย่อยแบบสุ่มของคุณสมบัติ (พร้อมการแทนที่)

  • Crystals : อัลกอริธึม Crystals จะฝึกแบบ จำลอง ล่วงหน้าก่อน ซึ่งจะประเมินการโต้ตอบของฟีเจอร์แบบคู่ จากนั้นจะจัดเรียงชุดสุดท้ายในลักษณะที่คุณลักษณะที่มีการโต้ตอบที่ไม่ใช่เชิงเส้นมากกว่าจะอยู่ในโครงข่ายเดียวกัน

ทำไมต้อง TensorFlow Lattice

คุณสามารถดูคำแนะนำโดยย่อเกี่ยวกับ TensorFlow Lattice ได้ใน โพสต์บล็อก TF นี้

การตีความ

เนื่องจากพารามิเตอร์ของแต่ละเลเยอร์เป็นเอาท์พุตของเลเยอร์นั้น จึงง่ายต่อการวิเคราะห์ ทำความเข้าใจ และดีบักแต่ละส่วนของโมเดล

โมเดลที่แม่นยำและยืดหยุ่น

เมื่อใช้ขัดแตะแบบละเอียด คุณจะได้รับฟังก์ชัน ที่ซับซ้อนโดยพลการ ด้วยชั้นขัดแตะชั้นเดียว การใช้เครื่องสอบเทียบและแลตทิชหลายชั้นมักจะทำงานได้ดีในทางปฏิบัติ และสามารถจับคู่หรือมีประสิทธิภาพเหนือกว่าโมเดล DNN ที่มีขนาดใกล้เคียงกัน

ข้อจำกัดของรูปร่างสามัญสำนึก

ข้อมูลการฝึกอบรมในโลกแห่งความเป็นจริงอาจไม่เพียงพอต่อการแสดงข้อมูลรันไทม์ โซลูชัน ML ที่ยืดหยุ่น เช่น DNN หรือฟอเรสต์ มักดำเนินการอย่างไม่คาดคิดและถึงขั้นรุนแรงในบางส่วนของพื้นที่ป้อนข้อมูลที่ไม่ครอบคลุมอยู่ในข้อมูลการฝึกอบรม พฤติกรรมนี้เป็นปัญหาโดยเฉพาะอย่างยิ่งเมื่อมีการละเมิดข้อจำกัดด้านนโยบายหรือความเป็นธรรม

แม้ว่ารูปแบบทั่วไปของการทำให้เป็นมาตรฐานอาจส่งผลให้เกิดการประมาณค่าที่สมเหตุสมผลมากขึ้น แต่ตัวปรับมาตรฐานไม่สามารถรับประกันพฤติกรรมของโมเดลที่สมเหตุสมผลทั่วทั้งพื้นที่อินพุตทั้งหมด โดยเฉพาะอย่างยิ่งกับอินพุตมิติสูง การเปลี่ยนไปใช้โมเดลที่เรียบง่ายขึ้นโดยมีพฤติกรรมที่ควบคุมและคาดการณ์ได้มากขึ้นอาจทำให้ต้องเสียค่าใช้จ่ายอย่างมากต่อความแม่นยำของโมเดล

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

  • Monotonicity : คุณสามารถระบุได้ว่าเอาต์พุตควรเพิ่ม/ลดตามอินพุตเท่านั้น ในตัวอย่างของเรา คุณอาจต้องการระบุว่าระยะทางที่เพิ่มขึ้นไปยังร้านกาแฟควรลดการตั้งค่าของผู้ใช้ที่คาดการณ์ไว้เท่านั้น

  • Concavity/Concavity : คุณสามารถระบุได้ว่ารูปร่างของฟังก์ชันสามารถนูนหรือเว้าได้ เมื่อผสมกับความซ้ำซากจำเจ สิ่งนี้สามารถบังคับให้ฟังก์ชันแสดงผลตอบแทนที่ลดลงตามคุณสมบัติที่กำหนด

  • Unimodality : คุณสามารถระบุได้ว่าฟังก์ชันควรมีจุดสูงสุดหรือหุบเขาที่ไม่ซ้ำใคร ซึ่งช่วยให้คุณแสดงฟังก์ชันที่มี จุดที่น่าสนใจ เกี่ยวกับคุณลักษณะได้

  • ความไว้วางใจแบบคู่ : ข้อจำกัดนี้ใช้ได้กับคุณสมบัติคู่หนึ่ง และแนะนำว่าคุณสมบัติอินพุตหนึ่งรายการสะท้อนถึงความไว้วางใจในคุณสมบัติอื่นตามความหมาย ตัวอย่างเช่น จำนวนรีวิวที่มากขึ้นจะทำให้คุณมั่นใจมากขึ้นในการให้คะแนนดาวโดยเฉลี่ยของร้านอาหาร โมเดลจะมีความละเอียดอ่อนมากขึ้นเมื่อเทียบกับการให้ดาว (กล่าวคือ จะมีความชันมากขึ้นเมื่อเทียบกับการให้คะแนน) เมื่อจำนวนบทวิจารณ์สูงขึ้น

ควบคุมความยืดหยุ่นด้วย Regularizers

นอกเหนือจากข้อจำกัดด้านรูปร่างแล้ว TensorFlow lattice ยังมีตัวทำให้สม่ำเสมอจำนวนหนึ่งเพื่อควบคุมความยืดหยุ่นและความราบรื่นของฟังก์ชันสำหรับแต่ละเลเยอร์

  • Laplacian Regularizer : เอาท์พุตของแลตทิซ/จุดยอดการสอบเทียบ/จุดสำคัญจะถูกทำให้เป็นมาตรฐานตามค่าของเพื่อนบ้านที่เกี่ยวข้อง ส่งผลให้ฟังก์ชัน เรียบขึ้น

  • Hessian Regularizer : สิ่งนี้จะลงโทษอนุพันธ์อันดับหนึ่งของเลเยอร์การสอบเทียบ PWL เพื่อให้ฟังก์ชัน เป็นเส้นตรงมากขึ้น

  • Wrinkle Regularizer : วิธีนี้จะลงโทษอนุพันธ์อันดับสองของชั้นการสอบเทียบ PWL เพื่อหลีกเลี่ยงการเปลี่ยนแปลงความโค้งกะทันหัน มันทำให้การทำงานราบรื่นขึ้น

  • Torsion Regularizer : ผลลัพธ์ของโครงตาข่ายจะถูกทำให้เป็นมาตรฐานเพื่อป้องกันการบิดงอระหว่างคุณสมบัติต่างๆ กล่าวอีกนัยหนึ่ง โมเดลจะถูกทำให้เป็นมาตรฐานโดยคำนึงถึงความเป็นอิสระระหว่างการมีส่วนร่วมของฟีเจอร์ต่างๆ

ผสมและจับคู่กับเลเยอร์ Keras อื่น ๆ

คุณสามารถใช้เลเยอร์ TF Lattice ร่วมกับเลเยอร์ Keras อื่นๆ เพื่อสร้างโมเดลที่มีข้อจำกัดบางส่วนหรือโมเดลที่ทำให้เป็นมาตรฐานได้ ตัวอย่างเช่น สามารถใช้เลเยอร์การปรับเทียบ Lattice หรือ PWL ในเลเยอร์สุดท้ายของเครือข่ายที่ลึกกว่าซึ่งรวมถึงการฝังหรือเลเยอร์ Keras อื่นๆ

เอกสาร

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

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