Loss hesabı
- Makine Öğrenmesi kursu
- İleri seviye
- Ders 27/78
- 7 dk
MSE loss hesaplarsın.
Loss hesabı
Regresyonda kayıp ortalama kare hatadır (MSE). Kayıp skaler olduğu için doğrudan backward() çağrılabilir:
def mse(tahmin, hedef):
return ((tahmin - hedef) ** 2).mean()
kayip = mse(model(x), y)
kayip.backward()
print(w.grad, b.grad)Parametreler sıfırken gradyanlar negatiftir: kaybı azaltmak için w ve b'nin artması gerektiğini söylerler.
Gradyanı elle doğrulamak
MSE'nin türevleri kapalı biçimde bilinir: ∂L/∂w = mean(2(ŷ - y)·x), ∂L/∂b = mean(2(ŷ - y)). Autograd sonucunu bu formüllerle karşılaştırmak, kodun doğru olduğunu gösterir:
fark = model(x) - y
print(torch.allclose(w.grad, (2 * fark * x).mean())) # True
print(torch.allclose(b.grad, (2 * fark).mean())) # TrueBüyük modellerde elle türev yazılmaz ama bu tür küçük testler autograd mantığını kavramaya yardım eder.
Uygulama İlk kayıp ve gradyan
Parametreler sıfırken MSE kaybını hesapla ve backward() çağır. Kaybı, w.grad ve b.grad değerlerini item() ile aynı satırda yazdır. (y değerleri 2, 5, ..., 29; ortalama kare = 314.5.)
Başlangıç kodu
import torch
x = torch.arange(10, dtype=torch.float32).unsqueeze(1)
y = 3 * x + 2
w = torch.zeros(1, requires_grad=True)
b = torch.zeros(1, requires_grad=True)
def model(x):
return x * w + b
# buraya yazÖrnek çözüm
import torch
x = torch.arange(10, dtype=torch.float32).unsqueeze(1)
y = 3 * x + 2
w = torch.zeros(1, requires_grad=True)
b = torch.zeros(1, requires_grad=True)
def model(x):
return x * w + b
kayip = ((model(x) - y) ** 2).mean()
kayip.backward()
print(kayip.item(), w.grad.item(), b.grad.item())Beklenen çıktı
314.5 -189.0 -31.0
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Gradyan negatifse gradyan inişi parametreyi nasıl değiştirir?
- Azaltır
- Sıfırlar
- Değiştirmez
- Artırır Doğru cevap
Açıklama: w ← w - lr·grad; negatif grad çıkarılınca w artar.
2 Ortalama kare hatayı hesapla.
kayip = ((tahmin - hedef) ** 2).____()
kayip = ((tahmin - hedef) ** 2).mean()
Açıklama: MSE farkların karelerinin ortalamasıdır.
3 Türevleri eşleştir.
| Kavram | Anlamı |
|---|---|
∂L/∂w |
mean(2(ŷ - y)·x) |
∂L/∂b |
mean(2(ŷ - y)) |
negatif gradyan |
Parametre artmalı |
MSE |
Regresyon kaybı |