Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Tanh (Hyperbolic Tangent)

Tanh mappa gli input in valori compresi tra −1 e 1 su una curva a S centrata sullo zero. Include la formula, il gradiente, gli usi in RNN, GAN e sistemi di controllo e il codice PyTorch.

La tangente iperbolica, tanh(x) = (eˣ − e^(−x)) / (eˣ + e^(−x)), è una funzione di attivazione che mappa ogni numero reale in un valore compreso tra −1 e 1 lungo una curva a S centrata sullo zero. È una sigmoide riscalata, tanh(x) = 2σ(2x) − 1, quindi ne condivide la forma, ma restituisce valori negativi per gli input negativi e ha una pendenza pari a 1 nell’origine. Fino agli anni Novanta e Duemila, tanh era la funzione di attivazione standard per i livelli nascosti delle reti neurali. Oggi modella lo stato nascosto delle reti neurali ricorrenti (RNN), limita gli output dei generatori di immagini e delle politiche di controllo e mantiene i valori entro un intervallo definito all’interno di modelli più grandi.

Formula e proprietà#

Tanh è una funzione dispari, tanh(−x) = −tanh(x), con tanh(0) = 0. Vicino allo zero è quasi lineare, tanh(x) ≈ x, mentre oltre circa ±3 si appiattisce avvicinandosi a ±1. La sua derivata, 1 − tanh²(x), è pari a 1 nell’origine, quattro volte il massimo di 0.25 della sigmoide, e si avvicina a zero quando la curva satura. Il frammento di codice PyTorch qui sotto calcola tanh e il suo gradiente, quindi confronta le uscite medie di tanh e sigmoide su input a media zero:

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}")

Stampa i valori tanh di [-0.995, -0.762, 0.0, 0.762, 0.995] e i gradienti di [0.01, 0.42, 1.0, 0.42, 0.01], quindi il gradiente a ±3 è un centesimo del suo valore in corrispondenza dello zero. Per 100.000 input con distribuzione normale standard, le uscite tanh hanno una media di circa 0.0 e quelle della sigmoide di circa 0.5.

Perché sono utili le uscite centrate sullo zero#

I gradienti dei pesi di un neurone sono proporzionali ai suoi input. Quando tutti gli input sono positivi, come accade sempre con le uscite della sigmoide, i gradienti dei pesi di un neurone hanno tutti lo stesso segno a ogni aggiornamento; di conseguenza, i pesi possono solo aumentare o diminuire insieme e raggiungono il loro valore ottimale procedendo a zig-zag. Le uscite tanh sono positive e negative in misura approssimativamente uguale: ciò permette a ciascun peso di variare autonomamente e mantiene gli input del livello successivo vicini alla media zero, dove la discesa del gradiente converge più rapidamente. Per questo motivo, nella guida del 1998 "Efficient BackProp", Yann LeCun e i suoi colleghi raccomandavano per i livelli nascosti le funzioni simmetriche anziché la sigmoide logistica, in particolare la forma scalata 1.7159 · tanh(2x/3). Tanh satura comunque e la successione di molti livelli tanh riduce i gradienti durante la propagazione all’indietro, causando il problema del gradiente evanescente.

Dove si usa tanh#

  • Reti ricorrenti: una RNN semplice aggiorna il proprio stato secondo hₜ = tanh(Wxₜ + Uhₜ₋₁ + b), e tanh è la non linearità predefinita di nn.RNN in PyTorch. Nelle celle LSTM e GRU, tanh produce il contenuto candidato e, nelle LSTM, comprime lo stato della cella prima dell’output, mentre i gate sigmoidi decidono quanto usarne. L’intervallo limitato impedisce che uno stato reinserito a ogni passaggio cresca senza limiti.
  • Generatori GAN: DCGAN termina il generatore con tanh, così i pixel generati rientrano nell’intervallo tra −1 e 1, quello a cui vengono ridimensionate le immagini di training; molti successivi network generativi avversari (GAN) adottano la stessa scelta.
  • Azioni limitate: le politiche per il controllo continuo nell’apprendimento per rinforzo fanno passare le proprie uscite attraverso tanh per mantenere ogni comando entro i limiti degli attuatori. Soft Actor-Critic comprime in questo modo i campioni di una politica gaussiana.
  • Limitazione dei logit: i modelli linguistici Gemma 2 di Google calcolano cap · tanh(logits / cap), con un cap pari a 50 per i logit di attenzione e a 30 per i logit finali. I logit piccoli passano quasi invariati, mentre quelli grandi non possono mai superare il cap.
  • Approssimazione di GELU: 0.5x(1 + tanh(√(2/π)(x + 0.044715x³))) approssima molto bene GELU; il codice originale di GPT-2 e BERT calcola GELU in questo modo.
  • Flussi normalizzanti: i flussi in stile RealNVP spesso terminano ogni rete di scala con tanh, così ogni livello di accoppiamento scala i propri input di un fattore compreso tra e⁻¹ ed e, mantenendo stabile il training dal punto di vista numerico. I modelli di stima della posa YOLO26 vengono addestrati con una funzione di perdita basata sulla stima della log-verosimiglianza residua: il flusso RealNVP a sei livelli, con tanh alla fine di ogni rete di scala, modella la distanza tra i punti chiave previsti e la verità di riferimento.
  • Sigmoide: tanh è una sigmoide estesa all’intervallo da −1 a 1 e compressa orizzontalmente di un fattore due; questo porta la pendenza massima da 0.25 a 1. L’intervallo da 0 a 1 della sigmoide la rende la funzione preferita per le probabilità e i gate.
  • Hardtanh: una versione lineare a tratti che limita gli input all’intervallo [−1, 1]. È meno costosa da calcolare e il suo gradiente è esattamente 0 al di fuori di questo intervallo.
  • ReLU: max(0, x) non satura mai per gli input positivi e richiede un solo confronto, perciò ReLU e le sue successive varianti lisce, come SiLU, hanno sostituito tanh nei livelli nascosti delle reti neurali convoluzionali (CNN) profonde e dei transformer. Nell’articolo su AlexNet, una CNN a quattro livelli con ReLU ha raggiunto un errore di training del 25% su CIFAR-10 sei volte più rapidamente della stessa rete con unità tanh.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning