La distillazione e la potatura sono due importanti tecniche di compressione delle reti neurali. Possono ridurre efficacemente il numero di parametri e la complessità computazionale, migliorando l’efficienza di esecuzione e le prestazioni. Di seguito vengono descritte entrambe.
Distillazione dei modelli
La distillazione consiste nell’addestrare un modello piccolo a riprodurre le previsioni di un modello grande. Il modello grande è detto «modello insegnante» e quello piccolo «modello allievo». L’insegnante possiede solitamente più parametri e maggiore complessità, quindi può adattarsi meglio ai dati di addestramento e di test. L’allievo viene addestrato a imitarne il comportamento predittivo, ottenendo prestazioni simili con dimensioni inferiori.
In concreto, la distillazione segue questi passaggi:
1. Addestrare l’insegnante: addestrare una grande rete neurale profonda con metodi comuni, come la retropropagazione e la discesa stocastica del gradiente, affinché funzioni bene sui dati di addestramento.
2. Generare etichette morbide: usare le previsioni dell’insegnante sui dati di addestramento come etichette morbide. Questo concetto deriva dalle tradizionali etichette rigide con codifica one-hot e fornisce informazioni più continue, descrivendo meglio le relazioni tra classi.
3. Addestrare l’allievo: usare le etichette morbide come obiettivo per addestrare una piccola rete neurale profonda a ottenere buoni risultati sui dati di addestramento. Le sue entrate e uscite coincidono con quelle dell’insegnante, ma i parametri e la struttura sono più semplici e compatti.
Il vantaggio della distillazione è permettere a modelli piccoli di mantenere le prestazioni con minori esigenze di calcolo e memoria.Le etichette morbide forniscono inoltre informazioni più continue e aiutano l’allievo ad apprendere meglio le relazioni tra classi. La distillazione è ampiamente usata nell’elaborazione del linguaggio naturale, nella visione artificiale e nel riconoscimento vocale.
Potatura dei modelli
La potatura comprime una rete neurale eliminando neuroni e connessioni non necessari. Le reti contengono solitamente molti parametri e connessioni ridondanti, che possono incidere poco sulle prestazioni ma aumentare notevolmente il costo computazionale e la memoria richiesta. La loro eliminazione riduce le dimensioni e la complessità del modello, mantenendone le prestazioni.
I passaggi della potatura sono i seguenti:
1. Addestrare il modello originale: addestrare una grande rete neurale profonda con metodi comuni, come la retropropagazione e la discesa stocastica del gradiente, per ottenere buoni risultati sui dati di addestramento.
2. Valutare l’importanza dei neuroni: usare metodi come la regolarizzazione L1, la matrice hessiana o lo sviluppo di Taylor per valutare il contributo di ciascun neurone all’uscita finale. I neuroni poco importanti possono essere considerati inutili.
3. Eliminare neuroni e connessioni inutili in base alla loro importanza, impostandone i pesi a zero oppure rimuovendo i neuroni e le connessioni corrispondenti.
Il vantaggio della potatura è ridurre efficacemente le dimensioni e la complessità computazionale del modello, migliorandone le prestazioni.La potatura può anche contribuire a ridurre il sovradattamento e migliorare la capacità di generalizzazione. È anch’essa ampiamente utilizzata nell’elaborazione del linguaggio naturale, nella visione artificiale e nel riconoscimento vocale.
Infine, pur essendo entrambe tecniche di compressione delle reti neurali, distillazione e potatura differiscono leggermente per metodo e obiettivo. La prima si concentra sull’addestramento dell’allievo mediante il comportamento predittivo dell’insegnante; la seconda comprime il modello eliminando parametri e connessioni inutili.