Bias and Variance คืออะไร?
ในการฝึกสอนโมเดล Machine Learning ใด ๆ ก็ตามมี Errors หลัก ๆ อยู่ 2 ประเภทคือ ค่าความผิดพลาดที่ไม่สามารถลดได้ (Irreducible Errors) ซึ่งจะต้องพบเจอเป็นประจำในการทำโมเดลอันเนื่องมาจากตัวแปรที่ไม่รู้จักหรือค่าที่ไม่สามารถลดได้อีก กับค่าความผิดพลาดที่สามารถลดได้ (Reducible Errors) อันเกิดจาก Output Function ของโมเดลนั้นไม่สอดคล้องกับ Output Function แบบที่เราต้องการ ซึ่ง Bias และ Variance จัดอยู่ในกลุ่มที่สามารถลดได้
Bias ใน Machine Learning คืออะไร?
Bias คือความแตกต่างระหว่างค่าที่โมเดลทำนายได้กับค่าที่เป็นข้อมูลจริง ๆ (เฉลย) Bias เป็นสมมุติฐานอย่างง่ายที่โมเดลสร้างขึ้นจากการรู้จำรูปแบบของฟีเจอร์ที่เจอตอนเทรนเพื่อให้สามารถทำนายค่าจากข้อมูลใหม่ ๆ ได้ เมื่อ Bias มีค่าสูงจนเกินไปจะทำให้สมมุติฐานที่โมเดลของเรามีนั้นไม่สามารถใช้ได้ เพราะโมเดลไม่ได้จดจำรูปแบบใด ๆ ของฟีเจอร์ได้เลยในขณะเทรน ดังนั้นจึงทำให้ตอนทดสอบย่อมมีผลแย่ไปด้วยเช่นกัน ซึ่งปัญหาลักษณะนี้เราเรียกว่า Underfitting
Variance ใน Machine Learning คืออะไร?
Variance นั้นเป็นเหมือนขั้วตรงข้ามของ Bias หรือก็คือการที่ให้โมเดลเจอกับข้อมูลมากพอในขณะเทรนจนกระทั่งโมเดลจดจำรูปแบบของฟีเจอร์ตอนที่เทรนได้ แต่ปัญหาอยู่ที่ว่าเมื่อเรียนรู้รูปแบบเดียวขณะเทรนมากเกินไป ทำให้โมเดลทำงานได้ดีแค่กับเฉพาะข้อมูลที่เคยเห็นแต่ไม่สามารถรับมือกับข้อมูลที่ไม่เคยเห็นได้เพราะว่านอกจากมันรู้จำรูปแบบของฟีเจอร์แล้วมันจะไปจำฟีเจอร์ที่ไม่มีความสำคัญอะไรหรือสิ่งที่เป็น Noise ได้ (แต่ถ้าเคยเจอน้อยเกินขณะฝึกสอนก็จะเกิดปัญหาแบบ Bias อีก) ส่งผลให้ขณะที่เทรนนั้นโมเดลให้ผลลัพธ์ที่ดี แต่เมื่อนำไปทดสอบจริงโมเดลไม่สามารถทำงานได้อย่างถูกต้อง เราเรียกปัญหาลักษณะนี้ว่า Overfitting
Bias and Variance Trade Off
สิ่งที่ควรต้องทำสำหรับปัญหานี้คือการหาจุดที่เหมาะสมที่สุด (Optimization) ในการลดทั้งค่า Bias และ Variance ให้ต่ำทั้งคู่เท่าที่จะเป็นไปได้ เพราะหากเลือกเพียงแค่ค่าใดค่าหนึ่งต่ำที่สุดแต่อีกค่ายังคงสูงก็อาจจะทำให้เกิด Underfitting หรือ Overfitting ได้อยู่ดี ดังนั้นขณะเทรนจึงต้องออกแบบโค้ดให้สามารถติดตาม Logs ของค่า Errors หรือ Objective Function ในการเรียนรู้ไว้ด้วย