CodeBlanks Logo Icon CodeBlanks

Loss hesabı

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()))       # True

Bü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

model.py
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

model.py
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.

Soru
kayip = ((tahmin - hedef) ** 2).____()
Cevap
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ı

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