Che cos'è il few-shot learning?

Che cos'è il few-shot learning?

Few-shot learning è un framework di machine learning in cui un modello AI impara a fare previsioni accurate addestrando un numero molto ridotto di esempi etichettati. In genere viene utilizzato per addestrare modelli per attività di classificazione quando i dati di addestramento idonei sono scarsi.

Il few-shot learning (FSL) è un sottoinsieme di quello che a volte viene indicato più in generale come n-shot learning, una categoria di intelligenza artificiale che include anche il one-shot learning (in cui c'è solo un esempio etichettato di ogni classe che deve essere appreso) e lo zero-shot learning (in cui non ci sono esempi etichettati). Mentre il one-shot learning è fondamentalmente solo una variante impegnativa dell'FSL, lo zero-shot learning è un problema di apprendimento distinto che richiede metodologie specifiche.

 In linea di principio, l'FSL mira a emulare la capacità umana di apprendere da un numero ridotto di esempi. Ciò è in contrasto con l'apprendimento supervisionato convenzionale, che in genere utilizza centinaia (o migliaia) di punti dati etichettati in molte fasi dell'addestramento per insegnare ai modelli AI a riconoscere le classi di dati. Pur essendo potente, l'apprendimento supervisionato è irrealizzabile in alcuni contesti del mondo reale: ottenere esempi etichettati spesso è difficile a causa dei costi proibitivi, delle competenze specifiche del dominio necessarie per annotare correttamente i dati o, in scenari come calligrafia unica, malattie rare o specie in via di estinzione o appena scoperte, della scarsità di campioni esistenti.

Sebbene alcuni algoritmi specifici e architetture di reti neurali abbiano ottenuto un notevole successo nelle attività FSL, il few-shot learning è definito dalla natura del problema di apprendimento piuttosto che dall'uso di un metodo o di una struttura del modello specifici. I metodi di few-shot learning sono profondamente diversi, dall'adattamento di modelli pre-addestrati per l'uso in attività simili, all'uso di modelli generativi per creare nuovi campioni, dai metodi di meta learning che addestrano i modelli a generalizzarsi correttamente su nuovi problemi di classificazione e diverse classi di dati, anziché svolgere un'attività specifica.

Design 3D di palline che rotolano su una pista

Le ultime notizie e insight sull'AI 


Scopri notizie e insight selezionati da esperti in materia di AI, cloud e molto altro nella newsletter settimanale Think. 

Come funziona la classificazione few-shot?

Sebbene il few-shot learning possa utilizzare un'ampia varietà di algoritmi o architetture di reti neurali, la maggior parte dei metodi è costruita intorno al transfer learning o al meta learning (o una combinazione di entrambi).

Sebbene il few-shot learning possa essere applicato anche alle attività di regressione (o all'apprendimento per rinforzo), la maggior parte della letteratura FSL si concentra sui casi d'uso di classificazione. Alcuni metodi FSL possono essere utilizzati insieme ad altre soluzioni per affrontare la scarsità di dati etichettati: ad esempio, nei metodi di apprendimento semi-supervisionato che incorporano informazioni provenienti da grandi quantità di dati non etichettati insieme alle informazioni ricavate dal few-shot learning sui campioni etichettati limitati disponibili.1

Apprendimento per trasferimento

I metodi basati sul transfer learning si concentrano sull'adattamento di un modello pre-addestrato per apprendere nuove attività o classi di dati precedentemente non visualizzate.

Quando sono disponibili pochi campioni etichettati, utilizzando l'apprendimento supervisionato per addestrare un modello da zero, specialmente uno con un numero elevato di parametri, come le reti neurali convoluzionali (CNN) utilizzate tipicamente nella computer vision o le reti basate su trasformatore utilizzate nell'elaborazione del linguaggio naturale (NLP), spesso si traduce in un overfitting: il modello potrebbe funzionare bene sui dati di test, ma meno bene sui dati reali. Tuttavia, la raccolta di una quantità di dati sufficientemente ampia per evitare l'overfitting è spesso un collo di bottiglia nell'addestramento dei modelli.

Il transfer learning offre una soluzione pratica, ovvero utilizzare le funzioni e le rappresentazioni utili che un modello addestrato ha già appreso. Un approccio semplice consiste nella messa a punto di un modello di classificazione per eseguire la stessa attività per una nuova classe attraverso l'apprendimento supervisionato su un numero ridotto di esempi etichettati. Gli approcci più complessi insegnano nuove skill attraverso la progettazione di attività a valle pertinenti, spesso attività di meta learning, per un modello pre-addestrato attraverso attività pretesto auto-supervisionate : questo è sempre più comune nell'NLP, in particolare nel contesto dei foundation model.

Gli approcci di transfer learning più complessi adattano una rete neurale addestrata attraverso i cambiamenti all'architettura di rete: ad esempio, sostituendo o riaddestrando i livelli esterni di una rete neurale, dove ha luogo la classificazione finale, mantenendo al contempo i livelli interni dove si verifica l'estrazione delle funzioni. Bloccando (o regolarizzando in altro modo le modifiche) i pesi del modello per tutti i livelli ad eccezione di quelli più esterni, è possibile garantire che gli aggiornamenti successivi non si traducano in una "dimenticanza catastrofica" di una conoscenza già appresa. Ciò consente un apprendimento notevolmente accelerato in un contesto few-shot.

Il transfer learning ha più successo quando l'addestramento iniziale del modello è pertinente per la nuova attività. Ad esempio, un modello addestrato su determinate specie di uccelli verrà generalizzato correttamente su una specie di uccelli mai vista dopo una messa a punto con pochi campioni etichettati, in quanto i pesi appresi dei filtri utilizzati dal CNN per le convoluzioni sono già ottimizzati per acquisire le funzioni pertinenti per la classificazione degli uccelli (come il piumaggio, i becchi, le dimensioni delle ali e così via).

Approccio a livello di dati

Una soluzione alternativa al problema dei campioni di dati etichettati limitati consiste nel generare campioni di addestramento aggiuntivi. Ciò è particolarmente utile quando gli esempi reali di una determinata classe di dati sono estremamente scarsi, come potrebbe accadere quando si ha a che fare con malattie rare o specie esotiche.

La generazione di dati attraverso modelli generativi come le reti generative antagoniste (GAN) o gli autoencoder variazionali (VAE), potenzialmente può produrre un numero sufficiente di campioni simili ai campioni originali etichettati per eseguire l'apprendimento supervisionato convenzionale, a condizione che i campioni originali abbiano una diversità sufficiente per evitare l'overfitting.

La tecnologia di data augmentation, ovvero il processo di creazione di nuovi campioni applicando trasformazioni diverse ai campioni originali, può essere combinato con altri metodi: ad esempio, può essere utilizzato per creare campioni corrispondenti da utilizzare nel meta learning metrico in un processo simile all'apprendimento auto-supervisionato contrastivo.

meta apprendimento

A differenza della messa a punto o dell'apprendimento supervisionato, in cui un classificatore viene addestrato sulle attività esatte per le quali verrà utilizzato e il set di addestramento contiene le stesse classi su cui verrà testato il modello, il meta learning adotta un approccio più ampio e indiretto. Mentre gli approcci basati sul transfer learning adattano modelli pre-addestrati, i metodi di meta learning spesso addestrano i sistemi end-to-end da zero. 

Secondo Santoro, et al, il "meta learning" si riferisce a scenari in cui vengono utilizzate più attività per addestrare un modello sia a breve sia a lungo termine. All'interno di ogni attività, il modello impara rapidamente a fare previsioni pertinenti per l'ambito limitato di quella specifica attività; attraverso le attività, il modello accumula gradualmente conoscenze acquisendo il modo in cui i modelli e la struttura delle attività variano nei domini target. Questo processo a due livelli viene spesso descritto come il modello "apprendimento da imparare." 2

Ad esempio, l'obiettivo di numerosi e importanti metodi di meta learning è quello di addestrare la funzione di un modello, attraverso più episodi di addestramento, per produrre una previsione del grado di somiglianza tra i punti dati di qualsiasi classe, comprese le classi che il modello non ha ancora visto, per poi utilizzare gli apprendimenti di questo processo per risolvere attività a valle (come problemi di classificazione specificamente definiti).

Alcuni approcci di meta learning funzionano a un livello più astratto, addestrando i modelli in modo che siano facili da addestrare. Nell'apprendimento supervisionato tradizionale, i parametri di un modello (come pesi e distorsioni) sono ciò che viene "appreso", mentre gli hyperparametri del modello, come la velocità di apprendimento o il modo in cui i parametri vengono inizializzati, vengono configurati prima dell'addestramento e non fanno parte del processo di apprendimento. Il meta learning può avvicinarsi ai vantaggi del transfer learning apprendendo punti di partenza ideali: inizializzazioni di parametri o altre scelte di iperparametri che si generalizzeranno correttamente su set di dati diversi in un numero minimo di fasi di addestramento.

Classificazione N-way-K-shot

Sebbene sia possibile utilizzare un'ampia varietà di architetture di modelli di machine learning per il few-shot learning, la struttura dell'addestramento e valutazione FSL in genere segue un framework N-way-K-shot, in cui N rappresenta il numero di classi e K rappresenta il numero di esempi (o "shot") forniti per ciascuna classe.

 Nella classificazione N-way-K-shot, il modello viene sottoposto a più episodi di addestramento. Ogni episodio di addestramento è composto da una o più attività di addestramento. I modelli vengono valutati attraverso attività di test, la cui struttura rispecchia quella delle attività di addestramento. Ogni attività di addestramento (e attività di test) comprende due set di dati:

  • Il set di supporto contiene campioni di addestramento etichettati con K per ciascuna delle classi N. Il modello utilizza questi campioni di supporto per apprendere rappresentazioni generalizzate per ciascuna classe. Ad esempio, il set di dati per un'attività di classificazione 3-way-2-shot contiene 3 classi di immagini e fornisce 2 esempi per ciascuno. Quando K=1, l'attività è one-shot learning. Quando K=0, il problema è zero-shot learning, che in genere richiede soluzioni uniche.
  • Il set di query contiene uno o più nuovi esempi per ciascuna delle classi N. Utilizzando le rappresentazioni apprese dal set di supporto, il modello prevede la classificazione per ogni esempio nel set di query. Una funzione di perdita misura la divergenza ("perdita") tra le previsioni del modello e le previsioni "corrette"; dopo ogni episodio di addestramento, i parametri del modello vengono regolati, ottimizzati, per ridurre al minimo le perdite. 

Dal momento che l'obiettivo del meta learning è addestrare i modelli per generalizzarli correttamente su dati non visti, anziché riconoscere classi di dati specifiche, ogni attività di addestramento di solito comprende classi di dati diverse rispetto a quelle utilizzate in qualsiasi attività di addestramento precedente.

Per testare la capacità del modello di effettuare previsioni di somiglianza accurate per classi mai viste prima, il set di supporto e il set di query utilizzati per il test devono contenere classi di dati completamente nuove a cui il modello non è stato ancora esposto nelle attività di addestramento.

Meta learning basato su metriche

Gli algoritmi di meta learning basati su metriche funzionano su un principio simile a quello dei K-nearest neighbor: anziché prevedere la classificazione modellando direttamente il limite decisionale tra le classi, gli approcci basati su metriche generano un valore continuo (come l'incorporamento di un vettore) per rappresentare uno specifico campione di dati e fanno inferenze imparando una funzione che misura una metrica di distanza che rappresenta la somiglianza tra questo valore e il valore di classi o campioni diversi con i quali sono messi a confronto.

Algoritmi FSL basati su metriche

Reti siamesi

Uno sviluppo relativamente precoce degli algoritmi basati sulle metriche, le reti siamesi risolvono i problemi di classificazione binaria utilizzando l'apprendimento contrastivo: mostrando due campioni, le reti siamesi predicono se si tratta di una coppia positiva (corrispondente) o negativa (non corrispondente). La funzione di perdita del modello viene utilizzata per ridurre al minimo la distanza tra incorporamenti vettoriali di coppie positive e massimizzare la distanza tra incorporamenti di coppie negative. I modelli di perdita tripletta sono abbastanza simili: dato un campione "di riferimento" e due campioni aggiuntivi, uno corrispondente e uno non corrispondente, il modello prevede quale sarà la corrispondenza positiva e quale quella negativa.

In entrambi i metodi, è importante che i campioni di addestramento siano relativamente difficili da distinguere l'uno dall'altro. In caso contrario, il modello non sarà costretto ad apprendere parametri che producono incorporamenti più efficaci. L'aumento dei dati viene spesso utilizzato quando i campioni corrispondenti sono scarsi.

Reti corrispondenti

Mentre le reti siamesi possono risolvere solo le attività di classificazione binaria, le reti corrispondenti possono eseguire la classificazione a più vie. Pertanto, è considerato uno dei primi algoritmi dedicati di few-shot learning. 

Le reti corrispondenti producono un incorporamento per ciascun campione nei set di query e supporto utilizzando una rete neurale appropriata (ad esempio una CNN per le attività di immagine o LLM per le attività linguistiche naturali) e prevedono la classificazione misurando la distanza del coseno tra l'incorporamento dell'esempio di query e quello degli esempi di supporto disponibili.

Reti prototipiche

Le reti prototipiche calcolano le caratteristiche medie di tutti i campioni disponibili per ogni classe al fine di calcolare un prototipo per ogni classe. La classificazione di uno specifico punto dati viene quindi determinata dalla sua relativa vicinanza ai prototipi di ciascuna classe. A differenza delle reti corrispondenti, le reti prototipiche utilizzano la distanza euclidea anziché la distanza del coseno.

Sono stati proposti molti perfezionamenti di questo approccio: ad esempio, Zhu e Koniusz hanno proposto di utilizzare la propagazione di etichette per migliorare il processo di prototipazione.3

Reti di relazioni

Una rete di relazioni (RN) funziona sullo stesso principio generale della corrispondenza e delle reti prototipiche. Anche le RN utilizzano un modulo di incorporamento che impara a calcolare gli incorporamenti per le immagini di input e i prototipi di classe ma, a differenza di questi due algoritmi, che predefiniscono la funzione di distanza utilizzata per confrontare gli incorporamenti, le RN aggiungono un modulo di relazione che apprende una funzione di distanza non lineare che si adatta meglio agli specifici problemi di classificazione.

Mixture of Experts | Podcast

Decoding AI: Weekly News Roundup

Unisciti al nostro gruppo di livello mondiale di ingegneri, ricercatori, leader di prodotto e molti altri mentre si fanno strada nell'enorme quantità di informazioni sull'AI per darti le ultime notizie e gli ultimi insight sull'argomento.

Meta learning basato sull'ottimizzazione

Il deep learning tradizionalmente richiede numerosi aggiornamenti iterativi dei parametri del modello attraverso la retropropagazione e la discesa del gradiente che, a loro volta, dipendono da un'elevata quantità di esempi etichettati per popolare i batch di addestramento. Per addestrare da zero in modo efficiente una rete neurale per il few-shot learning è necessario ottimizzare i pesi dei modelli in pochi passaggi di aggiornamento.

Metodi FSL basati sull'ottimizzazione

Gli approcci di meta learning basati sull'ottimizzazione, noti anche come meta learning basato sul gradiente (GMBL), mirano ad apprendere i parametri iniziali del modello o gli iperparametri per una rete neurale che possono essere messi a punto in modo efficiente per le attività pertinenti. Si ottengono ottimizzando il processo di discesa del gradiente, ovvero meta-ottimizzando il processo di ottimizzazione stesso.

Meta learning indipendente dal modello (MAML)

Il MAML è tra gli approcci basati sull'ottimizzazione più importanti ed è servito come base per una serie di approcci derivati dalla sua metodologia principale. Come suggerisce il nome, il meta learning indipendente dal modello non si concentra su un'attività specifica o sull'architettura del modello AI, bensì può essere utilizzato su qualsiasi modello che apprende attraverso la discesa del gradiente.

Il MAML comporta due diversi livelli di aggiornamento dei parametri in una serie di varie attività di addestramento FSL, p(T). In ogni episodio di addestramento, una nuova attività Ti viene campionata in modo casuale da p(T); la discesa del gradiente, eseguita in K passi di dimensione α, viene utilizzata per ottimizzare un vettore di parametri del modello specifico dell'attività ( θ'i) dopo ogni attività di addestramento. In diversi episodi di addestramento, un set di meta-parametri (θ) viene ottimizzato applicando la discesa del gradiente, in meta-passi di dimensione β, su quei parametri specifici dell'attività θ'i. In altre parole, mentre la discesa del gradiente ordinaria calcola le derivate per ottimizzare i parametri di un modello per un compito specifico, il MAML calcola le derivate delle derivate (o le "derivate del secondo ordine") per ottimizzare i parametri iniziali di un modello per un'ottimizzazione specifica del compito successivo.

Secondo il documento originale, l'obiettivo è quello di "trovare i parametri del modello che sono sensibili ai cambiamenti nell'attività, in modo tale che piccoli cambiamenti nei parametri producano grandi miglioramenti sulla funzione di perdita di qualsiasi attività tratta da p(T)". In questo modo si ottengono vantaggi simili a quelli del transfer learning, aggirando al contempo la necessità di elevate quantità di dati etichettati per il pre-addestramento.

Gli adattamenti proposti per MAML includono:

  • First Order MAML (FOMAML): la dipendenza di MAML dai derivati di secondo ordine è computazionalmente costosa e richiede una quantità di memoria elevata. FOMAML semplifica il processo attraverso una serie di assunzioni che consentono la meta-ottimizzazione utilizzando solo derivate del primo ordine.

  • Reptile: Reptile presenta il punto di mezzo tra la sofisticazione di MAML e la semplicità di FOMAML: utilizza le derivate del primo ordine, ma implementa regole uniche per l'aggiornamento dei parametri.4

  • Ottimizzazione delle dimensioni delle fasi: le varianti come Meta-SGD5 e Alpha MAML6 consentono di ottimizzare le dimensioni e la direzione delle fasi per 1234567 e 1234567. Analogamente, MAML++7 introduce una serie di modifiche per aumentare la stabilità e l'efficienza computazionale.

LTSM meta-learner

Gli approcci di meta learning possono utilizzare reti di memoria a lungo termine (LSTM) basate su RNN per addestrare un modello meta-learner ad acquisire conoscenze a breve termine da ogni attività di addestramento e dalle conoscenze a lungo termine comuni a ogni attività. Questo meta-learner viene quindi utilizzato per addestrare un classificatore di reti neurali.

Ottimizzazione di incorporamento latente (LEO)

Anziché istanziare e aggiornare in modo esplicito un insieme unico di meta-parametri di modello θ, l'ottimizzazione di incorporamento latente apprende una distribuzione generativa di parametri di modello specifici per ogni attività in modo simile agli autorencoder variazionali (VE) che hanno lo stesso scopo. L'ottimizzazione del gradiente può quindi essere eseguita all'interno di quello spazio di incorporamento appreso e a bassa dimensionalità.

Casi d'uso di few-shot learning

Le tecniche di few-shot learning hanno un'ampia varietà di applicazioni, poiché molti settori e campi di ricerca possono trarre vantaggio dalla capacità di apprendere in modo rapido ed efficace da relativamente pochi esempi.

Computer vision

Sebbene numerosi e importanti algoritmi FSL siano stati originariamente sviluppati per (o testati) attività di classificazione delle immagini, FSL può essere utilizzato anche per problemi di computer vision più complessi.

Sebbene il rilevamento degli oggetti sia un problema significativamente più complesso della classificazione delle immagini, poiché gli oggetti non devono solo essere classificati ma anche localizzati accuratamente, solitamente la classificazione delle immagini è un prerequisito. Di conseguenza, molte idee utilizzate per la classificazione possono essere adottate per il rilevamento degli oggetti di tipo few-shot.8

In modo analogo, sono state proposte diverse architetture di modelli per la segmentazione semantica.9

Robotica

L'FSL può consentire ai robot di adattarsi rapidamente ai nuovi ambienti e alle nuove attività, sia attraverso attività di classificazione di livello few-shot10, sia tramite reinforcement learning.11

Elaborazione del linguaggio naturale

L'FSL ha mostrato risultati promettenti per l'elaborazione del linguaggio naturale (NLP), in particolare attraverso il transfer learning: si tratta di un modo intuitivo che consente di adattare modelli linguistici di grandi dimensioni (LLM), pre-addestrati su un corpus massiccio di dati non etichettati, per compiti specifici come la classificazione dei testi e l'analisi del sentiment che possono richiedere una comprensione contestuale specifica.

Assistenza sanitaria

Il potenziale di FSL di acclimatare rapidamente un modello a classi di dati rari e sconosciuti è particolarmente promettente per i settori medici, in cui la rarità di certe condizioni o la competenza necessaria per annotare accuratamente i dati medici (come le risonanze magnetiche o le ecocardiografie) possono rendere proibitiva l'acquisizione di un gran numero di campioni etichettati.

Soluzioni correlate
IBM watsonx.ai

Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.

Scopri watsonx.ai
Soluzioni di intelligenza artificiale

Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.

Esplora le soluzioni AI
Consulenza e servizi sull'AI

Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.

Esplora i servizi AI
Fai il passo successivo

Ottieni l'accesso completo a funzionalità che coprono l'intero ciclo di vita dello sviluppo dell'AI. Crea soluzioni AI all'avanguardia con interfacce intuitive, workflow e accesso alle API e agli SDK standard di settore.

Esplora watsonx.ai Prenota una demo live
Note a piè di pagina