Gradyan (Gradient)
Araç kavramlarıGradyan nedir?
Gradyan (gradient), bir fonksiyonun tüm girdilerine göre kısmi türevlerinden oluşan bir vektördür. Günlük dille söylersek, bir tepenin üzerinde durduğunu düşün: gradyan sana "en dik yokuş şu tarafta" diyen oktur. Makine öğrenmesinde bu tepe, modelin hata yüzeyidir; yani loss fonksiyonunun, modelin milyonlarca parametresine göre aldığı değerlerin haritası.
Gradyanın iki bilgisi vardır: yön ve büyüklük. Yön, hatanın hangi tarafa doğru arttığını; büyüklük ise o yöndeki eğimin ne kadar sert olduğunu söyler.
Nasıl çalışır?
Eğitim sırasında model önce bir tahmin üretir, sonra bu tahminin gerçek değerden ne kadar saptığı loss fonksiyonuyla ölçülür. Ardından backpropagation devreye girer ve zincir kuralı sayesinde her bir ağırlığın bu hataya ne kadar katkı yaptığını hesaplar. Ortaya çıkan sayıların toplamı gradyandır.
Gradyan hatanın arttığı yönü gösterdiği için optimizer bunun tam tersine adım atar. Gradient descent tam olarak budur: gradyanın eksi yönünde, learning rate kadar küçük bir adım. Bu adım binlerce, hatta milyonlarca kez tekrarlanır ve model yavaş yavaş hata yüzeyinin çukur bölgelerine iner.
Gradyan her zaman uysal davranmaz. Çok derin ağlarda katmanlar boyunca geriye taşınırken sıfıra yaklaşabilir (vanishing gradient) ya da kontrolsüzce büyüyebilir (exploding gradient). Gradient clipping, normalizasyon katmanları ve residual bağlantılar bu sorunları dizginlemek için geliştirildi.
Neden önemli?
Bugünkü derin öğrenmenin neredeyse tamamı gradyana dayanıyor. Dil modelleri, görüntü üreticiler, ses modelleri; hepsi gradyan temelli optimizasyonla eğitiliyor. Gradyanı anlamadan learning rate'in neden önemli olduğunu, eğitimin neden bazen patladığını ya da bir modelin neden takılıp kaldığını kavramak zor.
Gradyan aynı zamanda yorumlanabilirlik araştırmalarında da kullanılır: bir girdinin çıktıya ne kadar etki ettiğini görmek için gradyana bakılır.
Kullanım alanları
- Model eğitimi: SGD, Adam ve türevi tüm optimizer'lar gradyanla çalışır.
- Fine-tuning: Hazır bir modeli kendi verinle uyarlarken yine gradyan hesaplanır.
- Açıklanabilirlik: Saliency map gibi yöntemler, hangi piksel veya token'ın karara etki ettiğini gradyanla gösterir.
- Adversarial örnekler: Modeli yanıltan küçük gürültüler gradyan yönünde üretilir.
- Bellek optimizasyonu: Gradient accumulation ve gradient checkpointing, büyük modelleri sınırlı VRAM'de eğitmeyi mümkün kılar.
Ilgili terimler
