Overfitting ปัญหายอดฮิตของ Machine Learning

Overfitting คืออะไร?

Overfitting เป็นอีกหนึ่งปัญหาพื้นฐานที่พบบ่อยมากในการพัฒนาอัลกอรึทิ่ม Machine Learning ทำให้เกิดเหตุการณ์ที่ โมเดลทำงาน (เช่น ทำนายข้อมูล) ได้ดีมากกับ training data (in-sample data) แต่เมื่อไหร่ก็ตามที่เรานำโมเดลนั้นมาทำงานกัน testing data (out-sample data) ซึ่งเป็นข้อมูลที่โมเดลไม่เคยเห็นมาก่อน โมเดลกลับทำงานแต่แย่มาก


Overfitting เกิดจากอะไร?
Overfitting โดยส่วนใหญ่เกิดเมื่อเราพยายามปรับ (Turning) โมเดล ให้สามารถทำนายข้อมูล Training ให้ได้ดีที่สุด ทำให้มีการใส่พารามิเตอร์เข้าไปจนเกินไป ทำให้โมเดลมีความซับซ้อนเกินและเกิดการ Overfitting กับชุดข้อมูล Training นั้นๆ เท่านั้น หรือ อาจจะเรียกอีกอย่างว่าโมเดลมี high variance


แก้ปัญหา Overfitting?
โดยปกติแล้ว การแก้ปัญหา Overfitting ในขั้นพื้นฐาน คือ การลดจำนวนพารามิเตอร์ที่สามารถปรับค่าได้ ให้เหลือน้อยที่สุด แม้ว่าจะทำให้การทำนายค่าลดลงไปก็ตาม ข้อควรระวังคือ ถ้าลดพารามิเตอร์ลงจนน้อยเกินไป ก็จะทำให้โมเดลไม่มีความซับซ้อนเพียงพอที่จะตรวจจับ Pattern (รูปแบบของข้อมูล) ได้เช่นกัน หรือ ที่เรียกว่า Underfitting หรือ อาจจะเรียกอีกอย่างว่า โมเดลมี high bias

ส่วนวิธีการทางคณิตศาสตร์ในการปรับโมเดล ป้องกันปัญหา Overfitting นั้นมีชื่อเรียกว่า “regularization” ซึ่งจะให้ผลลัพธ์คือปรับค่าน้ำหนักของพารามิเตอร์ของโมเดลให้เหมาะสม และ filter out noise ออกจากข้อมูล ทำให้สามารถสร้างตัวทำนายที่เหมาะสมได้


กราฟด้านล่าง แสดงตัวอย่างการทำงานของโมเดลที่ทำหน้าที่แบ่งข้อมูล Traning set ออกเป็นสองกลุ่ม

01.pngรูปที่ 1 – model underfitting เกิดจากโมเดลพยายามใช้เส้นตรง (จำนวนพารามิเตอร์ในสมการเส้นตรงมีน้อย) ในการแบ่งข้อมูล ทั้งๆ ที่รูปแบบของข้อมูล ไม่สามารถแบ่งได้ด้วยเส้นตรง จึงทำให้ผลลัพธ์ในการแบ่งข้อมูลทำได้แย่

รูปที่ 2 – model good compromise คือ โมเดลทำงานได้ในระดับที่เหมาะสม มีการใช้เส้นโค้งพาราโบราในการแบ่งกลุ่มข้อมูล ถึงแม้จะมีการแบ่งผิดอยู่บ้าง แต่ก็ไม่เกิดการ Over หรือ Under fitting

รูปที่ 3 – model overfitting เกิดจากโมเดลพยายามมากเกินไปที่จะแบ่งข้อมูลทดสอบให้ดี โดยการใช้เพิ่มพารามิเตอร์ เช่น degree of freedom มากเกินไป ทำให้โมเดลจะทำงานได้ดี เฉพาะกับข้อมูล training (in-sample) เท่านั้น แต่ถ้าทำการทดสอบกับข้อมูล testing (out-sample) โมเดลก็จะทำงานแย่มากในทันที

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s