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