Ana içeriğe geç

Gradyan İnişi

İngilizcesi
Gradient Descent
Okunuşu
greydiınt disent

Günlük kullanımda iki ad da yaygın.

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/gradient-descent

Kısaca

Gradyan inişi, makine öğrenmesi modellerinin parametrelerini hatayı azaltan yönde tekrar tekrar hafifçe iterek modelleri eğiten bir optimizasyon algoritmasıdır.

Gradyan inişi (gradient descent) nedir?

Gradyan inişi, çoğu makine öğrenmesi modelinin öğrenmek için kullandığı algoritmadır. Eğitim, tahmin yapmak için kullandığı iç sayılar olan parametreleri rastgele ya da varsayılan değerlere ayarlanmış bir modelle başlar. Bir kayıp fonksiyonu, modelin eğitim verisindeki tahminlerinin ne kadar yanlış olduğunu ölçer ve gradyan inişinin görevi bu kaybı olabildiğince küçük yapan parametre değerlerini bulmaktır.

Her adımda algoritma, her parametre biraz artırılsaydı kaybın ne kadar değişeceğini söyleyen gradyanı hesaplar. Sonra her parametreyi gradyanın tersi yönde, yani yokuş aşağı küçük bir miktar hareket ettirir ve bunu tekrarlar. Her adımın büyüklüğünü öğrenme oranı (learning rate) belirler: çok büyükse eğitim hedefi aşar ve kararsızlaşır, çok küçükse sürünür. Milyonlarca örnek üzerinde gradyanı hesaplamak yavaş olduğundan çoğu eğitim, gradyanı her seferinde küçük bir rastgele örnek grubundan tahmin eden stokastik ya da mini-batch gradyan inişini kullanır.

Klasik benzetme, yoğun sisin içinde bir dağdan inmektir. Vadiyi göremezsiniz ama ayaklarınızın altındaki zeminin hangi yöne eğimli olduğunu hissedebilirsiniz; bu yüzden yokuş aşağı bir adım atar, tekrar kontrol eder ve zemin düzleşene kadar sürdürürsünüz. Gradyan inişi ve yaygın kullanılan Adam optimizer gibi varyantları, doğrusal regresyondan derin sinir ağlarına ve büyük dil modellerine kadar hemen her şeyi eğitir.

Gradyan inişi çoğu zaman geri yayılımla (backpropagation) karıştırılır. Geri yayılım, bir sinir ağındaki gradyanları çıktı katmanından geriye doğru çalışarak verimli biçimde hesaplayan yöntemdir; gradyan inişi ise bu gradyanları ağırlıkları güncellemek için kullanan kuraldır ve eğitim ikisini de gerektirir. Gradyan inişi ayrıca mümkün olan en iyi çözümü garanti etmez, çünkü yerel bir minimuma ya da düz bir bölgeye takılabilir; ancak büyük sinir ağlarında bulduğu çözümler genellikle yeterince iyidir.

Önemli noktalar

  • Gradyan inişi, bir modelin parametrelerini adım adım ayarlayarak kayıp fonksiyonunu minimize eder.
  • Her adım parametreleri, hatanın en hızlı arttığı yön olan gradyanın tersine hareket ettirir.
  • Öğrenme oranı adım boyutunu belirler ve eğitimin başarılı olup olmayacağını güçlü biçimde etkiler.
  • Mini-batch gradyan inişi, gradyanı küçük rastgele veri gruplarından tahmin eder.
  • Geri yayılım gradyanları hesaplar; gradyan inişi bunları ağırlıkları güncellemek için kullanır.

Örnek

Gradyan inişiyle tek bir ağırlığı öğrenmekpython
# Learn the weight w in y = w * x from examples where the true answer is w = 2
xs = [1.0, 2.0, 3.0, 4.0]
ys = [2.0, 4.0, 6.0, 8.0]

w = 0.0              # start with a poor guess
learning_rate = 0.01

for step in range(200):
    # Gradient of the mean squared error with respect to w
    grad = sum(2 * (w * x - y) * x for x, y in zip(xs, ys)) / len(xs)
    w -= learning_rate * grad  # take a small step downhill

print(round(w, 3))  # 2.0

Sık sorulan sorular

Gradyan inişinde öğrenme oranı nedir?

Öğrenme oranı, algoritmanın her güncellemede ne kadar büyük bir adım atacağını kontrol eden bir sayıdır. Çok yüksekse kayıp sıçrayıp durabilir ya da patlayabilir; çok düşükse eğitim çok uzun sürer. Bu nedenle ayarlanması gereken en önemli ayarlardan biridir.

Gradyan inişi ile geri yayılım arasındaki fark nedir?

Geri yayılım, bir sinir ağındaki her ağırlığa göre kaybın gradyanını hesaplar. Gradyan inişi ise bu gradyanları ağırlıkları güncellemek için kullanır; yani geri yayılım hangi yöne gidileceğini bulur, gradyan inişi ise gerçekten hareket eder.

Stokastik gradyan inişi nedir?

Stokastik gradyan inişi (SGD), parametreleri tüm veri kümesi yerine tek bir örnekten ya da küçük bir rastgele gruptan elde edilen gradyanla günceller. Her adım daha gürültülüdür ama çok daha ucuzdur; bu da büyük veri kümelerinde eğitimi pratik hale getirir.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar