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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

อัตราการเรียนรู้ที่เหมาะสมคือเท่าใด
อัตราการเรียนรู้ที่เหมาะสมจะขึ้นอยู่กับปัญหา
โมเดลและชุดข้อมูลแต่ละรายการจะมีอัตราการเรียนรู้ที่เหมาะสมของตนเอง
0.01
1.0

ขนาดกลุ่ม

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

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

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

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

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

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

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

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

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

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

    รูปที่ 26 โมเดลได้รับการฝึกด้วย SGD กลุ่มขนาดเล็ก

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

Epoch

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

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

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

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

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

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

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

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

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