CodeBlanks Logo Icon CodeBlanks

SGD

SGD (Stochastic Gradient Descent), her örnekte ağırlıkları günceller.

SGD ve momentum

"Stokastik" adı, gradyanın tüm veri yerine rastgele bir toplu veriden hesaplanmasından gelir; gürültülüdür ama ucuzdur. Momentum, geçmiş gradyanların hareketli toplamını tutar: tutarlı yönlerde hızlanır, zikzaklarda yavaşlar:

# PyTorch momentum kuralı:
# buf = momentum · buf + g
# p  -= lr · buf
opt = torch.optim.SGD(model.parameters(), lr=0.01, momentum=0.9)

Momentum 0.9 ile adım, sabit gradyan altında tek bir gradyanın yaklaşık 10 katına ulaşır (1 / (1 - 0.9)).

Momentum adım adım

w = 0'dan f(w) = (w - 3)² için lr = 0.1, momentum = 0.9 ile ilk iki adım:

# adım 1: g = -6,   buf = -6,                 w = 0 + 0.6 = 0.6
# adım 2: g = -4.8, buf = 0.9·(-6) - 4.8 = -10.2, w = 0.6 + 1.02 = 1.62
# düz SGD ile 2. adım sonrası w = 1.08 olurdu

Momentum optimumu aşıp geri dönebilir; büyük momentum değerleri salınım üretir.

Uygulama Momentumu gör

f(w) = (w - 3)² için SGD([w], lr=0.1, momentum=0.9) ile 2 adım at; her adımdan sonra w'yi round(..., 3) ile alt alta yazdır.

Başlangıç kodu

model.py
import torch

w = torch.tensor(0.0, requires_grad=True)

# buraya yaz

Örnek çözüm

model.py
import torch

w = torch.tensor(0.0, requires_grad=True)

opt = torch.optim.SGD([w], lr=0.1, momentum=0.9)
for _ in range(2):
    opt.zero_grad()
    ((w - 3) ** 2).backward()
    opt.step()
    print(round(w.item(), 3))

Beklenen çıktı

0.6
1.62

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Momentum dar ve uzun bir vadide neden yardımcı olur?

  • Gradyanı yok sayar
  • Yardımcı olmaz
  • Vadi boyunca tutarlı yönü biriktirir, yan salınımları söndürür Doğru cevap
  • Öğrenme oranını sıfırlar

Açıklama: Zikzak yapan bileşenler birbirini götürür, ilerleyen bileşen birikir.

2 Momentumlu SGD kur.

Soru
opt = torch.optim.SGD(params, lr=0.01, ____=0.9)
Cevap
opt = torch.optim.SGD(params, lr=0.01, momentum=0.9)

Açıklama: momentum geçmiş gradyanların ağırlığıdır.

3 Değerleri eşleştir (lr = 0.1, momentum = 0.9).

Kavram Anlamı
1. adım sonrası w 0.6
2. adım sonrası w 1.62
düz SGD 2. adım 1.08
1 / (1 - 0.9) 10 kat hızlanma

İleri seviye bölümündeki tüm dersler