บทที่ 4 · AI เรียนรู้ยังไง หน้า 5/13 ~2.5 นาที

Gradient descent: เดินลงก้นชาม

รู้แล้วว่าเดาผิดแค่ไหน คำถามต่อไปคือ จะขยับตัวเลขไปทางไหน และเท่าไร

เริ่มจากของเล่น: ร้านชาไทยปรับสูตร ให้ w = จำนวนช้อนน้ำตาล ลูกค้าชอบ 3 ช้อนพอดี ความผิดพลาดคือ

เริ่มที่ w = 0 ได้ loss = 9

ความชัน (gradient)ชุดตัวเลขที่บอกว่าถ้าขยับพารามิเตอร์แต่ละตัวขึ้นนิดหนึ่ง loss จะเพิ่มหรือลดเท่าไร ใช้บอกทิศทางที่ต้องปรับดูคำศัพท์ทั้งหมด คือความชันของ loss ตรงจุดที่ยืน ชามนี้มีความชัน 2(w − 3) ที่ w = 0 ได้ −6 ค่าติดลบแปลว่า loss ลดเมื่อเพิ่ม w จึงก้าวไปทางขวา

การไล่ลงตามความชัน (gradient descent)วิธีฝึกโมเดลโดยขยับพารามิเตอร์สวนทาง gradient ทีละก้าวเล็กๆ ให้ loss ลดลงเรื่อยๆดูคำศัพท์ทั้งหมด คือก้าวสวนความชันทีละก้าว:

η (อ่านว่า อีตา) คือขนาดก้าว เรียกว่า อัตราการเรียนรู้ (learning rate)ขนาดของแต่ละก้าวตอนปรับพารามิเตอร์ (มักเขียนว่า η) เล็กไปเรียนช้า ใหญ่ไปก้าวเลยจนแกว่งหรือพังดูคำศัพท์ทั้งหมด

  • η = 0.1: 0 → 0.6 → 1.08 → 1.464 … ใช้ 19 ก้าว กว่าจะถึงก้นชาม ช้าแต่ปลอดภัย
  • η = 0.5: ลองเองในกล่องด้านล่าง
  • η = 1.1: 0 → 6.6 → −1.32 → 8.184 … และ loss 9 → 12.96 → 18.6624 … ยิ่งเดินยิ่งห่าง จนหลุดกราฟในก้าวที่ 5 (w = 10.465)

หา η ที่ถึงก้นชาม (ห่าง 3 ไม่เกิน 0.05) ภายใน 5 ก้าว:

ปรับสูตรชาไทยหวานน้อย

loss = (น้ำตาล − 3)² ลูกค้าชอบน้ำตาล 3 ช้อนพอดี เริ่มจาก 0 ช้อน

w ← w − η × ความชัน ความชัน = 2(w − 3)

ความชันตอนนี้ = −6.0000

ก้าวสั้น ช้าแต่ชัวร์

ก้าวที่ 0 · น้ำตาล w = 0.0000 ช้อน · loss = 9.0000

เส้นทาง 6 ก้าวล่าสุด
ก้าวwloss
00.00009.0000

ถึงก้นชาม (ห่างจาก 3 ไม่เกิน 0.05) ภายใน 5 ก้าว

ตารางทุกก้าวของ น้ำตาล w และ loss (สำหรับโปรแกรมอ่านหน้าจอ)
ก้าวwloss
00.00009.0000
learning rate η0.10ก้าวสั้น ช้าแต่ชัวร์

ถ้าติด: ค่อยๆ เพิ่มจาก 0.1 ถ้าแกว่งแรงให้ลด

gradient คือความชันของ loss: ก้าวสวนความชันแล้ว loss ลด learning rate เล็กไปเรียนช้า ใหญ่ไปก้าวเลยจนแกว่งหรือหลุด

loss แบบไหนก็ใช้วิธีเดียวกัน หน้าถัดไปจะใช้กับ −ln p ของ "แมวชอบกิน ___"

มังคุด มาสคอตมังคุด

มังคุด

ทำไมไม่ตั้ง 0.5 ไปเลยล่ะ ก้าวเดียวถึง?