การถดถอยเชิงเส้น: ไฮเปอร์พารามิเตอร์

ไฮเปอร์พารามิเตอร์คือตัวแปรที่ควบคุมแง่มุมต่างๆ ของการฝึก ไฮเปอร์พารามิเตอร์ทั่วไป 3 รายการ ได้แก่

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

อัตราการเรียนรู้

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

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

ความแตกต่างระหว่างพารามิเตอร์ของโมเดลเก่ากับพารามิเตอร์ของโมเดลใหม่จะแปรผันตามความชันของฟังก์ชันการสูญเสีย เช่น หากความลาดชันมีขนาดใหญ่ โมเดลจะก้าวไปข้างหน้าทีละมาก หากมีขนาดเล็ก แสดงว่าต้องดำเนินการในขั้นตอนเล็กๆ เช่น หากขนาดของลําดับชั้นคือ 2.5 และอัตราการเรียนรู้คือ 0.01 โมเดลจะเปลี่ยนพารามิเตอร์ 0.025

อัตราการเรียนรู้ที่เหมาะสมจะช่วยให้โมเดลบรรจบภายในจำนวนการวนซ้ำที่เหมาะสม ในรูปที่ 21 เส้นโค้งการสูญเสียแสดงให้เห็นว่าโมเดลมีประสิทธิภาพดีขึ้นอย่างมากในช่วง 20 รอบแรกก่อนที่จะเริ่มเข้าใกล้กัน

รูปที่ 21 เส้นโค้งการสูญเสียที่แสดงการลาดชันชันชันก่อนที่จะค่อยๆ ราบลง

รูปที่ 21 กราฟการสูญเสียแสดงโมเดลที่ผ่านการฝึกด้วยอัตราการเรียนรู้ที่บรรจบกันอย่างรวดเร็ว

ในทางตรงกันข้าม อัตราการเรียนรู้ที่ต่ำเกินไปอาจทําให้ต้องทําซ้ำหลายครั้งเกินไปจึงจะบรรลุความสอดคล้อง ในรูปที่ 22 เส้นโค้งการสูญเสียแสดงว่าโมเดลทําการปรับปรุงเพียงเล็กน้อยหลังจากการวนซ้ำแต่ละครั้ง

รูปที่ 22 เส้นโค้งการสูญเสียที่แสดงความลาดชันเกือบ 45 องศา

รูปที่ 22 กราฟการสูญเสียที่แสดงโมเดลที่ผ่านการฝึกด้วยอัตราการเรียนรู้ต่ำ

อัตราการเรียนรู้ที่สูงเกินไปจะไม่มีการบรรจบกันเนื่องจากการวนซ้ำแต่ละครั้งจะทําให้ค่าสูญเสียเพิ่มขึ้นหรือลดลง ในรูปที่ 23 เส้นโค้งการสูญเสียแสดงให้เห็นว่าโมเดลลดการสูญเสียลงแล้วเพิ่มการสูญเสียหลังจากการวนซ้ำแต่ละครั้ง และรูปที่ 24 แสดงให้เห็นว่าการสูญเสียเพิ่มขึ้นในการวนซ้ำช่วงหลัง

รูปที่ 23 เส้นโค้งการสูญเสียที่แสดงเส้นขึ้นและลงแบบขรุขระ

รูปที่ 23 กราฟการสูญเสียแสดงโมเดลที่ผ่านการฝึกด้วยอัตราการเรียนรู้ที่สูงเกินไป โดยเส้นโค้งการสูญเสียจะผันผวนอย่างมาก ขึ้นๆ ลงๆ เมื่อจำนวนรอบเพิ่มขึ้น

รูปที่ 24 เส้นโค้งการสูญเสียที่แสดงการสูญเสียที่เพิ่มขึ้นในการวนซ้ำในภายหลัง

รูปที่ 24 กราฟการสูญเสียแสดงโมเดลที่ผ่านการฝึกด้วยอัตราการเรียนรู้ที่สูงเกินไป ซึ่งเส้นโค้งการสูญเสียจะเพิ่มขึ้นอย่างมากในการวนซ้ำในภายหลัง

แบบฝึกหัด: ทดสอบความเข้าใจ

อัตราการเรียนรู้ที่เหมาะสมคืออะไร
อัตราการเรียนรู้ที่เหมาะสมจะขึ้นอยู่กับปัญหา
1.0
0.01

ขนาดกลุ่ม

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

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

  • การลดเชิงลาดแบบสุ่ม (SGD): การลดเชิงลาดแบบสุ่มใช้เพียงตัวอย่างเดียว (ขนาดกลุ่ม 1) ต่อการวนซ้ำ 1 ครั้ง เมื่อใช้จำนวนซ้ำที่มากพอ SGD จะทำงานได้แต่มีความผันผวนมาก "สัญญาณรบกวน" หมายถึงความผันผวนระหว่างการฝึกที่ทำให้การสูญเสียเพิ่มขึ้นแทนที่จะลดลงในระหว่างการทำซ้ำ คําว่า "แบบสุ่ม" บ่งชี้ว่าตัวอย่าง 1 รายการที่ประกอบขึ้นจากแต่ละกลุ่มนั้นได้รับการสุ่มเลือก

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

    รูปที่ 25 เส้นโค้งการสูญเสียที่ชันซึ่งค่อยๆ ราบลง แต่มีความผันผวนเล็กๆ จำนวนมาก

    รูปที่ 25 โมเดลที่ผ่านการฝึกด้วย Stochastic Gradient Descent (SGD) ซึ่งแสดงสัญญาณรบกวนในเส้นโค้งการสูญเสีย

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

  • การลดเชิงลาดแบบสุ่มของกลุ่มย่อย (SGD กลุ่มย่อย): การลดเชิงลาดแบบสุ่มของกลุ่มย่อยเป็นการประนีประนอมระหว่าง SGD กลุ่มเต็มกับ SGD สำหรับจุดข้อมูลจำนวน N ขนาดกลุ่มสามารถเป็นตัวเลขใดก็ได้ที่มากกว่า 1 และน้อยกว่า N โมเดลจะเลือกตัวอย่างที่รวมอยู่ในแต่ละกลุ่มแบบสุ่ม หาค่าเฉลี่ยของอนุพันธ์ แล้วอัปเดตน้ำหนักและค่ากําหนดล่วงหน้า 1 ครั้งต่อการทำซ้ำ

    การกำหนดจำนวนตัวอย่างสำหรับแต่ละกลุ่มจะขึ้นอยู่กับชุดข้อมูลและทรัพยากรการประมวลผลที่ใช้ได้ โดยทั่วไปแล้ว ขนาดกลุ่มเล็กๆ จะทํางานเหมือน SGD และขนาดกลุ่มที่ใหญ่ขึ้นจะทํางานเหมือนการลดเชิงลาดแบบกลุ่มทั้งหมด

    รูปที่ 26 เส้นโค้งการสูญเสียที่ชันซึ่งเริ่มแบนราบลง โดยมีความผันผวนน้อยลงมากเมื่อใกล้ถึงจุดบรรจบ

    รูปที่ 26 โมเดลที่ฝึกด้วย SGD แบบมินิแบทช์

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

Epoch

ในระหว่างการฝึก Epoch หมายความว่าโมเดลประมวลผลตัวอย่างทุกรายการในชุดการฝึก1 ครั้ง ตัวอย่างเช่น หากมีชุดการฝึกที่มีตัวอย่าง 1,000 รายการและขนาดมินิแบทช์ 100 รายการ โมเดลจะใช้เวลา 10 iterationsเพื่อดำเนินการ 1 Epoch

การฝึกมักจะต้องใช้หลายยุค กล่าวคือ ระบบต้องประมวลผลตัวอย่างทั้งหมดในชุดการฝึกหลายครั้ง

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

รูปที่ 27 กลุ่มแบบเต็มคือชุดข้อมูลทั้งหมด กลุ่มย่อยคือชุดย่อยของชุดข้อมูล และยุคคือการดำเนินการแบบเต็มผ่านกลุ่มย่อย 10 กลุ่ม

รูปที่ 27 กลุ่มเต็มเทียบกับกลุ่มย่อย

ตารางต่อไปนี้อธิบายความสัมพันธ์ระหว่างขนาดกลุ่มและจำนวนครั้งที่โมเดลอัปเดตพารามิเตอร์

ประเภทกลุ่ม เมื่อมีอัปเดตน้ำหนักและค่ากําหนด
กลุ่มเต็ม หลังจากที่โมเดลดูตัวอย่างทั้งหมดในชุดข้อมูล ตัวอย่างเช่น หากชุดข้อมูลมีตัวอย่าง 1,000 รายการและโมเดลฝึก 20 Epoch โมเดลจะอัปเดตน้ำหนักและค่ากําหนด 20 ครั้ง โดยอัปเดต 1 ครั้งต่อ Epoch
การลดเชิงสุ่มตามลาดชัน หลังจากที่โมเดลดูตัวอย่างเดียวจากชุดข้อมูล เช่น หากชุดข้อมูลมีตัวอย่าง 1,000 รายการและฝึกเป็นเวลา 20 อีพอค โมเดลจะอัปเดตน้ำหนักและค่ากําหนด 20,000 ครั้ง
การลดเชิงลาดแบบสุ่มขนาดเล็ก หลังจากที่โมเดลดูตัวอย่างในแต่ละกลุ่ม ตัวอย่างเช่น หากชุดข้อมูลมีตัวอย่าง 1,000 รายการ และขนาดกลุ่มเป็น 100 และโมเดลได้รับการฝึกเป็นเวลา 20 อีพอค โมเดลจะอัปเดตน้ำหนักและค่ากําหนด 200 ครั้ง

แบบฝึกหัด: ทดสอบความเข้าใจ

1. ขนาดกลุ่มที่ดีที่สุดเมื่อใช้ SGD แบบมินิแบทช์คืออะไร
ตัวอย่าง 100 รายการต่อกลุ่ม
ตัวอย่าง 10 รายการต่อกลุ่ม
แล้วแต่กรณี
2. ข้อความใดต่อไปนี้เป็นจริง
การเพิ่มอัตราการเรียนรู้เป็น 2 เท่าอาจทําให้การฝึกช้าลง
กลุ่มที่ใหญ่กว่านั้นไม่เหมาะกับข้อมูลที่มีค่าผิดปกติจำนวนมาก