Geri yayılma, nöral ağlar için en yaygın eğitim algoritmasıdır. Çok katmanlı nöral ağlarda gradyan inişini mümkün kılar. Birçok makine öğrenimi kodu kitaplığı (ör. Keras), geri yayılımı otomatik olarak işler. Bu nedenle, temel hesaplamaları kendiniz yapmanız gerekmez. Geriye yayılımın nasıl çalıştığına dair kavramsal bir genel bakış için aşağıdaki videoyu izleyin:
Nöral ağ eğitimi için en iyi uygulamalar
Bu bölümde, geri yayılımın başarısız olduğu durumlar ve bir sinir ağını düzenlemenin en yaygın yolu açıklanmaktadır.
Kaybolan Gradyanlar (Vanishing Gradients)
Daha düşük sinir ağı katmanlarının (giriş katmanına daha yakın olanlar) gradyanları çok küçük olabilir. Derin ağlarda (birden fazla gizli katmanı olan ağlar) bu gradyanların hesaplanması, birçok küçük terimin çarpımının alınmasını gerektirebilir.
Gradyan değerleri alt katmanlarda 0'a yaklaştığında gradyanların "kaybolduğu" söylenir. Kaybolan gradyanlara sahip katmanlar çok yavaş eğitilir veya hiç eğitilmez.
ReLU etkinleştirme işlevi, kaybolan gradyanları önlemeye yardımcı olabilir.
Patlayan Gradyanlar
Bir ağdaki ağırlıklar çok büyükse alt katmanların gradyanları, birçok büyük terimin çarpımlarını içerir. Bu durumda, birleşemeyecek kadar büyük gradyanlar olan patlayan gradyanlar oluşabilir.
Toplu normalleştirme, öğrenme hızını düşürmek gibi, patlayan gradyanları önlemeye yardımcı olabilir.
Ölü ReLU Birimleri
Bir ReLU biriminin ağırlıklı toplamı 0'ın altına düştüğünde ReLU birimi takılabilir. 0 çıkışı verir, ağın çıkışına hiçbir katkıda bulunmaz ve geri yayılım sırasında artık gradyanlar içinden akamaz. Gradyan kaynağı kesildiğinde, ReLU'ya yapılan giriş, ağırlıklı toplamı tekrar 0'ın üzerine çıkarmak için yeterince değişmeyebilir.
Öğrenme hızını düşürmek, ReLU birimlerinin ölmesini önlemeye yardımcı olabilir.
Dropout Regularization
Bırakma düzenlileştirme adı verilen bir başka düzenlileştirme biçimi de sinir ağları için yararlıdır. Tek bir gradyan adımında bir ağdaki birim etkinleştirmelerini rastgele "bırakarak" çalışır. Ne kadar çok bırakırsanız düzenlileştirme o kadar güçlü olur:
- 0,0 = Dropout düzenlileştirme yok.
- 1.0 = Tüm düğümleri bırakın. Model hiçbir şey öğrenmez.
- 0,0 ile 1,0 arasındaki değerler = Daha faydalı.