98 votes

Quelle est l'intuition de l'utilisation de tanh dans LSTM ?

Dans le réseau LSTM ( Comprendre les LSTM ), Pourquoi la porte d'entrée et la porte de sortie utilisent-elles tanh ? quelle est l'intuition derrière cela ? C'est juste une transformation non linéaire ? Si c'est le cas, puis-je changer les deux pour une autre fonction d'activation (par exemple ReLU) ?

2 votes

Ni la porte d'entrée ni la porte de sortie n'utilisent la fonction tanh pour l'activation. Je suppose qu'il y a un malentendu. Les deux portes d'entrée ( i_{t} ) et la porte de sortie ( o_{t} ) utilisent la fonction sigmoïde. Dans le réseau LSTM, la fonction d'activation tanh est utilisée pour déterminer les valeurs des états cellulaires candidats (état interne) ( \tilde{C}_{t} ) et mettre à jour l'état caché ( h_{t} ).

120voto

Wasi Ahmad Points 12606

Sigmoid plus précisément, est utilisé comme fonction de déclenchement pour les 3 portes (entrée, sortie, oubli) dans le système de gestion de l'information. LSTM Puisqu'il émet une valeur entre 0 et 1, il peut soit ne laisser aucun flux, soit laisser un flux complet d'informations à travers les portes. D'autre part, pour surmonter le problème du gradient évanescent, nous avons besoin d'une fonction dont la dérivée seconde peut se maintenir sur une longue période avant de devenir nulle. Tanh est une bonne fonction avec la propriété ci-dessus.

Une bonne unité neuronale doit être bornée, facilement différentiable, monotone (bonne pour l'optimisation convexe) et facile à manipuler. Si vous considérez ces qualités, alors je crois que vous pouvez utiliser ReLU à la place de tanh car elles sont de très bonnes alternatives l'une à l'autre. Mais avant de faire un choix pour les fonctions d'activation, vous devez savoir quels sont les avantages et les inconvénients de votre choix par rapport aux autres. Je vais décrire brièvement certaines des fonctions d'activation et leurs avantages.

Sigmoïde

Expression mathématique : sigmoid(z) = 1 / (1 + exp(-z))

Dérivée de premier ordre : sigmoid'(z) = -exp(-z) / 1 + exp(-z)^2

Avantages :

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

Tanh

Expression mathématique : tanh(z) = [exp(z) - exp(-z)] / [exp(z) + exp(-z)]

Dérivée de premier ordre : tanh'(z) = 1 - ([exp(z) - exp(-z)] / [exp(z) + exp(-z)])^2 = 1 - tanh^2(z)

Avantages :

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

Hard Tanh

Expression mathématique : hardtanh(z) = -1 if z < -1; z if -1 <= z <= 1; 1 if z > 1

Dérivée de premier ordre : hardtanh'(z) = 1 if -1 <= z <= 1; 0 otherwise

Avantages :

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

ReLU

Expression mathématique : relu(z) = max(z, 0)

Dérivée de premier ordre : relu'(z) = 1 if z > 0; 0 otherwise

Avantages :

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

Leaky ReLU

Expression mathématique : leaky(z) = max(z, k dot z) where 0 < k < 1

Dérivée de premier ordre : relu'(z) = 1 if z > 0; k otherwise

Avantages :

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

Ce site papier explique une fonction d'activation amusante. Vous pouvez envisager de le lire.

0 votes

Donc, si je veux changer l'activation en RelU, je dois changer tanh dans l'activation de la porte d'entrée et dans la multiplication de sortie, est-ce correct @Wasi Ahmad ?

0 votes

@DNK oui, je dirais que pour maintenir une certaine cohérence, cela est nécessaire.

0 votes

Donc, en d'autres termes, -à part la sigmoïde utilisée pour les portes- je pourrais choisir la fonction d'activation comme dans une couche de réseau neuronal standard @WasiAhmad

73voto

Aaron Schumacher Points 317

Les LSTM gèrent un vecteur d'état interne dont les valeurs doivent pouvoir augmenter ou diminuer lorsque nous ajoutons la sortie d'une certaine fonction. La sortie de Sigmoid est toujours non négative ; les valeurs de l'état ne feraient qu'augmenter. La sortie de tanh peut être positive ou négative, permettant des augmentations et des diminutions de l'état.

C'est pourquoi tanh est utilisé pour déterminer les valeurs candidates à ajouter à l'état interne. Le cousin GRU du LSTM n'a pas de second tanh, donc dans un sens le second n'est pas nécessaire. Consultez les diagrammes et les explications de l'article de Chris Olah intitulé Comprendre les réseaux LSTM pour plus.

La question connexe, "Pourquoi les sigmoïdes sont-elles utilisées dans les LSTM là où elles le sont ?" trouve également une réponse sur la base des sorties possibles de la fonction : Le "gating" est obtenu en multipliant par un nombre entre zéro et un, et c'est ce que les sigmoïdes produisent.

Il n'y a pas vraiment de différences significatives entre les dérivées de sigmoïde et de tanh ; tanh est simplement une sigmoïde rééchelonnée et décalée : voir l'article de Richard Socher intitulé Conseils et astuces neuronaux . Si les dérivées secondes sont pertinentes, j'aimerais savoir comment.

0 votes

@Aaron, merci pour la réponse. Dans le blog de Chris Olah, pour la dernière étape du calcul dans la cellule LSTM, nous voyons ht = Ot * tanh(Ct). Ot, provenant d'une porte sigmoïde, se situe dans [0,1]. tanh(Ct) se situe dans [-1,1]. Cela signifie-t-il que la sortie d'une cellule LSTM est toujours comprise entre -1 et +1 ?

1 votes

@End-2-End ça me semble correct, avec la précision peut-être inutile qu'en général l'ensemble fonctionne sur des vecteurs, donc les limites sont sur chaque composant.

0 votes

@RohitTidke dans le sens de fr.wikipedia.org/wiki/Second_partial_derivative_test Oui.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X