Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Tanh (Hyperbolic Tangent)

Tanh transforme les entrées en valeurs comprises entre −1 et 1 sur une courbe en S centrée sur zéro. Au programme : sa formule, son gradient, ses usages dans les RNN, les GAN et le contrôle, ainsi que du code PyTorch.

La tangente hyperbolique, tanh(x) = (eˣ − e^(−x)) / (eˣ + e^(−x)), est une fonction d’activation qui associe tout nombre réel à une valeur comprise entre −1 et 1, le long d’une courbe en forme de S centrée sur zéro. Il s’agit d’une sigmoïde remise à l’échelle, tanh(x) = 2σ(2x) − 1 : elle a donc la même forme que la sigmoïde, mais renvoie des valeurs négatives pour les entrées négatives et sa pente vaut 1 à l’origine. Tanh était la fonction d’activation standard des couches cachées des réseaux de neurones dans les années 1990 et 2000. Aujourd’hui, elle définit l’état caché des réseaux de neurones récurrents (RNNs), borne les sorties des générateurs d’images et des politiques de contrôle, et maintient les valeurs dans une plage donnée au sein de modèles plus vastes.

Formule et propriétés#

Tanh est une fonction impaire, tanh(−x) = −tanh(x), et tanh(0) = 0. Près de zéro, elle est presque linéaire, tanh(x) ≈ x, et au-delà d’environ ±3, elle s’aplatit en tendant vers ±1. Sa dérivée, 1 − tanh²(x), vaut 1 à l’origine, soit quatre fois le maximum de 0,25 de la sigmoïde, et tend vers zéro lorsque la courbe sature. L’extrait de code PyTorch ci-dessous calcule tanh et son gradient, puis compare les sorties moyennes de tanh et de la sigmoïde sur des entrées de moyenne nulle :

import torch

x = torch.tensor([-3.0, -1.0, 0.0, 1.0, 3.0], requires_grad=True)
y = torch.tanh(x)

# The derivative of tanh is 1 - tanh(x)^2, which peaks at 1 when x = 0
y.sum().backward()
print(f"Tanh:     {[round(v, 3) for v in y.tolist()]}")
print(f"Gradient: {[round(v, 3) for v in x.grad.tolist()]}")

# For zero-mean inputs, tanh outputs average near 0 and sigmoid outputs near 0.5
torch.manual_seed(0)
z = torch.randn(100_000)
print(f"Mean output, tanh: {torch.tanh(z).mean():.3f}, sigmoid: {torch.sigmoid(z).mean():.3f}")

Il affiche les valeurs de tanh pour [-0.995, -0.762, 0.0, 0.762, 0.995] et les gradients de [0.01, 0.42, 1.0, 0.42, 0.01] : le gradient à ±3 vaut donc un centième de sa valeur à zéro. Pour 100,000 entrées normales standard, les sorties de tanh ont une moyenne d’environ 0.0 et celles de la sigmoïde, d’environ 0.5.

Pourquoi des sorties centrées sur zéro sont utiles#

Les gradients des poids d’un neurone sont proportionnels à ses entrées. Lorsque toutes les entrées sont positives, comme le sont toujours les sorties de la sigmoïde, les gradients de tous les poids du neurone ont le même signe à chaque mise à jour ; les poids ne peuvent donc qu’augmenter ensemble ou diminuer ensemble, et atteignent leur optimum en zigzaguant. Les sorties de tanh sont positives et négatives dans des proportions à peu près égales, ce qui permet à chaque poids d’évoluer indépendamment et maintient les entrées de la couche suivante près d’une moyenne nulle, là où la descente de gradient converge plus rapidement. C’est pourquoi, dans leur guide de 1998 intitulé « Efficient BackProp », Yann LeCun et ses collègues recommandaient les fonctions symétriques plutôt que la sigmoïde logistique pour les couches cachées, en particulier la forme mise à l’échelle 1.7159 · tanh(2x/3). Tanh sature toujours, et l’empilement de nombreuses couches tanh réduit les gradients pendant la rétropropagation, ce qui entraîne le problème du gradient évanescent.

Où tanh est utilisée#

  • Réseaux récurrents : Un RNN simple met à jour son état selon hₜ = tanh(Wxₜ + Uhₜ₋₁ + b), et tanh est la non-linéarité par défaut de nn.RNN de PyTorch. Dans les cellules LSTM et GRU, tanh produit le contenu candidat et, dans le LSTM, comprime l’état de la cellule avant la sortie, tandis que les portes sigmoïdes déterminent quelle quantité utiliser. La plage bornée empêche un état réinjecté à chaque étape de croître sans limite.
  • Générateurs de GAN : DCGAN termine son générateur par tanh, afin que les pixels générés soient compris entre −1 et 1, la plage sur laquelle ses images d’entraînement sont mises à l’échelle ; de nombreux réseaux antagonistes génératifs (GANs) ultérieurs font de même.
  • Actions bornées : Les politiques de contrôle continu en apprentissage par renforcement font passer leurs sorties par tanh pour maintenir chaque commande dans les limites des actionneurs. Soft Actor-Critic comprime ainsi les échantillons d’une politique gaussienne.
  • Écrêtage souple des logits : Les modèles de langage Gemma 2 de Google calculent cap · tanh(logits / cap), avec un cap de 50 pour les logits d’attention et de 30 pour les logits finaux. Les petits logits passent presque inchangés, et les grands ne peuvent jamais dépasser le cap.
  • Approximation de GELU : 0.5x(1 + tanh(√(2/π)(x + 0.044715x³))) fournit une approximation précise de GELU, et le code original de GPT-2 et BERT calcule GELU de cette manière.
  • Flots normalisants : Les flots de type RealNVP se terminent souvent par tanh dans chaque réseau d’échelle, de sorte que chaque couche de couplage multiplie ses entrées par un facteur compris entre e⁻¹ et e, ce qui stabilise numériquement l’entraînement. Les modèles d’estimation de pose YOLO26 s’entraînent avec une fonction de perte d’estimation du log-vraisemblance résiduel dont le flot RealNVP à six couches, chaque réseau d’échelle se terminant par tanh, modélise l’écart entre les points clés prédits et la vérité terrain.
  • Sigmoïde : Tanh est une sigmoïde étendue à la plage −1 à 1 et comprimée horizontalement d’un facteur deux, ce qui fait passer sa pente maximale de 0.25 à 1. La plage de 0 à 1 de la sigmoïde en fait la fonction privilégiée pour les probabilités et les portes.
  • Hardtanh : Une version linéaire par morceaux qui écrête les entrées à [−1, 1]. Son calcul est moins coûteux, et son gradient est exactement égal à 0 en dehors de cette plage.
  • ReLU : max(0, x) ne sature jamais pour les entrées positives et ne nécessite qu’une comparaison ; ReLU et ses variantes lisses, comme SiLU, ont donc remplacé tanh dans les couches cachées des réseaux de neurones convolutifs (CNNs) profonds et des transformeurs. Dans l’article sur AlexNet, un CNN à quatre couches avec ReLU a atteint 25 % d’erreur d’entraînement sur CIFAR-10 six fois plus rapidement que le même réseau avec des unités tanh.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique