Tanh (Hyperbolic Tangent)
Scopri come la funzione di attivazione Tanh migliora l'addestramento delle reti neurali centrando i dati sullo zero. Esplora il suo ruolo in RNN, GAN e modelli Ultralytics YOLO26.
La funzione Tanh (Tangente Iperbolica) è una funzione di attivazione matematica ampiamente utilizzata negli strati nascosti delle reti neurali artificiali. Trasforma i valori di input in un intervallo di output compreso tra -1 e 1, creando una curva a forma di S simile alla funzione sigmoide ma centrata sullo zero. Questa proprietà di centratura sullo zero è fondamentale perché consente al modello di apprendere in modo più efficiente normalizzando l'output dei neuroni, garantendo che i dati che attraversano la rete abbiano una media più vicina allo zero. Gestendo esplicitamente i valori negativi, Tanh aiuta le reti neurali a catturare modelli e relazioni più complessi all'interno dei dati.
Link to this sectionIl meccanismo di Tanh nel deep learning#
Nell'architettura dei modelli di deep learning, le funzioni di attivazione introducono non linearità, consentendo alla rete di apprendere confini complessi tra diverse classi di dati. Senza funzioni come Tanh, una rete neurale si comporterebbe come un semplice modello di regressione lineare, indipendentemente da quanti strati possieda. La funzione Tanh è particolarmente efficace nelle reti neurali ricorrenti (RNN) e in certi tipi di reti feed-forward dove mantenere una distribuzione di attivazione bilanciata e centrata sullo zero aiuta a prevenire il problema del gradiente svanente durante la backpropagation.
Quando gli input vengono mappati nell'intervallo da -1 a 1, gli input fortemente negativi risultano in output negativi, e gli input fortemente positivi risultano in output positivi. Questo differisce dalla funzione Sigmoid, che schiaccia i valori tra 0 e 1. Poiché gli output di Tanh sono simmetrici rispetto allo zero, il processo di discesa del gradiente converge spesso più velocemente, poiché i pesi negli strati successivi non si muovono costantemente in una sola direzione (un fenomeno noto come percorso a "zig-zag" nell'ottimizzazione).
Link to this sectionApplicazioni nel mondo reale#
Tanh continua a svolgere un ruolo vitale in architetture e casi d'uso specifici, in particolare dove sono richiesti l'elaborazione di sequenze e la stima di valori continui.
- Elaborazione del linguaggio naturale (NLP): In architetture come le reti Long Short-Term Memory (LSTM) e le Gated Recurrent Units (GRU), Tanh viene utilizzata come attivazione primaria per regolare il flusso di informazioni. Ad esempio, in compiti di traduzione automatica in cui un modello traduce testo dall'inglese al francese, Tanh aiuta i gate interni delle LSTM a decidere quanto del contesto precedente (memoria) conservare o dimenticare. Ciò consente al modello di gestire dipendenze a lungo termine nelle strutture delle frasi.
- Generative Adversarial Networks (GAN): Nel componente generatore di molte Generative Adversarial Networks, Tanh è frequentemente utilizzata come funzione di attivazione finale per lo strato di output. Poiché le immagini sono spesso normalizzate in un intervallo da -1 a 1 durante il pre-processing, l'uso di Tanh assicura che il generatore produca valori di pixel all'interno dello stesso intervallo valido. Questa tecnica aiuta a sintetizzare immagini realistiche per applicazioni come la generazione text-to-image.
Link to this sectionConfronto: Tanh vs. Sigmoid vs. ReLU#
È utile distinguere Tanh da altre funzioni comuni per capire quando utilizzarla.
- Tanh vs. Sigmoid: Entrambe sono curve a forma di S. Tuttavia, Sigmoid restituisce valori tra 0 e 1, il che può far svanire i gradienti più rapidamente rispetto a Tanh. Sigmoid è tipicamente riservata per lo strato di output finale di problemi di classificazione binaria (previsione di probabilità), mentre Tanh è preferita per gli strati nascosti nelle RNN.
- Tanh vs. ReLU (Rectified Linear Unit): Nelle moderne reti neurali convoluzionali (CNN) come YOLO26, ReLU e le sue varianti (come SiLU) sono generalmente preferite a Tanh per gli strati nascosti. Questo perché ReLU evita il problema del gradiente svanente in modo più efficace per reti molto profonde ed è computazionalmente più economica da calcolare. Tanh è computazionalmente più costosa a causa dei calcoli esponenziali coinvolti.
Link to this sectionImplementazione delle attivazioni in PyTorch#
Mentre modelli di alto livello come YOLO26 gestiscono internamente le definizioni di attivazione all'interno dei loro file di configurazione, capire come applicare Tanh utilizzando PyTorch è utile per costruire modelli personalizzati.
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}")Per gli utenti interessati ad addestrare architetture personalizzate o a gestire dataset in modo efficace, la Ultralytics Platform offre un ambiente ottimizzato per sperimentare con diversi iperparametri del modello, visualizzare metriche di addestramento e distribuire soluzioni senza dover programmare manualmente ogni strato della rete neurale.






