Autograd nedir?
- Makine Öğrenmesi kursu
- İleri seviye
- Ders 19/78
- 5 dk
Autograd, tensor işlemlerinin gradyanlarını otomatik hesaplar.
Autograd nedir?
Sinir ağlarını eğitmek, kaybın her parametreye göre türevini (gradyanını) bilmeyi gerektirir. Autograd, tensörlerle yapılan işlemleri kaydeder ve zincir kuralını uygulayarak bu türevleri otomatik hesaplar:
x = torch.tensor(3.0, requires_grad=True)
y = x ** 2 + 2 * x # y = x² + 2x
y.backward() # dy/dx hesapla
print(x.grad.item()) # 8.0 (2x + 2, x = 3)Milyonlarca parametreli ağlarda türevleri elle yazmak imkânsızdır; autograd derin öğrenmeyi pratik yapan temel araçtır.
Gradyan ne söyler?
Gradyan, kaybın en hızlı arttığı yönü gösterir. Parametreyi gradyanın tersi yönünde küçük bir adım oynatmak kaybı azaltır; bu, gradyan inişinin (gradient descent) özüdür:
w = torch.tensor(5.0, requires_grad=True)
kayip = (w - 2) ** 2 # en küçüğü w = 2
kayip.backward()
print(w.grad.item()) # 6.0: pozitif, w'yi azalt
with torch.no_grad():
w -= 0.1 * w.grad # w = 4.4, 2'ye yaklaştıBu döngü binlerce kez tekrarlanınca parametreler kaybı en aza indiren değerlere ilerler.
Uygulama İlk türev
x = torch.tensor(2.0, requires_grad=True) için y = x ** 3 - 4 * x hesapla ve backward() çağır. y.item() ve x.grad.item() değerlerini aynı satırda yazdır.
Başlangıç kodu
import torch
# buraya yazÖrnek çözüm
import torch
x = torch.tensor(2.0, requires_grad=True)
y = x ** 3 - 4 * x
y.backward()
print(y.item(), x.grad.item())Beklenen çıktı
0.0 8.0
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>y = 3 * x ** 2</code> için x = 2 iken <code>x.grad</code> kaç olur?
- 6
- 24
- 3
- 12 Doğru cevap
Açıklama: dy/dx = 6x; x = 2 için 12.
2 Türevleri hesaplat.
kayip.____()
kayip.backward()
Açıklama: backward() kayıptan geriye doğru tüm gradyanları hesaplar.
3 Kavramları eşleştir.
| Kavram | Anlamı |
|---|---|
requires_grad |
Türevi izlenir |
backward() |
Gradyanları hesapla |
x.grad |
Hesaplanan türev |
gradyan inişi |
Tersi yönde adım |