Dans le réseau LSTM ( Comprendre les LSTM ), Pourquoi les portes d'entrée et les portes de sortie utilisent tanh? quelle est l'intuition derrière cela? c'est juste une transformation non linéaire? si tel est le cas, puis-je changer les deux en une autre fonction d'activation (par exemple, ReLU)?
Sigmoid
en particulier, est utilisée comme fonction de déclenchement pour les 3 portes (entrées, sorties, oublis) de LSTM
, puisqu’elle affiche une valeur comprise entre 0 et 1, elle peut ne laisser aucun flux ou flux complet d'informations à travers les portes. Par ailleurs, pour résoudre le problème de l’inégalité du gradient, nous avons besoin d’une fonction dont la dérivée seconde peut durer longtemps avant d’être nulle. Tanh
est une bonne fonction avec la propriété ci-dessus.
Une bonne unité neuronale doit être liée, facilement différentiable, monotone (bonne pour l'optimisation convexe) et facile à manipuler. Si vous considérez ces qualités, alors je pense que vous pouvez utiliser ReLU
à la place de tanh
, car ce sont de très bonnes alternatives les unes des autres. Mais avant de choisir les fonctions d’activation, vous devez savoir quels sont les avantages et les inconvénients de votre choix par rapport aux autres. Je décris brièvement certaines des fonctions d’activation et leurs avantages.
Sigmoïde
Expression mathématique: sigmoid(z) = 1 / (1 + exp(-z))
Dérivée du 1er 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 du 1er 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 du 1er 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 du 1er 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 du 1er ordre: relu'(z) = 1 if z > 0; k otherwise
Avantages:
(1) Allows propagation of error for non-positive z which ReLU doesn't
Ce papier explique une fonction d'activation amusante. Vous pouvez envisager de le lire.
Les LSTM gèrent un vecteur d'état interne dont les valeurs devraient pouvoir augmenter ou diminuer lorsque nous ajoutons la sortie d'une fonction. La sortie en sigmoïde est toujours non négative. les valeurs dans l'état ne feraient qu'augmenter. Le résultat de tanh peut être positif ou négatif, 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 deuxième bronzage, donc dans un sens, le second n'est pas nécessaire. Consultez les diagrammes et les explications dans Chris Olah Comprendre les réseaux LSTM pour en savoir plus.
La question connexe, "Pourquoi les sigmoids sont-ils utilisés dans les LSTM où ils sont?" On répond également en fonction des sorties possibles de la fonction: le "déclenchement" est obtenu en multipliant par un nombre compris entre zéro et un, et c’est ce que la sortie de sigmoids.
Il n'y a pas vraiment de différences significatives entre les dérivés de sigmoid et tanh; Tanh est juste un sigmoïde redimensionné et décalé: voir Richard Socher's Trucs et astuces neuronaux . Si les dérivées secondes sont pertinentes, j'aimerais savoir comment.