Jaka jest intuicja korzystania z tanh w LSTM [closed]

zamknięte. to pytanie nie spełnia wytycznych dotyczących przepełnienia stosu . Obecnie nie przyjmuje odpowiedzi.

chcesz poprawić to pytanie? Update the pytanie więc to on-topic {[3] } dla przepełnienia stosu.

Zamknięte 18 dni temu .

Popraw to pytanie

W Sieci LSTM (zrozumienie LSTMs ), Dlaczego bramki wejściowe i wyjściowe używają tanh? jaka jest intuicja za tym? to tylko nieliniowa transformacja? jeśli tak, mogę zmienić obie do innej funkcji aktywacyjnej (np. ReLU)?

Author: kmario23, 2016-11-23

2 answers

Sigmoid w szczególności, jest używany jako funkcja bramkowania dla 3 bramek(in, out, forget) w LSTM, ponieważ wyprowadza wartość z zakresu od 0 do 1, może albo nie przepływać, albo całkowicie przepływać informacji przez bramki. Z drugiej strony, aby przezwyciężyć problem znikającego gradientu, potrzebujemy funkcji, której druga pochodna może utrzymać się przez długi czas przed przejściem do zera. {[7] } jest dobrą funkcją z powyższą właściwością.

Dobra jednostka neuronowa powinna być ograniczona, łatwo różnicowalny, monotoniczny (dobry do optymalizacji wypukłości) i łatwy w obsłudze. Jeśli wziąć pod uwagę te cechy, to wierzę, że możesz użyć ReLU zamiast tanh funkcji, ponieważ są one bardzo dobrymi alternatywami dla siebie. Ale zanim dokonasz wyboru funkcji aktywacji, musisz wiedzieć, jakie są zalety i wady twojego wyboru w stosunku do innych. Krótko opisuję niektóre funkcje aktywacji i ich zalety.

Sigmoid

Matematyczne wyrażenie: sigmoid(z) = 1 / (1 + exp(-z))

Pochodna pierwszego rzędu: sigmoid'(z) = -exp(-z) / 1 + exp(-z)^2

Zalety:

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

Tanh

Wyrażenie matematyczne: tanh(z) = [exp(z) - exp(-z)] / [exp(z) + exp(-z)]

Pochodna pierwszego rzędu: 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

Hard Tanh

Wyrażenie matematyczne: hardtanh(z) = -1 if z < -1; z if -1 <= z <= 1; 1 if z > 1

Pochodna pierwszego rzędu: 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

Wyrażenie matematyczne: relu(z) = max(z, 0)

1. Kolejność pochodna: 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

Nieszczelny ReLU

Wyrażenie matematyczne: leaky(z) = max(z, k dot z) where 0 < k < 1

Pochodna pierwszego rzędu: relu'(z) = 1 if z > 0; k otherwise

Zalety:

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

Ten papier wyjaśnia pewną zabawną funkcję aktywacji. Możesz rozważyć przeczytanie go.

 97
Author: Wasi Ahmad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-18 06:18:01

LSTMs zarządza wewnętrznym wektorem stanu, którego wartości powinny być w stanie zwiększyć lub zmniejszyć, gdy dodamy wyjście jakiejś funkcji. Wyjście Sigmoid jest zawsze nieujemne; wartości w stanie tylko wzrosną. Wyjście z tanh może być dodatnie lub ujemne, co pozwala na wzrost i spadek stanu.

Dlatego tanh jest używany do określania wartości kandydatów, aby uzyskać dodane do stanu wewnętrznego. Gru kuzyn LSTM nie ma drugiego tanh, więc w pewnym sensie drugi nie jest konieczny. Sprawdź diagramy i wyjaśnienia w pracy Chrisa Olaha Understanding LSTM Networks , Aby uzyskać więcej informacji.

Związane z tym pytanie: "dlaczego sigmoidy są używane w LSTMs, gdzie są?"odpowiada się również na podstawie możliwych wyjść funkcji: "bramkowanie" uzyskuje się przez pomnożenie przez liczbę od zera do jedynki, i to właśnie wyprowadza sigmoidy.

Nie ma naprawdę znaczących różnic między pochodnymi esicy i tanh; tanh jest tylko przeskalowane i przesunięte esicy: zobacz Richard Socher ' S Neural Tips and Tricks. Jeśli drugie pochodne są istotne, chciałbym wiedzieć jak.

 64
Author: Aaron Schumacher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-15 20:29:00