Tanh (Hyperbolic Tangent)
Découvre comment la fonction d’activation Tanh améliore l’entraînement des réseaux neuronaux en recentrant les données autour de zéro. Explore son rôle dans les RNN, les GAN et les modèles Ultralytics YOLO26.
La fonction Tanh (tangente hyperbolique) est une fonction d’activation mathématique largement utilisée dans les couches cachées des réseaux neuronaux artificiels. Elle transforme les valeurs d’entrée en une plage de sortie comprise entre -1 et 1, créant une courbe en forme de S similaire à celle de la fonction sigmoïde, mais centrée sur zéro. Cette propriété de centrage sur zéro est essentielle, car elle permet au modèle d’apprendre plus efficacement en normalisant la sortie des neurones et en garantissant que les données circulant dans le réseau ont une moyenne plus proche de zéro. En traitant explicitement les valeurs négatives, Tanh aide les réseaux neuronaux à capturer des motifs et des relations plus complexes au sein des données.
Le mécanisme de Tanh en apprentissage profond#
Dans l’architecture des modèles d’apprentissage profond, les fonctions d’activation introduisent de la non-linéarité, ce qui permet au réseau d’apprendre des frontières complexes entre différentes classes de données. Sans fonctions comme Tanh, un réseau neuronal se comporterait comme un simple modèle de régression linéaire, quel que soit le nombre de couches qu’il comporte. La fonction Tanh est particulièrement efficace dans les réseaux neuronaux récurrents (RNN) et certains types de réseaux à propagation avant, où le maintien d’une distribution d’activations équilibrée et centrée sur zéro contribue à prévenir le problème du gradient évanescent pendant la rétropropagation.
Lorsque les entrées sont mappées sur la plage comprise entre -1 et 1, les entrées fortement négatives produisent des sorties négatives, tandis que les entrées fortement positives produisent des sorties positives. Cela diffère de la fonction Sigmoid, qui comprime les valeurs entre 0 et 1. Comme les sorties de Tanh sont symétriques autour de zéro, le processus de descente de gradient converge souvent plus rapidement, car les poids des couches suivantes ne se déplacent pas constamment dans une seule direction, un phénomène connu sous le nom de trajectoire en « zigzag » lors de l’optimisation.
Applications concrètes#
Tanh continue de jouer un rôle essentiel dans certaines architectures et certains cas d’usage, notamment lorsque le traitement de séquences et l’estimation de valeurs continues sont nécessaires.
- Traitement automatique du langage (NLP) : Dans des architectures comme les réseaux à mémoire à long et court terme (LSTM) et les unités récurrentes à portes (GRU), Tanh est utilisée comme fonction d’activation principale pour réguler le flux d’informations. Par exemple, dans les tâches de traduction automatique, où un modèle traduit du texte de l’anglais vers le français, Tanh aide les portes internes du LSTM à décider quelle quantité du contexte précédent (la mémoire) doit être conservée ou oubliée. Cela permet au modèle de gérer les dépendances à long terme dans la structure des phrases.
- Réseaux antagonistes génératifs (GANs) : Dans le composant générateur de nombreux réseaux antagonistes génératifs, Tanh est souvent utilisée comme fonction d’activation finale de la couche de sortie. Comme les images sont souvent normalisées sur une plage comprise entre -1 et 1 lors du prétraitement, l’utilisation de Tanh garantit que le générateur produit des valeurs de pixels dans cette même plage valide. Cette technique contribue à synthétiser des images réalistes pour des applications telles que la génération texte-image.
Comparaison : Tanh, Sigmoid et ReLU#
Il est utile de distinguer Tanh des autres fonctions courantes pour comprendre quand l’utiliser.
- Tanh ou Sigmoid : Les deux fonctions ont une courbe en forme de S. Cependant, Sigmoid produit des valeurs comprises entre 0 et 1, ce qui peut entraîner une disparition des gradients plus rapide qu’avec Tanh. Sigmoid est généralement réservée à la couche de sortie finale des problèmes de classification binaire (prédiction de probabilités), tandis que Tanh est privilégiée dans les couches cachées des RNN.
- Tanh ou ReLU (Rectified Linear Unit) : Dans les réseaux neuronaux convolutifs modernes (CNNs) comme YOLO26, ReLU et ses variantes, comme SiLU, sont généralement préférées à Tanh dans les couches cachées. Cela s’explique par le fait que ReLU évite plus efficacement le problème du gradient évanescent dans les réseaux très profonds et nécessite moins de calculs. Tanh est plus coûteuse sur le plan computationnel en raison des calculs exponentiels qu’elle implique.
Implémentation des fonctions d’activation dans PyTorch#
Bien que les modèles de haut niveau comme Ultralytics YOLO26 gèrent les définitions des fonctions d’activation en interne dans leurs fichiers de configuration, comprendre comment appliquer Tanh avec PyTorch est utile pour créer des modèles personnalisés.
import torch
import torch.nn as nn
# Define a sample input tensor with positive and negative values
input_data = torch.tensor([-2.0, -0.5, 0.0, 0.5, 2.0])
# Initialize the Tanh activation function
tanh = nn.Tanh()
# Apply Tanh to the input data
output = tanh(input_data)
# Print results to see values squashed between -1 and 1
print(f"Input: {input_data}")
print(f"Output: {output}")Pour les utilisateurs qui souhaitent entraîner des architectures personnalisées ou gérer efficacement des jeux de données, la plateforme Ultralytics offre un environnement rationalisé pour expérimenter avec différents hyperparamètres de modèle, visualiser les métriques d’entraînement et déployer des solutions sans avoir à coder manuellement chaque couche du réseau neuronal.









