การฝัง

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

คุณคัดสรรชุดข้อมูลเมนูอาหารยอดนิยม 5,000 รายการเพื่อฝึกโมเดล ซึ่งรวมถึงบอชช์ ฮอตดอก สลัด พิซซ่า และชาวัรมา

รูปที่ 1 ชุดภาพอาหาร 5 เมนู เรียงตามเข็มนาฬิกาจากด้านซ้ายบน ได้แก่ บอชช์ ฮอตดอก สลัด พิซซ่า ชาวัรมา
รูปที่ 1 การสุ่มตัวอย่างเมนูอาหารที่รวมอยู่ในชุดข้อมูลอาหาร

คุณสร้างฟีเจอร์ meal ซึ่งมีการนำเสนอที่เข้ารหัสแบบ One-hot ของอาหารแต่ละเมนูในชุดข้อมูล การเข้ารหัสหมายถึงกระบวนการการเลือกการนำเสนอข้อมูลแบบตัวเลขเบื้องต้นเพื่อใช้ฝึกโมเดล

รูปที่ 2 บน: การแสดงข้อมูลผ่านภาพของการเข้ารหัสแบบ One-hot สำหรับบอชช์
       เวกเตอร์ [1, 0, 0, 0, ..., 0] แสดงเหนือกล่อง 6 กล่อง แต่ละกล่องจัดเรียงจากซ้ายไปขวาตามตัวเลขเวกเตอร์ กล่องเหล่านี้มีรูปภาพต่อไปนี้เรียงจากซ้ายไปขวา บอชช์ ฮอตดอก สลัด พิซซ่า [ว่างเปล่า] ชาวัรมา กลาง: การแสดงข้อมูลผ่านภาพของการเข้ารหัสแบบ One-hot สำหรับฮอตดอก
       เวกเตอร์ [0, 1, 0, 0, ..., 0] แสดงเหนือกล่อง 6 กล่อง แต่ละกล่องจัดเรียงจากซ้ายไปขวาตามตัวเลขเวกเตอร์ กล่องเหล่านี้มีรูปภาพชุดเดียวกันเรียงจากซ้ายไปขวาเหมือนกับการแสดงข้อมูลผ่านภาพสำหรับบอชช์ข้างต้น ล่าง: การแสดงข้อมูลผ่านภาพของการเข้ารหัสแบบ One-hot สำหรับชาวัรมา เวกเตอร์ [0, 0, 0, 0, ..., 1] แสดงเหนือกล่อง 6 กล่อง แต่ละกล่องจัดเรียงจากซ้ายไปขวาตามตัวเลขเวกเตอร์ กล่องเหล่านี้มีรูปภาพชุดเดียวกันเรียงจากซ้ายไปขวาเหมือนกับการแสดงข้อมูลผ่านภาพสำหรับบอชช์และฮอตดอก
รูปที่ 2 การเข้ารหัสแบบ One-hot ของบอชช์ ฮอตดอก และชาวัรมา เวกเตอร์การเข้ารหัสแบบ One-hot แต่ละรายการมีความยาว 5,000 รายการ (1 รายการสำหรับอาหารแต่ละเมนูในชุดข้อมูล) จุดไข่ปลาในแผนภาพสื่อถึงข้อมูล 4,995 รายการที่ไม่ได้แสดง

ปัญหาของการนำเสนอข้อมูลที่ขาดแคลน

เมื่อดูการเข้ารหัสแบบ One-hot เหล่านี้ คุณสังเกตเห็นปัญหาหลายประการเกี่ยวกับการนำเสนอข้อมูลในลักษณะนี้

  • จำนวนน้ำหนัก เวกเตอร์อินพุตขนาดใหญ่หมายถึงน้ำหนักจำนวนมากของโครงข่ายระบบประสาทเทียม ด้วยข้อมูล M รายการในการเข้ารหัสแบบ One-hot และโหนด N ในเลเยอร์แรกของโครงข่ายหลังจากอินพุต โมเดลต้องฝึกน้ำหนัก MxN สำหรับเลเยอร์นั้น
  • จำนวนจุดข้อมูล ยิ่งโมเดลมีน้ำหนักมาก คุณยิ่งต้องมีข้อมูลมากเพื่อให้การฝึกมีประสิทธิภาพ
  • ปริมาณการคำนวณ ยิ่งมีน้ำหนักมาก ก็ยิ่งต้องมีการคำนวณมากเพื่อที่จะฝึกและใช้โมเดล ซึ่งอาจเกินความสามารถของฮาร์ดแวร์ได้ง่ายๆ
  • ปริมาณหน่วยความจำ ยิ่งโมเดลมีน้ำหนักมาก Accelerator ที่จะฝึกและแสดงโมเดลยิ่งต้องมีหน่วยความจำมาก ซึ่งการปรับขนาดเพิ่มอย่างมีประสิทธิภาพนั้นทำได้ยากมาก
  • ความยากของการรองรับแมชชีนเลิร์นนิงในอุปกรณ์ (ODML) หากคุณคาดหวังที่จะเรียกใช้โมเดล ML ในอุปกรณ์ที่ใช้ (แทนที่จะแสดงโมเดล) คุณจะต้องมุ่งเน้นการทำให้โมเดลมีขนาดเล็กลง และจะต้องลดจำนวนน้ำหนัก

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