Learning rate en momentum

Introductie tot Deep Learning met PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Gewichten bijwerken met SGD

  • Een neuraal netwerk trainen = een optimalisatieprobleem oplossen.

Stochastic Gradient Descent (SGD)-optimizer

sgd = optim.SGD(model.parameters(), lr=0.01, momentum=0.95)
  • Twee argumenten:
    • learning rate: bepaalt de stapgrootte
    • momentum: voegt traagheid toe om vastlopen te voorkomen
Introductie tot Deep Learning met PyTorch

Effect van de learning rate: optimale learning rate

een voorbeeld van optimale learning rate

  • Stapgrootte neemt af nabij nul als de gradiënt kleiner wordt
Introductie tot Deep Learning met PyTorch

Effect van de learning rate: kleine learning rate

een voorbeeld van kleine learning rate

Introductie tot Deep Learning met PyTorch

Effect van de learning rate: hoge learning rate

een te hoge waarde van de learning rate

Introductie tot Deep Learning met PyTorch

Convexe en niet-convexe functies

Dit is een convexe functie.

een voorbeeld van convexe functie

Dit is een niet-convexe functie.

een voorbeeld van niet-convexe functie

  • Lossfuncties zijn niet-convex
Introductie tot Deep Learning met PyTorch

Zonder momentum

  • lr = 0.01 momentum = 0, na 100 stappen minimum gevonden bij x = -1.23 en y = -0.14

een voorbeeld van een optimizer die vastzit in een lokaal minimum

Introductie tot Deep Learning met PyTorch

Met momentum

  • lr = 0.01 momentum = 0.9, na 100 stappen minimum gevonden bij x = 0.92 en y = -2.04

een voorbeeld van optimalisatie met momentum

Introductie tot Deep Learning met PyTorch

Samenvatting

$$

Learning rate Momentum
Bepaalt de stapgrootte Bepaalt de traagheid
Te hoog → slechte prestaties Helpt lokale minima te ontwijken
Te laag → traag trainen Te klein → optimizer blijft hangen
Typisch bereik: 0.01 ($10^{-2}$) en 0.0001 ($10^{-4}$) Typisch bereik: 0.85–0.99
Introductie tot Deep Learning met PyTorch

Laten we oefenen!

Introductie tot Deep Learning met PyTorch

Preparing Video For Download...