CNN'ler yok olan gradyan problemini nasıl önler


15

Konvansiyonel sinir ağları hakkında çok şey okudum ve yok olan gradyan probleminden nasıl kaçındıklarını merak ediyordum. Derin inanç ağlarının tek seviyeli otomatik kodlayıcıları veya diğer önceden eğitilmiş sığ ağları biriktirdiğini biliyorum ve bu nedenle bu sorunu önleyebilirim ama CNN'lerde nasıl önlendiğini bilmiyorum.

Wikipedia'ya göre :

"yukarıda belirtilen" kaybolan gradyan sorununa rağmen ", GPU'ların üstün işlem gücü, çok katmanlı derin ileri beslemeli sinir ağları için düz geri yayılımı mümkün kılmaktadır."

GPU işlemenin neden bu sorunu gidereceğini anlamıyorum?


2
Vikipedi makalesi GPU'nun neden kaybolan gradyan sorununu çözmesine yardımcı olduğunu gerekçelendirmedi mi? Degradeler küçük olsa bile, GPU'lar çok hızlı olduğu için hala GPU'lar sayesinde birçok adım yaparak parametreleri geliştirmeyi başarabildik mi?
Charlie Parker

2
Kesinlikle. Kaybolan gradyan sorunu, daha düşük katman ağırlıklarının çok küçük bir oranda güncellenmesinin nedenidir ve bu nedenle ağı eğitmek sonsuza kadar sürer. Ancak, GPU'larda olduğu gibi, daha az zamanda daha fazla hesaplama (yani, ağırlıklar için daha fazla güncelleme) yapabilirsiniz, daha fazla GPU işleme ile, gradyan problemi bir dereceye kadar ortadan kaybolur .
Sangram

@CharlieParker, üzerinde durulabilir misiniz GPU's are fast correlated with vanishing gradients, birden fazla matris çarpımını işlemek için büyük bellek bant genişliği ile hızlı mantığı anlayabilirim! ama bunun türevlerle ne ilgisi olduğunu açıklar mısınız? Kaybolan degrade konu ağırlık başlatma ile daha fazlasını görünüyor , değil mi!
Anu

Yanıtlar:


13

Yok olan degrade sorunu, daha sonra yakınsama için çok sayıda küçük adıma ihtiyaç duyan, degrade inişli küçük öğrenme oranları kullanmamızı gerektirir. Bu, her adım için uzun zaman alan yavaş bir bilgisayarınız varsa bir sorundur. Günde daha fazla adım gerçekleştirebilen hızlı bir GPU'nuz varsa, bu daha az problemdir.

Yok olan degrade sorununu çözmenin birkaç yolu vardır. CNN'ler için en büyük etkinin sigmoid nonlineer birimlerden rektifiye edilmiş lineer birimlere geçmesinden kaynaklandığını tahmin ediyorum. hatası sadece ağırlığına bağlı olan basit bir sinir ağını ,w i j y jEwijyj

yj=f(iwijxi),

onun gradyanı

wijE=Eyjyjwij=Eyjf(iwijxi)xi.

Eğer lojistik sigmoid fonksiyonudur, büyük girdi hem de küçük girişler için sıfıra yakın olacaktır. Eğer doğrultulmuş doğrusal birimidir,f ffff

f(u)=max(0,u),
türevi, yalnızca negatif girişler için sıfır ve pozitif girişler için 1'dir. Bir başka önemli katkı da ağırlıkların doğru şekilde başlatılmasıdır. Bu makale (henüz okumamış olmama rağmen) zorlukları daha ayrıntılı olarak anlamak için iyi bir kaynak gibi görünüyor:

http://jmlr.org/proceedings/papers/v9/glorot10a/glorot10a.pdf


2
Doğrultulmuş doğrusal birimler hakkında biraz şaşkınım. Evet, sigmoidler vb. İçin gradyan genellikle çok küçüktür - ancak düzeltilmiş doğrusal birimler için genellikle tam olarak sıfırdır. Bu daha kötü değil mi? Böylece, bir birimin ağırlıkları talihsiz ise, asla değişmezler.
Hans-Peter Störr

2
Bunu düşünmek, sızıntılı ve / veya gürültülü ReLU'lar bu nedenle kullanılıyor olabilir.
Sunside

5
İlk cümleniz neden doğru? Yani "Yok olan degrade sorunu, daha sonra yakınsama için çok sayıda küçük adıma ihtiyaç duyan degrade inişli küçük öğrenme oranları kullanmamızı gerektirir." Yok olan gradyan problemiyle başa çıkmak için neden küçük öğrenme oranlarına ihtiyacımız var? Degradeler zaten yok olan degradeler nedeniyle küçükse, onları küçük yapmanın sadece işleri daha da kötüleştirmesini beklerdim.
Charlie Parker

2
Güzel soru, bu ifadeyi daha iyi açıklamalıydım. Yok olan degrade sorunu, tüm degradelerin küçük olması (büyük öğrenme hızlarını kullanarak kolayca düzeltebileceğimiz) değil, ağ üzerinden geri yayılırken degradelerin yok olması. Yani, gradyanlar bazı katmanlarda küçük fakat diğer katmanlarda büyüktür. Büyük öğrenme oranları kullanırsanız, her şey patlar (çünkü bazı degradeler büyüktür), bu nedenle küçük bir öğrenme oranı kullanmanız gerekir. Birden fazla öğrenme hızının kullanılması, daha fazla hiperparametrenin getirilmesi pahasına, sorunu ele almak için başka bir yaklaşımdır.
Lucas

4
Öğrenme hızının çoğunlukla patlayan gradyan problemine bağlı olduğunu iddia ediyorum . Gradyanı abartılı bir şekilde düşük bir öğrenme oranıyla ölçeklendirmek, hiç degradelerin yok olmasını engellemez, öğrenme önemli ölçüde yavaşladıkça etkiyi geciktirir. Etkinin kendisi, doğrusal olmayanların tekrar tekrar uygulanması ve küçük değerlerin çoğalmasından kaynaklanır. Tabii ki daha küçük öğrenme oranlarına (hesaplama gücüne bağlı olarak) gitme eğilimi vardır, ancak bunun yalnızca devlet alanının ne kadar iyi keşfedildiğini (kararlı koşullar verildiğinde) kontrol ettiği için yok olan gradyanlarla ilgisi yoktur.
runDOSrun
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.