ตาข่ายเทนเซอร์โฟลว์ (TFL)

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

เอกสาร

บทแนะนำและเอกสาร API

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