ELAI S.r.l.

Che cosa insegna un modello grande oltre alla risposta giusta?

Distillazione spiegata con tre classi: perché le alternative contano, come agisce la temperatura e quale segnale riceve il modello piccolo. Derivazione e calcoli verificati.

Che cosa insegna un modello grande oltre alla risposta giusta?

Una risposta corretta può contenere troppo poca informazione

Una telecamera deve distinguere tre tipi di componente: due staffe simili, A e B, e un distanziale C molto diverso. Un modello grande riconosce correttamente A, ma considera B una possibile alternativa e C quasi impossibile. Vogliamo insegnare lo stesso compito a un modello più piccolo. Se gli consegniamo soltanto l’etichetta A, perdiamo una parte della lezione: confondere A con B non è, per il modello docente, la stessa cosa che confonderlo con C.

La distillazione trasferisce informazioni dalle uscite di un modello docente a uno studente. La domanda qui è precisa: quale informazione passa attraverso le probabilità delle alternative, e perché una temperatura diversa cambia l’apprendimento? Seguendo un esempio a tre classi deriveremo la funzione obiettivo, il segnale di aggiornamento e il limite ad alta temperatura. Il risultato aiuta a progettare un confronto, non dimostra che uno studente sia già accurato, veloce o pronto per una linea produttiva.

Il docente non trasferisce i propri pesi

Un modello associa a un ingresso una serie di punteggi, detti logit, prima di trasformarli in probabilità. Lo studente può avere un’architettura diversa: non deve copiare ogni parametro del docente. Cerca invece di riprodurne il comportamento su un insieme di ingressi di trasferimento. L’analogia docente–studente riguarda questa relazione funzionale, non intenzioni o comprensione umana. Se il docente sbaglia sistematicamente, anche il comportamento sbagliato può diventare parte della lezione.

Nel nostro esempio sintetico, i logit del docente sono v = (4, 3, 0) e quelli iniziali dello studente z = (2, 0, 0), nell’ordine A, B, C. La classe corretta è A. Sono numeri scelti per isolare il meccanismo: non provengono da immagini reali, da un modello addestrato o da un progetto EL-AI. In particolare, lo studente distingue A dalle altre classi, ma assegna a B e C lo stesso punteggio. Il docente, invece, separa chiaramente le due alternative.

Dai punteggi alle probabilità: che cosa fa la temperatura

Per confrontare i modelli servono distribuzioni: numeri positivi che sommano a uno. La softmax esponenzia i punteggi e li normalizza. La temperatura T, positiva e senza unità, divide i logit prima dell’esponenziale. Non è una temperatura fisica e non indica quanto sia caldo un processore. Con T maggiore, le differenze pesano meno e la distribuzione diventa meno concentrata. L’ordine delle classi non cambia, finché applichiamo lo stesso T a tutti i punteggi di quel modello.

p_i(T) = exp(v_i/T) / Σ_j exp(v_j/T) q_i(T) = exp(z_i/T) / Σ_j exp(z_j/T)

p indica il docente e q lo studente; i sceglie una classe, j percorre tutte le classi nel denominatore. A T=1 il docente produce circa (0,721399; 0,265388; 0,013213). A T=2 produce (0,574097; 0,348207; 0,077696). La classe C rimane la meno plausibile, ma la sua probabilità non è più quasi schiacciata a zero. Non abbiamo aggiunto informazione al docente: abbiamo cambiato quanto delle sue differenze viene esposto alla funzione di apprendimento.

Tp(A)p(B)p(C)
10.7213990.2653880.013213
20.5740970.3482070.077696
40.4658360.3627930.171371
200.3610160.3434090.295575

La tabella va letta lungo le righe per confrontare le alternative, e lungo le colonne per vedere l’effetto di T. Il rapporto p(B)/p(C) vale exp((3−0)/T): diminuisce da circa 20,09 a T=1 a circa 4,48 a T=2. La temperatura non rende le alternative più separabili in termini di rapporto; al contrario le ammorbidisce. Il beneficio possibile nasce dal modo in cui la funzione obiettivo usa tutta la distribuzione, non da una magica amplificazione delle differenze.

Due insegnamenti nella stessa funzione obiettivo

Lo studente può ricevere sia l’etichetta corretta sia le probabilità del docente. Il primo termine penalizza la scarsa probabilità assegnata ad A. Il secondo misura la distanza direzionale tra distribuzioni con la divergenza di Kullback–Leibler, abbreviata KL. Per p fissata, minimizzare KL(p||q) equivale a minimizzare l’entropia incrociata verso il docente: differiscono per un termine che non dipende dallo studente. Usiamo logaritmi naturali e somme sulle classi, senza dividere per il numero di classi.

L_hard = -log q_A(1) KL(p||q) = Σ_i p_i(T) log[p_i(T)/q_i(T)] L = (1 - α)L_hard + α T² KL(p(T)||q(T)), 0 ≤ α ≤ 1

α decide quanto pesa il docente rispetto all’etichetta: α=0 ignora il docente, α=1 ignora l’etichetta nel calcolo della perdita. Non è una probabilità di fiducia certificata. Il termine supervisionato usa T=1, quello di trasferimento usa lo stesso T per entrambi i modelli. Il docente resta fisso durante questo aggiornamento. Se aggiorniamo involontariamente anche i suoi parametri, stiamo eseguendo un altro algoritmo. Rimane da capire perché compare T²: lo vedremo nel gradiente, cioè nella direzione concreta in cui il modello viene corretto.

Il segnale di apprendimento: quale punteggio sale?

Il gradiente rispetto a un logit dice come cambia la perdita se aumentiamo di poco quel punteggio, lasciando fermi gli altri. Nella discesa del gradiente sottraiamo una piccola quantità proporzionale a questo valore: un gradiente positivo fa scendere il punteggio, uno negativo lo fa salire. Per il termine delle etichette otteniamo q_i(1)−y_i, dove y=(1,0,0). Nel nostro esempio vale circa (−0,213014; 0,106507; 0,106507). L’etichetta spinge A in alto e abbassa B e C nello stesso modo.

Per capire il termine del docente partiamo da log q_i(T) = z_i/T − log Σ_j exp(z_j/T). Derivando rispetto a z_k otteniamo (δ_ik−q_k)/T; δ_ik vale uno quando i=k e zero altrimenti. Nella somma pesata da p_i, la parte del docente è costante e Σ_i p_i=1. Rimane così una differenza tra ciò che lo studente assegna e ciò che il docente chiede, divisa per T. Questa derivazione presuppone che entrambi descrivano le stesse classi, nello stesso ordine.

∂KL/∂z_k = [q_k(T) - p_k(T)]/T ∂(T² KL)/∂z_k = T[q_k(T) - p_k(T)]

A T=2 il gradiente compensato del termine di distillazione vale (0,004040; −0,272532; 0,268492). La correzione principale non riguarda A: è quasi allineata al docente a quella temperatura. Riguarda B e C. B deve salire, C deve scendere. Le sole etichette non distinguevano questi due casi. Con α=0,5 il gradiente totale diventa (−0,104487; −0,083012; 0,187499): A e B vengono aumentate, C diminuita. Sono direzioni sui logit di questo ingresso, non una prova di miglioramento dell’accuratezza su altri ingressi.

Perché moltiplicare per T², senza promettere invarianza

Se T cresce molto rispetto alle differenze dei logit, le due distribuzioni si avvicinano all’uniforme. La loro differenza diminuisce approssimativamente come 1/T; la derivata della softmax introduce un ulteriore 1/T. Il gradiente non compensato diventa quindi dell’ordine di 1/T². Moltiplicare la perdita per T² evita che il termine del docente diventi trascurabile solo per questo riscalamento. Non rende identico l’apprendimento a ogni temperatura: a T finita cambiano sia la distribuzione sia la direzione dei segnali.

Caso sintetico v=(4,3,0), z=(2,0,0). Il pannello sinistro mostra il gradiente non compensato; quello destro il gradiente moltiplicato per T². Segno negativo significa che la discesa aumenta quel logit. I punti sono calcolati, non risultati di addestramento.
Caso sintetico v=(4,3,0), z=(2,0,0). Il pannello sinistro mostra il gradiente non compensato; quello destro il gradiente moltiplicato per T². Segno negativo significa che la discesa aumenta quel logit. I punti sono calcolati, non risultati di addestramento.

Nel grafico guardiamo prima il pannello sinistro: aumentando T, i segnali si schiacciano verso zero. A destra rimangono distinguibili anche a T=100. Osserviamo poi A: il suo gradiente cambia segno tra T=2 e T=4. È un controesempio concreto all’idea che il fattore T² cancelli tutti gli effetti della temperatura. La temperatura decide quali differenze confrontare; il fattore controlla una parte della scala del segnale. Sono due ruoli collegati ma diversi.

Il limite specialistico: confrontare logit centrati

Aggiungere la stessa costante a tutti i logit non cambia la softmax: quel fattore si cancella tra numeratore e denominatore. Di conseguenza il livello assoluto dei punteggi non è identificabile dalle probabilità. Prima di confrontarli, sottraiamo a ciascun vettore la propria media: v̄ e z̄. Con K classi, l’espansione ad alta temperatura dà p_i ≈ 1/K + (v_i−v̄)/(KT), e analogamente per q. Non basta che T sia maggiore di uno: deve essere grande rispetto alla dispersione dei punteggi.

T[q_i(T) - p_i(T)] → [(z_i-z̄) - (v_i-v̄)]/K K = 3: limit = (-0.111111, -0.444444, 0.555556)

Per i nostri vettori, a T=100 il gradiente compensato vale circa (−0,109414; −0,441091; 0,550505), vicino al limite riportato. Questo collega la distillazione a un confronto quadratico tra logit centrati. La centratura è essenziale: due vettori che differiscono soltanto per una costante descrivono le stesse probabilità e non dovrebbero essere penalizzati come comportamenti diversi. Non segue che una temperatura arbitrariamente alta sia migliore: il limite matematico descrive l’obiettivo, non la generalizzazione del modello.

Che cosa mostrava il lavoro fondativo, e che cosa non mostra questo esempio

Hinton, Vinyals e Dean descrivono questo approccio nel preprint del 2015 Distilling the Knowledge in a Neural Network. Abbiamo letto metodo, derivazione e sezione sperimentale MNIST: docente con due strati da 1200 unità, studente da 800, dati e regolarizzazione specifici. Il lavoro riporta 67 errori del docente, 146 dello studente di riferimento e 74 con distillazione a T=20. Sono risultati storici degli autori, non una nostra riproduzione né una previsione sulle immagini industriali. La sezione con cifre mancanti include aggiustamenti dei bias sul test: va distinta da una scelta su validazione indipendente.

Il nostro programma non addestra reti. Calcola probabilità, KL e gradienti sui vettori dichiarati, quindi confronta la derivata analitica con differenze finite: aumenta e diminuisce un logit di 0,0001, valuta la perdita e divide la differenza per 0,0002. L’errore massimo ammesso dal controllo è 10⁻⁷. Verifica anche che il gradiente sommi a zero e che aggiungere 100 a tutti i logit del docente non cambi le probabilità. Nessuna casualità: il seed non serve. Sono verifiche del meccanismo, non benchmark di accuratezza.

Il confronto che servirebbe per un modello verticale

Per sapere se conviene nel dominio delle staffe occorrerebbe confrontare lo stesso studente addestrato soltanto con etichette e con etichette più distillazione. Dataset, budget, inizializzazioni e protocollo vanno dichiarati; T e α scelti sulla validazione, lasciando il test separato. Se più immagini mostrano lo stesso pezzo o lo stesso lotto, una divisione casuale per immagine può rendere il test troppo simile al training. Il confronto dovrebbe misurare anche errori A↔B, casi nuovi e probabilità mal calibrate, non soltanto la percentuale totale di risposte giuste.

La riduzione di dimensione non implica automaticamente meno latenza sul dispositivo. Servono architettura, runtime, precisione numerica e misure del percorso completo. Anche il costo di addestramento cambia: il docente deve produrre uscite per gli ingressi di trasferimento, eventualmente salvate; con K classi, le operazioni della perdita su un esempio crescono linearmente con K, ma il costo delle reti resta distinto. Quantizzazione e distillazione risolvono problemi differenti e possono essere combinate soltanto valutandone insieme gli effetti. Qui non abbiamo effettuato nessuna di queste misure hardware.

Risposta: trasferire differenze, con un docente da verificare

Il modello grande può insegnare come distribuire la plausibilità tra le alternative, non soltanto quale classe scegliere. Nell’esempio, la distillazione spinge B in alto e C in basso, dove l’etichetta li trattava allo stesso modo. Temperatura e peso del docente decidono come questa informazione influenza lo studente; T² compensa un effetto di scala, senza garantire equivalenza o miglioramento. Il valore pratico dipende da qualità del docente, copertura dei dati e capacità dello studente. La dimostrazione numerica chiarisce il meccanismo; la validazione nel dominio resta un lavoro da eseguire.

Bibliografia e materiale riproducibile

Geoffrey Hinton, Oriol Vinyals, Jeff Dean, Distilling the Knowledge in a Neural Network, arXiv:1503.02531v1, 9 marzo 2015. Riferimento fondativo, letto nelle sezioni 2, 2.1 e 3; non viene presentato come stato dell’arte del 2026. Questo articolo è una monografia didattica con assistenza AI, non una ricerca originale sottoposta a peer review. Non attesta un modello proprietario EL-AI o un’applicazione già disponibile.

Hinton, Vinyals & Dean (2015) — Distilling the Knowledge in a Neural Network.

import math
def softmax(values, T):
    maximum = max(values)
    exps = [math.exp((x-maximum)/T) for x in values]
    return [x/sum(exps) for x in exps]
v, z, T = [4., 3., 0.], [2., 0., 0.], 2.
p, q = softmax(v, T), softmax(z, T)
gradient = [T*(s-t) for s,t in zip(q,p)]
print([round(x, 6) for x in p])
print([round(x, 6) for x in gradient])

Codice, dati e istruzioni · JSON. Calcoli didattici eseguiti con Python 3.14.0; figure con Matplotlib 3.11.2. Analisi con assistenza AI, senza dichiarare peer review o revisione umana. Copertina originale ImageGen, illustrativa: non documenta persone, sedi o installazioni EL-AI. Fonti consultate il 28 settembre 2026.