La Tanh, o Tangente Iperbolica, è una funzione di attivazione ampiamente riconosciuta e utilizzata nell'intelligenza artificiale (AI) e nell'apprendimento automatico (ML), in particolare nelle reti neurali (NN). Simile alla funzione sigmoide, Tanh ha una forma a S (sigmoidale) ma mappa i valori di ingresso in un intervallo compreso tra -1 e 1. Questa caratteristica la rende centrata sullo zero, il che significa che le sue uscite sono distribuite intorno allo zero. Come altre funzioni di attivazione, la Tanh introduce la non linearità nella rete, consentendo ai modelli di deep learning (DL) di apprendere schemi e relazioni complesse nei dati che i modelli lineari non possono cogliere. Deriva dalla funzione matematica della tangente iperbolica.
Come funziona Tanh
La funzione Tanh prende qualsiasi ingresso a valore reale e lo schiaccia nell'intervallo (-1, 1). Gli input prossimi allo zero producono output prossimi allo zero. Ingressi positivi di grandi dimensioni producono uscite che si avvicinano a 1, mentre ingressi negativi di grandi dimensioni producono uscite che si avvicinano a -1. La sua natura centrata sullo zero è spesso considerata un vantaggio rispetto alla funzione Sigmoide (che produce uscite comprese tra 0 e 1) perché può aiutare l'algoritmo di ottimizzazione, come la discesa del gradiente, a convergere più velocemente durante l'addestramento del modello. Questo perché è più probabile che i gradienti trasmessi durante la retropropagazione abbiano valori positivi e negativi bilanciati, portando potenzialmente ad aggiornamenti più stabili dei pesi del modello.
Vantaggi e svantaggi
Vantaggi:
- Uscita centrata sullo zero: Gli output che vanno da -1 a 1 aiutano a centrare i dati passati ai livelli successivi, migliorando la dinamica dell'addestramento rispetto alle funzioni non centrate sullo zero come la Sigmoide.
- Gradienti più forti: Rispetto alla Sigmoide, la Tanh ha gradienti più ripidi intorno allo zero, il che può mitigare in qualche modo il problema del gradiente che svanisce durante l'addestramento, consentendo un apprendimento potenzialmente più rapido.
Svantaggi:
- Gradienti che svaniscono: Come Sigmoid, Tanh soffre ancora del problema del gradiente che svanisce. Per input positivi o negativi molto grandi, la funzione si satura (il suo output diventa molto vicino a 1 o -1) e il gradiente diventa estremamente piccolo, ostacolando gli aggiornamenti dei pesi negli strati più profondi.
- Costo computazionale: Tanh comporta calcoli iperbolici, il che la rende leggermente più costosa dal punto di vista computazionale rispetto a funzioni più semplici come ReLU (Rectified Linear Unit).
Tanh rispetto ad altre funzioni di attivazione
- Tanh vs Sigmoid: Entrambi sono sigmoidali, ma l'intervallo di uscita di Tanh è (-1, 1) mentre quello di Sigmoid è (0, 1). La proprietà zero-centrica di Tanh è spesso preferita per gli strati nascosti, mentre la Sigmoide è comunemente utilizzata negli strati di uscita per compiti di classificazione binaria in cui è necessaria una probabilità.
- Tanh vs. ReLU: Le uscite di ReLU vanno da 0 a infinito e sono computazionalmente molto efficienti. ReLU evita la saturazione per gli ingressi positivi, ma può soffrire del problema del "ReLU morente" (i neuroni diventano inattivi). Mentre Tanh si satura a entrambe le estremità, la sua natura centrata sullo zero può essere vantaggiosa. Tuttavia, ReLU e le sue varianti(Leaky ReLU, GELU, SiLU) hanno ampiamente sostituito Tanh in molte architetture moderne di deep learning, soprattutto nella computer vision (CV), grazie a un migliore flusso di gradienti e a una maggiore efficienza. Puoi esplorare diverse funzioni di attivazione nell'apprendimento profondo.
Applicazioni dell'intelligenza artificiale e dell'apprendimento automatico
Il Tanh è stato storicamente una scelta popolare, soprattutto in:
- Reti neurali ricorrenti (RNN): Il Tanh è stato comunemente utilizzato negli stati nascosti delle RNN e di varianti come le reti Long Short-Term Memory (LSTM), soprattutto per compiti di Natural Language Processing (NLP). Il suo intervallo limitato aiuta a regolare il flusso di informazioni all'interno delle connessioni ricorrenti. Per maggiori dettagli, vedi Comprendere le LSTM.
- Strati nascosti: Può essere utilizzato negli strati nascosti delle reti feedforward, anche se le varianti ReLU sono ormai più comuni. Può essere scelta quando la proprietà di centratura zero è particolarmente vantaggiosa per un problema o un'architettura specifici.
- Analisi del sentimento: Nei vecchi modelli di NLP, Tanh aiutava a mappare le caratteristiche estratte dal testo (ad esempio, gli embeddings delle parole elaborati da una RNN) in un intervallo continuo, che rappresentava la polarità del sentimento da negativo (-1) a positivo (+1). Le risorse di organizzazioni come lo Stanford NLP Group forniscono informazioni su queste tecniche.
- Sistemi di controllo e robotica: Nell'apprendimento per rinforzo (RL), Tanh viene talvolta utilizzato come funzione di attivazione finale per le politiche che producono azioni continue delimitate da un intervallo specifico (ad esempio, il controllo della coppia del motore tra -1 e +1). Framework come OpenAI Gym sono spesso utilizzati nella ricerca RL.
Mentre le architetture moderne come Ultralytics YOLO utilizzano spesso funzioni come SiLU per compiti come il rilevamento di oggetti, la comprensione di Tanh rimane preziosa. Fornisce un contesto per l'evoluzione delle funzioni di attivazione e potrebbe ancora comparire in progetti di rete specifici o in sistemi preesistenti. Framework come PyTorch e TensorFlow forniscono implementazioni di Tanh. Puoi addestrare e sperimentare diverse funzioni di attivazione utilizzando piattaforme come Ultralytics HUB.