Jakie są zalety ReLU nad funkcją sigmoidalną w głębokich sieciach neuronowych?

141

Najnowszym stanem nieliniowości jest stosowanie rektyfikowanych jednostek liniowych (ReLU) zamiast funkcji sigmoidalnej w głębokiej sieci neuronowej. Jakie są zalety?

Wiem, że szkolenie sieci przy użyciu ReLU byłoby szybsze i jest bardziej inspirowane biologicznie, jakie są inne zalety? (Czyli jakieś wady używania sigmoidu)?

RockTheStar
źródło
Miałem wrażenie, że dopuszczenie nieliniowości w twojej sieci było zaletą. Ale nie widzę tego w żadnej z poniższych odpowiedzi ...
Monica Heddneck
2
@MonicaHeddneck zarówno ReLU, jak i sigmoid są nieliniowe ...
Antoine

Odpowiedzi:

130

Dwie dodatkowe główne zalety ReLU to rzadkość i zmniejszone prawdopodobieństwo zanikania gradientu. Ale najpierw przypomnijmy sobie definicję ReLU to gdzie .h=max(0,a)a=Wx+b

Jedną z głównych korzyści jest zmniejszone prawdopodobieństwo zniknięcia gradientu. Powstaje, gdy . W tym trybie gradient ma stałą wartość. Natomiast gradient sigmoidów staje się coraz mniejszy wraz ze wzrostem wartości bezwzględnej x. Stały gradient ReLU powoduje szybsze uczenie się.a>0

Inną zaletą ReLU jest rzadkość. Sparsity powstaje, gdy . Im więcej takich jednostek istnieje w warstwie, tym bardziej rzadka jest wynikowa reprezentacja. Z drugiej strony sigmoidy zawsze generują pewną niezerową wartość, co prowadzi do gęstej reprezentacji. Rzadkie reprezentacje wydają się bardziej korzystne niż gęste reprezentacje.a0

DaemonMaker
źródło
2
Kiedy mówisz gradient, masz na myśli w odniesieniu do wag lub wejścia x? @DaemonMaker
MAS
4
W odniesieniu do ciężarów. Algorytmy uczenia oparte na gradiencie zawsze przyjmują gradient w odniesieniu do parametrów ucznia, tj. Wag i tendencyjności w NN.
DaemonMaker
2
Co rozumiesz przez „gęste” i „rzadkie” „przedstawienia”? Pytanie do Google „rzadkie sieci neuronowe reprezentacji” wydaje się nie wymyślić nic istotnego.
Cześć Anioł
6
„Rzadkie reprezentacje wydają się być bardziej korzystne niż gęste reprezentacje”. Czy możesz podać źródło lub wyjaśnienie?
Rohan Saxena
1
Nie rozumiem, jak ta odpowiedź jest poprawna. „Zmniejszone prawdopodobieństwo zniknięcia gradientu” pozostawia wiele do życzenia. ReLu to ZERO dla wystarczająco małego . Podczas nauki gradienty znikną dla niektórych neuronów, gdy jesteś w tym reżimie. W rzeczywistości jest to wyraźnie nieuniknione, ponieważ w przeciwnym razie sieć będzie liniowa. Normalizacja partii rozwiązuje to głównie. To nawet nie wspomina o najważniejszym powodzie: ReLu i ich gradientach. są niezwykle szybkie w obliczeniach, w porównaniu do sigmoidów. x
Alex R.
65

Korzyść:

  • Sigmoid: nie wysadzenie aktywacji
  • Relu: nie zanikający gradient
  • Relu: Bardziej wydajna obliczeniowo w obliczeniach niż funkcje podobne do Sigmoid, ponieważ Relu musi tylko wybrać max (0, ) i nie wykonywać kosztownych operacji wykładniczych jak w Sigmoidachx
  • Relu: W praktyce sieci z Relu wykazują lepszą wydajność konwergencji niż sigmoid. ( Krizhevsky i in. )

Niekorzyść:

  • Sigmoid: tendencja do zanikania gradientu (ponieważ istnieje mechanizm zmniejszania gradientu jako wzrostu „ ”, gdzie „ ” jest wejściem funkcji sigmoidalnej. Gradient Sigmoid: . Gdy „ ” staje się nieskończenie duży, ).aaS(a)=S(a)(1S(a))aS(a)=S(a)(1S(a))=1×(11)=0

  • Relu: tendencja do wysadzania aktywacji (nie ma mechanizmu ograniczającego wyjście neuronu, ponieważ wyjściem jest „ ”)a

  • Relu: Dying problem Relu - jeśli zbyt wiele aktywacji spadnie poniżej zera, wówczas większość jednostek (neuronów) w sieci z Relu po prostu wyzeruje, innymi słowy, umrze, uniemożliwiając w ten sposób naukę. (Do pewnego stopnia można to zrobić używając zamiast tego Leaky-Relu).
Bill Ancalagon czarny
źródło
7
Pomocne może być użycie składu matematycznego z lateksem, umieszczając znaki dolara wokół równań, np. $x$Daje . x
Silverfish
Relu: nie zanikający gradient. Co? dla wszystkich . Relu(ax+b)=0x<b/a
Alex R.
40

Po prostu uzupełniam inne odpowiedzi:

Znikające gradienty

Inne odpowiedzi słusznie wskazują, że im większy sygnał wejściowy (w wartości bezwzględnej), tym mniejszy gradient funkcji sigmoidalnej. Ale prawdopodobnie jeszcze ważniejszym efektem jest to, że pochodna funkcji sigmoidalnej ZAWSZE jest mniejsza niż jeden . W rzeczywistości jest to najwyżej 0,25!

Wadą tego jest to, że jeśli masz wiele warstw, pomnożysz te gradienty, a iloczyn wielu wartości mniejszych niż 1 bardzo szybko osiągnie zero.

Ponieważ stan techniki głębokiego uczenia się pokazał, że więcej warstw bardzo pomaga, więc ta wada funkcji Sigmoid jest zabójcą gry. Po prostu nie możesz przeprowadzić głębokiej nauki z Sigmoid.

Z drugiej strony gradient funkcji ReLu wynosi dla lub dla . Oznacza to, że możesz umieścić tyle warstw, ile chcesz, ponieważ pomnożenie gradientów nie zniknie ani nie wybuchnie.0a<01a>0

Guilherme de Lazari
źródło
10
Oto odpowiedź, której szukałem. Kiedy ludzie mówią o „znikających gradientach”, nie można przestać się zastanawiać, „gradient ReLu wynosi dokładnie 0 dla połowy jego zakresu. Czy to nie„ znikanie ”. Sposób, w jaki opisujesz problem, przypominając nam, że gradienty są mnożone na wielu warstwach, zapewnia dużą przejrzystość.
Boris Gorelik
3
@ guilherme-de-lazari zasugerował poprawkę w ostatnim wierszu - wartość relu jest a dla> 0, ale mówisz o gradiencie, który wynosi 1 dla> 0
saurabh
4
Gdyby to był główny powód, to czy nie moglibyśmy po prostu przeskalować sigmoidu do 1 / (1 + exp (-4x))? Wtedy pochodna wynosi co najwyżej 1 (lub przeskaluj jeszcze więcej, aby dać nam opcje powyżej i poniżej 1). Podejrzewam, że działałoby to znacznie gorzej, ponieważ przeskalowanie zmniejsza również obszar, w którym pochodna jest odróżnialna od 0. Ale nie jestem pewien, czy ta odpowiedź opowiada całą historię.
Peter
5
Ta odpowiedź jest bzdurą. Pochodna esicy ze stałym parametrem 1 jest mniejsza niż 1. Ale ogólnie jest to , które mogą mieć dowolnie dużą pochodną (Wystarczy wziąć być naprawdę duże, więc esicy szybko zmienia się z 0 na 1). 1/(1+exp(ax))a
Alex R.
7
Również MOŻESZ przeprowadzić głębokie uczenie z sigmoidami, wystarczy normalizować dane wejściowe, na przykład za pomocą Normalizacji partii. To scentralizuje twoje dane wejściowe, aby uniknąć nasycenia sigmoidu. W oryginalnym papierze z partii normalizacja, sieć neuronowa aktywacja esicy robi prawie na równi z ReLus: arxiv.org/pdf/1502.03167.pdf
Alex R.
7

Zaletą ReLU poza unikaniem problemu znikania gradientów jest to, że ma on znacznie krótszy czas działania. max (0, a) działa znacznie szybciej niż jakakolwiek funkcja sigmoidalna (funkcja logistyczna, na przykład = 1 / (1 + e ^ (- a)), która używa wykładnika, który jest często powolny obliczeniowo). Dotyczy to zarówno propagacji do przodu i do tyłu, ponieważ gradient ReLU (jeśli a <0, = 0 else = 1) jest również bardzo łatwy do obliczenia w porównaniu z sigmoidem (dla krzywej logistycznej = e ^ a / ((1 + e ^ a) ^ 2)).

Chociaż ReLU ma tę wadę, że umierające komórki ograniczają pojemność sieci. Aby temu zaradzić, użyj wariantu ReLU, takiego jak nieszczelny ReLU, ELU itp., Jeśli zauważysz opisany powyżej problem.

Myto
źródło
1
+1. To jedna z jedynych poprawnych odpowiedzi tutaj. Możesz także użyć normalizacji partii, aby scentralizować dane wejściowe w celu przeciwdziałania martwym neuronom.
Alex R.
2

Dodatkowa odpowiedź do wypełnienia w debacie o wydajności rzadkich i gęstych .

Nie myśl już o NN, po prostu pomyśl o algebrze liniowej i operacjach macierzowych, ponieważ propagacje do przodu i do tyłu są serią operacji macierzowych.

Pamiętajmy teraz, że istnieje wiele zoptymalizowanych operatorów do zastosowania w rzadkich macierzach, dlatego optymalizacja tych operacji w naszej sieci może radykalnie poprawić wydajność algorytmu.

Mam nadzieję, że to może pomóc niektórym z was ...

Michael B.
źródło
1

Główną korzyścią jest to, że pochodna ReLu wynosi 0 lub 1, więc pomnożenie przez nią nie spowoduje, że wagi, które są dalej od końcowego wyniku funkcji straty, będą cierpieć z powodu problemu znikającego gradientu:

wprowadź opis zdjęcia tutaj

David Refaeli
źródło