Dictionary · กลไกโมเดล · 55 / 291

Overfitting

โมเดลจดจำรายละเอียดของข้อมูลฝึกมากเกินไปจนทำนายข้อมูลใหม่ผิดพลาด เหมือนนักเรียนท่องข้อสอบเก่าได้หมดแต่ทำข้อสอบจริงไม่ได้

Overfitting คือสภาวะที่โมเดล machine learning เรียนรู้ข้อมูลชุด training ได้ละเอียดจนเกินพอดี จนจดจำรายละเอียดปลีกย่อยและสัญญาณรบกวน (noise) ของข้อมูลชุดนั้นไปด้วย แทนที่จะเรียนรู้แบบแผนที่นำไปใช้กับข้อมูลอื่นได้ ผลคือโมเดลทำนายข้อมูลในชุดฝึกได้แม่นยำสูงมาก แต่พอเจอข้อมูลใหม่ที่ไม่เคยเห็นกลับทำนายผิดพลาดง่าย นิยามของ Google ระบุตรงๆ ว่า overfitting คือการสร้างโมเดลที่ตรงกับ (จดจำ) ชุดข้อมูลฝึกได้ใกล้เคียงมากจนโมเดลทำนายข้อมูลใหม่ผิดพลาด (Google ML crash course) เทียบง่ายๆ คือเหมือนนักเรียนที่ท่องข้อสอบเก่าจนตอบได้ทุกข้อเป๊ะ แต่พอเจอข้อสอบชุดใหม่ที่โจทย์เปลี่ยนไปนิดเดียวกลับทำไม่ได้ เพราะสิ่งที่จำมาคือคำตอบของข้อสอบชุดเดิม ไม่ใช่หลักการที่เอาไปตอบข้อสอบอื่นได้

สาเหตุหลักของ overfitting มาจากสองทาง คือชุดข้อมูลฝึกที่ไม่เป็นตัวแทนของข้อมูลจริงเพียงพอ (เช่นมีน้อยเกินไปหรือมีสัญญาณรบกวนเยอะ) กับโมเดลที่มีความซับซ้อนมากเกินความจำเป็นของปัญหา (Google ML crash course; AWS) วิธีตรวจจับที่ใช้กันทั่วไปคือดู generalization curve ซึ่ง Google นิยามว่าเป็นกราฟที่วางเส้น loss ของชุดฝึกกับชุดตรวจสอบ (validation set) ไว้ด้วยกัน ถ้าผ่านการฝึกไปจำนวนรอบหนึ่งแล้ว loss ของชุดฝึกยังลดลงหรือนิ่งอยู่ แต่ loss ของชุดตรวจสอบกลับเพิ่มขึ้น นั่นคือสัญญาณของ overfitting AWS อธิบายว่าวิธีที่ตรงไปตรงมาที่สุดคือทดสอบโมเดลกับข้อมูลให้มากขึ้นแล้วดูช่องว่างระหว่างความแม่นยำของชุดฝึกกับชุดทดสอบ (AWS) ส่วนวิธีป้องกันที่ใช้กันทั่วไปมีทั้ง early stopping (หยุดฝึกก่อนโมเดลเริ่มจำ noise) regularization ที่มีทั้งแบบ L1 และ L2 ซึ่งเพิ่มบทลงโทษไม่ให้น้ำหนักของโมเดลบานเกินจำเป็น และแบบ dropout ที่สุ่มปิดการทำงานของหน่วยประมวลผลบางส่วนใน neural network ระหว่างฝึก การทำ data augmentation เพิ่มความหลากหลายให้ dataset การเลือกเฉพาะ feature ที่สำคัญ และการรวมหลายโมเดลเข้าด้วยกันแบบ ensembling (AWS)

คนทำงานที่ไม่ได้เขียนโมเดลเองจะเจอคำนี้บ่อยตอนทีม data science อธิบายว่าทำไมโมเดลที่ทดสอบแล้วดูแม่นยำมากถึงพลาดตอนใช้งานจริง หรือใช้เป็นคำเตือนเวลาเปรียบเทียบตัวเลข benchmark ของโมเดลต่างค่าย ประเด็นร่วมสมัยที่ใกล้เคียงกันคือ benchmark contamination ปัญหาที่โจทย์หรือคำตอบของชุด evals มาตรฐานหลุดไปปนอยู่ในข้อมูลที่ใช้ฝึกโมเดลตั้งแต่แรก งานวิจัยที่นำเสนอในงานประชุม NAACL ปี 2024 โดยทีมจาก Georgia Tech, Yale และ Allen Institute for AI เสนอวิธีตรวจชื่อ Testset Slot Guessing ซึ่งปิดบังตัวเลือกที่เป็นคำตอบผิดข้อหนึ่งในโจทย์ปรนัย แล้วให้โมเดลเดาว่าข้อความที่หายไปคืออะไร ผลในชุด MMLU คือ ChatGPT เดาได้ตรงเป๊ะ 52% และ GPT-4 ได้ 57% ตัวเลือกที่เป็นคำตอบผิดไม่ใช่สิ่งที่เดาได้จากตัวโจทย์ อัตราการเดาถูกระดับนี้จึงเป็นสัญญาณว่าโมเดลน่าจะเคยเห็นข้อสอบชุดนี้มาก่อน แม้ผู้วิจัยจะระบุข้อจำกัดไว้เองว่ายังฟันธงไม่ได้ เพราะไม่มีใครเห็นข้อมูลฝึกจริงของโมเดลปิด (Deng et al., NAACL 2024, ACL Anthology) ผลคือคะแนน benchmark ที่โมเดลโชว์อาจสูงเกินความสามารถจริง คล้ายกับที่ overfitting ทำให้ความแม่นยำตอนฝึกดูดีเกินจริงเมื่อเทียบกับตอนใช้งานจริง ข้อควรระวังคือสองเรื่องนี้เกิดจากกลไกคนละแบบ overfitting คือโมเดลจำข้อมูลฝึกของตัวเองมากเกินไประหว่างการเทรน ส่วน benchmark contamination คือข้อมูลของชุดทดสอบรั่วเข้าไปอยู่ในข้อมูลฝึกตั้งแต่ต้น แต่ทั้งคู่ทำให้ตัวเลขที่วัดได้เชื่อถือได้น้อยกว่าที่ตัวเลขโชว์ คนที่ต้องประเมินหรือเลือกใช้โมเดลจึงควรถามเสมอว่าตัวเลขที่ vendor โชว์มาผ่านการทดสอบกับข้อมูลที่แยกออกจากชุดฝึกจริงหรือไม่

ตัวอย่างจากบทสนทนาจริง

ฝ่ายการตลาด: "ทีม data science บอกว่าโมเดลทำนายพฤติกรรมลูกค้าแม่นยำ 95% ตอนทดสอบ ทำไมพอใช้จริงกับลูกค้าใหม่ถึงทายผิดเยอะ"

Data scientist: "เพราะโมเดล overfitting ครับ มันจำรูปแบบเฉพาะของข้อมูลชุดที่ใช้ฝึกและทดสอบไปด้วยกัน พอเจอลูกค้าที่ไม่เคยเห็นรูปแบบพฤติกรรมแบบนี้เลยทายพลาด เหมือนนักเรียนที่ท่องข้อสอบเก่าได้หมดแต่ทำข้อสอบชุดใหม่ไม่ได้"

ฝ่ายการตลาด: "แล้วเวลาเราดูสเปกโมเดลจาก vendor ที่อ้างว่าคะแนน benchmark สูงมาก ต้องระวังเรื่องนี้ด้วยไหม"

Data scientist: "ต้องระวังครับ เพราะบางทีโจทย์ของ benchmark ที่ใช้วัดคะแนนก็หลุดไปปนอยู่ในข้อมูลฝึกของโมเดลได้เหมือนกัน ทำให้ตัวเลขที่โชว์สูงเกินความสามารถจริงของมัน"

ระวังสับสนกับ

  • hallucination : overfitting เป็นปัญหาช่วงฝึกที่โมเดลจำข้อมูลฝึกมากเกินไปจนทำนายข้อมูลใหม่พลาด ส่วน hallucination คือตอนใช้งานจริงที่โมเดลตอบมั่นใจแต่เนื้อหาผิดจากข้อเท็จจริง คนละกลไกกัน แม้ผลลัพธ์ปลายทางจะดูเหมือน "โมเดลตอบผิด" คล้ายกัน
  • Model collapse : overfitting คือโมเดลตัวเดียวจำข้อมูลฝึกชุดของตัวเองมากเกินไปจนทำนายข้อมูลใหม่แย่ลง ส่วน model collapse คือปัญหาที่เกิดข้ามหลายรุ่นของการฝึกด้วยข้อมูลสังเคราะห์ที่โมเดลรุ่นก่อนสร้างขึ้น จนคุณภาพและความหลากหลายของโมเดลรุ่นถัดไปเสื่อมลงเรื่อยๆ

ดูคำนี้ใน Knowledge Atlas →

■ ไม่อยากพลาดของใหม่

อ่านจบแล้วอยากตามเรื่อง AI แบบนี้ต่อทุกวัน เรามีสรุปข่าวภาษาไทยส่งทาง LINE ทุกเช้า กดเพิ่มเพื่อนไว้ได้เลย ไม่มีค่าใช้จ่าย

เพิ่มเพื่อนใน LINE →
QR เพิ่มเพื่อน LINE ของ TRAINIAC AIคอมพิวเตอร์สแกนด้วยมือถือได้เลย

Output tokensOverthinking