หยุดก่อนกำหนดเมื่อค่าความสูญเสียชุดตรวจสอบเพิ่มขึ้น
หยุดก่อนโมเดลจะเรียนรู้จนเกินพอดี
หยุดก่อนกำหนดเมื่อค่าความสูญเสียชุดตรวจสอบเพิ่มขึ้น เป็นบทเรียน Deep Learning Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Deep Learning Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Deep Learning Academy มีบทเรียนทั้งหมด 4 บทเรียน
ฝึกนานเกินไปทำให้แย่ลง
จำนวนยุคที่มากขึ้นไม่ได้ดีกว่าเสมอไป เมื่อผ่านจุดหนึ่ง โมเดลจะเริ่มจดจำสัญญาณรบกวน และผลจากการตรวจสอบจะแย่ลง การหยุดก่อนกำหนดจะจบการฝึกในช่วงที่เหมาะสมที่สุด
ติดตามค่าความสูญเสียจากการตรวจสอบ
สัญญาณที่คุณต้องติดตามคือค่าความสูญเสียจากการตรวจสอบ ตราบใดที่ค่านี้ยังลดลง โมเดลก็ยังถ่ายโอนความรู้ได้ดีขึ้น คุณจึงปล่อยให้การฝึกดำเนินต่อไป
จุดเปลี่ยน
ท้ายที่สุด ค่าความสูญเสียจากการฝึกยังลดลง แต่ค่าความสูญเสียจากการตรวจสอบแตะจุดต่ำสุดแล้วเพิ่มขึ้น การเพิ่มขึ้นนี้คือช่วงเวลาที่การเรียนรู้ข้อมูลเฉพาะชุดมากเกินไปเริ่มเข้าครอบงำ
จดจำคะแนนที่ดีที่สุด
เก็บตัวแปรสำหรับค่าการสูญเสียจากการตรวจสอบที่ดีที่สุดที่พบจนถึงตอนนี้ ในแต่ละยุค ให้เปรียบเทียบคะแนนใหม่กับค่านี้เพื่อดูว่ามีความก้าวหน้าหรือไม่
best_loss = float('inf')นับยุคที่ไม่มีการปรับปรุง
เมื่อยุคหนึ่งไม่สามารถทำคะแนนได้ดีกว่าค่าที่ดีที่สุด ให้เพิ่มตัวนับขึ้นหนึ่งค่า และรีเซ็ตเป็นศูนย์ทันทีที่ค่าการสูญเสียจากการตรวจสอบดีขึ้นอีกครั้ง
if val_loss < best_loss:
best_loss = val_loss
counter = 0
else:
counter += 1กำหนดค่าความอดทน
ความอดทนคือจำนวนยุคที่ยอมให้ผลลัพธ์ไม่ดีได้ก่อนจะหยุด การตั้งค่าให้ต่ำจะหยุดเร็ว ส่วนการตั้งค่าให้สูงจะช่วยให้ผ่านช่วงที่ค่าผลลัพธ์ผันผวนได้
patience = 5หยุดเมื่อความอดทนหมดลง
เมื่อค่าตัวนับถึงระดับความอดทน ให้หยุดลูป คำสั่งbreakนี้จะจบการฝึกก่อนที่โมเดลจะเสียเวลาและมีผลลัพธ์แย่ลง
if counter >= patience:
breakบันทึกค่าที่ดีที่สุดระหว่างทาง
ทุกครั้งที่ผลการตรวจสอบดีขึ้น ให้เขียนจุดตรวจสอบไว้ เมื่อหยุดในท้ายที่สุด ไฟล์ที่บันทึกไว้จะเก็บโมเดลที่มีประสิทธิภาพดีที่สุด ไม่ใช่โมเดลจากรอบสุดท้าย
if val_loss < best_loss:
torch.save(model.state_dict(), 'best.pt')เพิ่มค่า Min Delta
การแกว่งเล็กน้อยอาจดูเหมือนความก้าวหน้าที่ไม่ใช่จริง ค่าmin_deltaจะกำหนดให้การปรับปรุงต้องมากกว่าค่าขีดเริ่มต้นก่อนจึงจะรีเซ็ตตัวนับความอดทน
if val_loss < best_loss - min_delta:
best_loss = val_lossกู้คืนค่าที่ดีที่สุดเมื่อจบ
หลังจบลูป ให้โหลดจุดตรวจสอบที่บันทึกไว้ เพื่อให้คุณนำโมเดลที่ดีที่สุดไปใช้งานจริง การหยุดก่อนกำหนดจะไม่มีประโยชน์ หากยังเก็บค่าน้ำหนักสุดท้ายที่แย่กว่าไว้
model.load_state_dict(torch.load('best.pt'))รูปแบบการทำให้เป็นระเบียบที่ไม่ต้องเสียค่าใช้จ่าย
การหยุดก่อนกำหนดไม่เพิ่มค่าใช้จ่าย แต่ช่วยต่อต้านการเรียนรู้เกินจริงได้เหมือนตัวทำให้เป็นระเบียบ และยังทำงานร่วมกับ dropout และการลดค่าน้ำหนักได้ดีเพื่อให้การฝึกมีเสถียรภาพยิ่งขึ้น
ตรวจสอบอย่างรวดเร็ว
การตั้งค่าความอดทนควบคุมอะไรในการหยุดก่อนกำหนด
สรุปทบทวน
ติดตามค่าการสูญเสียจากการตรวจสอบ นับยุคที่ไม่มีการปรับปรุง หยุดเมื่อความอดทนหมดลง และกู้คืนจุดตรวจสอบที่ดีที่สุด การหยุดก่อนกำหนดช่วยประหยัดเวลาและลดการเรียนรู้เกินจริง ⏹️
คำถามที่พบบ่อย
บทเรียน “หยุดก่อนกำหนดเมื่อค่าความสูญเสียชุดตรวจสอบเพิ่มขึ้น” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “หยุดก่อนกำหนดเมื่อค่าความสูญเสียชุดตรวจสอบเพิ่มขึ้น” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Deep Learning Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Deep Learning Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “หยุดก่อนกำหนดเมื่อค่าความสูญเสียชุดตรวจสอบเพิ่มขึ้น”
หยุดก่อนโมเดลจะเรียนรู้จนเกินพอดี คุณปฏิบัติ Deep Learning Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Deep Learning Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Deep Learning Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “หยุดก่อนกำหนดเมื่อค่าความสูญเสียชุดตรวจสอบเพิ่มขึ้น” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Deep Learning Academy นี้ได้ไหม
ได้ บทเรียน Deep Learning Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แบ่งชุดฝึก ชุดตรวจสอบ และชุดทดสอบ
- วงรอบยุคพร้อมการตรวจสอบ
- บันทึกและโหลดด้วย state_dict
- หยุดก่อนกำหนดเมื่อค่าความสูญเสียชุดตรวจสอบเพิ่มขึ้น