Dlaczego używamy ReLU w sieciach neuronowych i jak go wykorzystujemy?

31

Dlaczego używamy rektyfikowanych jednostek liniowych (ReLU) z sieciami neuronowymi? Jak to poprawia sieć neuronową?

Dlaczego mówimy, że ReLU jest funkcją aktywacyjną? Czy funkcja aktywacji softmax nie jest dostępna dla sieci neuronowych? Zgaduję, że używamy zarówno ReLU, jak i softmax:

neuron 1 z wyjściem softmax ----> ReLU na wyjściu neuronu 1, który jest
wejściem neuronu 2 ---> neuron 2 z wyjściem softmax -> ...

tak, że wejście neuronu 2 jest zasadniczo ReLU (softmax (x1)). Czy to jest poprawne?

użytkownik 2896492634
źródło

Odpowiedzi:

36

Funkcja ReLU toZwykle jest to stosowane elementowo do wyniku niektórych innych funkcji, takich jak iloczyn macierz-wektor. W zastosowaniach MLP jednostki prostownika zastępują wszystkie inne funkcje aktywacyjne, z wyjątkiem być może warstwy odczytu. Ale przypuszczam, że możesz je mieszać i łączyć, jeśli chcesz.fa(x)=max(0,x).

Jednym ze sposobów ulepszenia sieci neuronowych przez ReLU jest przyspieszenie szkolenia. Obliczanie gradientu jest bardzo proste (0 lub 1 w zależności od znaku x ). Ponadto krok obliczeniowy jednostki ReLU jest łatwy: wszelkie elementy ujemne są ustawione na 0,0 - brak wykładniczych, brak operacji mnożenia lub dzielenia.

Gradienty logistycznych i hiperbolicznych sieci stycznych są mniejsze niż dodatnia część ReLU. Oznacza to, że dodatnia część jest aktualizowana szybciej w miarę postępu treningu. Jest to jednak kosztowne. Gradient 0 po lewej stronie ma swój własny problem, zwany „martwymi neuronami”, w którym aktualizacja gradientu ustawia przychodzące wartości na ReLU tak, że wyjście zawsze wynosi zero; zmodyfikowane jednostki ReLU, takie jak ELU (lub Leaky ReLU lub PReLU itp.) mogą to poprawić.

rerexReLU(x)=1x>0 . Natomiast gradient jednostki sigmoidalnej wynosi co najwyżej ; z drugiej strony wypada lepiej dla danych wejściowych w regionie bliskim 0, ponieważ (w przybliżeniu).0,25tanh0,25<rerextanh(x)1x[-1,31,1,31]

Sycorax mówi Przywróć Monikę
źródło
@aginensky Możesz zadawać pytania, klikając przycisk Zadaj pytanie u góry strony.
Sycorax mówi Przywróć Monikę
Nie widzę dowodów, że chciałem zadać pytanie lub że uczestniczyłem w tej stronie. Szczerze mówiąc, jestem zdumiony, jak dobrze działa ReLU, ale przestałem to kwestionować :).
aginensky
@aginensky Wygląda na to, że komentarz został tymczasowo usunięty.
Sycorax mówi Przywróć Monikę
Komentarz nie został przeze mnie usunięty ani nie zostałem poinformowany. Przestałem odpowiadać na pytania i myślę, że to oznacza, że ​​skończyłem też z komentowaniem.
aginensky
@aginensky Nie wiem, dlaczego to spowodowałoby, że przestałbyś komentować. Jeśli masz jakieś pytania dotyczące komentarzy i moderacji, możesz zadać pytanie w meta.stats.SE.
Sycorax mówi Przywróć Monikę
4

Jedną ważną rzeczą, na którą należy zwrócić uwagę, jest to, że ReLU jest idempotentny. Biorąc pod uwagę, że ReLU to , łatwo zauważyć, że jest prawdziwe dla dowolnej skończonej kompozycji . Ta właściwość jest bardzo ważna w przypadku głębokich sieci neuronowych, ponieważ każda warstwa w sieci stosuje nieliniowość. Zastosujmy teraz dwie funkcje rodziny sigmoidów do tego samego wejścia wielokrotnie 1-3 razy:ρ(x)=max(0,x)ρρρρ=ρ

wprowadź opis zdjęcia tutaj

Natychmiast widać, że funkcje sigmoidalne „wyciskają” swoje dane wejściowe, co powoduje problem znikającego gradientu: pochodne zbliżają się do zera, gdy (liczba powtarzanych aplikacji) zbliża się do nieskończoności.n

Eli Korvigo
źródło
0

ReLU to funkcja maksimum (x, 0) z wejściem x, np. Macierz ze skręconego obrazu. ReLU następnie ustawia wszystkie ujemne wartości w macierzy x na zero i wszystkie inne wartości są utrzymywane na stałym poziomie.

ReLU oblicza się po splotie, a zatem nieliniową funkcję aktywacyjną, taką jak tanh lub sigmoid.

Softmax jest klasyfikatorem na końcu sieci neuronowej. Jest to regresja logistyczna mająca na celu wyrównanie wyników do wartości od 0 do 1. (Alternatywą jest tutaj klasyfikator SVM).

CNN Forward Pass np .: input-> conv-> ReLU-> Pool-> conv-> ReLU-> Pool-> FC-> softmax

Randy Welt
źródło
8
Downvoting. To bardzo zła odpowiedź! Softmax nie jest klasyfikatorem! Jest to funkcja, która normalizuje (skaluje) wyjścia do zakresu [0,1] i zapewnia, że ​​sumują się do 1. Regresja logistyczna niczego nie „normalizuje”! Zdanie „ReLU jest obliczane po splocie, a zatem nieliniowa funkcja aktywacyjna, taka jak tanh lub sigmoid”. brakuje czasownika lub sensu.
Jan Kukacka,
1
Odpowiedź nie jest taka zła. Zdanie bez czasownika musi brzmieć „ReLU jest obliczane po splotie, a zatem JEST nieliniową funkcją aktywacyjną, taką jak tanh lub sigmoid”. Myślenie o softmaxie jako klasyfikatorze również ma sens. Można to postrzegać jako klasyfikator probabilistyczny, który przypisuje prawdopodobieństwo każdej klasie. „Normalizuje” / „normalizuje” wyjścia do przedziału [0,1].
user118967,
0

ReLU to dosłowna zmiana. Z przełącznikiem elektrycznym 1 wolt wejściowy daje 1 wolt wyjściowy, n woltów wejściowych daje n woltów wyłączony, gdy jest włączony. Włączanie / wyłączanie, gdy zdecydujesz się zmienić na zero, daje dokładnie ten sam wykres co ReLU. Ważona suma (iloczyn skalarny) szeregu ważonych sum jest nadal systemem liniowym. Dla konkretnego wejścia przełączniki ReLU są indywidualnie włączane lub wyłączane. Powoduje to szczególny rzut liniowy od wejścia do wyjścia, ponieważ różne sumy ważone sumy ważonej ... są połączone razem za pomocą przełączników. Dla konkretnego neuronu wejściowego i wyjściowego istnieje złożony system ważonych sum, który w rzeczywistości można podsumować do pojedynczej skutecznej sumy ważonej. Ponieważ stan przełączników ReLU wynosi zero, nie ma nagłych nieciągłości na wyjściu dla stopniowych zmian na wejściu.

Istnieją inne wydajne numerycznie algorytmy sumy ważonej (iloczyn punktowy), takie jak FFT i transformacja Walsha Hadamarda. Nie ma powodu, dla którego nie można włączyć ich do sieci neuronowej opartej na ReLU i skorzystać z korzyści obliczeniowych. (np. Naprawiono sieci neuronowe banku filtrów.)

Sean O'Connor
źródło