0Pricing
Deep Learning Academy · บทเรียน

หยุดก่อนกำหนดเมื่อค่าความสูญเสียชุดตรวจสอบเพิ่มขึ้น

หยุดก่อนโมเดลจะเรียนรู้จนเกินพอดี

หยุดก่อนกำหนดเมื่อค่าความสูญเสียชุดตรวจสอบเพิ่มขึ้น เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. แบ่งชุดฝึก ชุดตรวจสอบ และชุดทดสอบ
  2. วงรอบยุคพร้อมการตรวจสอบ
  3. บันทึกและโหลดด้วย state_dict
  4. หยุดก่อนกำหนดเมื่อค่าความสูญเสียชุดตรวจสอบเพิ่มขึ้น
← กลับไปที่ Deep Learning Academy