Learning rate และ momentum

Deep Learning เบื้องต้นด้วย PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

การอัปเดตน้ำหนักด้วย SGD

  • การเทรนโครงข่ายประสาทเทียม = การแก้ ปัญหาการหาค่าเหมาะสมที่สุด

Stochastic Gradient Descent (SGD) optimizer

sgd = optim.SGD(model.parameters(), lr=0.01, momentum=0.95)
  • อาร์กิวเมนต์สองตัว:
    • learning rate: ควบคุมขนาดก้าว
    • momentum: เพิ่มแรงเฉื่อยเพื่อไม่ให้ติดขัด
Deep Learning เบื้องต้นด้วย PyTorch

ผลกระทบของ learning rate: learning rate ที่เหมาะสม

ตัวอย่าง learning rate ที่เหมาะสม

  • ขนาดก้าวลดลงเมื่อใกล้ศูนย์ตามที่ gradient มีค่าน้อยลง
Deep Learning เบื้องต้นด้วย PyTorch

ผลกระทบของ learning rate: learning rate ที่เล็กเกินไป

ตัวอย่าง learning rate ที่เล็กเกินไป

Deep Learning เบื้องต้นด้วย PyTorch

ผลกระทบของ learning rate: learning rate ที่สูงเกินไป

ตัวอย่าง learning rate ที่สูงเกินไป

Deep Learning เบื้องต้นด้วย PyTorch

ฟังก์ชันคอนเวกซ์และนอนคอนเวกซ์

นี่คือฟังก์ชันคอนเวกซ์

ตัวอย่างฟังก์ชันคอนเวกซ์

นี่คือฟังก์ชันนอนคอนเวกซ์

ตัวอย่างฟังก์ชันนอนคอนเวกซ์

  • ฟังก์ชัน loss เป็นนอนคอนเวกซ์
Deep Learning เบื้องต้นด้วย PyTorch

ไม่มี momentum

  • lr = 0.01 momentum = 0 หลัง 100 ก้าว พบค่าต่ำสุดที่ x = -1.23 และ y = -0.14

ตัวอย่าง optimizer ที่ติดอยู่ใน local minimum

Deep Learning เบื้องต้นด้วย PyTorch

มี momentum

  • lr = 0.01 momentum = 0.9 หลัง 100 ก้าว พบค่าต่ำสุดที่ x = 0.92 และ y = -2.04

ตัวอย่างการ optimize ด้วย momentum

Deep Learning เบื้องต้นด้วย PyTorch

สรุป

$$

Learning Rate Momentum
ควบคุมขนาดก้าว ควบคุมแรงเฉื่อย
สูงเกินไป → ประสิทธิภาพต่ำ ช่วยหลุดจาก local minimum
ต่ำเกินไป → เทรนช้า เล็กเกินไป → optimizer ติดขัด
ช่วงปกติ: 0.01 ($10^{-2}$) ถึง 0.0001 ($10^{-4}$) ช่วงปกติ: 0.85 ถึง 0.99
Deep Learning เบื้องต้นด้วย PyTorch

มาฝึกกันเถอะ!

Deep Learning เบื้องต้นด้วย PyTorch

Preparing Video For Download...