Gradient Descent ve Stokastik Gradient Descent arasındaki fark nedir?


Yanıtlar:


28

Hızlı ve basit bir açıklama için:

Hem degrade inişte (GD) hem de stokastik degrade inişte (SGD), bir hata işlevini en aza indirmek için bir dizi parametreyi yinelemeli bir şekilde güncelleştirirsiniz.

GD'deyken, SGD'de belirli bir yinelemedeki bir parametre için tek bir güncelleme yapmak için egzersiz setinizdeki TÜM örnekleri çalıştırmanız gerekir, diğer yandan, eğitim setinizden SADECE BİR veya ALTSAYI eğitim örneği kullanırsınız. belirli bir yinelemede bir parametre için güncelleme yapmak. SUBSET kullanırsanız, buna Minibatch Stokastik degrade İniş denir.

Bu nedenle, egzersiz örneği sayısı çok fazla, aslında çok fazla ise, degrade iniş kullanmak çok uzun sürebilir, çünkü parametrelerin değerlerini güncellerken her yinelemede, tüm egzersiz setini çalıştırıyorsunuz demektir. Öte yandan, sadece bir eğitim örneği kullandığınız ve ilk örnekten hemen kendini geliştirmeye başladığı için SGD kullanmak daha hızlı olacaktır.

SGD genellikle GD'ye göre çok daha hızlı bir şekilde birleşir, ancak hata fonksiyonu GD'deki gibi en aza indirgenmez. Çoğu durumda, parametre değerleri için SGD'de aldığınız yakın yaklaşım yeterlidir çünkü optimum değerlere ulaşırlar ve orada salınmaya devam ederler.

Pratik bir vaka ile bunun bir örneğine ihtiyacınız varsa, Andrew NG'in notlarını kontrol edin, burada her iki durumda da adımları açıkça gösterir. cs229-notlar

Kaynak: Quora Konu


teşekkürler, kısaca böyle mi? Degrade İniş'in üç çeşidi vardır: Parti, Stokastik ve Minibatch: Parti, tüm eğitim örnekleri değerlendirildikten sonra ağırlıkları günceller. Stokastik, ağırlıklar her eğitim örneğinden sonra güncellenir. Minibatch her iki dünyanın en iyilerini birleştiriyor. Veri kümesinin tamamını kullanmıyoruz, ancak tek veri noktasını kullanmıyoruz. Veri kümemizden rastgele seçilen bir veri kümesi kullanıyoruz. Bu şekilde, hesaplama maliyetini düşürüyor ve stokastik versiyondan daha düşük bir varyans elde ediyoruz.
Geliştirici

5

Stokastik kelimesinin eklenmesi, basitçe , gradyan inişi çerçevesinde, optimizasyon sırasında parametreyi güncellemek için her çalışmada eğitim verilerinden rastgele örneklerin seçildiği anlamına gelir .

Bunu yapmak yalnızca hesaplanan hataları değil, daha hızlı yinelemelerde ağırlıkları güncellemekle kalmaz (tek seferde yalnızca küçük bir örnek seçimini yaptığımız için), aynı zamanda genellikle daha hızlı bir şekilde en uygun olana doğru ilerlemeye yardımcı olur. Buradaki cevaplara bir göz atın, eğitim için stokastik minibatch'ların neden avantajlar sunduğuna dair daha fazla bilgi için.

Belki de bir dezavantajı, optimum yolun (her zaman aynı optimum olacağını varsayarak) çok daha gürültülü olabilmesidir. Bu nedenle, degrade inişin her yinelemesinde hatanın nasıl azaldığını gösteren güzel bir pürüzsüz kayıp eğrisi yerine, şöyle bir şey görebilirsiniz:

gürültülü kayıp eğrisi

Zaman içinde kaybın azaldığını açıkça görüyoruz, ancak çağdan çağa (eğitim grubu ila eğitim grubu) büyük değişiklikler var, bu nedenle eğri gürültülü.

Bunun nedeni, her hatayı tüm veri kümesinden stokastik / rasgele seçilmiş alt kümemiz üzerindeki ortalama hatayı hesaplamamızdır. Bazı örnekler yüksek hata üretecek, bazıları düşük. Böylece ortalama, gradyan inişinin bir tekrarı için rastgele kullandığımız örneklere bağlı olarak değişebilir.


teşekkürler, kısaca böyle mi? Degrade İniş'in üç çeşidi vardır: Parti, Stokastik ve Minibatch: Parti, tüm eğitim örnekleri değerlendirildikten sonra ağırlıkları günceller. Stokastik, ağırlıklar her eğitim örneğinden sonra güncellenir. Minibatch her iki dünyanın en iyilerini birleştiriyor. Veri kümesinin tamamını kullanmıyoruz, ancak tek veri noktasını kullanmıyoruz. Veri kümemizden rastgele seçilen bir veri kümesi kullanıyoruz. Bu şekilde, hesaplama maliyetini düşürüyor ve stokastik versiyondan daha düşük bir varyans elde ediyoruz.
Geliştirici

N-n=1

tks, bu açık!
datdinhquoc

5

Degrade İniş veya Toplu Degrade İnişte, dönem başına tüm eğitim verilerini kullanırız. her dönem için bir mini parti (küçük kısım) eğitim verisi, mini parti boyutunu seçmek için başparmak kuralı 32, 64, 128 vb. gibi 2 güçtedir .
Daha fazla bilgi için: cs231n ders notları


teşekkürler, kısaca böyle mi? Degrade İniş'in üç çeşidi vardır: Parti, Stokastik ve Minibatch: Parti, tüm eğitim örnekleri değerlendirildikten sonra ağırlıkları günceller. Stokastik, ağırlıklar her eğitim örneğinden sonra güncellenir. Minibatch her iki dünyanın en iyilerini birleştiriyor. Veri kümesinin tamamını kullanmıyoruz, ancak tek veri noktasını kullanmıyoruz. Veri kümemizden rastgele seçilen bir veri kümesi kullanıyoruz. Bu şekilde, hesaplama maliyetini düşürüyor ve stokastik versiyondan daha düşük bir varyans elde ediyoruz.
Geliştirici
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.