Швидкість навчання та моментум

Вступ до Deep Learning з PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Оновлення ваг за допомогою SGD

  • Навчання нейромережі = розв'язання оптимізаційної задачі.

Оптимізатор Stochastic Gradient Descent (SGD)

sgd = optim.SGD(model.parameters(), lr=0.01, momentum=0.95)
  • Два аргументи:
    • learning rate: керує розміром кроку
    • momentum: додає інерцію, щоб не застрягати
Вступ до Deep Learning з PyTorch

Вплив швидкості навчання: оптимальна швидкість

приклад оптимальної швидкості навчання

  • Розмір кроку зменшується біля нуля, коли градієнт спадає
Вступ до Deep Learning з PyTorch

Вплив швидкості навчання: мала швидкість

приклад малої швидкості навчання

Вступ до Deep Learning з PyTorch

Вплив швидкості навчання: висока швидкість

надто велике значення швидкості навчання

Вступ до Deep Learning з PyTorch

Опуклі й неопуклі функції

Це опукла функція.

приклад опуклої функції

Це неопукла функція.

приклад неопуклої функції

  • Функції втрат зазвичай неопуклі
Вступ до Deep Learning з PyTorch

Без моментуму

  • lr = 0.01 momentum = 0, після 100 кроків мінімум знайдено при x = -1.23 та y = -0.14

приклад застрягання оптимізатора в локальному мінімумі

Вступ до Deep Learning з PyTorch

З моментумом

  • lr = 0.01 momentum = 0.9, після 100 кроків мінімум знайдено при x = 0.92 та y = -2.04

приклад оптимізації з моментумом

Вступ до Deep Learning з PyTorch

Підсумок

$$

Learning Rate Momentum
Керує розміром кроку Керує інерцією
Надто велика → низька якість Допомагає вийти з локального мінімуму
Надто мала → повільне навчання Надто малий → оптимізатор застрягає
Типовий діапазон: 0.01 ($10^{-2}$) і 0.0001 ($10^{-4}$) Типовий діапазон: 0.85–0.99
Вступ до Deep Learning з PyTorch

Давайте потренуємось!

Вступ до Deep Learning з PyTorch

Preparing Video For Download...