บทนำ: การสร้างโมเดลที่ใช้งานได้จริง
สวัสดีครับ! ยินดีต้อนรับเข้าสู่บทที่สำคัญที่สุดบทหนึ่งในการเดินทางเพื่อเตรียมสอบ Exam ATPA ของคุณ ที่ผ่านมาคุณอาจจะได้เรียนรู้วิธีการสร้างโมเดลที่ซับซ้อนและมีความแม่นยำสูงในการปรับเข้ากับข้อมูลเดิม แต่มีเคล็ดลับอยู่ว่า: ใครๆ ก็สามารถสร้างโมเดลที่ตอบโจทย์ข้อมูลเก่าได้อย่างสมบูรณ์แบบ แต่ทักษะที่แท้จริงคือการสร้างโมเดลที่สามารถพยากรณ์อนาคตได้อย่างแม่นยำต่างหาก
ในบทนี้ เราจะมาเรียนรู้วิธีป้องกันไม่ให้โมเดลของเรา "ท่องจำ" ข้อมูลในอดีต (Overfitting), วิธีหลีกเลี่ยงกับดักจาก การใช้ข้อมูลซ้ำซ้อน (Repeated data use) และการรั่วไหลของข้อมูล (Data leakage) รวมถึงวิธีสร้างความมั่นใจว่าโมเดลของเรามีความยุติธรรม สอดคล้องตามกฎระเบียบ และปราศจากผลกระทบเชิงเลือกปฏิบัติ (การลดอคติของโมเดลและการเลือกปฏิบัติโดยใช้ตัวแปรแทน - Mitigating model bias and proxy discrimination) ลองนึกซะว่านี่คือแผนก "ควบคุมคุณภาพ" ของการวิเคราะห์เชิงพยากรณ์ มาเริ่มกันเลย!
1. Overfitting: กับดักของการ "ท่องจำ"
Overfitting คืออะไร?
ลองจินตนาการว่าคุณกำลังอ่านหนังสือสอบคณิตศาสตร์ แทนที่จะเรียนรู้วิธีการใช้สูตร คุณกลับท่องจำคำตอบของโจทย์ฝึกหัดทั้ง 50 ข้อไปสอบ พอเจอข้อสอบจริงซึ่งโจทย์เปลี่ยนไปนิดหน่อย คุณกลับสอบตกเพราะคุณไม่ได้เรียนรู้ ตรรกะ แต่คุณเรียนรู้แค่ ตัวอย่างเฉพาะ นั่นแหละครับคือสิ่งที่เรียกว่า Overfitting
ในการสร้างแบบจำลองเพื่อพยากรณ์ Overfitting จะเกิดขึ้นเมื่อโมเดลมีความซับซ้อนเกินไปจนเริ่มมอง "สัญญาณรบกวน" (Noise - ข้อมูลความผันผวนแบบสุ่ม) ให้กลายเป็นรูปแบบจริง
การเริ่มต้นด้วยจำนวนตัวแปรที่มากเกินไป
สาเหตุหลักประการหนึ่งของ Overfitting คือการเริ่มต้นด้วยตัวแปรพยากรณ์จำนวนมากเกินไปเมื่อเทียบกับขนาดของกลุ่มตัวอย่าง เมื่อโมเดลมีตัวแปรพยากรณ์หลายสิบหรือหลายร้อยตัว มันจะจับความสัมพันธ์ลวง (Spurious correlations) ที่เกิดขึ้นจากความบังเอิญล้วนๆ ในชุดข้อมูลสำหรับฝึกสอนได้อย่างง่ายดาย สิ่งนี้จะทำให้ความแปรปรวน (Variance) ของโมเดลสูงเกินจริงและลดทอนประสิทธิภาพเมื่อนำไปใช้กับข้อมูลใหม่ นักคณิตศาสตร์ประกันภัยจึงต้องตัดทอนพื้นที่ของตัวแปร (Feature space) อย่างจริงจังผ่านความเชี่ยวชาญในสายงาน การคัดกรองตัวแปร และการลดมิติข้อมูล
ความสมดุลระหว่างความเอนเอียงและความแปรปรวน (Bias-Variance Tradeoff)
เพื่อให้เข้าใจ Overfitting เราต้องดูแรงผลักดันที่ขัดแย้งกันสองอย่าง:
• Bias (ความเอนเอียง): คือข้อผิดพลาดที่เกิดจากสมมติฐานที่เรียบง่ายเกินไป หากคุณพยายามลากเส้นตรงผ่านข้อมูลที่มีลักษณะโค้งอย่างเห็นได้ชัด คุณจะได้ High Bias (Underfitting หรือโมเดลที่เรียบง่ายเกินไป)
• Variance (ความแปรปรวน): คือข้อผิดพลาดที่เกิดจากการอ่อนไหวต่อความผันผวนเล็กน้อยเกินไป หากโมเดลของคุณเปลี่ยนไปมากทุกครั้งที่คุณเพิ่มข้อมูลใหม่เข้าไปเพียงจุดเดียว แสดงว่าคุณมี High Variance (Overfitting)
ทบทวนสั้นๆ: เราต้องการจุดที่ "พอดี" (Goldilocks zone) คือโมเดลที่ซับซ้อนพอที่จะจับสัญญาณได้ แต่ก็เรียบง่ายพอที่จะมองข้ามสัญญาณรบกวนไป
วิธีตรวจหา Overfitting
วิธีที่ง่ายที่สุดในการสังเกต Overfitting คือการเปรียบเทียบประสิทธิภาพของโมเดลบนชุดข้อมูลสองชุด:
• Training Set: ข้อมูลที่โมเดลใช้ในการเรียนรู้
• Test Set: ข้อมูลที่โมเดล "ไม่เคยเห็นมาก่อน" ซึ่งใช้ในการให้คะแนนโมเดล
สัญญาณเตือน: ถ้าความผิดพลาดใน Training ต่ำมาก แต่ความผิดพลาดใน Test สูงกว่าอย่างเห็นได้ชัด แสดงว่าโมเดลเกิด Overfitting แล้วครับ
2. การลด Overfitting: Regularization
ถ้าโมเดลของเราซับซ้อนเกินไปหรือเริ่มต้นด้วยตัวแปรมากเกินไป เราต้องหาอะไรมาควบคุมมัน สิ่งนี้เรียกว่า Regularization ซึ่งทำได้โดยการเพิ่ม "บทลงโทษ" (Penalty) ให้กับฟังก์ชันเป้าหมาย (Objective function) หากโมเดลมีค่าสัมประสิทธิ์ (Coefficient) ที่ใหญ่เกินไปหรือมีจำนวนมากเกินไป
Ridge Regression (L2 Regularization)
Ridge Regression จะเพิ่มพจน์ลงโทษที่เป็นสัดส่วนกับ ผลรวมกำลังสองของค่าสัมประสิทธิ์:
\( \text{Penalty} = \lambda \sum_{j=1}^{p} \beta_j^2 \)
• หลักการทำงาน: มันจะบีบค่าสัมประสิทธิ์ให้เล็กลงเข้าใกล้ศูนย์ ซึ่งช่วยลดความแปรปรวน แต่จะไม่ทำให้เป็นศูนย์จริงๆ มันช่วยให้คุณยังเก็บตัวแปรพยากรณ์ไว้ครบทั้งหมด พร้อมทั้งลดความอ่อนไหวที่มากเกินไปต่อตัวแปรที่มีความสัมพันธ์ร่วมกันสูง (Collinear) หรือตัวแปรที่มีสัญญาณรบกวน
Lasso Regression (L1 Regularization)
Lasso (Least Absolute Shrinkage and Selection Operator) จะเพิ่มพจน์ลงโทษที่เป็นสัดส่วนกับ ผลรวมของค่าสัมบูรณ์ของค่าสัมประสิทธิ์:
\( \text{Penalty} = \lambda \sum_{j=1}^{p} |\beta_j| \)
• ความมหัศจรรย์ของ Lasso: ด้วยลักษณะทางเรขาคณิตของข้อจำกัด L1 ทำให้ Lasso สามารถบีบค่าสัมประสิทธิ์บางตัวให้กลายเป็น ศูนย์ ได้จริงๆ เมื่อค่า \( \lambda \) มีขนาดใหญ่เพียงพอ นั่นหมายความว่า Lasso สามารถทำ การคัดเลือกตัวแปร (Variable selection) ได้โดยอัตโนมัติ ซึ่งช่วยลดอันตรายจากการเริ่มต้นด้วยตัวแปรที่มากเกินไป!
เทคนิคการจำ: Lasso = Less variables (ตัดตัวแปรออก). Ridge = Reduces coefficients (ลดขนาดสัมประสิทธิ์ แต่ยังเก็บไว้ทั้งหมด).
หัวใจสำคัญ
Regularization ใช้พารามิเตอร์การปรับแต่งที่เรียกว่า \( \lambda \) เมื่อ \( \lambda = 0 \) คุณจะได้โมเดลมาตรฐานที่ไม่มีการลงโทษ แต่เมื่อ \( \lambda \) เพิ่มขึ้น บทลงโทษจะรุนแรงขึ้น และจะบีบค่าสัมประสิทธิ์ให้เล็กลงทำให้โมเดลเรียบง่ายขึ้น (ลด Variance แต่ต้องแลกกับการเพิ่มขึ้นเล็กน้อยของ Bias)
3. การใช้ข้อมูลซ้ำซ้อนและการรั่วไหลของข้อมูล (Repeated Data Use and Data Leakage)
อันตรายจากการใช้ข้อมูลซ้ำซ้อน (Repeated Data Use)
การใช้ข้อมูลซ้ำซ้อน (Repeated data use) เกิดขึ้นเมื่อผู้วิเคราะห์ใช้ข้อมูลตรวจสอบความถูกต้อง (Validation data) หรือข้อมูลทดสอบ (Test data) ชุดเดิมซ้ำๆ ในการตัดสินใจเกี่ยวกับการสร้างโมเดล เช่น การคัดกรองตัวแปรพยากรณ์, การปรับแต่งไฮเปอร์พารามิเตอร์ (Hyperparameters), การเลือกรูปแบบฟังก์ชัน และการเปรียบเทียบอัลกอริทึมที่เป็นตัวเลือก แม้ว่าโมเดลจะไม่ได้ฝึกสอนบนข้อมูลชุด Holdout โดยตรง แต่ ผู้วิเคราะห์ ได้นำข้อมูลจากชุด Holdout เข้ามาผสมผสานในขั้นตอนการทำงานของโมเดลโดยปริยาย
• Holdout Overfitting: หากคุณทดลองการกำหนดค่าโมเดล 100 แบบที่แตกต่างกัน แล้วเลือกแบบที่มีค่าความผิดพลาดบนชุด Validation ต่ำที่สุด คะแนนที่ดีที่สุดส่วนหนึ่งนั้นอาจมาจากแค่ความโชคดีบนข้อมูลชุด Holdout ส่วนนั้น ค่าความผิดพลาดบนชุด Validation จึงกลายเป็นการประเมินความผิดพลาดในการนำไปใช้จริง (Generalization error) ที่มองโลกในแง่ดีเกินไปและมีความเอนเอียง
• แนวทางการแก้ไข: เพื่อบรรเทาปัญหาการใช้ข้อมูลซ้ำซ้อน ให้ปฏิบัติตามระเบียบการแบ่งข้อมูลอย่างเคร่งครัด:
1. การแบ่งข้อมูลสามส่วน (Three-Way Split): แบ่งข้อมูลออกเป็น Training (สำหรับปรับค่าพารามิเตอร์), Validation (สำหรับเปรียบเทียบโมเดลที่เป็นตัวเลือกและปรับแต่งไฮเปอร์พารามิเตอร์) และ Test (เพื่อใช้ตรวจสอบขั้นสุดท้ายอย่างเป็นกลางปราศจากอคติ)
2. ล็อกชุดข้อมูลทดสอบ (Lock the Test Set): เก็บ Test set ไว้ใน "ห้องนิรภัย" และประเมินผลเพียงครั้งเดียวเมื่อโครงการเสร็จสิ้น หากโมเดลล้มเหลวบน Test set คุณจะไม่สามารถปรับแต่งโมเดลบน Test set นั้นได้อีก เพราะจะทำให้ความเป็นอิสระของข้อมูลเสียไป
3. Nested Cross-Validation: เมื่อมีข้อมูลจำกัด ให้ใช้ Nested cross-validation โดยลูปชั้นใน (Inner loop) ใช้ปรับแต่งไฮเปอร์พารามิเตอร์ และลูปชั้นนอก (Outer loop) ใช้ประเมินประสิทธิภาพการนำไปใช้จริงโดยปราศจากอคติจากการใช้ข้อมูลซ้ำ
การรั่วไหลของข้อมูล (Data Leakage)
Data Leakage เกิดขึ้นเมื่อข้อมูลจากภายนอกสภาพแวดล้อมการฝึกสอนถูกนำเข้ามาใส่ในการปรับเข้ากับโมเดลโดยไม่ได้ตั้งใจ ทำให้โมเดลดูมีความแม่นยำสูงเกินจริงในระหว่างการพัฒนา
• Target Leakage: การรวมตัวแปรพยากรณ์ที่มีข้อมูลเกี่ยวกับตัวแปรเป้าหมาย (Target) ซึ่งไม่มีทางทราบได้ในจังหวะเวลาที่ต้องพยากรณ์จริง ตัวอย่าง: การใช้วันที่อนุมัติการเคลม (Claim Approval Date) ในการพยากรณ์ว่าการเคลมประกันนั้นเป็นการฉ้อโกงหรือไม่ เพราะการอนุมัติจะเกิดขึ้นหลังจากกระบวนการตรวจสอบเสร็จสิ้นแล้วเท่านั้น
• Train-Test Contamination: การคำนวณพารามิเตอร์ในการเตรียมข้อมูลเบื้องต้น (เช่น ค่ามัธยฐานสำหรับการแทนค่าสูญหาย, ปัจจัยการปรับสเกลมาตรฐาน หรือ Target encoding) บนชุดข้อมูลทั้งหมดก่อนที่จะทำการแบ่งข้อมูล ทำให้ Training set ปนเปื้อนสถิติสรุปจาก Test set
• กฎทองของการป้องกัน: จงแบ่งข้อมูล ก่อนเสมอ คำนวณการแปลงข้อมูล (Transformations), การปรับสเกล และการแทนค่าข้อมูลสูญหายทั้งหมดโดยอิงจากส่วนของ Training เท่านั้น จากนั้นจึงนำการแปลงข้อมูลที่มีค่าคงที่เหล่านั้นไปปรับใช้กับชุด Validation และชุด Test
4. อคติของโมเดล ความยุติธรรม และการเลือกปฏิบัติโดยใช้ตัวแปรแทน (Model Bias, Fairness, and Proxy Discrimination)
นักคณิตศาสตร์ประกันภัยต้องดูแลให้โมเดลเชิงพยากรณ์ทำงานอย่างมีจริยธรรม สอดคล้องตามกฎหมายและมาตรฐานวิชาชีพ รวมถึงไม่ทำให้กลุ่มประชากรที่ต้องได้รับการปกป้องเสียเปรียบอย่างไม่เป็นธรรม
การทำความเข้าใจแนวคิดเรื่องความยุติธรรม
อคติในการวิเคราะห์เชิงพยากรณ์ไม่ได้หมายถึงเพียงข้อผิดพลาดทางคณิตศาสตร์เท่านั้น แต่หมายถึงความไม่เป็นธรรมเชิงระบบต่อกลุ่มคนที่จำแนกตามคุณลักษณะที่มีความละเอียดอ่อน (เช่น เชื้อชาติ ศาสนา เพศ หรืออายุ)
• Demographic Parity (Independence): อัตราการยอมรับหรือผลพยากรณ์มีค่าเท่ากันในทุกกลุ่มที่ได้รับการปกป้อง: \( P(\hat{Y}=1 | A=0) = P(\hat{Y}=1 | A=1) \)
• Equalized Odds (Separation): โมเดลมีอัตราผลบวกจริง (True positive rate) เท่ากัน และอัตราผลบวกลวง (False positive rate) เท่ากันในทุกกลุ่ม
• Predictive Parity (Sufficiency): ค่าการทำนายเชิงบวก (Positive predictive value หรือ Precision) มีค่าเท่ากันในทุกกลุ่ม: \( P(Y=1 | \hat{Y}=1, A=0) = P(Y=1 | \hat{Y}=1, A=1) \)
หมายเหตุ: เกณฑ์ความยุติธรรมทางคณิตศาสตร์มักจะขัดแย้งกันเอง การทำให้สอดคล้องกับ Demographic parity อาจจำเป็นต้องแลกด้วยการสูญเสีย Predictive parity เมื่ออัตราพื้นฐาน (Base rates) ของประชากรมีความแตกต่างกัน
การเลือกปฏิบัติโดยใช้ตัวแปรแทน (Proxy Discrimination)
เพียงแค่การตัดคุณลักษณะที่ได้รับการปกป้องออกจากโมเดลมักไม่เพียงพอ การเลือกปฏิบัติโดยใช้ตัวแปรแทน (Proxy discrimination) เกิดขึ้นเมื่ออัลกอริทึมใช้ตัวแปรพยากรณ์ที่เป็นกลาง แต่มีความสัมพันธ์อย่างมากกับคุณลักษณะที่ได้รับการปกป้อง ส่งผลให้เกิดการสร้างคุณลักษณะที่ถูกคัดออกนั้นขึ้นมาใหม่โดยปริยาย
• ตัวอย่าง: การละเว้นเรื่องเชื้อชาติจากโมเดลกำหนดราคาประกันวินาศภัย แต่ยังคงใช้รหัสไปรษณีย์ 5 หลัก, คะแนนเครดิต หรือระยะเวลาการอยู่อาศัยในย่านนั้น ซึ่งสะท้อนถึงรูปแบบการแบ่งแยกพื้นที่ในอดีต
• นักคณิตศาสตร์ประกันภัยต้องทดสอบอย่างจริงจังว่าตัวแปรที่ไม่ได้อยู่ในกลุ่มปกป้องทำหน้าที่เป็นตัวแปรแทน (Proxy) หรือไม่ และต้องตรวจสอบให้แน่ใจว่าผลพยากรณ์ของโมเดลไม่ก่อให้เกิดผลกระทบที่แตกต่างกันอย่างไม่เป็นธรรม (Disparate impact)
กลยุทธ์การลดอคติของโมเดล
1. Pre-processing: การปรับสมดุลใหม่, การปรับน้ำหนัก หรือการแปลงชุดข้อมูลฝึกสอน เพื่อแก้ไขความไม่สมดุลด้านการเป็นตัวแทนและข้อมูลในอดีตก่อนนำไปฝึกสอนโมเดล
2. In-processing: การใส่ข้อกำหนดด้านความยุติธรรมหรือบทลงโทษด้านความยุติธรรมเข้าไปในฟังก์ชันเป้าหมายโดยตรงในขณะที่กำลังปรับโมเดล
3. Post-processing: การปรับเกณฑ์การตัดสินใจจำแนกประเภท (Decision thresholds) หรือการปรับเทียบ (Calibrations) แยกตามกลุ่ม เพื่อให้ผลลัพธ์ในการตัดสินใจมีความเท่าเทียมกัน
5. Cross-Validation: กลไกป้องกันด้วยการสุ่มกลุ่มตัวอย่างซ้ำ
เพื่อป้องกันความแปรปรวนที่เกิดจากการแบ่งข้อมูลเพียงครั้งเดียว และเพื่อตรวจสอบว่า Regularization รวมถึงการลดจำนวนตัวแปรสามารถควบคุม Overfitting ได้จริง นักคณิตศาสตร์ประกันภัยจึงต้องพึ่งพา \( K \)-Fold Cross-Validation
กระบวนการทีละขั้นตอน:
1. สุ่มแบ่งข้อมูล Training ออกเป็น \( k \) ส่วนที่ไม่ซ้ำซ้อนกันและมีขนาดใกล้เคียงกัน (โดยทั่วไปคือ \( k = 5 \) หรือ \( k = 10 \))
2. ฝึกโมเดลที่เป็นตัวเลือกโดยใช้ข้อมูล \( k - 1 \) ส่วนร่วมกัน
3. คำนวณตัวชี้วัดความถูกต้อง (Validation metric) บนข้อมูลส่วนที่เหลืออีก 1 ส่วน
4. ทำซ้ำขั้นตอนนี้ \( k \) ครั้ง เพื่อให้ข้อมูลทุกส่วนได้ทำหน้าที่เป็นชุด Holdout สำหรับการประเมินผลอย่างละหนึ่งครั้งถ้วน
5. หาค่าเฉลี่ยของตัวชี้วัดประสิทธิภาพทั้ง \( k \) ครั้ง เพื่อให้ได้ค่าประมาณการประสิทธิภาพนอกกลุ่มตัวอย่าง (Out-of-sample) ที่มีความมั่นคง
ทำไมเราถึงต้องทำเช่นนี้? Cross-Validation ช่วยเพิ่มประสิทธิภาพการใช้ข้อมูลให้สูงสุด หลีกเลี่ยงความเสี่ยงจากการแบ่งข้อมูลเพียงครั้งเดียวที่อาจไม่ได้เป็นตัวแทนที่ดี และเป็นเกณฑ์มาตรฐานที่เป็นกลางสำหรับการปรับแต่งไฮเปอร์พารามิเตอร์
สรุปเนื้อหาบทเรียน
กล่องทบทวนด่วน (Quick Review Box):
• Overfitting: เกิดขึ้นเมื่อโมเดลจับสัญญาณรบกวนแบบสุ่มแทนที่จะเป็นสัญญาณจริงของข้อมูล ซึ่งจะยิ่งรุนแรงขึ้นเมื่อเริ่มต้นด้วยตัวแปรที่มากเกินไป
• Regularization: ลงโทษความซับซ้อนของโมเดล Lasso (L1) ทำการคัดเลือกตัวแปรโดยบีบค่าสัมประสิทธิ์ให้กลายเป็นศูนย์ ส่วน Ridge (L2) ลดขนาดค่าสัมประสิทธิ์เพื่อลดความแปรปรวน
• Repeated Data Use: การประเมินโมเดลซ้ำๆ บนข้อมูล Validation หรือ Test ชุดเดิม ทำให้เกิด Holdout overfitting และตัวชี้วัดประสิทธิภาพสูงเกินจริง แก้ไขได้ด้วยการแบ่งข้อมูลสามส่วนอย่างเคร่งครัดและล็อกชุด Test ไว้จนกว่าจะมีการอนุมัติขั้นสุดท้าย
• Data Leakage: ข้อมูลในอนาคตหรือข้อมูลชุด Holdout ไหลเข้าสู่การฝึกสอนโมเดลโดยไม่ได้ตั้งใจ ป้องกันได้ด้วยการแบ่งข้อมูลก่อนที่จะทำการเตรียมข้อมูลเบื้องต้นใดๆ
• Fairness and Proxy Discrimination: การตัดคุณลักษณะที่มีความละเอียดอ่อนออกไป ไม่สามารถป้องกันการเลือกปฏิบัติได้หากยังคงมีตัวแปรแทน (Proxies) ที่มีความสัมพันธ์กันอยู่ บรรเทาได้ผ่านการปรับปรุงความยุติธรรมทั้งแบบ Pre-processing, In-processing หรือ Post-processing
• Cross-Validation: การหมุนเวียนข้อมูล \( k \) ส่วน เพื่อส่งมอบการประเมินประสิทธิภาพที่แข็งแกร่งและมีความแปรปรวนต่ำ