Scopri come la distillazione dei set di dati accelera l'addestramento dei modelli e riduce i costi di elaborazione sostituendo grandi set di dati con un insieme ridotto e ottimizzato di campioni sintetici.

Scopri come la distillazione dei set di dati accelera l'addestramento dei modelli e riduce i costi di elaborazione sostituendo grandi set di dati con un insieme ridotto e ottimizzato di campioni sintetici.

I modelli di formazione potrebbero sembrare la parte più dispendiosa in termini di tempo del lavoro di un data scientist. Tuttavia, la maggior parte del loro tempo, spesso dal 60% all'80%, è dedicata alla preparazione dei dati: raccolta, pulizia e organizzazione per la modellazione. Con l'aumentare delle dimensioni dei set di dati, aumenta anche il tempo di preparazione, rallentando gli esperimenti e rendendo più difficile l'iterazione.
Per affrontare questo problema, i ricercatori hanno trascorso anni alla ricerca di modi per semplificare la formazione. Approcci come i dati sintetici, la compressione dei set di dati e metodi di ottimizzazione più efficaci mirano tutti a ridurre i costi e le difficoltà legati alla gestione di set di dati su larga scala e ad accelerare i flussi di lavoro di apprendimento automatico.
Una domanda fondamentale che questo solleva è se sia possibile ridurre drasticamente un set di dati ottenendo comunque le stesse prestazioni ottenibili dall'addestramento di un modello sui dati completi. La distillazione dei set di dati è una risposta promettente.
Crea una versione compatta di un ampio set di dati di addestramento, preservando i modelli essenziali di cui il modello ha bisogno per apprendere in modo efficace. Offre un percorso verso un addestramento più rapido, minori esigenze di calcolo e sperimentazioni più efficienti. Si può pensare a questo come a un foglio di appunti di studio per il modello, un piccolo insieme di esempi di dati sintetici progettati per insegnare gli stessi modelli fondamentali del set di dati completo.
In questo articolo vedremo come funziona la distillazione dei set di dati e come supporta l'apprendimento automatico scalabile e l'apprendimento profondo nelle applicazioni del mondo reale. Cominciamo!
La distillazione dei dataset è un processo in cui un ampio dataset di addestramento viene condensato in un insieme di dati molto più piccolo che continua a fornire al modello quasi le stesse informazioni del dataset originale. Molti ricercatori definiscono questo processo anche "condensazione dei dataset", poiché l'obiettivo è quello di catturare i modelli essenziali che compaiono nell'intero dataset.
Un set di dati distillato è diverso dai dati sintetici generati casualmente o dalla semplice selezione di un sottoinsieme più piccolo di immagini reali. Non si tratta di un set di dati falso casuale o di una copia ridotta dell'originale.
Al contrario, è deliberatamente ottimizzato per catturare i modelli più importanti. Durante questo processo, ogni pixel e ogni caratteristica vengono regolati e ottimizzati in modo che una rete neurale addestrata sui dati distillati apprenda quasi come se fosse stata addestrata sull'intero set di dati.
Questa idea è apparsa per la prima volta in un articolo arXiv del 2018 scritto da Tongzhou Wang, Jun-Yan Zhu, Antonio Torralba e Alexei A. Efros. I primi test utilizzavano semplici set di dati come MNIST e CIFAR-10, che hanno permesso di dimostrare facilmente che pochi campioni distillati potevano sostituire migliaia di immagini reali.
.webp)
Da allora, il lavoro di follow-up ha ulteriormente migliorato la distillazione dei set di dati, includendo metodi pubblicati su ICML e ICLR che rendono la condensazione più efficiente e scalabile.
La distillazione dei set di dati migliora l'efficienza dell'addestramento e velocizza i cicli di sviluppo. Riducendo la quantità di dati da cui un modello deve apprendere, diminuisce i requisiti computazionali.
Ciò è particolarmente utile per l'apprendimento continuo, in cui i modelli vengono aggiornati nel tempo, per la ricerca dell'architettura neurale, in cui vengono testati molti progetti di modelli, e per l'addestramento edge, in cui i modelli vengono eseguiti su piccoli dispositivi con memoria e potenza limitate. Nel complesso, questi vantaggi rendono la distillazione dei set di dati un'ottima opzione per l'inizializzazione rapida, la messa a punto veloce e la creazione di prototipi iniziali in molti flussi di lavoro di machine learning.
La distillazione dei set di dati crea campioni di addestramento sintetici, ovvero generati artificialmente. Questi campioni aiutano un modello ad apprendere in modo molto simile all'addestramento su dati reali. Funziona monitorando tre fattori chiave durante il normale addestramento.
Il primo è la funzione di perdita, ovvero il punteggio di errore del modello che indica quanto siano errate le sue previsioni. Il secondo sono i parametri del modello, ovvero i pesi interni della rete che vengono aggiornati man mano che questa apprende.
Il terzo è il percorso di addestramento, che descrive come l'errore e i pesi cambiano passo dopo passo nel tempo. I campioni sintetici vengono quindi ottimizzati in modo che, quando un modello viene addestrato su di essi, il suo errore diminuisca e i suoi pesi si aggiornino allo stesso modo in cui lo farebbero con il set di dati completo.
Ecco uno sguardo più da vicino al funzionamento del processo di distillazione dei set di dati:

Tutti i metodi di distillazione dei set di dati si basano sulla stessa idea di base, anche se utilizzano algoritmi diversi per ottenerla. La maggior parte degli approcci rientra in tre categorie: corrispondenza delle prestazioni, corrispondenza della distribuzione e corrispondenza dei parametri.
Ora vediamo come funziona ciascuno di essi.
L'adeguamento delle prestazioni nella distillazione dei set di dati si concentra sulla creazione di un set di addestramento ottimizzato e di dimensioni ridotte che consente al modello di raggiungere quasi la stessa accuratezza che avrebbe se fosse stato addestrato sul set di dati originale completo. Anziché selezionare un sottoinsieme casuale, i campioni distillati vengono ottimizzati in modo che un modello addestrato su di essi ottenga previsioni simili, un comportamento di perdita simile durante l'addestramento o un'accuratezza finale simile a quella di un modello addestrato sul set di dati originale.
Il meta-apprendimento è un metodo comunemente utilizzato per migliorare questo processo. Il set di dati distillato viene aggiornato attraverso ripetuti episodi di addestramento, in modo da diventare efficace in molte situazioni possibili.
Durante questi episodi, il metodo simula il modo in cui un modello studente apprende dagli attuali campioni distillati, verifica le prestazioni dello studente sui dati reali e quindi regola i campioni distillati per renderli insegnanti migliori. Nel corso del tempo, il set distillato impara a supportare un apprendimento rapido e una forte generalizzazione, anche quando il modello studente parte da pesi iniziali diversi o utilizza un'architettura diversa. Ciò rende il set di dati distillato più affidabile e non legato a una singola sessione di addestramento.
.webp)
Nel frattempo, la distribuzione corrispondente genera dati sintetici che corrispondono ai modelli statistici del set di dati reale. Anziché concentrarsi solo sull'accuratezza finale di un modello, questo approccio si concentra sulle caratteristiche interne generate da una rete neurale durante l'apprendimento.
Passiamo ora ad esaminare le due tecniche che determinano l'abbinamento della distribuzione.
La distribuzione a strato singolo si concentra su un singolo strato di una rete neurale e confronta le caratteristiche che produce per i dati reali rispetto a quelli sintetici. Tali caratteristiche, chiamate anche attivazioni, catturano ciò che il modello ha appreso in quel punto della rete.
Facendo sì che i dati sintetici producano attivazioni simili, il metodo incoraggia il set di dati distillato a riflettere gli stessi modelli importanti del set di dati originale. In pratica, i campioni sintetici vengono aggiornati ripetutamente fino a quando le attivazioni a quel livello scelto corrispondono strettamente a quelle delle immagini reali.
Questo approccio è relativamente semplice perché allinea solo un livello di rappresentazione alla volta. Può funzionare particolarmente bene su set di dati più piccoli o attività in cui non è necessario abbinare gerarchie di caratteristiche profonde e multistadio. Allineando chiaramente uno spazio di caratteristiche, l'abbinamento a singolo strato fornisce un segnale stabile e significativo per l'apprendimento con il set di dati distillato.
L'abbinamento della distribuzione multistrato si basa sull'idea di confrontare dati reali e sintetici effettuando tale operazione su diversi livelli di una rete neurale anziché su uno solo. Livelli diversi catturano tipi diversi di informazioni, dai semplici bordi e texture nei livelli iniziali alle forme e ai modelli più complessi nei livelli più profondi.
Abbinando le caratteristiche di questi livelli, il set di dati distillato viene modificato per riflettere ciò che il modello apprende a più livelli. Poiché allinea le caratteristiche in tutta la rete, questo approccio aiuta i dati sintetici a conservare segnali più ricchi su cui il modello si basa per distinguere le classi.
Ciò è particolarmente utile nella visione artificiale, ovvero nelle attività in cui i modelli imparano a comprendere immagini e video, poiché i modelli utili sono distribuiti su molti livelli. Quando le distribuzioni delle caratteristiche corrispondono bene a diverse profondità, il set di dati distillato funge da sostituto più forte e affidabile dei dati di addestramento originali.
Un'altra categoria fondamentale nella distillazione dei set di dati è l'allineamento dei parametri. Anziché allineare l'accuratezza o le distribuzioni delle caratteristiche, allinea il modo in cui i pesi di un modello cambiano durante l'addestramento. Facendo sì che l'addestramento sul set di dati distillato produca aggiornamenti dei parametri simili all'addestramento sui dati reali, il modello segue un percorso di apprendimento quasi identico.
Di seguito illustreremo i due principali metodi di corrispondenza dei parametri.
Il matching in un unico passaggio confronta ciò che accade ai pesi di un modello dopo un solo passaggio di addestramento su dati reali. Il set di dati distillato viene quindi ottimizzato in modo che un modello addestrato su di esso per un solo passaggio produca un aggiornamento dei pesi molto simile. Poiché si concentra solo su questo singolo aggiornamento, il metodo è semplice e veloce da eseguire.
Lo svantaggio è che un singolo passaggio non riflette l'intero processo di apprendimento, specialmente per compiti più complessi in cui il modello necessita di numerosi aggiornamenti per sviluppare caratteristiche più ricche. Per questo motivo, l'abbinamento in un unico passaggio tende a funzionare meglio su problemi più semplici o su set di dati più piccoli in cui è possibile individuare rapidamente modelli utili.
Al contrario, l'adattamento dei parametri in più fasi esamina come cambiano i pesi di un modello nel corso di diverse fasi di addestramento, non solo una. Questa sequenza di aggiornamenti costituisce la traiettoria di addestramento del modello.
Il set di dati distillato è costruito in modo tale che, quando un modello viene addestrato sui campioni sintetici, la sua traiettoria segua da vicino quella che avrebbe seguito sui dati reali. Abbinando un periodo di apprendimento più lungo, il set distillato cattura una parte maggiore della struttura del processo di addestramento originale.
Poiché riflette il modo in cui l'apprendimento si sviluppa nel tempo, l'abbinamento in più fasi di solito funziona meglio per set di dati più grandi o più complessi, dove i modelli necessitano di molti aggiornamenti per individuare modelli utili. Richiede più calcoli poiché deve track fasi, ma spesso produce set di dati distillati che generalizzano meglio e offrono prestazioni migliori rispetto all'abbinamento in una sola fase.
Con una migliore comprensione dei principali approcci di distillazione, possiamo ora esaminare come vengono creati i dati sintetici. Nella distillazione dei set di dati, i campioni sintetici vengono ottimizzati per catturare il segnale di apprendimento più importante, in modo che un piccolo set possa sostituire un set di dati molto più grande.
Successivamente, vedremo come vengono generati e valutati questi dati distillati.
Durante la distillazione del set di dati, i pixel sintetici vengono aggiornati nel corso di numerose fasi di addestramento. La rete neurale apprende dalle immagini sintetiche correnti e invia un feedback basato sul gradiente, che mostra come ogni pixel dovrebbe cambiare per adattarsi meglio ai modelli presenti nel set di dati reale.
Questo funziona perché il processo è differenziabile (il che significa che ogni fase è fluida e presenta gradienti ben definiti, quindi piccole variazioni dei pixel portano a variazioni prevedibili nella perdita), consentendo al modello di regolare agevolmente i dati sintetici durante la discesa del gradiente.
Man mano che l'ottimizzazione continua, le immagini sintetiche iniziano a formare una struttura significativa, comprese forme e texture che il modello riconosce. Queste immagini sintetiche perfezionate vengono spesso utilizzate per attività di classificazione delle immagini perché catturano gli indizi visivi chiave che un classificatore deve apprendere.
I set di dati distillati vengono valutati addestrando modelli su di essi e confrontando i risultati con modelli addestrati su dati reali. I ricercatori misurano l'accuratezza della convalida e verificano se il set sintetico conserva le caratteristiche discriminanti (i modelli o i segnali su cui si basa il modello per distinguere una classe dall'altra) necessarie per separare le classi. Testano inoltre la stabilità e la generalizzazione in diverse esecuzioni o configurazioni del modello per assicurarsi che i dati distillati non portino a un overfitting.
Successivamente, esamineremo più da vicino alcuni esempi che dimostrano come i set di dati distillati accelerino l'addestramento e riducano i costi di calcolo, pur mantenendo prestazioni elevate, anche quando i dati sono limitati o altamente specializzati.
Quando si parla di visione artificiale, l'obiettivo è addestrare i modelli a comprendere dati visivi come immagini e video. Questi modelli apprendono modelli come bordi, texture, forme e oggetti, quindi utilizzano tali modelli per attività quali la classificazione delle immagini, il rilevamento di oggetti o la segmentazione. Poiché i problemi di visione presentano spesso enormi variazioni in termini di illuminazione, sfondi e punti di vista, i sistemi di visione artificiale necessitano solitamente di grandi set di dati per generalizzare bene, il che rende l'addestramento costoso e lento.

Quando si tratta di casi d'uso di classificazione delle immagini come scansioni mediche, monitoraggio della fauna selvatica o rilevamento di difetti di fabbrica, i modelli spesso devono affrontare un difficile compromesso tra accuratezza e costi di addestramento. Queste attività comportano in genere enormi set di dati.
La distillazione dei set di dati consente di comprimere il set di addestramento originale in un numero ridotto di immagini sintetiche che contengono comunque gli indizi visivi più importanti per il classificatore. Su benchmark di grandi dimensioni come ImageNet, i set distillati che utilizzano solo circa il 4,2% delle immagini originali hanno dimostrato di mantenere un'elevata accuratezza di classificazione. Ciò significa che un piccolo proxy sintetico può sostituire milioni di campioni reali con un carico di calcolo molto inferiore.
La ricerca dell'architettura neurale, o NAS, è una tecnica che esplora automaticamente molti possibili progetti di reti neurali per trovare quello che funziona meglio per un determinato compito. Poiché la NAS deve addestrare e valutare un gran numero di modelli candidati, eseguirla su set di dati completi può essere lento e molto impegnativo dal punto di vista computazionale.
La distillazione dei set di dati aiuta creando un piccolo set di addestramento sintetico che contiene ancora il segnale di apprendimento principale dei dati originali, in modo che ogni architettura candidata possa essere testata molto più rapidamente. Ciò consente al NAS di confrontare i progetti in modo efficiente, mantenendo ragionevolmente affidabile la classifica delle architetture buone e cattive e riducendo i costi di ricerca senza sacrificare troppo la qualità del modello finale.
I sistemi di apprendimento continuo, ovvero modelli che continuano ad aggiornarsi man mano che arrivano nuovi dati invece di essere addestrati una sola volta, necessitano di aggiornamenti rapidi ed efficienti in termini di memoria. I dispositivi edge come fotocamere, telefoni e sensori devono affrontare limiti simili perché hanno risorse di calcolo e archiviazione limitate.
La distillazione dei dataset aiuta in entrambi i casi comprimendo un ampio set di addestramento in uno sintetico più piccolo, in modo che i modelli possano adattarsi o essere riaddestrati utilizzando un piccolo set di replay anziché il dataset completo. Ad esempio, il lavoro di meta-apprendimento basato sul kernel ha dimostrato che solo 10 campioni distillati possono raggiungere un'accuratezza superiore al 64% su CIFAR-10, un benchmark standard per la classificazione delle immagini. Poiché il set di riproduzione è così compatto, gli aggiornamenti diventano molto più rapidi e pratici, soprattutto quando i modelli devono essere aggiornati spesso.
La distillazione dei set di dati può anche funzionare insieme alla distillazione delle conoscenze per modelli linguistici di grandi dimensioni. Un piccolo set di dati distillato può conservare i segnali più importanti dal modello insegnante, in modo che un modello studente compresso possa essere addestrato o aggiornato in modo più efficiente senza perdere gran parte delle prestazioni. Poiché questi set di dati sono molto piccoli, sono particolarmente utili per l'uso edge o su dispositivo, dove lo spazio di archiviazione e la potenza di calcolo sono limitati, ma si desidera comunque che il modello rimanga accurato dopo gli aggiornamenti.
Ecco alcuni vantaggi dell'utilizzo della distillazione dei set di dati:
Sebbene la distillazione dei set di dati offra numerosi vantaggi, è opportuno tenere presenti alcune limitazioni:
La distillazione dei set di dati consente a un piccolo insieme di campioni sintetici di addestrare un modello in modo quasi altrettanto efficace quanto un set di dati completo. Ciò rende l'apprendimento automatico più veloce, più efficiente e più facile da scalare. Man mano che i modelli crescono e richiedono più dati, i set di dati distillati offrono un modo pratico per ridurre i costi di calcolo senza sacrificare la precisione.
Entra a far parte della nostra community e dai un'occhiata al nostro repository GitHub per saperne di più sull'IA. Se desideri realizzare il tuo progetto di IA visiva, consulta le nostre opzioni di licenza. Scopri di più sulle applicazioni dell'IA nel settore sanitario e dell'IA visiva nel settore retail visitando le nostre pagine dedicate alle soluzioni.