สมมติว่าคุณกำลังพัฒนาแอปพลิเคชันแนะนำอาหาร ผู้ใช้ป้อนอาหารโปรด และแอปแนะนำอาหารที่คล้ายกัน ที่พวกเขาน่าจะชอบ คุณต้องการพัฒนาโมเดลแมชชีนเลิร์นนิง (ML) ซึ่งคาดการณ์ความคล้ายคลึงกันของอาหาร เพื่อให้แอปทำให้ ("เนื่องจากคุณชอบแพนเค้ก เราจึงแนะนำเครป")
หากต้องการฝึกโมเดล คุณต้องดูแลจัดการชุดข้อมูลยอดนิยม 5,000 รายการ รายการอาหาร รวมถึง borscht ฮอตดอก สลัด พิซซ่า และ ชาวาร์มา
![รูปที่ 1 ชุดภาพอาหาร 5 รายการ ตามเข็มนาฬิกาจาก
ซ้ายบน: บอร์ช, ฮอตด็อก, สลัด, พิซซ่า, ชาวาร์มา](https://developers.google.cn/static/machine-learning/crash-course/embeddings/images/food_images.png?authuser=4&hl=th)
คุณสร้างฟีเจอร์ meal
ที่มีองค์ประกอบ
เข้ารหัสแบบฮอตเดียว
การแทนรายการอาหารแต่ละรายการในชุดข้อมูล
![รูปที่ 2 บน: การแสดงภาพการเข้ารหัสแบบหนึ่งฮอตสำหรับบอร์ช
เวกเตอร์ [1, 0, 0, 0, ..., 0] จะแสดงอยู่เหนือช่องหกช่อง
แต่ละแนวจัดจากด้านซ้าย
ทางขวาด้วยตัวเลขเวกเตอร์หนึ่ง ช่องต่างๆ จากซ้ายไปขวา
มีรูปภาพต่อไปนี้: บอร์ช, ฮอตด็อก, สลัด, พิซซ่า, [ว่างเปล่า],
ชาวาร์มา ตรงกลาง: การแสดงภาพการเข้ารหัสแบบหนึ่งฮอตดอก
เวกเตอร์ [0, 1, 0, 0, ..., 0] จะแสดงอยู่เหนือช่องหกช่อง แต่ละกล่อง
อยู่ในแนวซ้ายไปขวากับตัวเลขเวกเตอร์หนึ่ง กล่องเหล่านี้มี
ภาพเดียวกันจากซ้ายไปขวาสำหรับภาพบอร์ช
ที่ด้านบน ล่าง: การแสดงภาพการเข้ารหัสแบบหนึ่งฮอตสำหรับชาวาร์มา
เวกเตอร์ [0, 0, 0, 0, ..., 1] แสดงอยู่เหนือช่อง 6 ช่อง โดยแต่ละกล่องจัดแนว
จากซ้ายไปขวาด้วยตัวเลขเวกเตอร์หนึ่ง กล่องเหล่านี้มี
ภาพเดียวกันจากซ้ายไปขวาเช่นเดียวกับภาพบอร์ชและฮอตดอก
การแสดงข้อมูลผ่านภาพ](https://developers.google.cn/static/machine-learning/crash-course/embeddings/images/food_images_one_hot_encodings.png?authuser=4&hl=th)
ปัญหาการนำเสนอข้อมูลที่กระจัดกระจาย
เมื่อตรวจสอบการเข้ารหัสแบบฮอตเดียวเหล่านี้ คุณพบปัญหาหลักๆ 2 ข้อสำหรับ การนำเสนอข้อมูลได้อย่างอิสระ
- จำนวนน้ำหนัก เวกเตอร์อินพุตขนาดใหญ่หมายถึง
น้ำหนัก
สำหรับโครงข่ายระบบประสาทเทียม
เมื่อมีรายการ M ในการเข้ารหัสแบบ One-hot และ N
ในเลเยอร์แรกของเครือข่ายหลังจากอินพุต โมเดลจะต้องฝึก
น้ำหนัก MxN ของเลเยอร์นั้น การมีน้ำหนักจำนวนมากก่อให้เกิดปัญหาเพิ่มเติม ดังนี้
- จำนวนจุดข้อมูล ยิ่งโมเดลของคุณมีน้ำหนักมากเท่าไหร่ คุณก็ยิ่งมีข้อมูลมาก จำเป็นต้องฝึกอบรมอย่างมีประสิทธิภาพ
- ปริมาณการคำนวณ ยิ่งน้ำหนักมาก ก็ยิ่งต้องการการคำนวณมาก เพื่อฝึกและใช้โมเดล การที่เกินความสามารถของ ฮาร์ดแวร์
- ปริมาณหน่วยความจำ ยิ่งโมเดลของคุณมีน้ำหนักมากเท่าไหร่ หน่วยความจำก็จะยิ่งมากขึ้นเท่านั้น ใน Accelerator ที่ฝึกและให้บริการ ปรับเพิ่มระดับ ที่มีประสิทธิภาพนั้นเป็นเรื่องที่ยากมาก
- ปัญหาการสนับสนุน แมชชีนเลิร์นนิง (ODML) ในอุปกรณ์ หากต้องการเรียกใช้โมเดล ML ในอุปกรณ์เฉพาะที่ (ตรงข้ามกับการแสดงโฆษณา ) คุณจะต้องมุ่งเน้นในการทำให้โมเดลของคุณมีขนาดเล็กลง และต้อง เพื่อลดจำนวนน้ำหนัก
- ขาดความสัมพันธ์ที่มีความหมายระหว่างเวกเตอร์ ค่าเวกเตอร์ในองค์ประกอบ การเข้ารหัสแบบฮอตเดียวสำหรับอาหาร ไม่ได้ให้ข้อมูลที่มีประโยชน์เกี่ยวกับ ความคล้ายคลึงกันของอาหาร ในทางคณิตศาสตร์ ดัชนี 1 ("ฮอตดอก") คือ ใกล้กับดัชนี 2 ("สลัด") มากกว่าดัชนี 4999 ("ชาวาร์มา") แม้ว่าจะเป็น สุนัขมีลักษณะคล้ายชาวาร์มา (ซึ่งมีทั้งเนื้อและขนมปัง) มากกว่าสลัด
ในโมดูลนี้ คุณจะได้เรียนรู้วิธีสร้างการฝังมิติข้อมูลที่ต่ำกว่า การนำเสนอข้อมูลที่กระจัดกระจายที่ช่วยแก้ไขปัญหาทั้ง 2 อย่างนี้ได้