โอเวอร์ฟิต

Overfitting หมายถึงการสร้างโมเดลที่ตรงกับ (จดจํา) ชุดข้อมูลการฝึกอย่างใกล้ชิดมากจนโมเดลไม่สามารถคาดการณ์ข้อมูลใหม่ได้อย่างถูกต้อง โมเดลที่ Overfit นั้นคล้ายกับสิ่งประดิษฐ์ที่ทํางานได้ดีในห้องทดลอง แต่ไร้ประโยชน์ในโลกแห่งความเป็นจริง

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

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

 

วาดรูปทรงต่างๆ ในใจ ไม่ว่าจะเป็นเส้น โค้ง รูปไข่ หรืออะไรก็ได้ เพื่อแยกต้นไม้ที่แข็งแรงออกจากต้นไม้ที่ป่วย จากนั้นขยายบรรทัดถัดไปเพื่อตรวจสอบการแยกที่เป็นไปได้รายการหนึ่ง

รูปร่างที่ซับซ้อนที่แสดงในรูปที่ 12 จัดหมวดหมู่ต้นไม้ได้ทั้งหมดยกเว้น 2 ต้น หากเราคิดว่ารูปร่างเป็นโมเดล นี่เป็นโมเดลที่ยอดเยี่ยม

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

รูปที่ 13 ต้นไม้ที่แข็งแรงและเป็นโรคชุดใหม่วางซ้อนกันบนรูปแบบที่แสดงในรูปที่ 12 โมเดลจัดหมวดหมู่ต้นไม้หลายต้นไม่ถูกต้อง
รูปที่ 13 ชุดทดสอบ: โมเดลที่ซับซ้อนสำหรับการแยกแยะต้นไม้ที่ป่วยออกจากต้นไม้ที่แข็งแรง

 

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

การพอดี การพอดีมากเกินไป และการพอดีไม่เพียงพอ

โมเดลต้องทําการคาดการณ์ที่ดีกับข้อมูลใหม่ กล่าวคือ คุณกําลังพยายามสร้างโมเดลที่ "พอดี" กับข้อมูลใหม่

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

รูปที่ 14 ผังพิกัดคาร์ทีเซียน แกน X มีป้ายกำกับว่า "คุณภาพของการคาดการณ์ในชุดข้อมูลการฝึก" แกน Y มีป้ายกำกับว่า "คุณภาพของการคาดการณ์จากข้อมูลจริง" เส้นโค้งเริ่มต้นที่จุดเริ่มต้นและค่อยๆ เพิ่มขึ้น แต่จากนั้นก็ลดลงอย่างรวดเร็ว ส่วนด้านซ้ายล่างของเส้นโค้ง (การคาดการณ์คุณภาพต่ำในข้อมูลจริงและการคาดการณ์คุณภาพต่ำในชุดข้อมูลการฝึก) มีป้ายกำกับว่า "โมเดลที่ปรับให้พอดีไม่เพียงพอ" ส่วนขวาล่างของเส้นโค้ง (การคาดการณ์คุณภาพต่ำสำหรับข้อมูลในชีวิตจริง แต่การคาดการณ์คุณภาพสูงสำหรับชุดข้อมูลการฝึก) มีป้ายกำกับว่า "โมเดลที่ปรับให้พอดีมากเกินไป" จุดสูงสุดของเส้นโค้ง (การคาดการณ์ที่มีคุณภาพสูงจากข้อมูลจริงและการคาดการณ์ที่มีคุณภาพปานกลางจากชุดข้อมูลการฝึก) มีป้ายกำกับว่า "โมเดลที่พอดี"
รูปที่ 14 โมเดลที่ Underfit, Fit และ Overfit

 

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

การตรวจหา Overfitting

เส้นโค้งต่อไปนี้จะช่วยคุณตรวจหาการประมาณที่มากเกินไป

  • เส้นโค้งการสูญเสีย
  • เส้นโค้งทั่วไป

เส้นโค้งความสูญเสียจะแสดงการสูญเสียของโมเดลเทียบกับจํานวนรอบการฝึก กราฟที่แสดงเส้นโค้งการสูญเสียตั้งแต่ 2 เส้นขึ้นไปเรียกว่าเส้นโค้งการทั่วไป เส้นโค้งทั่วไปต่อไปนี้แสดงเส้นโค้งการสูญเสีย 2 เส้น

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

 

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

ในทางตรงกันข้าม เส้นโค้งทั่วไปของโมเดลที่พอดีจะแสดงเส้นโค้ง Loss 2 เส้นที่มีรูปร่างคล้ายกัน

อะไรเป็นสาเหตุของ Overfitting

พูดอย่างกว้างๆ ก็คือ การที่โมเดลเรียนรู้มากเกินไปอาจเกิดจากปัญหาอย่างใดอย่างหนึ่งหรือทั้ง 2 อย่างต่อไปนี้

  • ชุดการฝึกไม่ได้แสดงถึงข้อมูลในชีวิตจริงอย่างเพียงพอ (หรือชุดตรวจสอบหรือชุดทดสอบ)
  • โมเดลซับซ้อนเกินไป

เงื่อนไขทั่วไป

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

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

สำรวจเงื่อนไขก่อนหน้านี้ผ่านแบบฝึกหัดต่อไปนี้

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

ลองพิจารณาการแบ่งพาร์ติชันชุดข้อมูลต่อไปนี้
แถบแนวนอนที่แบ่งออกเป็น 3 ส่วน โดย 70% ของแถบเป็นชุดการฝึก 15% เป็นชุดตรวจสอบ และ 15% เป็นชุดทดสอบ
คุณควรทําอย่างไรเพื่อให้แน่ใจว่าตัวอย่างในชุดการฝึกมีสถิติการแจกแจงที่คล้ายกับตัวอย่างในชุดตรวจสอบและชุดทดสอบ
สับเปลี่ยนตัวอย่างในชุดข้อมูลอย่างละเอียดก่อนที่จะแบ่งพาร์ติชัน
ได้ การสับตัวอย่างที่ดีจะทำให้กลุ่มตัวอย่างมีแนวโน้มที่จะคล้ายกันทางสถิติมากขึ้น
จัดเรียงตัวอย่างจากเก่าสุดไปใหม่สุด
หากตัวอย่างในชุดข้อมูลไม่คงที่ การเรียงลําดับจะทำให้พาร์ติชันน้อยลงคล้ายกัน
ไม่ดำเนินการใดๆ เมื่อมีตัวอย่างมากพอ กฎของค่าเฉลี่ยจะทําให้มั่นใจได้ว่าการแจกแจงจะคล้ายกันทางสถิติ
แต่ขออภัยที่ไม่ใช่เช่นนั้น ตัวอย่างในส่วนต่างๆ ของชุดข้อมูลอาจแตกต่างจากตัวอย่างในส่วนอื่นๆ
บริการสตรีมมิงกำลังพัฒนาโมเดลเพื่อคาดการณ์ความนิยมของรายการทีวีใหม่ที่อาจเกิดขึ้นในช่วง 3 ปีข้างหน้า บริการสตรีมมิงดังกล่าววางแผนที่จะฝึกโมเดลด้วยชุดข้อมูลที่มีตัวอย่างหลายร้อยล้านรายการในช่วง 10 ปีที่ผ่านมา รูปแบบนี้จะมีปัญหาไหม
อาจจะ รสนิยมของผู้ชมเปลี่ยนแปลงไปในลักษณะที่พฤติกรรมที่ผ่านมาไม่สามารถคาดการณ์ได้
ได้ รสนิยมของผู้ชมเปลี่ยนแปลงอยู่เสมอ ข้อมูลเหล่านี้เปลี่ยนแปลงอยู่ตลอดเวลา
ไม่ได้ ชุดข้อมูลมีขนาดใหญ่พอที่จะทําการคาดการณ์ที่ดี
แต่รสนิยมของผู้ชมนั้นเปลี่ยนแปลงอยู่เสมอ
อาจจะไม่ รสนิยมของผู้ชมมีการเปลี่ยนแปลงเป็นวงจรที่คาดเดาได้ ข้อมูล 10 ปีจะช่วยให้โมเดลคาดการณ์แนวโน้มในอนาคตได้ดี
แม้ว่าบางแง่มุมของความบันเทิงจะมีลักษณะเป็นวงจร แต่โมเดลที่ฝึกจากประวัติความบันเทิงที่ผ่านมาก็แทบจะมีปัญหาในการคาดการณ์เกี่ยวกับอีก 2-3 ปีข้างหน้า
โมเดลนี้มีจุดประสงค์เพื่อคาดการณ์เวลาที่ผู้คนใช้ในการเดิน 1 ไมล์ โดยอิงตามข้อมูลสภาพอากาศ (อุณหภูมิ จุดน้ำค้าง และปริมาณน้ำฝน) ที่รวบรวมในช่วง 1 ปีในเมืองที่มีสภาพอากาศแตกต่างกันอย่างมากในแต่ละฤดูกาล คุณสร้างและทดสอบโมเดลจากชุดข้อมูลนี้ได้ไหม แม้ว่าค่าการอ่านสภาพอากาศจะเปลี่ยนแปลงอย่างมากตามฤดูกาล
ใช่
ได้ คุณสามารถสร้างและทดสอบโมเดลจากชุดข้อมูลนี้ได้ คุณเพียงแค่ต้องตรวจสอบว่าข้อมูลได้รับการแบ่งพาร์ติชันอย่างเท่าๆ กัน เพื่อให้ข้อมูลจากทั้ง 4 ฤดูกาลกระจายไปยังพาร์ติชันต่างๆ อย่างเท่าๆ กัน
ไม่
สมมติว่าชุดข้อมูลนี้มีตัวอย่างอุณหภูมิ จุดน้ำค้าง และปริมาณน้ำฝนเพียงพอ คุณก็สามารถสร้างและทดสอบโมเดลจากชุดข้อมูลนี้ได้ คุณเพียงแค่ต้องตรวจสอบว่าข้อมูลได้รับการแบ่งพาร์ติชันอย่างเท่าๆ กัน เพื่อให้ระบบกระจายข้อมูลจากทั้ง 4 ฤดูกาลไปยังพาร์ติชันต่างๆ อย่างเท่าๆ กัน

การฝึกแบบชาเลนจ์

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

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