โควิด เป็นแล้วหาย !Overfit เป็นแล้วไม่หาย !!!!
ใน Machine Learning นั้นจะมีสิ่งหนึ่ง
ที่เรานั้นไม่อยากจะให้เกิดเลยนั่นก็คือ !!
Overfitting
หรือการที่ Model จดจำสิ่งที่เรียนดีเกิน
ทำให้ Model เรานั้นไม่สามารถตอบคำถามได้ดี..
โดยปกติแล้วในการ Train Model
เราจะแบ่งข้อมูลออกเป็น 2 ส่วน หรืออาจจะ 3 ส่วน.
1. Training data หรือ data ที่เราใช้ในการ สอน Model และแน่นอนว่า Model เรานั้น เห็น Data ทั้งหมด !.
2. Validation data หรือ data ที่เราเก็บไว้ไม่ให้ Model เราเห็น เปรียบเสมือนข้อสอบไว้ทดสอบ Model เราว่าจริงๆแล้ว Model เราจะเก่งจริงอย่างที่หวังไหม.
3. Testing data หรือ data ที่เรากันไว้ทดสอบ Model อีกที เปรียบเสมือน Data ที่เราไม่เคยเจอที่ไหนมาก่อนเลย เหมือนเก็บไว้เสมือนว่าเป็น Data ที่เราจะเจอจริงๆหากเรานำ Model ไปใช้งานในชีวิตจริงๆนะ !..
ทีนี้ Model ทำไมเกิด Overfit !!
เราคำนวณความผิดพลาดของ Model ผ่านค่า Loss
ยิ่งเรา Train Model เราหลาย Epochs หรือหลายรอบ
Model เราก็ยิ่งต้องตอบคำถามได้ถูกต้องมากขึ้น
และเมื่อ Model เราตอบคำถามถูกต้องมากขึ้นมั
นก็ทำให้ค่า Loss ลดลง ถูกไหมครับ !..
คราวนี้ ลองมองดูนะครับว่าถ้าหากเรา
สอน สอน สอน Model หลายๆรอบ
เหมือนกับเราสอน เด็กให้จำในสิ่งที่เราต้องการให้จำ
“ข้อนี้ต้องตอบแบบนี้นะ”
“จำแบบนี้เท่านั้นนะ !”…
Model หรือเด็กๆที่เราสอนก็จะจำแต่คำตอบเดิม
โดยที่พวกเขาไม่มีความคิดคำตอบอื่นเลย
มั่นใจเกินร้อยแบบสุดๆ ว่าชั้นจะตอบแบบนี้ถูกแน่ๆ..
โอเคร !
พอถึงจุดนี้เราอาจจะมองว่า เห้ย !
Model เราตอบแม่นก็ดีสิ
มันก็ต้องทำนายแม่น มันต้องเก่งสิ
คือ …… !
จินตนาการว่าถ้า อจ ออกข้อสอบแบบใหม่เหมือน
Model เจอ Data ที่ไม่เคยเห็น
เช่น Validation หรือ Testing Data
จินตนาการ สีหน้านักเรียนในห้องเรียนออกใช่ไหมครับ
ใช่ครับ ! มันตอบมั่ว
และ Performance ก็โคตรกากเลย
และเมื่อเรามาดู Loss ของ Test Data
ก็พบว่า !!
เมื่อเรา Train Model ถึงจุดๆหนึ่ง
Loss ของ Test จึงเพิ่มขึ้น อย่างรวดเร็ว ..
คำถามต่อมา
เรามีวิธีป้องกันไหม ไม่ให้ Model เกิด Overfit
วิธีง่ายสุดคงเป็น อย่า Train มากเกินไป
ถูกแล้วครับ ฟังไม่ผิดหร่อก
แต่เรา Train ไปจนถึงจุดที่ เส้นของ Test เริ่มมีแนวโน้มเพิ่มขึ้น
เราก็เลือก Epochs นั้นมาใช้ต่อนั่นเอง..
Model ก็เหมือนกับเด็กที่เราสอนนั่นแหละ จริงๆนะเออ
หากเราสอนเค้าอย่างไร เค้าก็จะจำที่เราสอน
ดังนั้นความ Overfit เปรียบเสมือนสอนจำ
มากจนเกินไปจนไม่สามารถตอบคำถามแนวอื่นๆได้เลย…
และแน่นอนว่า Model หรือ เด็กที่ Overfit ไปแล้ว
แก้ยากครัช เหมือนคนเราเชื่ออะไรไปแล้วมากๆ
จำว่าสิ่งนี้ถูกๆๆๆๆ เชื่อสิ่งนี้มานับหลายๆปี
ไม่ว่าเจอสถานการณ์อะไรก็จำเอาสิ่งที่คิดว่าถูกมาตอบตลอด
นั่นแหละครับ
Overfit เป็นแล้วไม่หาย !..
Train ใหม่แมร่งงงง !!!
จบข่าว
ปูลู
ใน Model ที่มีความ Complexity สูงระดับหนึ่ง
สามารถเกิดปรากฏการณ์การลดลงครั้งที่ 2 Deep Double Descent
หรือยิ่ง Train ค่า Loss ยิ่งลดนะเอออ ทั้ง Train และ Test Data เลย
อ่านเพิ่มเติมได้ที่ Ref ด้านล่างเลย
Ref: อ่านเพิ่มเติม
วิธีป้องกัน Overfit ใน MachineLearning:
https://elitedatascience.com/overfitting-in-machine-learning?fbclid=IwAR03C-rtoO6A8Pe523SBD0Cs9xil23u3IISWiJvpa6z2EfFZk0M38cc8e78
ปรากฏการณ์การลดลงครั้งที่ 2 Deep Double Descent:
https://openai.com/blog/deep-double-descent/?fbclid=IwAR0oStTAQtHLZ3Xxi-KYmoDBHjofDhAq8pkF8S19se01RF9KYa55yOwoGrQ
#BigDataRPG #Overfit #MachineLearning