SGD
- Makine Öğrenmesi kursu
- İleri seviye
- Ders 70/78
- 5 dk
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 olurduMomentum 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
import torch
w = torch.tensor(0.0, requires_grad=True)
# buraya yazÖrnek çözüm
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.
opt = torch.optim.SGD(params, lr=0.01, ____=0.9)
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 |