Quando ci si addentra nello studio del Deep Learning, uno dei termini tecnici che genera maggiore ambiguità nella fase di apprendimento è senza dubbio logit. Sebbene sia un concetto onnipresente nella documentazione di framework come PyTorch o TensorFlow, viene spesso trattato in modo puramente astratto, lasciando spazio a fraintendimenti interpretativi.
In realtà, il concetto alla base dei logit è lineare: rappresentano i valori vettoriali “grezzi” che una rete neurale produce prima della loro conversione in una distribuzione di probabilità.
In questo articolo analizzeremo in modo rigoroso cosa sono i logit, il loro legame matematico con la regressione logistica e il motivo per cui risultano essenziali per garantire la stabilità numerica nei moderni modelli di intelligenza artificiale.
Definizione formale dei logit nel Deep Learning
Nel contesto delle architetture neurali, i logit sono i valori in uscita dall’ultimo strato lineare (o strato denso) di un modello, generati un istante prima dell’applicazione di una funzione di attivazione probabilistica, come la Softmax per la classificazione multiclasse o la Sigmoid per quella binaria.
Possiamo definirli concettualmente come uno score di confidenza assoluto e non normalizzato che il modello assegna a ciascuna classe target.
Poiché non sono ancora stati elaborati da una funzione di normalizzazione, i logit presentano le seguenti caratteristiche:
- Non sono limitati a un range specifico e possono assumere qualsiasi valore reale (da [math]-\infty[/math] a [math]+\infty[/math]).
- Non rappresentano una probabilità e la loro somma non è uguale a [math]1[/math].
- Il loro valore assoluto ha una scarsa utilità analitica; ciò che determina la classificazione finale è la differenza relativa (la distanza) tra i valori del vettore.
Origine statistica: dalla regressione logistica al Deep Learning
Il termine logit (derivato da logistic unit) trae origine dalla statistica tradizionale, in particolare dai modelli di regressione logistica.
In tale ambito, il logit rappresenta la funzione inversa della curva sigmoide. La sua utilità risiede nella capacità di mappare una probabilità [math]p[/math] (rigorosamente vincolata nell’intervallo tra [math]0[/math] e [math]1[/math]) sull’intero asse dei numeri reali:
[math]\displaystyle \text{logit}(p) = \ln\left( \frac{p}{1-p} \right)[/math]
Dal punto di vista probabilistico, questa espressione calcola il logaritmo degli odds (il rapporto tra la probabilità che un evento si verifichi e la probabilità che non si verifichi). Se [math]p = 0.5[/math], il logit è pari a [math]0[/math]; al tendere di [math]p[/math] verso [math]1[/math], il logit diverge a [math]+\infty[/math].
Applicazione pratica nelle reti neurali
Nel Machine Learning contemporaneo, l’accezione del termine si è ampliata.
Consideriamo un modello di classificazione progettato per distinguere [math]3[/math] categorie distinte. L’ultimo strato esegue una trasformazione affine e lineare:
[math]\mathbf{z} = W\mathbf{x} + b[/math]
Dove:
- [math]\mathbf{x}[/math] è il vettore delle feature estratte dal layer precedente.
- [math]W[/math] rappresenta la matrice dei pesi sinaptici.
- [math]b[/math] è il termine di bias.
- [math]\mathbf{z}[/math] è il vettore risultante dei logit.
Per un task a [math]3[/math] classi, il modello genererà in output il vettore [math]\mathbf{z} = [z_1, z_2, z_3][/math].
Questi valori non sono altro che proiezioni lineari non normalizzate.
La trasformazione probabilistica tramite Softmax
Poiché l’obiettivo finale è ottenere un output interpretabile e compatibile con le metriche di errore probabilistiche, i logit vengono processati dalla funzione Softmax:
[math]\displaystyle \text{Softmax}(z_i) = \frac{e^{z_i}}{\sum_{j} e^{z_j}}[/math]
Questa operazione esegue due passaggi fondamentali: l’esponenziale al numeratore garantisce la positività di tutti gli elementi, mentre il denominatore agisce come fattore di scala, assicurando che l’insieme dei valori restituisca una distribuzione di probabilità valida (la cui somma è esattamente [math]1[/math]).
Esempio numerico: dai logit alle probabilità
Una formula diventa molto più intuitiva quando viene applicata a un caso concreto.
Supponiamo che l’ultimo strato di una rete neurale produca il seguente vettore di logit:
[math]\mathbf{z} = [2.0, \; 1.0, \; 0.1][/math]
Questi valori non rappresentano ancora probabilità: indicano semplicemente quanto il modello “preferisce” ciascuna classe rispetto alle altre.
Il primo passo consiste nel calcolare l’esponenziale di ogni logit:
[math]e^{2.0} \approx 7.39[/math]
[math]e^{1.0} \approx 2.72[/math]
[math]e^{0.1} \approx 1.11[/math]
La somma degli esponenziali vale quindi:
[math]7.39 + 2.72 + 1.11 = 11.22[/math]
A questo punto possiamo applicare la formula della Softmax.
Per la prima classe:
[math]\displaystyle \frac{7.39}{11.22} \approx 0.66[/math]
Per la seconda:
[math]\displaystyle \frac{2.72}{11.22} \approx 0.24[/math]
Per la terza:
[math]\displaystyle \frac{1.11}{11.22} \approx 0.10[/math]
L’output finale della rete diventa quindi:
| Classe | Logit | Probabilità |
|---|---|---|
| A | [math]2.0[/math] | [math]66\%[/math] |
| B | [math]1.0[/math] | [math]24\%[/math] |
| C | [math]0.1[/math] | [math]10\%[/math] |
È importante osservare che la Softmax non modifica l’ordine dei logit: la classe che possiede il logit più elevato rimane anche quella con la probabilità più alta. La funzione si limita a trasformare gli score grezzi in una distribuzione di probabilità interpretabile, mantenendo inalterata la graduatoria delle classi. Per questo motivo, durante l’inferenza, se interessa soltanto conoscere la classe vincente, è spesso sufficiente applicare direttamente l’operazione di argmax sui logit, senza calcolare esplicitamente la Softmax.
| Caratteristica | Logits (Output Lineare) | Softmax (Output Probabilistico) |
|---|---|---|
| Dominio | Da [math]-\infty[/math] a [math]+\infty[/math] | Da [math]0[/math] a [math]1[/math] |
| Vincolo di somma | Assente | Esattamente [math]1[/math] |
| Interpretazione | Score relativo non normalizzato | Probabilità marginale stimata |
| Funzione primaria | Calcolo della Loss / Stabilità dei gradienti | Interpretazione analitica dei risultati |
Importanza strutturale: perché calcolare la Loss sui logit
Un quesito ricorrente riguarda la necessità di mantenere i logit esposti nelle API dei framework di Deep Learning, anziché restituire unicamente le probabilità finali.
La motivazione è prettamente matematica ed è legata alla stabilità numerica.
Durante la fase di training, il modello ottimizza i parametri minimizzando la Cross-Entropy Loss, la quale richiede il calcolo del logaritmo delle probabilità fornite dalla Softmax. Calcolare tali operazioni sequenzialmente (prima gli esponenziali della Softmax, poi i logaritmi della Loss) può causare fenomeni critici di overflow (numeri eccessivamente grandi) o underflow (numeri troppo prossimi allo zero per la precisione in virgola mobile).
Framework come PyTorch offrono moduli specifici (ad esempio, nn.CrossEntropyLoss) che accettano direttamente i logit. Internamente, la libreria unifica i passaggi analitici semplificando matematicamente i calcoli (utilizzando il trucco del log-sum-exp), garantendo gradienti fluidi ed esenti da instabilità, scongiurando il rischio del vanishing gradient.
Il ruolo cruciale dei logit nei Large Language Models (LLM)
Nei moderni modelli linguistici generativi (come GPT, Claude o LLaMA), l’intera fase di generazione del testo ruota attorno alla manipolazione dei logit. Quando un LLM deve prevedere la parola successiva (o meglio, il token successivo), l’ultimo strato della rete produce un vettore di logit la cui dimensione è pari all’intero vocabolario del modello (spesso oltre 50.000 o 100.000 token).
Prima che questo vettore venga convertito in probabilità dalla Softmax e che avvenga il campionamento effettivo, i framework di inferenza permettono di alterare algebricamente i logit tramite specifici iperparametri. Questi interventi determinano il grado di creatività, determinismo o aderenza al contesto del testo generato.
1. Temperature (Temperatura)
La Temperature ([math]T[/math]) è uno scalare che divide ciascun logit prima dell’applicazione della Softmax.
La formula modificata diventa:
[math]\displaystyle \text{Softmax}(z_i, T) = \frac{e^{z_i / T}}{\sum_{j} e^{z_j / T}}[/math]
Modificando il valore di [math]T[/math], si altera l’entropia della distribuzione risultante:
- [math]T = 1.0[/math]: Corrisponde alla Softmax standard; i logit rimangono inalterati.
- [math]T < 1.0[/math] (es. [math]0.2[/math]): I logit vengono amplificati. Le differenze relative tra i punteggi si dilatano, rendendo la distribuzione molto “appuntita” (bassa entropia). Il modello diventerà altamente deterministico e ripetitivo, favorendo in modo schiacciante il token più probabile. Al limite [math]T \to 0[/math], il campionamento coincide con una pura operazione di argmax (ricerca avida).
- [math]T > 1.0[/math] (es. [math]1.5[/math]): I logit vengono ridotti e schiacciati verso lo zero. Le probabilità risultanti si appiattiscono verso una distribuzione uniforme (alta entropia), garantendo testi più creativi e inaspettati, ma aumentando il rischio di allucinazioni o incoerenze sintattiche.
2. Logit Bias (Bias dei Logit)
Il Logit Bias è un intervento chirurgico vettoriale. Permette allo sviluppatore di sommare o sottrarre una costante arbitraria al logit di uno o più token specifici, ancor prima di applicare la Temperature.
Se [math]b_i[/math] è il bias assegnato al token [math]i[/math]-esimo, il nuovo logit diventa:
[math]\displaystyle z_i’ = z_i + b_i[/math]
Questa tecnica è impiegata per due scopi principali:
- Forzatura (Valori positivi elevati): Aggiungendo un bias considerevole (es. [math]+10[/math]), si costringe matematicamente il modello a generare una specifica parola.
- Censura (Valori negativi estremi): Sottraendo un bias drastico (es. [math]-100[/math]), il logit sprofonda a valori talmente negativi che, dopo la Softmax, la probabilità del token sarà effettivamente zero. È il metodo standard per bannare parole offensive o formattazioni indesiderate dall’output.
3. Top-k Sampling
Il Top-k interviene come un filtro di troncamento (spesso applicato dopo il calcolo delle probabilità preliminari, o mascherando i logit a [math]-\infty[/math]). L’algoritmo ordina i token in base alla loro probabilità in ordine decrescente e mantiene esclusivamente i primi [math]k[/math] elementi.
Tutti i token dalla posizione [math]k+1[/math] in poi vengono scartati (la loro probabilità è forzata a zero), e le probabilità dei [math]k[/math] token rimanenti vengono rinormalizzate affinché la somma torni a [math]1[/math].
Questo parametro impedisce al modello di campionare “parole assurde” che si trovano nella lunga coda della distribuzione, mantenendo il vocabolario limitato alle opzioni più logiche.
4. Top-p Sampling (Nucleus Sampling)
A differenza del Top-k, che opera su un numero fisso di opzioni a prescindere da quanto siano probabili, il Top-p (o Nucleus Sampling) adotta un approccio dinamico basato sulla densità di probabilità.
L’algoritmo ordina i token in modo decrescente e continua ad aggiungerli a un sottoinsieme (il “nucleo”) finché la somma cumulativa delle loro probabilità non supera o eguaglia la soglia [math]p[/math] (ad esempio [math]0.90[/math]).
- Se la rete è molto sicura (il primo token ha il [math]92\%[/math] di probabilità), il nucleo conterrà un solo token.
- Se la rete è incerta (distribuzione piatta), il nucleo si espanderà includendo decine di token prima di raggiungere la soglia del [math]90\%[/math>.
Come per il Top-k, i token esclusi vengono eliminati e quelli mantenuti vengono rinormalizzati. Spesso Top-k, Top-p e Temperature vengono utilizzati in sinergia per plasmare con estrema precisione il comportamento del modello linguistico.
Il trucco del Log-Sum-Exp: l’ancora di salvezza numerica
Come accennato in precedenza, l’elaborazione simultanea di Softmax e Cross-Entropy Loss è imperativa per garantire l’integrità del modello. Il perno algoritmico che rende possibile questa stabilità numerica è una tecnica nota come Log-Sum-Exp trick (LSE).
Per comprenderne l’utilità, consideriamo una micro-esempio tecnico piuttosto frequente nella pratica: supponiamo che, durante le prime epoche di addestramento, la rete neurale produca un logit apparentemente innocuo, ad esempio un valore di [math]120[/math].
Calcolare l’esponenziale di questo scalare ([math]e^{120}[/math]) genera un numero nell’ordine di [math]10^{52}[/math]. Poiché le moderne architetture di Deep Learning operano prevalentemente con tensori a virgola mobile a 32 bit (float32), il cui limite superiore è circa [math]3.4 \times 10^{38}[/math], il calcolo fallisce. Senza questo trucco, un logit di [math]120[/math] manderebbe istantaneamente in saturazione la rappresentazione floating-point, restituendo valori infiniti (Inf) o non validi (NaN) e causando l’immediato collasso dei gradienti.
Per aggirare questo ostacolo strutturale, i framework di Deep Learning manipolano algebricamente il calcolo estraendo il valore massimo dal vettore dei logit. Definiamo [math]a[/math] come il logit con il valore più alto ([math]a = \max_i z_i[/math]).
La formula canonica del denominatore logaritmico viene riscritta come segue:
[math]\displaystyle \log \sum_i e^{z_i} = a + \log \sum_i e^{z_i – a}[/math]
Perché questa formulazione risolve il problema?
- Sottraendo la costante [math]a[/math] da ciascun logit [math]z_i[/math], il termine massimo dell’esponente diventa rigorosamente zero ([math]a – a = 0[/math]), il cui esponenziale è [math]1[/math] ([math]e^0 = 1[/math]).
- Di conseguenza, tutti gli altri termini esponenziali avranno un argomento negativo, restituendo valori sicuri e limitati nell’intervallo compreso tra [math]0[/math] e [math]1[/math].
Questa proprietà algebrica garantisce che il valore massimo calcolato dalla sommatoria sia sempre numericamente stabile, eliminando in modo definitivo la minaccia dell’overflow senza alterare in alcun modo l’esattezza del calcolo differenziale.
Interpretazione analitica dei logit: scenari tipici
Come anticipato, l’analisi di un singolo valore logit risulta infruttuosa. L’interpretazione richiede un’analisi comparativa dei valori all’interno del medesimo vettore vettoriale.
Scenario 1: Modello ad alta confidenza
Logit: [5.0, -1.0, -2.0]
Interpretazione: Si osserva una divergenza significativa tra la prima classe e le restanti. Il modello esprime una preferenza categorica forte. L’applicazione della Softmax assegnerà alla prima classe una probabilità vicina al [math]99\%[/math].
Scenario 2: Modello incerto (Alta entropia)
Logit: [0.1, 0.15, 0.05]
Interpretazione: La varianza tra i valori è marginale. Il modello non rileva pattern discriminanti sufficienti. La distribuzione Softmax risultante tenderà a un’assegnazione uniforme (circa il [math]33\%[/math] per classe).
Scenario 3: Logit interamente negativi
Logit: [-10, -10.5, -20]
Interpretazione: È errato dedurre che il modello abbia “fallito” l’identificazione. Poiché la Softmax dipende esclusivamente dalle differenze differenziali e non dai valori assoluti, la classe con il valore [math]-10[/math] domina ampiamente la classe [math]-20[/math], risultando comunque la predizione vincente con elevata probabilità.
👉 Modelli di Scelta Binaria: Guida a Logit e Probit (con Esercizi Svolti)
Conclusioni
I logit rappresentano le variabili latenti e lineari che guidano le decisioni delle reti neurali. Comprenderne la natura significa interiorizzare il passaggio critico tra l’elaborazione algebrica (matrici e tensori) e l’astrazione probabilistica fornita dalla Softmax.
Lavorare direttamente sui logit non è unicamente una convenzione implementativa, ma uno standard matematico necessario per preservare l’integrità e l’efficienza del processo di ottimizzazione in tutto l’ecosistema del Deep Learning.





