Overfitting vs. Underfitting อธิบายด้วยตัวอย่าง ฉบับเข้าใจง่ายที่สุดในโลก

การเกิด Overfitting หรือ Underfitting เป็นปัญหาที่มองข้ามไม่ได้เลยสำหรับการใช้ Machine Learning (ML)ในการแก้ปัญหาต่างๆ การพัฒนาโมเดล ML ทุกครั้ง ผู้พัฒนาจะต้องคำนึงถึงการ Overfitting และ Underfitting เสมอ บทความนี้ เราจะมาดูกันว่า เจ้า Overfitting และ Underfitting นี้คืออะไร และ จะมีวิธีใดบ้างในการจัดการกับมัน

อะไรคือ Overfitting?

บทความนี้เราจะมาทำความเข้าใจ Overfitting ด้วยตัวอย่างกันค่ะ ลองนึกตามนะคะ

มีชาวต่างชาติชื่อนายจอนนี่ ต้องการเรียนภาษาไทย โดยไม่เคยเรียนมาก่อนหน้านี้เลย แต่ดันเคยได้ยินว่ามีคนไทยคนหนึ่ง ชื่อว่าคุณสุนทรภู่ เป็นนักเขียนชาวไทยที่ยิ่งใหญ่ที่สุด มีผลงานออกมานับไม่ถ้วน ได้รับการยกย่องด้านการใช้ภาษาไทยเป็นอย่างมากในประเทศไทย ถ้าต้องการเชี่ยวชาญภาษาไทยให้ได้แบบไทยแท้ๆ ก็ต้องศึกษาผลงานของคุณสุนทรภู่นี่แหละ

จอนนี่จึงตัดสินใจเลยว่า 1 ปีจากนี้ เขาจะศึกษาผลงานของคุณสุนทรภู่ แบบ Non-stop เลย เรียกว่าตื่นนอนก็ขังตัวเองอยู่ในห้องสมุด และอ่านๆๆๆๆๆๆ จำๆๆๆๆๆๆ เฉพาะงานเขียนของคุณสุนทรภู่เท่านั้น หนึ่งปีผ่านไป จอนนี่มั่นใจแล้วว่า เค้ารู้จักงานเขียนของคุณสุนทรภู่ มากกว่า 99% จำได้หมดแทบทุกคำ พร้อมแล้วสำหรับการออกไปใช้ชีวิตในเมืองไทย เมืองแห่งรอยยิ้มเมืองนี้

Photo by Toni Koraza on Unsplash

จอนนี่ พบสาวไทยคนแรก ตื่นเต้นรีบเข้าไปทักทาย “สวัสดี อันตัวเรานั้นชื่อ จอนนี่ ตัวท่านมีชื่อเสียงเรียงนามว่ากระไร ขอจงช่วงแถลงไข” สาวไทยตกใจ รีบสาวเท้าเดินหนี จอนนี่ งง นิดหน่อย แต่ไม่เป็นไร เธอคนนั้นคงรีบ

จอนนี่ตัดสินใจเดินต่อไป เจอชายหนุ่มคนหนึ่งท่าทางเหมือนกำลังมองหาใครอยู่ จอนนี้เดินเลี้ยวผ่านไปตรงมุมตึก พอเด็กน้อยคนหนึ่งกำหลังหลงทาง จอนนี่รีบปรี่เข้าไปช่วย ทักเด็กน้อยทันทีว่า “เจ้าเป็นอันใด พรากจากบิดาก็มิต้องหมองใจไป … ” เด็กน้อย งง มาก ร้องจ้า จอนนี่จึงรีบเดินจากไป จอนนี่เริ่มใจเสีย ไม่อยากจะพูดภาษาไทยอีกแล้ว มันต้องมีอะไรผิดพลาดแน่ๆ เลย จอนนี่เริ่มขาดความมั่นใจ

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

จอนนี่ เพิ่งรู้ตัวว่าเข้าพลาดอย่างแรง คือ เขา Overfitting ข้อมูลสอน หรือ ภาษาไทยของคุณสุนทรภู่มากเกินไปนั่นเอง ทำให้เมื่อพบเจอคนไทยจึงไม่สามารถสื่อสารได้อย่างมีประสิทธิภาพ

ในทาง Machine Learning หรือ Data Science การ Overfitting เกิดขึ้นได้เมื่อ โมเดลมีค่า Variance สูง และ มีค่า Bias ที่ต่ำ บนข้อมูลสอน (Training Set) ทำให้โมเดลไม่สามารถปรับตัวให้เป็นกลาง (พอที่จะปรับเข้ากับข้อมูลที่จะเข้ามาใหม่ในอนาคตได้ พูดแบบง่ายๆ ก็คือ ในการพยายามจะเรียนภาษาไทยนั้น จอนนี่พยายามจะพัฒนาโมเดลที่จะใช้ในการสื่อสารภาษาไทย โดยข้อมูลสอนคือข้อมูลรูปแบบการสื่อสารในอดีต และ การใช้สำนวนโวหาร แต่เมื่อมีการพยายามใช้ภาษาไทยจริงๆ ข้อมูลสอน กลับกลายเป็นภาษาไทยในยุคปัจจุบัน ดังนั้น โมเดลที่จอนนี่พยายามสร้างนั้น ถือว่าไม่ประสบความสำเร็จในการ Generalization หรือ การทำให้เป็นลักษณะทั่วไปเพียงพอที่จะนำมาใช้ในการสื่อสารในชิวิตจริงได้ นั่นเอง

อะไรคือ Variance และ Bias ในการพัฒนาโมเดล ML

Variance?

คือ ค่าที่บอกว่าโมเดลมีการเปลี่ยนแปลงมากแค่ไหน เมื่อข้อมูลสอน (Training Set) มีการเปลี่ยนแปลง ในกรณีของนายจอนนี่ เนื่องจากวิธีการที่เขาใช้ในการเรียนภาษาไทย ก็วิธีการท่องจำงานเขียนของท่านสุนทรภู่ ทำให้โมเดลภาษาไทยของนายจอนนี่ มีค่า Variance ที่สูงมาก หรือ พูดอีกอย่างได้ว่า ค่าความถูกต้องของโมเดล ขึ้นอยู่กับชุดข้อมูลงานเขียนของท่านสุนทรภู่มากๆ ทำให้เมื่อไหร่ก็ตามที่ต้องทำการกับภาษาไทยในรูปแบบอื่นๆ โมเดลจึงล้มเหลวอย่างสิ้นเชิง เปรียบง่ายๆ ก็เหมือนกันกับเด็กเล็กที่พยายามจำข้อสอบมาสอบนั่นเอง เมื่อข้อสอบไม่ตรงกับที่จะมา ก็ย่อมไม่สามารถจะทำข้อสอบได้

Photo by The Creative Exchange on Unsplash

Bias?

ค่า Bias เปรียบเสมือนส่วนกลับของค่า Variance เป็นค่าที่บอกความแข็งแรงของข้อสรุปที่สร้างขึ้นจากข้อมูลสอน ในที่นี้ การเรียนภาษาอังกฤษของนายจอนนี่ ไม่มีการสร้างข้อสรุปเบื้องต้นจากข้อมูล เนื่องจากเขา “เชื่อมั่น” (Trust) ในท่านสุนทรภู่เอามากๆ ว่าสามารถสอนเขาได้ทุกอย่างเกี่ยวกับภาษาไทย นั่นหมายความว่า เขามีค่า Bias ที่ตำ่ ซึ่งความเป็นจริงๆ แล้ว ในทุกๆ เรื่อง เราไม่ควรจะเชื่ออย่างหมดใจว่าข้อมูลชุดใดชุดหนึ่งจะสามารถบอกความจริงได้ทุกอย่าง เราควรจะมี Bias ในความเชื่อนั้นไว้บ้าง เพื่อเปิดช่องว่างเผื่อสำหรับความผันผวนที่อาจจะเกิดขึ้นได้

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

ในภาษาง่ายๆ อาจกล่าวอย่างสรุปเกี่ยวกับ Variance และ Bias ได้ว่า  ค่า Bias เกี่ยวข้องการว่าเราจะ ignore หรือ ปฏิเสธการรับรู้ข้อมูลสอนมากเพียงใด ในทางกลับกัน ค่า Variance จะบอกว่า โมเดลที่สร้างขึ้นมีความขึ้นอยู่กับ หรือ Dependency กับข้อมูลสอนมากเพียงใด 

ดังนั้น ในการพัฒนาโมเดลที่ดี จะต้องมีการหาจุดสมดุล (Tradeoff) ระหว่าง Variance และ Bias และจุดนี้นับเป็นส่วนประกอบที่สำคัญมากของโมเดล ML ทุกตัว ไม่ว่าจะเป็นโมเดลแบบง่าย (Simple) หรือ โมเดลแบบที่มีความซับซ้อน (Complex) ก็ตาม นักวิจัยจะต้องให้ความสำคัญกับค่านี้เสมอ

อะไรคือ Underfitting?

Underfitting ก็คือส่วนกลับของ Overfitting นั้นเอง ซึ่งจะเกิดขึ้นเมื่อโมเดลมีค่า Variance ต่ำ และ ค่า Bias ที่สูง ในความเป็นก็คือ แทนที่จะพยายามที่เรียนจำข้อมูลอย่างเต็มที่เหมือน Overfitting โมเดลกลับปฏิเสธการเรียนไปในหลายจุดที่สำคัญ เหมือนเด็กที่ขาดเรียน และส่งผลให้ไม่สามารถหาความสัมพันธ์ภายในข้อมูลได้ หรือ สอบตกไปในที่สุดนั้นเอง

ลองมาดู Underfitting ในกรณีของนายจอนนี่กันดีกว่าค่ะ ถ้าก่อนจะเริ่มเรียน นายจอนนี่เริ่มคิดถึงความผิดพลาดครั้งที่แล้ว จึงเปลี่ยนมาเรียนภาษาไทยจากรายการทีวีแทน โดยเลือกรายการทีวีที่เป็นที่รู้จัก เอาเป็นเขาเลือกดูรายการ “เป็นต่อ” ก็แล้วกันนะคะรอบนี้ และตอนนี้เค้าก็ต้องใจจะไม่ทำผิดซ้ำสองอีกแล้ว จึงเลือกเรียนภาษาไทย เฉพาะประโยคที่ขึ้นต้น ว่า ฉัน เธอ เขา หรือ เรา เท่านั้น เพราะเชื่อว่าเป็นคำที่ใช้กันบ่อยในภาษาไทย น่าจะเป็นประโยชน์มากกว่าคำอื่นๆ ดังนั้น เมื่อตัวละครพูดประโยคอื่นๆ นายจอนนี่ปิดหู ปิดตา ไม่ฟังเลย ไปหาเบียร์มานั่งจิบ รอฟังเฉพาะประโยคที่เค้าเลือกไว้แล้วเท่านั้น!

นั่งดูไปประมาณ 10 ตอน นายจอนนี่หมายมั่นปั้นมือว่า รอบนี้ไม่พลาดแน่ ออกไปถนนข้าวสาร เริ่มคุยกับผู้คนเลย แน่นอน ผู้เองก็คงนึกออกกันใช่มั้ยคะ ว่าผลลัพธ์จะพังพินาศแค่ไหน แน่นอน นายจอนนี่อาจจะเริ่มต้นทักทายง่ายๆ กับผู้คนได้ แต่ก็ไม่มีทางเกิน 3 ประโยค และ ไม่สามารถสื่อสารในรายละเอียดเรื่องอื่นๆ เช่น ดิน ฟ้า อากาศ อาหาร หรือ การเมืองได้อย่างแน่นอน! เพราะรอบนี้นายจอนนี่ของเรา มี Bias ที่สูง จนไม่ยอมใส่ใจกับการเรียนที่สำคัญๆ ในหลายๆ อย่าง ในขณะที่มีค่า Variance ที่ต่ำ เนื่องจากภาษาไทยของนายจอนนี่ ก็ไม่ได้ผูกติดอยู่กับละครเป็นต่อมาก เพียงแค่ได้ใช้ส่วนหนึ่งของประโยคในละครเท่านั้น

สรุป

กล่าวโดยสรุป ในทางการพัฒนาโมเดล ML นั้น เป็นไปได้ 3 รูปแบบ ได้แก่

Underfitted (รูปที่ 1) เกิดขึ้นเมื่อโมเดล เรียนรู้ข้อมูลสอนไม่เพียงพอ จนไม่สามารถทำงานได้อย่างมีประสิทธิภาพ ซึ่งจะเห็นได้จาก เส้นประที่สร้างๆ ขึ้นในรูป ไม่สามารถ fit พอดีกับข้อมูลเลย เส้นประ หรือ เส้นทำนายของโมเดล มีลักษณะเป็นเส้นตรง ในขณะนี้ ตัวข้อมูลอยู่ในลักษณะระฆังคว่ำ

Overfitted (รูปที่ 3) เกิดขึ้นเมื่อโมเดลพยายามเรียนรู้ หรือ จดจำข้อมูลสอนมากจนเกินไป โดยจะเห็นได้จากในรูป ว่าเส้นประ หรือ เส้นทำนาย พยายามมากเกินไป ที่จะ fit พอดีกับข้อมูลทุกจุด ทำให้โมเดลนี้ไม่ Generalize เพียงพอ และ ทำให้ไม่สามารถทำงานได้อย่างมีประสิทธิภาพ เมื่อมีข้อมูลใหม่ที่ไม่เคยเห็น และ มีความคลาดเคลื่อนจากข้อมูลเดิมเข้ามา

Good fit/ Robust (รูปที่ 3) เป็นจุดสมดุลระหว่าง Overfitting และ Underfitting เป็นการเรียนรู้ที่พอดีๆ โมเดลมีความสามารถในการ fit จุดข้อมูลได้บางจุด แต่ก็วางตัวอยู่ในแนวโน้มเดียวกับชุดข้อมูล ในขณะเดียวกันก็ไม่พยายามที่จะรู้จำชุดข้อมูลทุกจุดมากเกินไป ทำให้เมื่อมีข้อมูลใหม่ๆ เข้ามา เราสามารถเชื่อได้ว่า โมเดลดีจะยังคงทำงานได้อย่างมีประสิทธิภาพ

จบกันไปแล้วนะคะ สำหรับคำอธิบายฉบับเข้าใจง่ายๆ ของคำเหตุการณ์ Overfitting และ Underfitting ที่อาจจะเกิดขึ้นได้ในการพัฒนาโมเดล ML ที่ผู้พัฒนาโมเดลทุกคนต้องให้ความใส่ใจ เพราะจะส่งผลอย่างใหญ่หลวงกับประสิทธิภาพของโมเดลของเราในการทำงานจริง

เมื่อทราบกันแล้วว่า Overfitting และ Underfitting คืออะไร ในบทความต่อไป เราจะมาดูกันว่า มีวิธีการอะไรบ้างในการลดโอกาสการเกิด Overfitting และ Underfitting และ เราจะแก้ไขอย่างไรเมื่อมันเกิดขึ้น เพื่อให้ได้มาซึ่งโมเดลที่มีความพอดี และ มีประสิทธิภาพค่ะ

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