Loss: วัดว่าเดาผิดแค่ไหน
จำ "แมวชอบกิน ___" จากบทที่ 1 ได้มั้ย? หลัง ซอฟต์แมกซ์ (softmax)สูตรที่เปลี่ยนคะแนนดิบเป็นความน่าจะเป็นที่รวมกันได้ 100% โดยยก e กำลังคะแนนแล้วหารด้วยผลรวมดูคำศัพท์ทั้งหมด โมเดลให้ ปลา 65.7%, ข้าว 24.2%, หนู 8.9%, รถ 1.2%
ตอนฝึกรู้เฉลยจากข้อความจริงแล้ว จะให้คะแนนการเดายังไง? ดูแค่โอกาสที่โมเดลให้ คำเฉลย
ตัววัดคือ ค่าความผิดพลาด (loss, cross-entropy loss)ตัวเลขที่บอกว่าโมเดลเดาผิดมากแค่ไหน ยิ่งต่ำยิ่งดี การเดาคำถัดไปใช้แบบ cross-entropy คือ −ln ของโอกาสที่โมเดลให้คำเฉลย จึงสูงมากเมื่อโมเดลมั่นใจแต่ผิดดูคำศัพท์ทั้งหมด แบบที่ใช้กับการเดาคำถัดไปคือ cross-entropy:
ทำไมต้องมีลบและ ln (ลอการิทึมฐาน e)?
- ln ของโอกาสที่มากกว่า 0 แต่น้อยกว่า 1 ติดลบเสมอ เครื่องหมายลบจึงพลิกให้เป็นบวก
- ln เปลี่ยน "คูณโอกาสทั้งประโยค" ให้เป็น "บวก loss ทีละคำ" ดังนั้น log P ของทั้งประโยคในบทที่ 1 (ถ้าใช้ ln) ก็คือ −(loss รวม)
ทางลัด: 3.4197 = ln(e³ + e² + e¹ + e⁻¹) ซึ่งเท่ากันทุกคำ loss จึงเป็นแค่ 3.4197 ลบ คะแนนดิบ (logit)คะแนนที่โมเดลให้กับทุก token ว่าเข้ากับบริบทแค่ไหน ติดลบได้ และยังไม่ใช่ความน่าจะเป็นดูคำศัพท์ทั้งหมด ของคำเฉลย:
| เฉลย | คะแนน (logit) z | p | loss = 3.4197 − z |
|---|---|---|---|
| ปลา | 3 | 65.7% | 0.4197 |
| ข้าว | 2 | 24.2% | 1.4197 |
| หนู | 1 | 8.9% | 2.4197 |
| รถ | −1 | 1.2% | 4.4197 |
- p = 1 → loss = 0 เดาถูกเต็มร้อย
- p = 0.01 → loss = 4.6052
- p เข้าใกล้ 0 → loss พุ่งไม่จำกัด มั่นใจผิดจึงโดนหนัก
การฝึกคือการทำให้ loss เฉลี่ย ของแบบฝึกหัดนับล้านล้านข้อต่ำที่สุด
ลองกดเปลี่ยนเฉลยทีละคำแล้วดู loss:
loss = −ln p(คำเฉลย): มั่นใจและถูก loss ใกล้ 0 แต่มั่นใจผิดทาง loss พุ่งสูงมาก

มังคุด
ใช้ 1 − p ไม่ได้เหรอ ง่ายกว่าตั้งเยอะ?