Un neurone artificiale fa due cose soltanto: moltiplica gli ingressi per i loro pesi, li somma, poi passa il risultato a una piccola funzione che decide cosa farne. Quella funzione si chiama funzione di attivazione.
Sembra un dettaglio da manuale di matematica, invece è una delle scelte più importanti di tutta la rete. Cambia cosa il modello riesce a imparare, con quanta facilità impara e persino se l’addestramento si blocca o arriva in fondo.
Qui vediamo le funzioni che si incontrano davvero: sigmoid, tanh, ReLU, softmax e poi le più recenti come GELU e SwiGLU, che oggi lavorano dentro i grandi modelli linguistici. Con esempi, pregi e difetti di ognuna.

Di cosa parleremo..
Perché un neurone ha bisogno di una funzione di attivazione
Immagina un neurone con tre ingressi. Ognuno arriva con un peso, si moltiplica per lui e i risultati si sommano. Fine della parte lineare.
Se la storia finisse lì, la rete sarebbe una calcolatrice che somma e moltiplica. E le somme e le moltiplicazioni hanno un limite serio: messe una dietro l’altra, restano la stessa cosa. Mille layer di sole somme pesate equivalgono a un unico layer ben scelto.
La funzione di attivazione rompe questa catena. Inserisce una piega, una curva, un taglio. È quella piega a permettere alla rete di rappresentare cose complicate: il volto di una persona, il senso di una frase, la probabilità che una email sia spam.
TIP: la parte che somma gli ingressi pesati si chiama pre-attivazione. La funzione di attivazione si applica subito dopo, al risultato di quella somma. Non tocca i pesi, non tocca i dati: trasforma solo il numero che esce dal neurone.
Il problema di fondo: senza attivazione tutto resta lineare
Una rete senza funzioni di attivazione può imparare solo relazioni lineari. Tradotto: può tracciare una retta che separa due gruppi di punti e niente di più.
Il caso classico è lo XOR, la porta logica che dà 1 quando i due ingressi sono diversi e 0 quando sono uguali. Nessuna retta riesce a separare i casi giusti da quelli sbagliati. Fu proprio questa osservazione, nel 1969, a mettere in crisi il percettrone e a far rallentare la ricerca per anni.
Con una funzione non lineare in mezzo, il problema svanisce. Bastano due neuroni nascosti con una piega nel mezzo e lo XOR si risolve. Da lì in poi la strada è aperta: se una curva non basta, se ne aggiungono altre.
Questa è la ragione per cui parliamo di funzioni di attivazione al plurale. Ognuna piega i numeri in modo diverso e ogni piega ha conseguenze pratiche su come il modello impara.
Sigmoid: la funzione che ha aperto la strada
La sigmoid prende qualsiasi numero, da meno infinito a più infinito e lo schiaccia in un intervallo tra 0 e 1. Numeri molto negativi diventano quasi zero, numeri molto positivi quasi uno e intorno allo zero la curva è una S morbida.
Ha tre qualità che l’hanno resa popolare per decenni. Il risultato è sempre compreso tra 0 e 1, quindi si legge facilmente come una percentuale. La curva è dolce, senza salti bruschi. Ed è derivabile ovunque, cosa che serve per calcolare come aggiustare i pesi.
Poi sono arrivati i difetti. Il primo è il vanishing gradient: per valori molto grandi o molto piccoli la curva si appiattisce, la derivata diventa quasi zero e l’errore non riesce più a tornare indietro per correggere i layer più profondi. Il secondo: l’uscita è sempre positiva, quindi non è centrata sullo zero e questo rende l’apprendimento più lento e a zigzag.
Per queste ragioni la sigmoid oggi resta nei layer nascosti solo in casi rari. La trovi quasi sempre in un punto preciso: lo strato di uscita, quando il modello deve dire sì o no.
Tanh, la cugina simmetrica
La tanh è la sigmoid migliorata. Stessa forma a S, ma l’intervallo va da -1 a 1. Il vantaggio è l’uscita centrata sullo zero, che rende l’aggiornamento dei pesi più ordinato.
Il problema del gradiente che svanisce, però, resta identico. Per questo anche la tanh è stata in gran parte sostituita nei layer nascosti dei modelli moderni, mentre conserva un ruolo nelle reti ricorrenti e in alcune architetture particolari.
ReLU: la soluzione più semplice che funziona
La ReLU, dall’inglese Rectified Linear Unit, fa una cosa quasi imbarazzante per quanto è semplice: se il numero è negativo lo mette a zero, se è positivo lo lascia com’è.
Nessuna curva, nessuna esponenziale. Solo un taglio netto all’origine. Eppure è stata una svolta, per tre motivi concreti.
- È velocissima da calcolare: un confronto con lo zero.
- Per i valori positivi la derivata è 1, quindi l’errore torna indietro senza indebolirsi.
- Mette a zero una parte degli ingressi e questa sparsità aiuta la rete a concentrarsi sulle informazioni utili.
È la funzione che ha reso praticabili le reti profonde negli anni 2010. Prima di lei, addestrare molti layer in sequenza era una battaglia persa.
Ha anche un difetto noto, il dying ReLU: se un neurone si assesta su valori sempre negativi, la sua derivata diventa zero per sempre e quel neurone smette di imparare. Un pezzo di rete si spegne e non si riaccende più.
Le varianti cercano di rimediare. La Leaky ReLU lascia passare una piccola quantità di segnale anche sotto lo zero, la ELU usa una curva morbida per i valori negativi, la Parametric ReLU lascia che sia l’addestramento a decidere quanto far passare. Nella pratica ReLU e Leaky ReLU coprono gran parte dei casi.
Softmax: la funzione che trasforma in probabilità
La softmax ha un compito diverso dalle altre. Non serve a piegare un singolo numero, ma a trasformare una lista di numeri in una lista di probabilità che sommano a 1.
Funziona così: prende i punteggi grezzi del modello, ne esalta le differenze con un esponenziale, poi divide ogni valore per la somma di tutti. Il numero più alto diventa la probabilità più alta, ma nessuno degli altri viene azzerato.
Un esempio pratico. Il modello deve capire di che animale si parla e produce tre punteggi grezzi: gatto 4, cane 1, cavallo 0. Dopo la softmax diventano all’incirca 0,94, 0,05 e 0,01. La somma è esattamente 1 e la lettura è immediata: quasi certamente un gatto.
TIP: la softmax vive quasi sempre nell’ultimo strato, quando il modello deve scegliere tra alternative. La sigmoid, invece, è la scelta giusta quando la decisione è una sola e indipendente, per esempio “questa email è spam oppure no”.
Attenzione a come si legge quel 0,94. Non significa che il modello sia sicuro al 94 per cento di avere ragione. È il modo in cui la rete distribuisce la propria preferenza tra le opzioni e modelli poco addestrati possono risultare sicurissimi e sbagliare lo stesso.
GELU, SiLU e SwiGLU: cosa usano i modelli di oggi
Le funzioni non si sono fermate alla ReLU. Nei grandi modelli linguistici di oggi dominano varianti progettate per essere più morbide.
La GELU è una ReLU addolcita: invece di tagliare di netto a zero, lascia passare un po’ di segnale anche per valori leggermente negativi e attenua dolcemente quelli positivi. Il risultato sono gradienti più stabili e prestazioni migliori su testi e immagini. È la funzione tipica di modelli come BERT e GPT.
La SiLU, chiamata anche Swish, moltiplica il numero per la propria sigmoid. Sembra un gioco, invece funziona: la curva è liscia e si comporta bene su reti molto profonde.
La SwiGLU è l’evoluzione più recente e oggi è lo standard nei modelli linguistici più grandi. Invece di applicare una funzione a un solo flusso di numeri, ne usa due e li combina con una moltiplicazione, un po’ come un rubinetto che regola il passaggio. Costa qualche parametro in più, ma rende meglio a parità di calcolo. La usano, tra gli altri, le famiglie di modelli Llama e PaLM.
Il filo conduttore è chiaro: dalle curve nette degli anni 2010 si è passati a curve morbide e a meccanismi di controllo. Non è moda, è la ricerca del modo più efficiente per far scendere l’errore durante l’addestramento.
Attivazione nei layer nascosti e nello strato di uscita
Un errore frequente è pensare che esista una funzione giusta per tutta la rete. In realtà il ruolo cambia a seconda della posizione.

Nei layer nascosti serve una funzione che aggiunga non linearità senza ostacolare il passaggio dell’errore: qui regnano ReLU, GELU e SwiGLU. Nello strato di uscita serve invece una funzione che traduca i numeri in qualcosa di leggibile: sigmoid per un sì o no, softmax per una scelta tra molte alternative, nessuna attivazione quando il modello deve produrre un valore libero, per esempio una previsione di prezzo.
Questa distinzione spiega molte cose. Se un modello di classificazione restituisce numeri strani invece di probabilità, spesso manca o è sbagliata proprio la funzione di uscita.
Come si sceglie, in pratica
La buona notizia è che nella maggior parte dei casi non devi decidere da zero. Le architetture consolidate portano con sé la loro funzione e cambiarla è un esperimento, non una necessità.
Se invece stai costruendo qualcosa da capo, la regola pratica è questa:
- Layer nascosti: parti da ReLU. Se i neuroni muoiono o l’addestramento è instabile, prova Leaky ReLU o GELU.
- Uscita binaria: sigmoid.
- Uscita multi-classe: softmax.
- Uscita numerica libera: nessuna attivazione, il valore esce così com’è.
| Funzione | Intervallo | Dove si usa | Punto debole |
|---|---|---|---|
| Sigmoid | 0 a 1 | Uscita sì o no | Gradiente che svanisce |
| Tanh | -1 a 1 | Reti ricorrenti | Gradiente che svanisce |
| ReLU | 0 a infinito | Layer nascosti | Neuroni che muoiono |
| Softmax | 0 a 1, somma 1 | Uscita multi-classe | Troppa sicurezza con punteggi estremi |
| GELU | Circa -0,17 a infinito | Transformer moderni | Più costosa da calcolare |
| SwiGLU | Variabile | LLM di grandi dimensioni | Parametri aggiuntivi |
Vale la pena ricordare una cosa: nessuna di queste funzioni “capisce” il contenuto. Trasformano numeri in altri numeri. La capacità di un modello nasce dall’enorme numero di queste piccole trasformazioni messe in fila, ognuna con i propri pesi e bias aggiustati durante l’addestramento.
Domande frequenti
Qual è la funzione di attivazione migliore in assoluto?
Non esiste. Dipende dal compito, dall’architettura e da quanto profonda è la rete. ReLU resta un punto di partenza solido per i layer nascosti, GELU e SwiGLU danno risultati migliori nei transformer, softmax e sigmoid sono la scelta quasi obbligata in uscita. La prova sul campo, con i tuoi dati, batte qualsiasi teoria.
Senza funzione di attivazione la rete non funziona proprio?
Funziona, ma impara molto meno. Diventa una grande equazione lineare, capace solo di separare i dati con una retta o un piano. Problemi come lo XOR restano fuori portata e con essi quasi tutto quello che serve nel mondo reale.
Perché la ReLU mette a zero i numeri negativi?
Perché è il modo più economico per introdurre non linearità. Il taglio a zero costa un confronto, non un’esponenziale e produce una rappresentazione sparsa in cui solo una parte dei neuroni è attiva. È il motivo per cui ha reso possibile addestrare reti con decine di layer.
Cosa significa che un neurone ReLU muore?
Significa che il suo ingresso resta sempre negativo, quindi l’uscita è sempre zero e la derivata è zero. Senza derivata, l’addestramento non ha modo di correggerlo: quel neurone smette di contribuire. Varianti come Leaky ReLU impediscono il problema lasciando passare un piccolo segnale anche sotto lo zero.
Softmax e sigmoid sono intercambiabili?
No, rispondono a domande diverse. La sigmoid valuta una singola decisione indipendente, per esempio se un messaggio è spam. La softmax distribuisce la probabilità su più classi che si escludono a vicenda, per esempio se l’immagine mostra un gatto, un cane o un cavallo. Usare la sigmoid al posto della softmax su un problema multi-classe è un errore piuttosto comune.
Le funzioni di attivazione si addestrano?
Di norma no: la forma della curva è fissa e uguale per tutti i neuroni di un layer. A cambiare durante l’addestramento sono i pesi e i bias che precedono la funzione. Esistono eccezioni, come la Parametric ReLU, dove i parametri della funzione stessa vengono appresi, ma restano casi specifici.


