ยินดีต้อนรับสู่โลกของ Hyperparameters!

ในการศึกษา Generalized Linear Models (GLMs) ที่ผ่านมา เราเน้นไปที่การหา "ค่าน้ำหนัก" (coefficients) ที่ดีที่สุดให้กับตัวแปรของเรา แต่จะเกิดอะไรขึ้นถ้าโมเดลของเรา "เก่งเกินไป"? ถ้าโมเดลไปเรียนรู้สัญญาณรบกวน (noise) ในข้อมูลแทนที่จะเรียนรู้สัญญาณจริง (actual signal) ล่ะ? นี่คือจุดที่ Regularized Regression เข้ามามีบทบาท และวันนี้เราจะมาเรียนรู้เกี่ยวกับ "ปุ่มปรับ" ที่เราใช้ควบคุมมัน นั่นคือ Hyperparameters นั่นเอง

ถ้ารู้สึกยากในตอนแรก ไม่ต้องกังวลนะ! ลองนึกภาพว่า Hyperparameter เหมือนกับ จำกัดความเร็ว บนท้องถนน คนขับ (โมเดล) อยากจะขับให้เร็วที่สุดเท่าที่จะทำได้เพื่อไปถึงจุดหมาย (ลด error ให้เหลือน้อยที่สุด) แต่จำกัดความเร็ว (hyperparameter) จะช่วยให้คนขับยังปลอดภัยและไม่เกิดอุบัติเหตุ (overfit) มาเริ่มกันเลย!


Hyperparameters คืออะไร?

ใน GLM มาตรฐาน โมเดลจะคำนวณหาค่าสัมประสิทธิ์ (\(\beta\)) ให้เราโดยอัตโนมัติ เราเรียกค่าเหล่านี้ว่า Parameters อย่างไรก็ตาม Hyperparameters คือค่าที่เราในฐานะนักวิทยาศาสตร์ข้อมูลต้องเป็นคนเลือก ก่อน ที่โมเดลจะเริ่มเรียนรู้

ในบริบทของข้อสอบ Exam PA และแพ็กเกจ glmnet ในภาษา R มี Hyperparameters หลักสองตัวที่คุณต้องรู้จัก:
1. \(\lambda\) (Lambda): พารามิเตอร์ที่ควบคุมความซับซ้อนของโมเดล
2. \(\alpha\) (Alpha): พารามิเตอร์ที่ใช้ผสมระหว่าง Ridge และ Lasso (elastic net mixing parameter)

ทบทวนสั้นๆ: Parameters คือสิ่งที่โมเดลเรียนรู้จากข้อมูล ส่วน Hyperparameters คือสิ่งที่ผู้ใช้กำหนดเพื่อควบคุมกระบวนการเรียนรู้


1. Lambda (\(\lambda\)): ความเข้มงวดของการลงโทษ (Penalty Strength)

ใน Regularized Regression เราจะเพิ่ม "บทลงโทษ" (penalty) เข้าไปในฟังก์ชัน log-likelihood บทลงโทษนี้จะคอยขัดขวางไม่ให้โมเดลกำหนดค่าสัมประสิทธิ์ (\(\beta\)) ให้ใหญ่จนเกินไป ซึ่งค่า Hyperparameter \(\lambda\) จะเป็นตัวกำหนดว่าบทลงโทษนี้จะรุนแรงแค่ไหน

  • เมื่อ \(\lambda = 0\): ไม่มีการลงโทษเลย โมเดลจะทำงานเหมือน GLM มาตรฐานเป๊ะๆ ซึ่งถ้าคุณมีตัวแปรมากเกินไป มักจะนำไปสู่ปัญหา overfitting
  • เมื่อ \(\lambda\) มีค่ามาก: บทลงโทษจะรุนแรงมาก โมเดลถูกบีบให้มีค่าสัมประสิทธิ์ที่เล็กมาก (เกือบเป็นศูนย์) ซึ่งอาจนำไปสู่ปัญหา underfitting ได้
  • เป้าหมายของเรา: คือการหาค่า \(\lambda\) ที่ "พอดี" ซึ่งก็คือไม่มากเกินไปและไม่น้อยเกินไป

คำเปรียบเทียบ: ลองจินตนาการว่า \(\lambda\) เหมือนกับ "ภาษี" ที่เก็บจากขนาดของตัวแปรของคุณ ถ้าภาษีเป็นศูนย์ ทุกคนก็จะใช้จ่ายกันอย่างฟุ่มเฟือย (สัมประสิทธิ์มีค่าสูง) ถ้าภาษีเป็น 100% ก็จะไม่มีใครกล้าจ่ายอะไรเลย (สัมประสิทธิ์เป็นศูนย์) เราจึงต้องการอัตราภาษีที่ทำให้การใช้จ่ายมีความเหมาะสม!


2. Alpha (\(\alpha\)): รูปแบบของการลงโทษ

ในขณะที่ \(\lambda\) บอกเราว่า ต้องลงโทษแค่ไหน แต่ \(\alpha\) จะบอกเราว่า ต้องลงโทษอย่างไร ในข้อสอบ Exam PA เรามักจะพูดถึงสถานการณ์หลักๆ อยู่ 3 แบบ:

Ridge Regression (\(\alpha = 0\))

Ridge Regression ใช้การลงโทษแบบ L2 norm ซึ่งก็คือผลรวมของค่าสัมประสิทธิ์ยกกำลังสอง: \(\sum \beta_j^2\)
ลักษณะเด่น: มันจะดึงค่าสัมประสิทธิ์ทั้งหมดเข้าใกล้ศูนย์ แต่สัมประสิทธิ์เหล่านั้น ไม่มีทางเป็นศูนย์จริงๆ มันยังคงเก็บทุกตัวแปรไว้ในโมเดล เพียงแต่ทำให้มัน "เชื่อง" ลงเท่านั้น

Lasso Regression (\(\alpha = 1\))

Lasso Regression ใช้การลงโทษแบบ L1 norm ซึ่งก็คือผลรวมของค่าสัมประสิทธิ์แบบค่าสัมบูรณ์: \(\sum |\beta_j|\)
ลักษณะเด่น: Lasso คือ "สายมินิมอล" มันมีความสามารถในการดึงค่าสัมประสิทธิ์ให้ กลายเป็นศูนย์พอดี ซึ่งหมายความว่า Lasso ทำหน้าที่ คัดเลือกตัวแปรอัตโนมัติ (automatic variable selection) ให้เราด้วย

Elastic Net (\(0 < \alpha < 1\))

เป็นการผสมผสานแบบกลางๆ ระหว่าง Ridge และ Lasso ซึ่งมีประโยชน์มากเมื่อคุณมีตัวแปรหลายตัวที่สัมพันธ์กัน (correlated)

เทคนิคการจำ:
Lasso = Less variables (ตัดตัวแปรออก)
Ridge = Retains variables (เก็บตัวแปรไว้ทั้งหมด)

ประเด็นสำคัญ: \(\alpha\) กำหนด สไตล์ ของการทำ Regularization (ว่าจะเลือกตัวแปรหรือแค่ลดขนาด) ในขณะที่ \(\lambda\) กำหนด ความเข้มข้น ของการลงโทษ


เราจะเลือก Hyperparameters ที่ดีที่สุดได้อย่างไร?

เราไม่ได้ใช้วิธีเดาสุ่ม! แต่เราใช้กระบวนการที่เรียกว่า Cross-Validation (CV) โดยเฉพาะฟังก์ชัน `cv.glmnet` ในภาษา R ซึ่งจะเป็นเพื่อนที่ดีที่สุดของคุณในห้องสอบ

ขั้นตอนการเลือกแบบ Step-by-Step:

1. การปรับมาตรฐานข้อมูล (Standardize): ก่อนทำ Regularization ต้องมั่นใจว่าตัวแปรอิสระที่เป็นตัวเลขของคุณมีมาตรวัดเดียวกัน (ฟังก์ชัน `glmnet` ใน R ทำสิ่งนี้ให้โดยอัตโนมัติ!) ถ้าคุณไม่ทำเช่นนั้น ตัวแปรที่มีค่าหลักหน่วยมากๆ อย่าง "รายได้ต่อปี" จะถูกลงโทษต่างจากตัวแปรที่มีค่าหลักหน่วยน้อยๆ อย่าง "อายุ"
2. ทำ Cross-Validation: คอมพิวเตอร์จะลองคำนวณโดยใช้ช่วงของค่า \(\lambda\) หลายๆ ค่า
3. เลือกผู้ชนะ: เรามักจะมองหาค่า \(\lambda\) หนึ่งในสองค่าที่ผลลัพธ์แสดงออกมาให้:

  • lambda.min: ค่า \(\lambda\) ที่ให้ error ต่ำที่สุดจากการทำ Cross-validation ให้ใช้ค่านี้ถ้าคุณต้องการโมเดลที่แม่นยำที่สุด
  • lambda.1se: ค่า \(\lambda\) ที่มากที่สุดที่ยังให้ค่า error อยู่ภายในขอบเขต 1 standard error จากจุดต่ำสุด ให้ใช้ค่านี้ถ้าคุณต้องการโมเดลที่ เรียบง่ายและกระชับ (parsimonious) มากขึ้น (โดยเฉพาะเมื่อใช้กับ Lasso)

รู้หรือไม่? ในข้อสอบ Exam PA หากโจทย์ถามถึงโมเดลที่ "เรียบง่าย" หรือ "อธิบายได้ง่าย" (interpretable) การเลือกใช้ lambda.1se มักจะเป็นทางเลือกที่ผู้ตรวจข้อสอบชอบ เพราะมันส่งผลให้มีตัวแปรที่ค่าสัมประสิทธิ์ไม่ใช่ศูนย์จำนวนน้อยลง!


ข้อผิดพลาดที่ควรหลีกเลี่ยง

1. ลืมปรับสเกลข้อมูล (Scaling): ดังที่กล่าวไป การทำ Regularization นั้นขึ้นอยู่กับสเกลของข้อมูล โชคดีที่ `glmnet` จัดการส่วนนี้ให้ แต่คุณควรระบุในรายงานของคุณด้วยว่าคุณทราบประเด็นนี้ เพื่อแสดงให้ผู้ตรวจเห็นว่าคุณเข้าใจหลักการอย่างถ่องแท้!

2. สับสนระหว่าง \(\alpha\) และ \(\lambda\): จำไว้ว่า \(\alpha\) มักเป็นสิ่งที่คุณเลือกกำหนดเอง (หรือทดสอบผ่านลูป) ในขณะที่ \(\lambda\) คือค่าเฉพาะที่หามาได้จากกราฟ Cross-validation ตรงช่วงที่เป็น "ข้อศอก" หรือจุดต่ำสุดของกราฟ

3. มองข้ามตัวแปรกลุ่ม (Categorical Variables): เมื่อใช้ Lasso ตัวแปรกลุ่มที่มี 5 ระดับ (levels) อาจจะถูกทำให้ 3 ระดับกลายเป็น "ศูนย์" และเหลือเพียง 2 ระดับ ซึ่งนี่คือวิธีที่ Lasso ใช้จัดการกับตัวแปรกลุ่ม


สรุปสิ่งที่ต้องจำ

- Regularization ป้องกันปัญหา Overfitting โดยการลงโทษค่าสัมประสิทธิ์ที่ใหญ่เกินไป
- \(\lambda\) (Lambda) ควบคุมความเข้มข้นของการลงโทษ ยิ่ง \(\lambda\) มาก โมเดลยิ่งเรียบง่าย
- \(\alpha\) (Alpha) ควบคุมรูปแบบการลงโทษ \(\alpha=1\) คือ Lasso (เน้นคัดเลือกตัวแปร); \(\alpha=0\) คือ Ridge (เน้นลดขนาดสัมประสิทธิ์)
- Cross-Validation คือเครื่องมือที่ใช้หาค่า \(\lambda\) ที่เหมาะสมที่สุด
- lambda.min ใช้เพื่อความแม่นยำสูงสุด; lambda.1se ใช้เพื่อโมเดลที่เรียบง่ายและทนทาน

ทำได้ดีมาก! คุณเชี่ยวชาญการปรับจูน Regularized Regression แล้ว เครื่องมือเหล่านี้จำเป็นอย่างยิ่งสำหรับการสร้าง GLMs ที่ทำงานได้ดีกับข้อมูลใหม่ๆ ที่ไม่เคยเห็นมาก่อน ซึ่งนั่นแหละคือสิ่งที่นักคณิตศาสตร์ประกันภัยต้องทำ!