Bycie szybszym lub niższym jest terminem względnym i należy je rozumieć w kontekście tego, do czego się porównuje. Aby to zrozumieć, musimy najpierw zastanowić się, jak gradient opadający działa z innymi typami funkcji aktywacji.
Przykładowa konfiguracja
Rozważ MLP z ukrytymi warstwami rozmiaru pierwszego.n
z1=W1x+b1
a1=f(z1)
...
zn=Wnan−1+bn
y=f(zn)
gdzie jest funkcją aktywacji.f
Tanh and Sigmoid - Vanishing Gradient
Załóżmy, że jest funkcją aktywacyjną Tanh lub Sigmoid. Pochodna tych funkcji jest ograniczona od -1 do 1 lub formalnie dla dowolnego .ff′(x)∈(−1,1)x
Powoduje to bardzo ważny problem w głębokim uczeniu się, znany jako „problem zanikania gradientu”. Rozważmy pochodną wrt . Zgodnie z regułą łańcucha mamy
yW1
dfdW1=dfdWndWndWn−1...dW2dW1
a dla każdego zauważ, że
0<i<n
dXidXi−1=f′(Wi−1ai−2+bi−1)×ai−2∈(−1,1)
(Pierwszy termin jest między ponieważ jest ograniczony, jak omówiono wcześniej, a również znajduje się między jako wartość wejściowa).(−1,1)f′ai−2(−1,1)
Tak więc jest w zasadzie produktem wielu wyrażeń, z których każde zawiera się między (0, 1). Im większa (głębsza sieć), tym więcej tego terminu musimy pomnożyć, w wyniku czego staje się wykładniczo mniejszy. Z powodu tej wykładniczej zależności gradient szybko staje się tak mały, że możemy skutecznie uznać go za zero. Konsekwencją zerowego gradientu jest brak uczenia się, ponieważ nasza reguła aktualizacji dla spadku gradientu jest oparta na tym gradiencie.dfdW1ndfdW1
RELU i Dead Neuron
Relu został wymyślony, aby poradzić sobie z problemem znikającego gradientu, ponieważ jego pochodna wynosi zawsze 1, gdy więc gdy to RELU, mamy:
ai>0f
dXidXi−1=ai−2
dfdW1=a1a2a3...an−1
Wszystko ładnie i dobrze, gdy ale rzeczy się rozpadają za każdym razem, gdy , tym razem gradient nie tylko jest bardzo bliski zeru, ale jest to czyste zero. Gdy neuron się tam dostanie, nie ma szans na powrót. Dlatego jest to znane jako problem „martwego neuronu”x>0x<0
Nieszczelne RELU i ELU
Nieszczelne RELU i ELU to naturalny rozwój po RELU. Są podobne do RELU jako pochodnej równej 1, gdy ale unikają „martwego neuronu”, unikając zerowych pochodnych, gdy .x>0x<1
Cytuję oryginalny artykuł dla różnicy między nimi.
Chociaż LReLU i PReLU mają również wartości ujemne, nie zapewniają one stanu wyłączenia odpornego na zakłócenia. ELU nasycają się do wartości ujemnej przy mniejszych wejściach, a tym samym zmniejszają propagowaną do przodu zmienność i informacje.
Intuicyjne wyjaśnienie wygląda następująco. W ELU, gdy x staje się wystarczająco mały, gradient staje się naprawdę mały i nasycony (tak samo dzieje się w przypadku Tanha i Sigmoida). Mały gradient oznacza, że algorytm uczący się może skupić się na dostrajaniu innych wag bez martwienia się o interakcję z nasyconymi neuronami.
Rozważ wielomian stopnia 2, który można przedstawić jako gładką powierzchnię w przestrzeni 3-d. Aby znaleźć lokalne minimum, algorytm zniżania gradientu będzie musiał wziąć pod uwagę stromość w kierunku x i y. Jeśli gradient jest zarówno ujemny w kierunku x, jak i w kierunku y, nie jest jasne, która droga jest lepsza. Dlatego rozsądnie jest wybrać ścieżkę pomiędzy nimi. Ale co, jeśli wiemy już, że wszystko jest płaskie (zerowe gradienty) w kierunku x, wtedy przejście do kierunku y staje się oczywiste. Innymi słowy, przestrzeń wyszukiwania staje się znacznie mniejsza.
specjalna notatka
W głębokim uczeniu się istnieje wiele twierdzeń bez wystarczających dowodów empirycznych lub dogłębnego zrozumienia, aby je poprzeć. W przypadku ELU, chociaż może być prawdą, że skutkuje szybszą konwergencją dla niektórych zestawów danych, może być również prawdą, że powoduje, że algorytm uczenia się zatrzymuje się na lokalnym maksimum dla innego zestawu danych. Po prostu jeszcze nie wiemy wystarczająco dużo.