Gradyan iniş ve stokastik gradyan iniş (SGD), bir fonksiyonu en aza indirmek için kullanılan optimizasyon algoritmalarıdır ve genellikle bir modeldeki hatanın en aza indirilmesiyle ilişkilendirilir.
İkisi arasındaki temel farklar şunlardır:
Degrade İniş (GD)
-
Standart gradyan inişinde algoritma, tüm eğitim veri setini kullanarak maliyet fonksiyonunun gradyanını hesaplar.
-
Tüm veri kümesinin eğiminin negatifiyle orantılı adımlar atarak model parametrelerini günceller.
-
Bu yöntem minimuma yakınsamayı garanti eder (dışbükeylik ve uygun öğrenme oranları gibi belirli koşullar göz önüne alındığında), ancak büyük veri kümeleri için hesaplama açısından pahalı olabilir.
Stokastik Gradyan İnişi (SGD)
-
Stokastik gradyan inişinde algoritma, her bir eğitim örneği için maliyet fonksiyonunun gradyanını kullanarak model parametrelerini günceller.
-
Tek veya küçük eğitim örnekleri gruplarına dayalı olarak sık güncellemeler yapar, bu da onu büyük veri kümeleri için degrade inişinden çok daha hızlı yapar.
-
Bununla birlikte, gürültülü güncellemeler nedeniyle SGD'de daha fazla dalgalanma vardır ve mutlaka mutlak minimuma yaklaşmaz; minimuma yakın bir alana yaklaşarak onun etrafında salınır.
Biri diğerinin üzerine ne zaman kullanılır:
-
Degrade İniş (GD): Veri kümesi nispeten küçük olduğunda uygundur ve belleğe sığabilir. Maliyet fonksiyonu düzgün ve iyi durumdaysa, GD verimli bir şekilde minimuma yakınsabilir.
-
Stokastik Gradyan İnişi (SGD): Tüm veri kümesi için hesaplama gradyanlarının hesaplama açısından pahalı hale geldiği büyük veri kümeleriyle uğraşırken tercih edilir. SGD'nin güncellemelerdeki gürültüsü sığ yerel minimumlardan kaçmaya yardımcı olabileceğinden, maliyet fonksiyonunun birçok yerel minimuma sahip olduğu senaryolarda da kullanışlıdır. Ayrıca SGD, geniş veri kümeleri ve yüksek boyutlu parametre uzayları nedeniyle sinir ağlarının eğitiminde yaygın olarak kullanılır.
Üstelik, her güncelleme için bir veri alt kümesini dikkate alarak hem GD hem de SGD'nin faydalarını dengeleyen mini toplu gradyan inişi gibi varyasyonlar pratikte sıklıkla kullanılmaktadır. Bu algoritmalar arasındaki seçim genellikle hesaplama kaynaklarına, veri kümesi boyutuna ve belirli problemin özelliklerine bağlıdır.