มาตรวัดความคล้ายคลึงภายใต้การควบคุมดูแล

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

ในที่นี้เราจะพูดถึงการเรียนรู้ภายใต้การควบคุมดูแลเท่านั้นเพื่อสร้างมาตรฐานที่คล้ายกัน อัลกอริทึมจะใช้ความคล้ายคลึงกันทั้งโดยเจ้าหน้าที่หรือการควบคุมดูแล และจะทําคลัสเตอร์ที่ไม่มีการควบคุมดูแล

การเปรียบเทียบมาตรการควบคุมด้วยตนเองและที่มีการควบคุมดูแล

ตารางนี้อธิบายว่าควรใช้การวัดความคล้ายคลึงกันด้วยตนเองหรือที่มีการควบคุมดูแลเมื่อใด ทั้งนี้ขึ้นอยู่กับข้อกําหนดของคุณ

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

กระบวนการสําหรับมาตรวัดความคล้ายคลึงภายใต้การควบคุมดูแล

รูปต่อไปนี้แสดงวิธีสร้างมาตรวัดความคล้ายคลึงภายใต้การควบคุมดูแล

ป้อนข้อมูลฟีเจอร์ เลือก DNN: ตัวเข้ารหัสอัตโนมัติหรือตัวคาดการณ์
      แตกไฟล์ที่ฝัง เลือกการวัดค่า: จุด Dot, โคไซน์ หรือ
      ระยะทางแบบยุโรป
ภาพที่ 1: ขั้นตอนในการสร้างมาตรวัดความคล้ายคลึงภายใต้การควบคุมดูแล

คุณเรียนรู้ขั้นตอนแรกแล้ว หน้านี้จะอธิบายถึงขั้นตอนถัดไป และหน้าถัดไปจะพูดถึงขั้นตอนที่เหลือ

เลือก DNN ตามป้ายกํากับการฝึกอบรม

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

DNN ที่เรียนรู้การฝังข้อมูลอินพุตโดยการคาดการณ์ข้อมูลอินพุตด้วยตนเองจะเรียกว่าตัวเข้ารหัสอัตโนมัติ เนื่องจากชั้นที่ซ่อนอยู่ของตัวเข้ารหัสอัตโนมัติมีขนาดเล็กกว่าชั้นอินพุตและเอาต์พุต ระบบเข้ารหัสอัตโนมัติจึงต้องเรียนรู้วิธีแสดงข้อมูลแหล่งที่มาของอินพุตแบบบีบอัด เมื่อฝึก DNN แล้ว คุณจะดึงการฝังจากเลเยอร์ที่ซ่อนอยู่ชั้นสุดท้ายเพื่อคํานวณความคล้ายคลึงกัน

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

โปรแกรมเปลี่ยนไฟล์อัตโนมัติเป็นตัวเลือกที่ง่ายที่สุดเพื่อสร้างการฝัง อย่างไรก็ตาม โปรแกรมเปลี่ยนไฟล์อัตโนมัติไม่ใช่ตัวเลือกที่ดีที่สุดเมื่อฟีเจอร์บางอย่างอาจมีความสําคัญมากกว่าฟีเจอร์อื่นๆ ในการกําหนดความคล้ายคลึงกัน เช่น สมมติว่าเป็นข้อมูลบ้าน สมมติว่า "ราคา" สําคัญกว่า "รหัสไปรษณีย์" ในกรณีเช่นนี้ ให้ใช้เฉพาะฟีเจอร์สําคัญเป็นป้ายกํากับการฝึกอบรม DNN เนื่องจาก DNN นี้คาดการณ์ฟีเจอร์อินพุตที่เจาะจงแทนการคาดการณ์ฟีเจอร์อินพุตทั้งหมด จึงเรียกว่า DNN ตัวคาดการณ์ ใช้หลักเกณฑ์ต่อไปนี้เพื่อเลือกฟีเจอร์เป็นป้ายกํากับ

  • แนะนําให้ใช้ฟีเจอร์ตัวเลขกับฟีเจอร์ตามหมวดหมู่เป็นป้ายกํากับ เนื่องจากการสูญเสีย จะทําให้คํานวณและตีความฟีเจอร์ตัวเลขได้ง่ายขึ้น

  • อย่าใช้ฟีเจอร์เชิงหมวดหมู่ที่มีจํานวนสมาชิกในเซ็ต \(\lesssim\) 100 เป็นป้ายกํากับ เมื่อทําเช่นนี้ DNN จะไม่บังคับให้ลดข้อมูลที่ป้อนลงในการฝัง เนื่องจาก DNN สามารถคาดการณ์ป้ายกํากับเชิงหมวดหมู่ที่มีจํานวนสมาชิกน้อยได้ง่าย

  • นําฟีเจอร์ที่คุณใช้เป็นป้ายกํากับออกจากอินพุตไปยัง DNN มิฉะนั้น DNN จะคาดการณ์เอาต์พุตได้อย่างไม่มีที่ติ

DNN ที่ได้จะเป็น DNN ของตัวเข้ารหัสอัตโนมัติ หรือ DNN ตัวคาดการณ์ ทั้งนี้ขึ้นอยู่กับป้ายกํากับที่คุณเลือก

ฟังก์ชันการสูญเสียสําหรับ DNN

หากต้องการฝึก DNN คุณต้องสร้างฟังก์ชันการสูญเสียโดยทําตามขั้นตอนต่อไปนี้

  1. คํานวณการสูญเสียสําหรับเอาต์พุตทั้งหมดของ DNN สําหรับเอาต์พุตที่มีลักษณะดังนี้
    • ตัวเลข ให้ใช้ข้อผิดพลาดสี่เหลี่ยมจัตุรัสหมายถึง (MSE)
    • หมวดหมู่ที่ไม่เป็นมาตรฐาน ใช้การสูญเสียบันทึก โปรดทราบว่าคุณไม่จําเป็นต้องดําเนินการสูญเสียบันทึกด้วยตนเอง เนื่องจากสามารถใช้ฟังก์ชันไลบรารีเพื่อคํานวณได้
    • เชิงหมวดหมู่ที่หลากหลาย ใช้ softmax เอนโทรปีเต็ม โปรดทราบว่าคุณไม่จําเป็นต้องใช้การสูญเสียเอนโทรปีแบบ Softmax ด้วยตนเอง เพราะสามารถใช้ฟังก์ชันไลบรารีเพื่อคํานวณได้
  2. คํานวณการสูญเสียทั้งหมดโดยการสรุปส่วนแบ่งการแสดงผลที่เสียไปสําหรับทุกผลลัพธ์

เมื่อสรุปข้อมูลการสูญเสีย โปรดตรวจสอบว่าฟีเจอร์แต่ละรายการมีส่วนในการสูญเสียตามสัดส่วน เช่น หากแปลงข้อมูลสีเป็นค่า RGB คุณจะมีเอาต์พุต 3 รายการ แต่การสรุปการสูญเสียเอาต์พุต 3 รายการจะทําให้น้ําหนักของสีลดลง 3 เท่าเมื่อเทียบกับฟีเจอร์อื่นๆ แต่ให้คูณแต่ละเอาต์พุตด้วย 1/3 แทน

การใช้ DNN ในระบบออนไลน์

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