Sinir Ağları: Geri yayılım kullanarak eğitim

Geri yayılma, nöral ağlar için en yaygın eğitim algoritmasıdır. Gradyan inişi çok katmanlı nöral ağlar için uygun hale getirir. Birçok makine öğrenimi kod kitaplığı (Keras gibi), geri yayılımı otomatik olarak yönetir. Bu nedenle, temel hesaplamaların hiçbirini kendiniz yapmanız gerekmez. Geri yayılımın işleyişine dair kavramsal bir genel bakış için aşağıdaki videoya göz atın:

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ı normalleştirmenin en yaygın yolu açıklanmaktadır.

Kaybolan Gradyanlar

Alt nöral ağ katmanlarına (giriş katmanına daha yakın olanlar) ait gradyanlar çok küçük olabilir. Derin ağlarda (birden fazla gizli katmana sahip ağlar), bu gradyanların hesaplanması birçok küçük terimin çarpımını almayı içerebilir.

Gradyan değerleri alt katmanlar için 0'a yaklaştığında, renk geçişleri "kaybolur". Kayan gradyanlara sahip katmanlar çok yavaş eğitilir veya hiç eğitilmez.

ReLU etkinleştirme işlevi, renk geçişlerinin kaybolmasını önlemeye yardımcı olabilir.

Patlayan Gradyanlar

Bir ağdaki ağırlıklar çok büyükse alt katmanların gradyanlari birçok büyük terimin çarpımını içerir. Bu durumda, patlayan gradyanlar olabilir: Birbiriyle yakınlaşmayacak kadar büyük hale gelen gradyanlar.

Toplu normalleştirme, öğrenme hızını düşürmek gibi patlayan gradyanların önlenmesine 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 değerini döndürerek ağın çıkışına hiçbir katkıda bulunmaz ve geri yayılma sırasında artık gradyanlar bu katmandan geçemez. Gradyan kaynağı kesildiğinde, ReLU'ya giden giriş, ağırlıklı toplamı 0'ın üzerine çıkaracak kadar hiçbir zaman değişemeyebilir.

Öğrenme hızını düşürmek, ReLU birimlerinin çalışmamasına yardımcı olabilir.

Atlama normalleştirmesi

Düşme düzenlemesi olarak adlandırılan başka bir normalleştirme biçimi de sinir ağları için yararlıdır. Tek bir gradyan adımı için ağdaki birim etkinleştirmelerini rastgele "düşürür". Ne kadar çok veri bırakırsanız normalleştirme o kadar güçlü olur:

  • 0,0 = Kesinti normalleştirmesi 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 kullanışlı.