學習率與動量

使用 PyTorch 的深度學習入門

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

用 SGD 更新權重

  • 訓練神經網路 = 解一個最佳化問題

隨機梯度下降(SGD)最佳化器

sgd = optim.SGD(model.parameters(), lr=0.01, momentum=0.95)
  • 兩個參數:
    • learning rate:控制步長
    • momentum:加入慣性以避免卡住
使用 PyTorch 的深度學習入門

學習率的影響:最佳學習率

學習率最佳的例子

  • 當梯度變小時,靠近 0 的步長會變小
使用 PyTorch 的深度學習入門

學習率的影響:學習率小

學習率過小的例子

使用 PyTorch 的深度學習入門

學習率的影響:學習率大

學習率過大的例子

使用 PyTorch 的深度學習入門

凸與非凸函式

這是凸函式

凸函式範例

這是非凸函式

非凸函式範例

  • 損失函式通常是非凸
使用 PyTorch 的深度學習入門

Without momentum

  • lr = 0.01momentum = 0,100 步後在 x = -1.23y = -0.14 找到極小值

最佳化器卡在局部極小值的例子

使用 PyTorch 的深度學習入門

有動量

  • lr = 0.01momentum = 0.9,100 步後在 x = 0.92y = -2.04 找到極小值

含動量的最佳化範例

使用 PyTorch 的深度學習入門

重點整理

$$

Learning Rate Momentum
控制步長 控制慣性
過大 → 表現不佳 有助逃離局部極小值
過小 → 訓練緩慢 過小 → 最佳化器易卡住
常見範圍:0.01($10^{-2}$)與 0.0001($10^{-4}$) 常見範圍:0.85 到 0.99
使用 PyTorch 的深度學習入門

一起來練習吧!

使用 PyTorch 的深度學習入門

Preparing Video For Download...