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. Ç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ı.