ReLU'nun derin sinir ağlarında sigmoid fonksiyon üzerindeki avantajları nelerdir?


141

Doğrusal olmama sanatının durumu, derin sinir ağında sigmoid işlevi yerine doğrultulan doğrusal birimler (ReLU) kullanmaktır. Avantajları nelerdir?

ReLU kullanıldığında bir ağın eğitilmesinin daha hızlı olacağını ve biyolojik olarak daha ilham verici olduğunu biliyorum, diğer avantajları nelerdir? (Yani, sigmoid kullanmanın herhangi bir dezavantajı)?


Doğrusal olmamanın ağınıza girmesine izin vermenin bir avantaj olduğu izlenimindeydim. Ama aşağıdaki cevaplardan ikisinde de görmüyorum ...
Monica Heddneck

2
@MonicaHeddneck hem ReLU hem de sigmoidler doğrusal değildir ...
Antoine

Yanıtlar:


130

a = W x + bh=maksimum(0,bir)bir=Wx+b

Bir büyük yarar, degradenin yok olma olasılığının azaltılmasıdır. Bu olduğunda ortaya çıkar . Bu rejimde gradyan sabit bir değere sahiptir. Buna karşılık, sigmoidlerin gradyanı, x'in mutlak değeri arttıkça, giderek daha küçük hale gelir. ReLU'ların sürekli gradyanı daha hızlı öğrenmeye neden olur.bir>0

ReLU'ların bir diğer yararı da azdır. Seyreklik olduğunda ortaya çıkar . Bir katmandaki bu tür birimler ne kadar fazlaysa sonuç gösterimi o kadar seyrek olur. Öte yandan, sigmoidlerin her zaman yoğun gösterimlerle sonuçlanan sıfır olmayan bir değer üretmesi muhtemeldir. Seyrek temsiller, yoğun temsillerden daha faydalı gibi görünmektedir.bir0


2
Gradyanı derken, ağırlık mı demek istiyorsunuz yoksa x girişi mi? @DaemonMaker
MAS

4
Ağırlıklar ile ilgili olarak. Degrade tabanlı öğrenme algoritmaları, her zaman öğrencinin parametrelerine göre, yani bir NN'deki ağırlıklar ve önyargılarla ilgili gradyanı alarak.
DaemonMaker

2
Ne demek "yoğun" ve "seyrek" "temsilleri"? "Seyrek temsili sinir ağları" google için sorgulamak, alakalı bir şey ile gelmiyor gibi görünmüyor.
Hi-Angel,

6
“Seyrek temsiller, yoğun temsillerden daha faydalı görünüyor.” Bir kaynak veya açıklama verebilir misiniz?
Rohan Saxena,

1
Bu cevabın nasıl doğru olduğunu anlamıyorum. "Degradenin yok olma olasılığı azaldı" istenen bir şeyi bırakıyor. ReLu yeterince küçük için SIFIR'dır . Öğrenme sırasında, bu rejimde olduğunuzda bazı nöronlar için degradeler kaybolur. Aslında, kesinlikle kaçınılmazdır, çünkü aksi takdirde ağınız doğrusal olacaktır. Toplu normalleştirme bunu çoğunlukla çözer. Bu en önemli nedenden bile bahsetmiyor: ReLu ve gradyanları. Bir sigmoid ile karşılaştırıldığında, hesaplamak için son derece hızlı. x
Alex R.

65

Avantajı:

  • Sigmoid: aktivasyonu havaya uçurmuyor
  • Relu: degrade kaybolmaz
  • Relu: Relu'nun sadece max (0, ) seçmesi ve Sigmoid'lerde olduğu gibi pahalı üssel işlemleri gerçekleştirmemesi gerektiğinden, Sigmoid benzeri işlevlerden daha fazla hesaplama yapmak için daha verimlidirx
  • Relu: Uygulamada, Relu'lu ağlar sigmoidlerden daha iyi yakınsama performansı gösterme eğilimindedir. ( Krizhevsky ve diğ. )

dezavantajı:

  • Sigmoid: "olarak degrade azaltmak için bir mekanizma vardır neden (gradyan ortadan eğiliminde " "bir artış, ." Sigmoid Gradyan bir sigmoid fonksiyonu girişidir " " sonsuz büyüdükçe, ).aaS(a)=S(a)(1S(a))aS(a)=S(a)(1S(a))=1×(11)=0

  • Relu: aktivasyonu havaya uçurma eğilimindedir (" " nın kendisi çıktı olduğundan, nöronun çıktısını sınırlandırma mekanizması yoktur )bir

  • Relu: Ölmek Relu problemi - eğer çok fazla aktivasyon sıfırın altına düşerse, Relu ile ağdaki birimlerin (nöronların) çoğu sıfırla sonuçlanır, başka bir deyişle ölür ve böylece öğrenmeyi yasaklar. (Bu, bir dereceye kadar ele alınabilir, Bunun yerine Leaky-Relu kullanarak.)

7
Denklemlerin etrafına dolar işareti koyarak, örneğin x'i$x$ üreten Lateks'le matematik dizgisini kullanmanın yararlı olacağını düşünebilirsiniz . x
Silverfish

Relu: yokuş degrade değil. Ha? tüm x < - b / a için . relu(birx+b)=0x<-b/bir
Alex R.

40

Sadece diğer cevapları tamamlıyoruz:

Ufuk Gradyanları

Diğer cevaplar, girişin büyüdüğünden (mutlak değerde) sigmoid fonksiyonunun gradyanının küçüldüğünü belirtmekte haklıdır. Ancak, muhtemelen daha da önemli bir etki, sigmoid fonksiyonunun türevinin HER ZAMAN birinden küçük olmasıdır . Aslında en fazla 0.25!

Bunun alt tarafı, çok sayıda katmanınız varsa, bu degradeleri çarpacağınız ve 1 değerden daha küçük olan birçok ürünün çarpması çok hızlı bir şekilde sıfıra gidecektir.

Deep Learning'in sanatının durumu, daha fazla katmanın çok yardımcı olduğunu gösterdiğinden, Sigmoid işlevinin bu dezavantajı bir oyun katilidir. Sigmoid ile Derin Öğrenme yapamazsın.

0bir<01bir>0


10
Aradığım cevap bu. İnsanlar "kaybolma degradeleri" hakkında konuşurken, "ReLu'nun gradyanı menzilinin yarısı için tam olarak 0'dır. Bu" kaybolma "değil midir? Degradelerin birçok katmanla çarpıldığını hatırlatarak sorunu açıklama şekliniz, çok netlik getiriyor.
Boris Gorelik

3
@ guilherme-de-lazari son satırda düzeltme önerdi - relu'nun değeri a> 0 için ama sen de 1'den büyük olan> 0
saurabh için

4
Bu ana sebep olsaydı, sigmoidi 1 / (1 + exp (-4x)) değerine çıkaramaz mıydık? O zaman türev en fazla 1'dir (veya bize 1'in üstünde ve altında seçenekler sunmak için daha da fazla ölçeklenir). Bunun daha kötü performans göstereceğinden şüpheliyim, çünkü yeniden ölçekleme aynı zamanda türevinin 0'dan ayırt edilebildiği alanı da azaltır. Fakat bu cevabın tüm hikayeyi anlattığından emin değilim.
Peter,

5
1/(1+tecrübe(-birx))bir

7
Ayrıca sigmoidlerle derinlemesine öğrenim yapabilirsiniz, yalnızca girişleri normalleştirmeniz gerekir, örneğin Toplu Normalleştirme yoluyla. Bu, sigmoidi doyurmamak için girdilerinizi merkezileştirecektir. Toplu Normalleştirme konulu orijinal makalede, sigmoid aktivasyon sinir ağı ReLus ile neredeyse aynı: arxiv.org/pdf/1502.03167.pdf
Alex R.

7

ReLU'ya kaybolan gradyanlar probleminden kaçınmaktan başka bir avantajı, çalışma süresinin daha düşük olmasıdır. max (0, a), sık sık hesaplanan yavaş bir üs kullanarak, herhangi bir sigmoid işlevinden (örneğin, lojistik işlevi = = 1 / (1 + e ^ (- a)) daha hızlı çalışır). Bu, ReLU'nun gradyanı olduğu için ileri ve geri besleme için hem doğrudur (eğer bir <0, = 0 else = 1 ise), sigmoid ile karşılaştırıldığında hesaplamak çok kolaydır (lojistik eğrisi için = e ^ a / ((1 + e ^ a) ^ 2)).

ReLU, ağ kapasitesini sınırlayan ölmekte olan hücrelerin dezavantajına sahip olmasına rağmen. Bunun üstesinden gelmek için, eğer yukarıda açıklanan sorunu fark ederseniz, sadece sızdıran ReLU, ELU gibi bir ReLU değişkenini kullanın.


1
+1. Buradaki tek doğru cevaplardan biri bu. Ölü nöronları önlemek için girişleri merkezileştirmek için toplu normalizasyonu da kullanabilirsiniz.
Alex R.

2

Seyrek vs Yoğun performans tartışmasını tamamlamak için ek bir cevap .

Artık NN'yi düşünmeyin, sadece lineer cebir ve matris işlemlerini düşünün, çünkü ileri ve geri yayılımlar bir dizi matris işlemidir.

Unutmayın, seyrek matrikse uygulanacak çok sayıda optimize edilmiş operatör var ve bu yüzden bu işlemleri ağımızda optimize etmek algoritmanın performansını önemli ölçüde artırabilir.

Umarım bu bazılarınıza yardımcı olabilir ...


1

Başlıca yararı, ReLu türevinin 0 veya 1 olmasıdır, bu nedenle bununla çarpılması, kayıp fonksiyonunun sonundan uzakta olan ağırlıkların kaybolma derecesi probleminden muzdarip olan ağırlıklara neden olmayacaktır:

görüntü tanımını buraya girin

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.