Dlaczego używamy ReLU w sieciach neuronowych i jak z niego korzystamy?

Dlaczego w sieciach neuronowych używamy rektyfikowanych jednostek liniowych (ReLU)? Jak to ulepsza sieć neuronową?

Dlaczego mówimy, że ReLU jest funkcją aktywacji? Czy nie ma funkcji aktywacji softmax t dla sieci neuronowych? Zgaduję, że używamy zarówno ReLU, jak i softmax, w ten sposób:

neuron 1 z wyjściem softmax —-> ReLU na wyjściu neuronu 1, czyli
wejście neuronu 2 —> neuron 2 z wyjściem softmax -> …

tak, że wejście neuronu 2 to w zasadzie ReLU (softmax (x1)). dobrze?

Odpowiedź

Funkcja ReLU to $ f (x) = \ max (0, x). $ Zwykle jest to stosowane elementarnie na wyjściu jakiejś innej funkcji, takiej jak iloczyn macierzowo-wektorowy. W zastosowaniach MLP jednostki prostownika zastępują wszystkie inne funkcje aktywacyjne z wyjątkiem być może odczytu Ale przypuszczam, że możesz je mieszać i dopasowywać, jeśli chcesz.

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

Gradienty logistycznych i hiperbolicznych sieci stycznych są mniejsze niż dodatnia część ReLU. Oznacza to, że część pozytywna 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 w taki sposób, że wyjście zawsze wynosi zero; zmodyfikowane jednostki ReLU, takie jak ELU (lub Leaky ReLU lub PReLU itp.) mogą to poprawić.

$ \ frac {d} {dx} \ text { ReLU} (x) = 1 \ forall x > 0 $ . Z kolei gradient jednostki sigmoidalnej wynosi co najwyżej 0,25 $ ; z drugiej strony $ \ tanh $ wypada lepiej w przypadku danych wejściowych w regionie bliskim 0, ponieważ 0,25 USD < \ frac {d} {dx} \ tanh (x) \ le 1 \ forall x \ in [-1,31, 1,31] $ (w przybliżeniu).

Komentarze

  • Nie widzę dowodów na to, że chciałem zadać pytanie lub że brałem udział w tej stronie. Szczerze mówiąc, ' jestem zdumiony, jak dobrze działa ReLU, ale ' przestałem to kwestionować :).
  • @aginensky Wygląda na to, że komentarz został tymczasowo usunięty.
  • Komentarz nie został usunięty przeze mnie ani nie zostałem poinformowany. ' przestałem odpowiadać na pytania i wydaje mi się, że oznacza to, że ' skończyłem też komentować.
  • @aginensky Nie ' nie wiem, dlaczego miałoby to spowodować zaprzestanie komentowania. Jeśli masz jakieś pytania dotyczące komentarzy i moderacji, możesz zadać je w meta.stats.SE.

Odpowiedz

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 $ \ rho (x) = \ max (0, x) $ , łatwo zauważyć, że $ \ rho \ circ \ rho \ circ \ rho \ circ \ dots \ circ \ rho = \ rho $ jest prawdziwe dla dowolnej skończonej kompozycji. Ta właściwość jest bardzo ważna dla głębokich sieci neuronowych, ponieważ każda warstwa w sieć stosuje nieliniowość. Teraz zastosujmy dwie funkcje z rodziny sigmoidów do tego samego wejścia wielokrotnie 1-3 razy:

tutaj wprowadź opis obrazu

Od razu widać, że funkcje sigmoidalne„ zgniatają ”swoje dane wejściowe, powodując znikający problem z gradientem: pochodne zbliżają się do zera jako $ n $ (liczba powtórzonych aplikacji) zbliża się do nieskończoności.

Odpowiedź

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

ReLU jest obliczane po splocie i jest nieliniową funkcją aktywacji, taką jak tanh lub sigmoid.

Softmax jest klasyfikatorem na końcu sieci neuronowej. To jest regresja logistyczna w celu znormalizowania wyników do wartości z zakresu od 0 do 1. (Alternatywą jest klasyfikator SVM).

Przepuszczanie do przodu CNN, np .: input-> conv-> ReLU-> Pool-> conv-> ReLU-> Pool-> FC-> softmax

Komentarze

  • Głosowanie przeciw. To bardzo zła odpowiedź! Softmax nie jest klasyfikatorem! Jest to funkcja, która normalizuje (skaluje) wyniki do zakresu [0,1] i zapewnia, że sumują się do 1. Regresja logistyczna nie ” reguluje ” cokolwiek!Zdanie ” ReLU jest obliczane po splocie i dlatego nieliniowa funkcja aktywacyjna, taka jak tanh lub sigmoida. ” nie zawiera czasownika ani sensu.
  • Odpowiedź nie jest taka zła. Zdanie bez czasownika musi mieć postać ” ReLU jest obliczane po splocie, a IS jest więc nieliniową funkcją aktywacji, taką jak tanh lub sigmoid. ” Myślenie o softmax jako klasyfikatorze też ma sens. Można go postrzegać jako klasyfikator probabilistyczny , który przypisuje prawdopodobieństwo każdej klasie. ” reguluje ” / ” normalizuje ” wyjścia do przedziału [0,1].

Odpowiedź

ReLU to przełącznik dosłowny. Z przełącznikiem elektrycznym 1 wolt na wejściu daje 1 wolt na wyjściu, n wolt na wejściu daje n woltów na wyjściu, gdy jest włączony. Włączanie / wyłączanie, gdy zdecydujesz się przełączyć na zero, daje dokładnie taki sam wykres jak ReLU. Suma ważona (iloczyn skalarny) wielu sum ważonych jest nadal systemem liniowym. Dla danego wejścia przełączniki ReLU są indywidualnie włączane lub wyłączane. Powoduje to szczególne odwzorowanie liniowe z wejścia na wyjście, ponieważ różne ważone sumy ważonej sumy … są połączone razem przez przełączniki. Dla określonego wejścia i określonego neuronu wyjściowego istnieje złożony system sum ważonych, które w rzeczywistości można podsumować w pojedynczą efektywną sumę ważoną. Ponieważ ReLU przełącza stan na zero, nie ma nagłych nieciągłości na wyjściu dla stopniowych zmian na wejściu.

Istnieją inne numerycznie efektywne algorytmy sumy ważonej (iloczyn skalarny), takie jak FFT i transformata Walsha Hadamarda. Nie ma powodu, dla którego nie można włączyć ich do sieci neuronowej opartej na ReLU i czerpać korzyści z zysków obliczeniowych (np. Sieci neuronowe banku filtrów ze stałymi filtrami). div class = „answer”>

ReLU jest prawdopodobnie jedną z najprostszych możliwych funkcji nieliniowych. Funkcja krokowa jest prostsza. Jednak funkcja krokowa ma pierwszą pochodną (gradient) zero wszędzie, ale w jednym punkcie, w którym ma nieskończony gradient. ReLU ma wszędzie pochodną skończoną (gradient). W jednym punkcie ma nieskończoną drugą pochodną.

Sieci sprzężenia zwrotnego są trenowane, szukając gradientu zerowego. Ważne jest to, że jest wiele pierwszych pochodnych do obliczenia w procedurze wstecznej propagacji dużej sieci i pomaga to, że są one szybkie w obliczeniach, takich jak ReLU. Po drugie, w przeciwieństwie do funkcji krokowej, gradienty ReLU są zawsze skończone i nie są trywialne zera prawie wszędzie. Wreszcie, potrzebujemy nieliniowych aktywacji, aby sieć głębokiego uczenia działała dobrze l, ale to inny temat.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *