การถดถอยโลจิสติก โมเดลได้รับการฝึกโดยใช้กระบวนการเดียวกันกับ การถดถอยเชิงเส้น โมเดล โดยมีข้อแตกต่างที่สำคัญ 2 ประการดังนี้
- โมเดลการถดถอยลอจิสติกใช้ Log Loss เป็น Loss Function แทน Squared Loss
- การใช้การทำให้เป็นปกติ เป็นสิ่งสำคัญในการป้องกันการปรับมากเกินไป
ส่วนต่อไปนี้จะอธิบายข้อควรพิจารณาทั้ง 2 ข้อนี้อย่างละเอียด
การสูญเสียของบันทึก
ในโมดูลการถดถอยเชิงเส้น คุณใช้การสูญเสียกำลังสอง (เรียกอีกอย่างว่า Loss L2) เป็น Loss Function Squared Loss เหมาะสำหรับโมเดลเชิงเส้น ซึ่งอัตราการเปลี่ยนแปลงของค่าเอาต์พุตคงที่ ตัวอย่างเช่น เมื่อพิจารณารูปแบบเชิงเส้น $y' = b + 3x_1$ ทุกครั้งที่คุณเพิ่มค่าอินพุต $x_1$ ขึ้น 1 ค่าเอาต์พุต $y'$ จะเพิ่มขึ้น 3
อย่างไรก็ตาม อัตราการเปลี่ยนแปลงของโมเดลการถดถอยโลจิสติกส์ไม่คงที่ ดังที่เห็นในการคำนวณความน่าจะเป็น เส้นโค้งsigmoidมีรูปร่างเป็นตัว S ไม่ใช่เส้นตรง เมื่อค่าลอการิทึมของอัตราส่วนความเป็นไป ($z$) ใกล้ 0 การเพิ่มขึ้นเล็กน้อยของ $z$ จะส่งผลให้ $y$ เปลี่ยนแปลงมากกว่าเมื่อ $z$ เป็นจำนวนบวกหรือลบมาก ตารางต่อไปนี้แสดงเอาต์พุตของฟังก์ชัน Sigmoid สำหรับค่าอินพุตตั้งแต่ 5 ถึง 10 รวมถึงความแม่นยำที่เกี่ยวข้อง ซึ่งจำเป็นต่อการบันทึกความแตกต่างในผลลัพธ์
อินพุต | เอาต์พุตโลจิสติกส์ | ความแม่นยำที่ต้องใช้ |
---|---|---|
5 | 0.993 | 3 |
6 | 0.997 | 3 |
7 | 0.999 | 3 |
8 | 0.9997 | 4 |
9 | 0.9999 | 4 |
10 | 0.99998 | 5 |
หากคุณใช้การสูญเสียกำลังสองเพื่อคำนวณข้อผิดพลาดสำหรับฟังก์ชัน Sigmoid เมื่อเอาต์พุตเข้าใกล้ 0
และ 1
มากขึ้นเรื่อยๆ คุณจะต้องใช้หน่วยความจำมากขึ้นเพื่อรักษาความแม่นยำที่จำเป็นต่อการติดตามค่าเหล่านี้
แต่ฟังก์ชันการสูญเสียสำหรับการถดถอยโลจิสติกคือการสูญเสียบันทึก สมการ Log Loss จะแสดงลอการิทึมของขนาดการเปลี่ยนแปลง ไม่ใช่แค่ระยะห่างจากข้อมูลไปยังการคาดการณ์ การสูญเสียของบันทึกมีการคำนวณดังนี้
$\text{Log Loss} = -\frac{1}{N}\sum_{i=1}^{N} y_i\log(y_i') + (1 - y_i)\log(1 - y_i')$
ที่ไหน
- \(N\) คือจำนวนตัวอย่างที่มีป้ายกำกับในชุดข้อมูล
- \(i\) คือดัชนีของตัวอย่างในชุดข้อมูล (เช่น \((x_3, y_3)\) เป็นตัวอย่างที่ 3 ในชุดข้อมูล)
- \(y_i\) คือป้ายกำกับสำหรับตัวอย่างที่ \(i\)เนื่องจากเป็นการถดถอยแบบโลจิสติก \(y_i\) จึงต้องเป็น 0 หรือ 1
- \(y_i'\) คือการคาดการณ์ของโมเดลสำหรับตัวอย่างที่ \(i\) (ค่าระหว่าง 0 ถึง 1) เมื่อพิจารณาชุดฟีเจอร์ใน \(x_i\)
การทำให้เป็นปกติในการถดถอยแบบโลจิสติก
การทำให้เป็นปกติ ซึ่งเป็นกลไกสำหรับ ลงโทษความซับซ้อนของโมเดลระหว่างการฝึก เป็นสิ่งสำคัญอย่างยิ่งในการสร้างโมเดลการถดถอยโลจิสติก หากไม่มีการปรับค่าปกติ ลักษณะการ渐近ของ การถดถอยโลจิสติกจะทำให้การสูญเสียเข้าใกล้ 0 ในกรณีที่โมเดลมี ฟีเจอร์จำนวนมาก ด้วยเหตุนี้ โมเดลการถดถอยโลจิสติกส่วนใหญ่จึงใช้กลยุทธ์ใดกลยุทธ์หนึ่งต่อไปนี้เพื่อลดความซับซ้อนของโมเดล
- การทำให้เป็นค่าปกติ L2
- การหยุดก่อนกำหนด: การจำกัดจำนวนขั้นตอนการฝึกเพื่อหยุดการฝึกในขณะที่การสูญเสียยังคงลดลง