İçeriğe geç
parazade
Yapay Zeka

Stokastik Gradyan İnişi Nedir?

İngilizce: Stochastic Gradient Descent

Yayın: · Son güncelleme:

Stokastik Gradyan İnişi Nedir? Kısaca

Stokastik gradyan inişi (SGD), bir modelin ağırlıklarını tüm veri seti yerine rastgele seçilen tek bir örnek ya da küçük bir veri grubu üzerinden hesaplanan gradyanla güncelleyen optimizasyon yöntemidir. Hızlı ve bellek dostudur; derin öğrenmenin temel yöntemlerinden biridir.

Stokastik Gradyan İnişi nedir?
İçindekiler
  1. Stokastik gradyan inişi nedir?
  2. Nasıl çalışır?
  3. Avantajları ve dezavantajları
  4. Geliştirilmiş türleri

Stokastik gradyan inişi nedir?

Stokastik gradyan inişi (İngilizce Stochastic Gradient Descent, kısaca SGD), klasik gradyan inişinin daha pratik bir türüdür. Klasik yöntemde her güncelleme için tüm veri setinin gradyanı hesaplanır; büyük veri setlerinde bu çok yavaştır. SGD ise gradyanı rastgele seçilen bir örnekten ya da küçük bir gruptan (mini-batch) tahmin eder ve ağırlıkları hemen günceller. "Stokastik" kelimesi bu rastgeleliği anlatır.

Nasıl çalışır?

  1. Veri seti karıştırılır ve küçük gruplara bölünür.
  2. Her grup için kayıp ve gradyan hesaplanır.
  3. Ağırlıklar şu kuralla güncellenir: yeni ağırlık = eski ağırlık − öğrenme oranı × gradyan.
  4. Tüm gruplar bitince bir epoch tamamlanır; süreç birçok epoch boyunca tekrarlanır.

Günümüzde "SGD" denince çoğu zaman mini-batch kullanan sürüm kastedilir. Grup büyüklüğü batch size hiperparametresiyle belirlenir.

Avantajları ve dezavantajları

  • Hız ve bellek: Her adımda verinin yalnızca küçük bir kısmı işlendiği için büyük veri setlerinde uygulanabilir.
  • Gürültü: Tahmin edilen gradyan gürültülüdür. Bu gürültü bazen modelin kötü yerel noktalardan kurtulmasına yardım eder, bazen de eğitimi dalgalı hâle getirir.
  • Ayar ihtiyacı: Öğrenme oranı iyi seçilmezse eğitim ya çok yavaş ilerler ya da kararsızlaşır.

Geliştirilmiş türleri

SGD'nin zayıf yanlarını gidermek için momentum eklenmiş SGD, RMSProp ve Adam gibi yöntemler geliştirildi. Yine de momentumlu SGD, özellikle bazı görüntü sınıflandırma modellerinde iyi genelleme sağladığı için hâlâ yaygın olarak kullanılır.

Sıkça Sorulan Sorular

SGD ile mini-batch gradyan inişi aynı şey mi?

Tam olarak değil. Klasik tanımda SGD her adımda tek örnek kullanır; mini-batch yöntemi küçük bir grup kullanır. Ancak günümüzde iki terim çoğu zaman birbirinin yerine kullanılır.

SGD neden Adam'dan daha iyi sonuç verebilir?

Bazı görevlerde momentumlu SGD, iyi ayarlandığında test verisinde daha iyi genelleme sağlayabilir. Bu durum probleme bağlıdır ve kesin bir kural değildir.

İlgili terimler

Gradyan İnişi(Gradient Descent)Gradyan inişi, bir modelin kayıp fonksiyonunu en aza indirmek için parametreleri, kaybın en hızlı azaldığı yönde (gradyanın tersine) küçük adımlarla tekrar tekrar güncelleyen optimizasyon yöntemidir.Optimizasyon Algoritması(Optimizer)Optimizasyon algoritması (optimizer), bir makine öğrenmesi modelinin ağırlıklarını kayıp fonksiyonunu azaltacak yönde adım adım güncelleyen yöntemdir. SGD, Adam ve RMSProp gibi algoritmalar, eğitimin ne kadar hızlı ve kararlı ilerleyeceğini belirler.MomentumMomentum, makine öğrenmesinde gradyan inişine geçmiş adımların yönünü ekleyerek ağırlık güncellemelerini hızlandıran ve dalgalanmayı azaltan bir optimizasyon tekniğidir. Fizikteki eylemsizlik fikrinden esinlenir; aynı yönde ilerleyen adımlar birikerek büyür.Batch SizeBatch size, makine öğrenmesi modelinin eğitiminde parametreler bir kez güncellenmeden önce birlikte işlenen örnek sayısıdır; bellek kullanımı, eğitim hızı ve kararlılığını doğrudan etkiler.Ağırlık(Weight)Ağırlık (weight), yapay sinir ağlarında ve diğer makine öğrenmesi modellerinde her girdinin ya da bağlantının çıktıya ne kadar katkı yapacağını belirleyen ve eğitim sırasında veriden öğrenilen sayısal parametredir.Öğrenme Oranı(Learning Rate)Öğrenme oranı, gradyan inişi sırasında model parametrelerinin her adımda ne kadar büyük miktarda değiştirileceğini belirleyen ve eğitimin başarısını en çok etkileyen hiperparametrelerden biridir.