ไฮเปอร์พารามิเตอร์คือตัวแปรที่ควบคุมแง่มุมต่างๆ ของการฝึก ไฮเปอร์พารามิเตอร์ทั่วไป 3 รายการ ได้แก่
ในทางตรงกันข้าม พารามิเตอร์คือตัวแปร เช่น น้ำหนักและค่าเบี่ยงเบน ซึ่งเป็นส่วนหนึ่งของโมเดล กล่าวคือ ไฮเปอร์พารามิเตอร์คือค่าที่คุณควบคุม ส่วนพารามิเตอร์คือค่าที่โมเดลคํานวณระหว่างการฝึก
อัตราการเรียนรู้
อัตราการเรียนรู้คือตัวเลขทศนิยมที่คุณตั้งค่าซึ่งส่งผลต่อความเร็วที่โมเดลจะบรรลุข้อสรุป หากอัตราการเรียนรู้ต่ำเกินไป โมเดลอาจใช้เวลานานในการบรรจบ อย่างไรก็ตาม หากอัตราการเรียนรู้สูงเกินไป โมเดลจะไม่บรรลุความสอดคล้อง แต่จะสุ่มตัวอย่างน้ำหนักและค่าอคติที่ลดการสูญเสีย เป้าหมายคือเลือกอัตราการเรียนรู้ที่ไม่สูงและไม่ต่ำจนเกินไปเพื่อให้โมเดลบรรจบอย่างรวดเร็ว
อัตราการเรียนรู้จะกําหนดขนาดของการเปลี่ยนแปลงที่จะทํากับน้ำหนักและค่ากําหนดในแต่ละขั้นตอนของกระบวนการลดเชิงลาด โมเดลจะคูณอนุพันธ์ด้วยอัตราการเรียนรู้เพื่อกำหนดพารามิเตอร์ของโมเดล (ค่าน้ำหนักและค่าอคติ) สำหรับการวนซ้ำครั้งถัดไป ในขั้นตอนที่ 3 ของการลดการลาดชัน "จำนวนเล็กน้อย" ที่จะย้ายไปในทิศทางของลาดชันเชิงลบหมายถึงอัตราการเรียนรู้
ความแตกต่างระหว่างพารามิเตอร์ของโมเดลเก่ากับพารามิเตอร์ของโมเดลใหม่จะแปรผันตามความชันของฟังก์ชันการสูญเสีย เช่น หากความลาดชันมีขนาดใหญ่ โมเดลจะก้าวไปข้างหน้าทีละมาก หากมีขนาดเล็ก แสดงว่าต้องดำเนินการในขั้นตอนเล็กๆ เช่น หากขนาดของลําดับชั้นคือ 2.5 และอัตราการเรียนรู้คือ 0.01 โมเดลจะเปลี่ยนพารามิเตอร์ 0.025
อัตราการเรียนรู้ที่เหมาะสมจะช่วยให้โมเดลบรรจบภายในจำนวนการวนซ้ำที่เหมาะสม ในรูปที่ 21 เส้นโค้งการสูญเสียแสดงให้เห็นว่าโมเดลมีประสิทธิภาพดีขึ้นอย่างมากในช่วง 20 รอบแรกก่อนที่จะเริ่มเข้าใกล้กัน
รูปที่ 21 กราฟการสูญเสียแสดงโมเดลที่ผ่านการฝึกด้วยอัตราการเรียนรู้ที่บรรจบกันอย่างรวดเร็ว
ในทางตรงกันข้าม อัตราการเรียนรู้ที่ต่ำเกินไปอาจทําให้ต้องทําซ้ำหลายครั้งเกินไปจึงจะบรรลุความสอดคล้อง ในรูปที่ 22 เส้นโค้งการสูญเสียแสดงว่าโมเดลทําการปรับปรุงเพียงเล็กน้อยหลังจากการวนซ้ำแต่ละครั้ง
รูปที่ 22 กราฟการสูญเสียที่แสดงโมเดลที่ผ่านการฝึกด้วยอัตราการเรียนรู้ต่ำ
อัตราการเรียนรู้ที่สูงเกินไปจะไม่มีการบรรจบกันเนื่องจากการวนซ้ำแต่ละครั้งจะทําให้ค่าสูญเสียเพิ่มขึ้นหรือลดลง ในรูปที่ 23 เส้นโค้งการสูญเสียแสดงให้เห็นว่าโมเดลลดการสูญเสียลงแล้วเพิ่มการสูญเสียหลังจากการวนซ้ำแต่ละครั้ง และรูปที่ 24 แสดงให้เห็นว่าการสูญเสียเพิ่มขึ้นในการวนซ้ำช่วงหลัง
รูปที่ 23 กราฟการสูญเสียแสดงโมเดลที่ผ่านการฝึกด้วยอัตราการเรียนรู้ที่สูงเกินไป โดยเส้นโค้งการสูญเสียจะผันผวนอย่างมาก ขึ้นๆ ลงๆ เมื่อจำนวนรอบเพิ่มขึ้น
รูปที่ 24 กราฟการสูญเสียแสดงโมเดลที่ผ่านการฝึกด้วยอัตราการเรียนรู้ที่สูงเกินไป ซึ่งเส้นโค้งการสูญเสียจะเพิ่มขึ้นอย่างมากในการวนซ้ำในภายหลัง
แบบฝึกหัด: ทดสอบความเข้าใจ
ขนาดกลุ่ม
ขนาดกลุ่มคือไฮเปอร์พารามิเตอร์ซึ่งหมายถึงจํานวนตัวอย่างที่โมเดลประมวลผลก่อนที่จะอัปเดตน้ำหนักและค่ากําหนด คุณอาจคิดว่าโมเดลควรคํานวณการสูญเสียสําหรับตัวอย่างทุกตัวอย่างในชุดข้อมูลก่อนที่จะอัปเดตน้ำหนักและค่ากําหนด อย่างไรก็ตาม เมื่อชุดข้อมูลมีตัวอย่างหลายแสนหรือหลายล้านรายการ การใช้กลุ่มทดสอบทั้งหมดจะไม่เหมาะ
เทคนิคทั่วไป 2 วิธีในการหา Gradient ที่ถูกต้องในค่าเฉลี่ยโดยไม่ต้องดูตัวอย่างทุกรายการในชุดข้อมูลก่อนที่จะอัปเดตน้ำหนักและค่าเบี่ยงเบนคือ การลดทอนเชิงกริดแบบสุ่มและการลดทอนเชิงกริดแบบสุ่มกลุ่มย่อย
การลดเชิงลาดแบบสุ่ม (SGD): การลดเชิงลาดแบบสุ่มใช้เพียงตัวอย่างเดียว (ขนาดกลุ่ม 1) ต่อการวนซ้ำ 1 ครั้ง เมื่อใช้จำนวนซ้ำที่มากพอ SGD จะทำงานได้แต่มีความผันผวนมาก "สัญญาณรบกวน" หมายถึงความผันผวนระหว่างการฝึกที่ทำให้การสูญเสียเพิ่มขึ้นแทนที่จะลดลงในระหว่างการทำซ้ำ คําว่า "แบบสุ่ม" บ่งชี้ว่าตัวอย่าง 1 รายการที่ประกอบขึ้นจากแต่ละกลุ่มนั้นได้รับการสุ่มเลือก
สังเกตในรูปภาพต่อไปนี้ว่าความสูญเสียผันผวนเล็กน้อยเมื่อโมเดลอัปเดตน้ำหนักและค่ากําหนดโดยใช้ SGD ซึ่งอาจทําให้กราฟความสูญเสียมีสัญญาณรบกวน
รูปที่ 25 โมเดลที่ผ่านการฝึกด้วย Stochastic Gradient Descent (SGD) ซึ่งแสดงสัญญาณรบกวนในเส้นโค้งการสูญเสีย
โปรดทราบว่าการใช้การลดเชิงลาดแบบสุ่มอาจทำให้เกิดสัญญาณรบกวนตลอดทั้งเส้นโค้งการสูญเสีย ไม่ใช่แค่ในช่วงใกล้การบรรจบ
การลดเชิงลาดแบบสุ่มของกลุ่มย่อย (SGD กลุ่มย่อย): การลดเชิงลาดแบบสุ่มของกลุ่มย่อยเป็นการประนีประนอมระหว่าง SGD กลุ่มเต็มกับ SGD สำหรับจุดข้อมูลจำนวน ขนาดกลุ่มสามารถเป็นตัวเลขใดก็ได้ที่มากกว่า 1 และน้อยกว่า โมเดลจะเลือกตัวอย่างที่รวมอยู่ในแต่ละกลุ่มแบบสุ่ม หาค่าเฉลี่ยของอนุพันธ์ แล้วอัปเดตน้ำหนักและค่ากําหนดล่วงหน้า 1 ครั้งต่อการทำซ้ำ
การกำหนดจำนวนตัวอย่างสำหรับแต่ละกลุ่มจะขึ้นอยู่กับชุดข้อมูลและทรัพยากรการประมวลผลที่ใช้ได้ โดยทั่วไปแล้ว ขนาดกลุ่มเล็กๆ จะทํางานเหมือน SGD และขนาดกลุ่มที่ใหญ่ขึ้นจะทํางานเหมือนการลดเชิงลาดแบบกลุ่มทั้งหมด
รูปที่ 26 โมเดลที่ฝึกด้วย SGD แบบมินิแบทช์
เมื่อฝึกโมเดล คุณอาจคิดว่าสัญญาณรบกวนเป็นลักษณะที่ไม่พึงประสงค์ซึ่งควรกำจัดออก อย่างไรก็ตาม เสียงรบกวนในระดับหนึ่งอาจเป็นสิ่งที่ดี ในโมดูลต่อๆ ไป คุณจะได้เรียนรู้ว่าสัญญาณรบกวนช่วยให้โมเดลสร้างแบบทั่วไปได้ดียิ่งขึ้นและค้นหาน้ำหนักและค่าอคติที่เหมาะสมในเครือข่ายประสาทได้อย่างไร
Epoch
ในระหว่างการฝึก Epoch หมายความว่าโมเดลประมวลผลตัวอย่างทุกรายการในชุดการฝึก1 ครั้ง ตัวอย่างเช่น หากมีชุดการฝึกที่มีตัวอย่าง 1,000 รายการและขนาดมินิแบทช์ 100 รายการ โมเดลจะใช้เวลา 10 iterationsเพื่อดำเนินการ 1 Epoch
การฝึกมักจะต้องใช้หลายยุค กล่าวคือ ระบบต้องประมวลผลตัวอย่างทั้งหมดในชุดการฝึกหลายครั้ง
จํานวนรอบคือไฮเปอร์พารามิเตอร์ที่คุณตั้งค่าไว้ก่อนที่โมเดลจะเริ่มการฝึก ในหลายกรณี คุณจะต้องทดสอบจำนวนรอบที่โมเดลจะบรรลุความสอดคล้อง โดยทั่วไปแล้ว ยิ่งมีจำนวน Epoch มาก โมเดลก็จะยิ่งดีขึ้น แต่ก็ใช้เวลาฝึกนานขึ้นด้วย
รูปที่ 27 กลุ่มเต็มเทียบกับกลุ่มย่อย
ตารางต่อไปนี้อธิบายความสัมพันธ์ระหว่างขนาดกลุ่มและจำนวนครั้งที่โมเดลอัปเดตพารามิเตอร์
ประเภทกลุ่ม | เมื่อมีอัปเดตน้ำหนักและค่ากําหนด |
---|---|
กลุ่มเต็ม | หลังจากที่โมเดลดูตัวอย่างทั้งหมดในชุดข้อมูล ตัวอย่างเช่น หากชุดข้อมูลมีตัวอย่าง 1,000 รายการและโมเดลฝึก 20 Epoch โมเดลจะอัปเดตน้ำหนักและค่ากําหนด 20 ครั้ง โดยอัปเดต 1 ครั้งต่อ Epoch |
การลดเชิงสุ่มตามลาดชัน | หลังจากที่โมเดลดูตัวอย่างเดียวจากชุดข้อมูล เช่น หากชุดข้อมูลมีตัวอย่าง 1,000 รายการและฝึกเป็นเวลา 20 อีพอค โมเดลจะอัปเดตน้ำหนักและค่ากําหนด 20,000 ครั้ง |
การลดเชิงลาดแบบสุ่มขนาดเล็ก | หลังจากที่โมเดลดูตัวอย่างในแต่ละกลุ่ม ตัวอย่างเช่น หากชุดข้อมูลมีตัวอย่าง 1,000 รายการ และขนาดกลุ่มเป็น 100 และโมเดลได้รับการฝึกเป็นเวลา 20 อีพอค โมเดลจะอัปเดตน้ำหนักและค่ากําหนด 200 ครั้ง |