ReLU nöronları sıfır çıktı ve tüm negatif girdiler için sıfır türev var. Dolayısıyla, ağınızdaki ağırlıklar her zaman bir ReLU nöronuna negatif girdiler getirirse, bu nöron ağın eğitimine etkili bir şekilde katkıda bulunmaz. Matematiksel olarak, bu nörondan gelen ağırlık güncellemelerine gradyan katkısı her zaman sıfırdır (bazı detaylar için Matematiksel Eke bakınız).
Ağırlıklarınızın, belirli bir nörona giren tüm girdiler için negatif sayılar üretme şansı nedir ? Buna genel olarak cevap vermek zor, ancak bunun gerçekleşmesinin bir yolu, ağırlık güncellemelerini çok fazla büyütdüğünüz zamandır. Yapay sinir ağlarının tipik olarak, gradyan inişini kullanan ağırlıklara göre bir kayıp fonksiyonunu en aza indirerek eğitildiğini hatırlayın . Yani, bir sinir ağının ağırlıkları, işlevinin "değişkenleri" dir (kayıp, veri kümesine bağlıdır, ancak yalnızca dolaylı olarak: bu her eğitim örneğindeki toplamdır ve her örnek etkin bir şekilde sabittir). Herhangi bir işlevin gradyanı her zaman en dik artış yönünü gösterir, tek yapmamız gereken nin gradyanını hesaplamaktır.L L W LL(W)LL ağırlıklarına göre ve biraz ters yönde hareket edin, ardından durulayın ve tekrarlayın. Bu şekilde, en az (yerel) oluruz . Bu nedenle, eğer girdileriniz kabaca aynı ölçekte ise, gradyan yönünde atılan büyük adım size negatif sonuç verecek şekilde benzer girdiler veren ağırlıklar bırakabilir.WL
Genel olarak ne olduğu, bilgilerin ağ üzerinden nasıl aktığına bağlıdır. Antrenman devam ederken, nöronların ürettikleri değerlerin sürüklenebileceğini ve ağırlıkların bazılarının içinden geçen tüm veri akışını öldürmesini mümkün kılabileceğini hayal edebilirsiniz. (Bazen ağda daha önce yapılan ağırlık güncellemeleri nedeniyle bu olumsuz yapılandırmaları bırakabilirler!). Bu fikri, bir blog yazısında ağırlık başlatma (bu soruna da katkıda bulunabilir) ve bunun veri akışı ile olan ilişkisi hakkında araştırdım . Sanırım buradaki amacım bu makalenin bir taslağı ile gösterilebilir:
Çizim, farklı başlatma stratejileri ile ağdan geçtikten sonra, ReLU aktivasyonlarına sahip 5 katmanlı Çok Katmanlı Perceptron'da aktivasyonları görüntüler. Ağırlık yapılandırmasına bağlı olarak, ağınızın çıkışlarının tıkanabileceğini görebilirsiniz.
Matematiksel Ek
Matematiksel olarak, eğer olarak ağ kaybı fonksiyonudur çıkışı olan içinde inci nöron -inci bir tabaka, relu nöron ve , -st katmanına doğrusal girdidir , daha sonra zincir kuralı ile -th ve - bağlayan bir ağırlığa göre zararın türevi st katmanlarLx(i)jjif(s)=max(0,s)s(i)j(i+1)i(i+1)
∂L∂w(i)jk=∂L∂x(i+1)k∂x(i+1)k∂w(i)jk.
Sağdaki ilk terim özyinelemeli olarak hesaplanabilir. Sağdaki ikinci terim, doğrudan ağırlığını içeren tek yer ve ayrılabilir.w(i)jk
∂x(i+1)k∂w(i)jk=∂f(s(i)j)∂s(i)j∂s(i)j∂w(i)jk=f′(s(i)j)x(i)j.
Bundan, eğer çıktılar her zaman negatif olursa, nörona giden ağırlıkların güncellenmediğini ve nöronun öğrenmeye katkıda bulunmadığını görebilirsiniz.