2016-11-23 25 views
18

W sieci LSTM (Understanding LSTMs), dlaczego brama wejściowa i brama wyjściowa używają tanh? jaka jest intuicja za tym? to tylko nieliniowa transformacja? Jeśli tak, czy mogę zmienić obie na inną funkcję aktywacji (np. ReLU)?Jaka jest intuicja korzystania z tanh w LSTM

+0

Ani bramka wejściowa, ani bramka wyjściowa nie używają funkcji tanh do aktywacji. Sądzę, że jest nieporozumienie. Zarówno bramka wejściowa ('i_ {t}'), jak i bramka wyjściowa ('o_ {t}') używają funkcji sigmoid. W sieci LSTM funkcja aktywacji tanh jest używana do określenia wartości stanu kandydującej komórki (stan wewnętrzny) ('\ tylda {C} _ {t}') i aktualizacji stanu ukrytego ('h_ {t}'). –

Odpowiedz

26

Sigmoid szczególności, stosuje się jako funkcję bramkowania do 3 bramy (w, na, zapomnieć) w LSTM, gdyż na wyjściu wartość pomiędzy 0 i 1, to może albo pozwolić nie przepływu albo pełny przepływ informacji we bramy. Z drugiej strony, aby przezwyciężyć problem zanikających gradientów, potrzebujemy funkcji, której druga pochodna może utrzymać się na długim dystansie przed przejściem do zera. Tanh to dobra funkcja z powyższą właściwością.

Dobra jednostka neuronowa powinna być ograniczona, łatwo różnicowalna, monotoniczna (dobra do optymalizacji wypukłej) i łatwa w obsłudze. Jeśli weźmiesz pod uwagę te cechy, to sądzę, że możesz użyć funkcji ReLU zamiast funkcji tanh, ponieważ są one bardzo dobrymi alternatywami. Ale zanim dokonasz wyboru funkcji aktywacyjnych, musisz wiedzieć, jakie są wady i zalety twojego wyboru w stosunku do innych. Krótko opisuję niektóre funkcje aktywacyjne i ich zalety.

Sigmoid

matematycznego: sigmoid(z) = 1/(1 + exp(-z))

1-ty pochodne zamówienie: sigmoid'(z) = -exp(-z)/1 + exp(-z)^2

Zalety:

(1) Sigmoid function has all the fundamental properties of a good activation function. 

Tanh

matematycznego: tanh(z) = [exp(z) - exp(-z)]/[exp(z) + exp(-z)]

1-ty pochodne zamówienie: tanh'(z) = 1 - ([exp(z) - exp(-z)]/[exp(z) + exp(-z)])^2 = 1 - tanh^2(z)

Zalety:

(1) Often found to converge faster in practice 
(2) Gradient computation is less expensive 

twardego Tanh

matematycznego: hardtanh(z) = -1 if z < -1; z if -1 <= z <= 1; 1 if z > 1

1-szy pochodna,: hardtanh'(z) = 1 if -1 <= z <= 1; 0 otherwise

Zalety:

(1) Computationally cheaper than Tanh 
(2) Saturate for magnitudes of z greater than 1 

Relu

matematycznego: relu(z) = max(z, 0)

1-ci pochodne zamówienie: relu'(z) = 1 if z > 0; 0 otherwise

Zalety:

(1) Does not saturate even for large values of z 
(2) Found much success in computer vision applications 

nieszczelnego Relu

matematycznego: leaky(z) = max(z, k dot z) where 0 < k < 1

1-ci pochodne zamówienie: relu'(z) = 1 if z > 0; k otherwise

Zalety:

(1) Allows propagation of error for non-positive z which ReLU doesn't 

to paper wyjaśnia niektóre f un aktywacja funkcji. Możesz rozważyć przeczytanie tego.

+0

, więc chcę zmienić aktywację na RelU, muszę zmienić zarówno tanh w aktywacji bramki wejściowej, jak iw mnożeniu wyniku, czy to poprawne @Wasi Ahmad? – DNK

+0

@DNK tak, chciałbym powiedzieć, aby zachować pewien stopień spójności, to jest konieczne. –

+0

czyli, innymi słowy, -apart z sigmoidu używanego do bram- mogłem wybrać funkcję aktywacji jak w standardowej warstwie sieci neuronowej @ WasiAhmad – DNK

4

LSTMs zarządzają wewnętrznym wektorem stanu, którego wartości powinny być w stanie zwiększyć lub zmniejszyć, gdy dodamy wyjście jakiejś funkcji. Sigmoid output jest zawsze nieujemny; wartości w stanie tylko wzrosłyby. Wydajność tanh może być dodatnia lub ujemna, pozwalając na wzrost i spadek stanu.

Dlatego tanga używa się do określenia wartości kandydujących, aby uzyskać stan wewnętrzny. Kuzyn GRU z LSTM nie ma drugiego tanha, więc w pewnym sensie drugi nie jest konieczny. Sprawdź diagramy i wyjaśnienia w Chris Olah's Understanding LSTM Networks, aby uzyskać więcej informacji.

Powiązane pytanie "Dlaczego sigmoidy są używane w LSTM tam, gdzie są?" odpowiada również na podstawie możliwych wyjść funkcji: "bramkowanie" osiąga się przez pomnożenie przez liczbę od zera do jednego, i to jest to, co sigmoidy wyjściowe.

Nie ma naprawdę znaczących różnic między pochodnymi esicy i tanh; tanh to po prostu przeskalowany i przesunięty sigmoid: patrz Richard Socher's Neural Tips and Tricks. Jeśli drugie pochodne są istotne, chciałbym wiedzieć jak.

+1

To jest poprawna odpowiedź. – ahstat

+1

Dobra odpowiedź. brachu. – roachsinai

Powiązane problemy