Rychlost učení a moment hybnosti

Introduction to Deep Learning with PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Aktualizace vah pomocí SGD

  • Trénování neuronové sítě = řešení optimalizačního problému.

Optimalizátor stochastického gradientního sestupu (SGD)

sgd = optim.SGD(model.parameters(), lr=0.01, momentum=0.95)
  • Dva argumenty:
    • rychlost učení: řídí velikost kroku
    • moment hybnosti: přidává setrvačnost, aby se zabránilo uvíznutí
Introduction to Deep Learning with PyTorch

Vliv rychlosti učení: optimální hodnota

příklad optimální rychlosti učení

  • Velikost kroku se zmenšuje blízko nuly, jak gradient klesá
Introduction to Deep Learning with PyTorch

Vliv rychlosti učení: malá hodnota

příklad malé rychlosti učení

Introduction to Deep Learning with PyTorch

Vliv rychlosti učení: vysoká hodnota

příklad příliš vysoké rychlosti učení

Introduction to Deep Learning with PyTorch

Konvexní a nekonvexní funkce

Toto je konvexní funkce.

příklad konvexní funkce

Toto je nekonvexní funkce.

příklad nekonvexní funkce

  • Ztrátové funkce jsou nekonvexní
Introduction to Deep Learning with PyTorch

Bez momentu hybnosti

  • lr = 0.01 momentum = 0, po 100 krocích nalezeno minimum pro x = -1.23 a y = -0.14

příklad optimalizátoru uvízlého v lokálním minimu

Introduction to Deep Learning with PyTorch

S momentem hybnosti

  • lr = 0.01 momentum = 0.9, po 100 krocích nalezeno minimum pro x = 0.92 a y = -2.04

příklad optimalizace s momentem hybnosti

Introduction to Deep Learning with PyTorch

Shrnutí

$$

Rychlost učení Moment hybnosti
Řídí velikost kroku Řídí setrvačnost
Příliš vysoká → špatný výkon Pomáhá uniknout z lokálního minima
Příliš nízká → pomalý trénink Příliš malý → optimalizátor uvízne
Typický rozsah: 0,01 ($10^{-2}$) až 0,0001 ($10^{-4}$) Typický rozsah: 0,85 až 0,99
Introduction to Deep Learning with PyTorch

Pojďme si procvičit!

Introduction to Deep Learning with PyTorch

Preparing Video For Download...