Learning rate en momentum

Introductie tot Deep Learning met PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Gewichten updaten 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 niet vast te lopen
Introductie tot Deep Learning met PyTorch

Effect van de learning rate: optimale learning rate

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

voorbeeld van kleine learning rate

Introductie tot Deep Learning met PyTorch

Effect van de learning rate: hoge learning rate

voorbeeld van te hoge learning rate

Introductie tot Deep Learning met PyTorch

Convexe en niet-convexe functies

Dit is een convexe functie.

voorbeeld van convexe functie

Dit is een niet-convexe functie.

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

voorbeeld waarbij de optimizer 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

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 uit lokaal minimum te komen
Te laag → trage training Te klein → optimizer blijft steken
Typisch bereik: 0.01 ($10^{-2}$) en 0.0001 ($10^{-4}$) Typisch bereik: 0.85 tot 0.99
Introductie tot Deep Learning met PyTorch

Laten we oefenen!

Introductie tot Deep Learning met PyTorch

Preparing Video For Download...