ที่มาของสูตร p − y
Advanced · ให้เห็นภาพรวม ข้ามได้ ไม่นับเป็นเงื่อนไขจบบท ข้ามไปหน้าถัดไป →
หน้าเสริม ข้ามได้
ขั้น 1 — เขียน loss ใหม่
t คือคำเฉลย เช่น 3.4197 − 3 = 0.4197 ทางลัดเดียวกับหน้า loss
ขั้น 2 — หาความชันทีละพจน์
- ความชันของพจน์แรกเทียบกับ คือ ก็คือ
- ความชันของ คือ −1 ถ้า i เป็นคำเฉลย และ 0 ถ้าไม่ใช่
รวมกันได้
ขั้น 3 — ตรวจด้วยตัวเลข
ขยับคะแนน ปลา จาก 3 เป็น 3.01 loss ลดจาก 0.4197 เป็น 0.4163 (ลด 0.0034) ตรงกับสูตร −0.3428 × 0.01 ≈ −0.0034 ✔
ขั้น 4 — ไปถึงพารามิเตอร์ด้วยกฎลูกโซ่
สมมติ z = w × x โดยค่าขาเข้า (input) x = 0.5 และพารามิเตอร์ w = 6 จึงได้ z = 3 ความชันของ loss เทียบกับ w คือ (p − y) × x = −0.3428 × 0.5 = −0.1714
ก้าวด้วย η = 1 ได้ w = 6 → 6.1714 และ z เป็น 3.0857 นี่คือ backprop ฉบับย่อ: เอาสัญญาณที่ส่งมาคูณความชันเฉพาะจุด
ขั้น 5 — ของจริงเพิ่มอะไรอีก
- optimizer เช่น AdamW หรือตัวที่ใหม่กว่า: ปรับก้าวแยกรายพารามิเตอร์ และมี weight decay (ดึงพารามิเตอร์ให้เล็กลงนิดหนึ่งทุกก้าว)
- gradient clipping: ตัดความชันที่พุ่งผิดปกติ
- mixed precision: คำนวณส่วนใหญ่ด้วยเลข 16 บิตหรือต่ำกว่าเพื่อความเร็ว แต่เก็บสำเนาหลักของพารามิเตอร์ไว้ละเอียดกว่า เพราะก้าวเล็กๆ จะหายไปถ้าปัดหยาบ
p − y ไม่ใช่เรื่องบังเอิญ: ln ใน loss หักล้างกับ e ใน softmax พอดี gradient จึงเป็นแค่ "ที่ทาย ลบ ที่ถูก"

มังคุด
สูตรสั้นขนาดนี้ เป็นเพราะคนเลือก softmax คู่กับ −ln มาให้เข้ากันเหรอ?