การฝัง

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

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

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

คุณสร้างฟีเจอร์ meal ที่มีองค์ประกอบ เข้ารหัสแบบฮอตเดียว การแทนรายการอาหารแต่ละรายการในชุดข้อมูล

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

ปัญหาการนำเสนอข้อมูลที่กระจัดกระจาย

เมื่อตรวจสอบการเข้ารหัสแบบฮอตเดียวเหล่านี้ คุณพบปัญหาหลักๆ 2 ข้อสำหรับ การนำเสนอข้อมูลได้อย่างอิสระ

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

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