Overfitting vs Underfitting คำที่ว่าด้วยปัญหาจากความซับซ้อนของข้อมูล
Overfitting vs Underfitting คำที่ว่าด้วยปัญหาจากความซับซ้อนของข้อมูล
ในฐานะนักการตลาดสายดาต้าวัยเตาะแตะคนหนึ่ง การเข้ามาทำงานสายนี้ต้องประสบและพบเจอกับคำศัพท์แวดวงดาต้าใหม่ ๆ จำนวนมาก ทั้งเข้าใจก็ดี ไม่เข้าใจก็ดี อ่านแล้วก็งง ๆ เหมือนจะเข้าใจแต่ก็ไม่เข้าใจ นี่มันภาษาคนหรือภาษาเทพ!?!
โดยในบทความนี้เราจะพามารู้จักกับ Overfitting และ Underfitting ที่คนทำดาต้าต้องเจอแบบฉบับเข้าใจง่าย ย้ำว่าแบบง่ายแสนง่าย อธิบายแบบภาษาคนคุยกับคน คนแบบเรา ๆ ชาวเราวัยดิจิทัลเตาะแตะ
Overfitting คืออะไร?
Overfitting เป็นปัญหาที่เกิดขึ้นเมื่อสถานการณ์ที่เกิดขึ้นเมื่อแบบจำลองทางสถิติหรือ Machine learning ทำงานได้ดี มีความแม่นยำสูง ทำนายแม่นกับ training data แต่ทำงานได้แย่ ไม่แม่นยำ เมื่อเจอข้อมูลใหม่ ๆ หรือ ข้อมูลที่ไม่เคยเห็นมาก่อน (testing data)
เรียกง่าย ๆ ว่าโมเดลสามารถปรับตัวให้ตรงกับข้อมูลฝึกสอนได้ดีมากเกินไป จนทำให้ไม่สามารถทำนายข้อมูลใหม่ๆ ได้เท่าที่ควร
นั่นหมายความว่าโมเดลอาจจะทำนายข้อมูลฝึกสอนได้แม่นยำ แต่ไม่สามารถทำนายข้อมูลจริงที่ไม่เคยเห็นมาก่อนได้ ซึ่งสิ่งนี้อาจทำให้โมเดลไม่มีคุณค่าในการใช้งานจริง
เผื่อใครที่นึกภาพไม่ออก ขออธิบายแบบบ้าน ๆ อย่างนี้ค่ะ
- โมเดลหรือ Machine Learning = เด็ก
- Training data = ความรู้ที่เราต้องการสอน
เราพร่ำสอนเด็กมาเสมอ ป้อนข้อมูลใส่หัวว่า 1+1= 2 และ 2+2=4 มีข้อสอบ(ชุดข้อมูล) ให้ทำเป็นพัน ๆ ชุด เมื่อเราถามเด็กว่า 1+1 เท่ากับเท่าไหร่? เด็กจะตอบทันทีว่า 2 ซึ่งนี่คือความถูกต้องที่เราต้องการ และเด็กก็ตอบได้ถูก แต่เมื่อไหร่ที่เราถามเด็กว่า 1×1 เท่ากับเท่าไหร่ เด็กจะตอบไม่ได้ทันที อาจจะตอบได้แต่ตอบมั่วหรือไม่ถูก
เพราะเด็กไม่เคยถูกป้อนข้อมูลที่เป็นสมการที่ต้องใช้การคูณ (x) มาก่อน เราสอนเด็กแต่การบวก (+)
ทีนี้เรามาดูแบบเชิงวิชาการกันบ้างค่ะ จากรูปเราจะเห็นได้ว่า ข้อมูลถูกแบ่งออกเป็นสองส่วน คือ 1. สีเขียว 2. สีขาว ทั้งสองสีนี้เปรียบเสมือนข้อมูลสองกลุ่ม หรือสองชุด และเส้นแดง ๆ คือสมการที่เราสร้างขึ้นมาเพื่อทดสอบการทดงานของโมเดล
ซึ่งจากภาพทางด้านขวามือ เราจะเห็นได้ว่าสมกรเส้นแดงที่สร้างขึ้นมานั่นสามารถแบ่งข้อมูลได้ดีสุด ๆ ไม่มีพลาดเลย สามารถแยกข้อมูลทั้งสองกลุ่มออกจากกันได้อย่างชัดเจน เมื่อเทียบกับภาพทางด้านซ้าย เราจะเห็นได้ว่าเส้นแดงมีการแบ่งคาบกลุ่ม ทับกลุ่มบ้าง และนี่แหละค่ะคือสถานการณ์ที่เราเรียกว่า Overfitting คือทำงานได้ดีมากจนไร้ที่ติ แต่เมื่อไหร่ที่เอาสมการหรือข้อมูลชุดอื่นมาทดสอบจะไม่สามารถแบ่งได้ดีขนาดนี้นั่นเอง
สรุปแบบเข้าใจง่าย คือ แม่นจริงกับสิ่งที่เคย แต่แย่จริงกับสิ่งใหม่ ๆ
สาเหตุของ Overfitting
- ข้อมูลฝึกสอนน้อย: ถ้าคุณมีข้อมูลฝึกสอนจำนวนน้อยมากเทียบกับความซับซ้อนของโมเดล เช่น มีข้อมูลเพียงไม่กี่รายการเท่านั้น โมเดลอาจจะมีโอกาส Overfit ได้สูง เพราะมันจะพยายามจดจำข้อมูลฝึกสอนทุกอย่างแทบทุกสิ่ง
- ความซับซ้อนของโมเดล: โมเดลที่มีโครงสร้างซับซ้อนมากมีจำนวนพารามิเตอร์มาก มีโอกาสที่จะ Overfit ได้สูง เพราะมันสามารถใช้พารามิเตอร์มากมายในการเรียนรู้ข้อมูลฝึกสอน
- การฝึกสอนนานเกินไป: การฝึกสอนโมเดลเรียนรู้เชิงลึกนานเกินไปอาจทำให้โมเดลจดจำข้อมูลฝึกสอนได้อย่างละเอียดเกินไป และทำให้ Overfit ได้
วิธีการป้องกัน Overfitting
- เพิ่มข้อมูลฝึกสอน: การเพิ่มข้อมูลฝึกสอนช่วยลดโอกาสในการเกิด Overfitting โดยทำให้โมเดลมีโอกาสเรียนรู้และทำนายข้อมูลที่หลากหลายมากขึ้น
- ลดความซับซ้อนของโมเดล: ลดจำนวนพารามิเตอร์หรือความซับซ้อนของโมเดล เช่น ใช้โมเดลที่มีความลึกน้อยลงหรือใช้เทคนิค Regularization เพื่อลดการเรียนรู้ที่เกินไป
- ใช้ Cross-Validation: Cross-validation เป็นเทคนิคที่ช่วยวัดประสิทธิภาพของโมเดลอย่างถูกต้อง และช่วยในการเลือกพารามิเตอร์ที่เหมาะสม
- เลือกข้อมูลที่มีคุณค่า: การเลือกข้อมูลที่มีคุณค่าและเกี่ยวข้องกับปัญหาที่เราต้องการทำนายช่วยลดโอกาสในการ Overfitting
Underfitting คืออะไร?
Underfitting เป็นปัญหาที่เกิดขึ้นเมื่อโมเดลไม่สามารถเรียนรู้ข้อมูลฝึกสอนในระดับพอเพียง ผลลัพธ์คือโมเดลทำนายข้อมูลฝึกสอนและข้อมูลที่ไม่เคยเห็นมาก่อนได้ด้วยความแม่นยำที่ต่ำ นั่นหมายความว่าโมเดลไม่สามารถทำนายข้อมูลจริงในสถานการณ์จริงได้อย่างเหมาะสม
กล่าวคือ เป็นสถานการณ์ที่เกิดขึ้นเมื่อแบบจำลองทางสถิติหรือ Machine learning ทำงานได้แย่ ทำนาย หาความสัมพันธ์ของชุดข้อมูลไม่ถูกต้อง ไม่ใกล้เคียงกับค่าที่เฉลยและไม่ตรงกับคำตอบที่แท้จริง
เผื่อใครที่นึกภาพไม่ออก ขออธิบายแบบบ้าน ๆ เหมือนกับตัวอย่างของ Overfitting อย่างนี้ค่ะ
- โมเดลหรือ Machine Learning = เด็ก
- Training data = ความรู้ที่เราต้องการสอน
ในกรณีนี้ คือเราไม่ได้สอนเด็ก หรือสอนแต่สอนแบบผิด ๆ ถูก ๆ ข้อสอบที่ให้ทำก็น้อย สอบแบบปล่อยปะละเลย เหมือนบอกนะ ว่า 1+1=2 แค่บอกแล้วคือ จบ ไม่ได้ต่อยอดหรือทำการทดสอบย้ำ ๆ เพื่อให้เด็กจดจำ พอถามว่า 1+1 เท่ากับเท่าไหร่ เด็กจะงง ไม่สามารถตอบได้ หรือตอบได้ก็ตอบแค่มั่ว ๆ ยิ่งเราไปถามว่า 1×1 เท่ากับอะไร เด็กจะอ๊องไปทันที
เรามาดูเชิงวิชาการกันบ้างกันค่ะ ชุดข้อมูลสองกลุ่ม 1. เขียว 2. ขาว และเส้นแดงคือสมการที่สร้างขึ้นมาเพื่อทดสอบ เราจะเห็นได้ว่ารูปของสถานการณ์Underfitting นั่นไม่สามารถแบ่งกลุ่มข้อมูลได้เลย แบ่งทับกลุ่มข้อมูลไปหมด มั่วซั่ว ซึ่งจะแตกต่างจาก Overfitting ที่สามารถแบ่งได้ดี ชัดเจน เป็นระเบียบ
ทั้งนี้ทั้งนั้น ไม่ว่าจะเกิด OverfittingหรือUnderfitting สิ่งที่นักดาต้าต้องทำคือการพยายามทำให้โมเดลหรือ Machine Learning เป็นให้ได้อย่างรูปตรงกลางค่ะ เป็นสภาวะที่ไม่เพี้ยนจนเกินไป กำลังพอดี ใช้งานได้จริง
สรุปแบบเข้าใจง่าย คือ ล้มเหลวทางความแม่นยำและหาความสัมพันธ์ของชุดข้อมูลได้ไม่ดี
สาเหตุของ Underfitting
- ความซับซ้อนของโมเดลไม่เพียงพอ: โมเดลที่มีความซับซ้อนน้อยเกินไปอาจไม่สามารถจับคุณลักษณะที่ซับซ้อนของข้อมูลได้ ซึ่งทำให้เกิด Underfitting
- ข้อมูลฝึกสอนไม่เพียงพอ: การใช้ข้อมูลฝึกสอนจำนวนน้อยมาก เทียบกับความซับซ้อนของโมเดล อาจทำให้โมเดลไม่สามารถเรียนรู้และจับคุณลักษณะของข้อมูลได้อย่างเพียงพอ
- การฝึกสอนเกินไป: การฝึกสอนโมเดลนานเกินไปอาจทำให้โมเดลทำนายข้อมูลฝึกสอนได้อย่างแม่นยำ แต่ไม่สามารถทำนายข้อมูลใหม่ได้อย่างถูกต้อง นี่เป็นสัญญาณของ Underfitting
วิธีการแก้ไข Underfitting
- เพิ่มความซับซ้อนของโมเดล: หากโมเดลมีความซับซ้อนน้อยเกินไป คุณสามารถเพิ่มความซับซ้อนของโมเดลเพื่อให้มีความสามารถในการจับคุณลักษณะที่ซับซ้อนของข้อมูลได้ดีขึ้น นี้อาจรวมถึงการเพิ่มจำนวนชั้นในโครงข่ายประสาทเทียบกับการเพิ่มจำนวนโหนดในแต่ละชั้น
- เพิ่มข้อมูลฝึกสอน: การเพิ่มข้อมูลฝึกสอนช่วยเพิ่มความแม่นยำและความสามารถในการจับคุณลักษณะของโมเดล
- ลดการฝึกสอน: หากคุณมีการฝึกสอนเกินไป ลดจำนวนรอบการฝึกสอนหรือใช้เทคนิคการตั้งค่าพารามิเตอร์เพื่อลดการเรียนรู้เชิงลึก
- เลือกข้อมูลที่ดี: การเลือกข้อมูลที่สอดคล้องกับปัญหาและมีคุณค่าจริง ๆ ช่วยลดความน้อยในการเกิด Underfitting
สรุป Overfitting vs Underfitting คำที่ว่าด้วยปัญหาจากความซับซ้อนของข้อมูล
จะเห็นได้เลยว่า สถานการณ์ของทั้งสองคำนี้ OverfittingและUnderfitting นั้นเป็นสถานการณ์และปัญหาที่เราเลี่ยงไม่ได้เมื่อต้องทำงานกับข้อมูล และแต่ละสถานการณ์ก็มีที่มาที่ไป การแก้ไขปัญหาที่แตกต่างกันอย่างสิ้นเชิง และหากในสรุปง่าย ๆ ทิ้งทวนแบบภาษาบ้าน ๆ
เหมือนเด็กที่เข้าเรียน (Overfitting) กับเด็กที่ขาดเรียน (Underfitting ) ที่เรียนอยู่ในห้องสี่เหลี่ยมปิดตาย เนื้อหาเหมือนกันแต่การรับรู้ข้อมูลที่ถูกป้อนเข้าไปไม่เหมือนกัน ประสิทธิภาพในการทำงานและการจัดการให้เด็กสองประเภทนี้เข้ารูปเข้ารอยจึงแตกต่างกันไปนั่นเอง
หวังว่าตัวอย่างเหล่านี้จะเป็นประโยชน์และสร้างไอเดียใหม่ ๆ ต่อผู้อ่านทุกคนนะคะ แล้วพบกันใหม่บทความหน้าค่ะ
สำหรับใครที่อยากอ่านบทความเกี่ยวกับการตลาดเพิ่มเติม สามารถติดตามได้จาก เพจการตลาดวันละตอน รวมไปถึงเว็บไซต์ Twitter Instagram YouTube และ Blockdit ของการตลาดวันละตอนด้วยนะคะ
Source: https://www.geeksforgeeks.org/underfitting-and-overfitting-in-machine-learning/
Source: https://machinelearningmastery.com/overfitting-and-underfitting-with-machine-learning-algorithms/