IA 101

Che cos’è il Few-Shot Learning?

mm

Il few-shot learning si riferisce a una varietà di algoritmi e tecniche utilizzati per sviluppare un modello di intelligenza artificiale utilizzando una quantità molto piccola di dati di training. Il few-shot learning si sforza di far riconoscere e classificare nuovi dati a un modello di intelligenza artificiale dopo essere stato esposto a pochi esempi di training. Il training few-shot si contrappone ai metodi tradizionali di training dei modelli di apprendimento automatico, dove di solito viene utilizzata una grande quantità di dati di training. Il few-shot learning viene utilizzato principalmente nella visione artificiale.

Per sviluppare una migliore intuizione per il few-shot learning, esaminiamo il concetto in maggior dettaglio. Esamineremo le motivazioni e i concetti alla base del few-shot learning, esploreremo alcuni tipi diversi di few-shot learning e copriremo alcuni modelli utilizzati nel few-shot learning a livello alto. Infine, esamineremo alcune applicazioni per il few-shot learning.

Che cos’è il Few-Shot Learning?

“Few-shot learning” descrive la pratica di addestrare un modello di apprendimento automatico con una quantità minima di dati. Di solito, i modelli di apprendimento automatico vengono addestrati su grandi volumi di dati, più grandi è meglio. Tuttavia, il few-shot learning è un concetto importante di apprendimento automatico per diverse ragioni.

Una ragione per utilizzare il few-shot learning è che può ridurre drasticamente la quantità di dati necessari per addestrare un modello di apprendimento automatico, il che riduce il tempo necessario per etichettare grandi set di dati. Allo stesso modo, il few-shot learning riduce la necessità di aggiungere funzionalità specifiche per vari compiti quando si utilizza un set di dati comune per creare diversi campioni. Il few-shot learning può idealmente rendere i modelli più robusti e in grado di riconoscere oggetti in base a meno dati, creando modelli più generali rispetto a quelli altamente specializzati che sono la norma.

Il few-shot learning viene utilizzato più comunemente nel campo della visione artificiale, poiché la natura dei problemi di visione artificiale richiede o grandi volumi di dati o un modello flessibile.

Sottocategorie

La frase “few-shot” learning è in realtà solo un tipo di apprendimento che utilizza pochi esempi di training. Dal momento che si utilizzano solo “pochi” esempi di training, ci sono sottocategorie di few-shot learning che coinvolgono anche l’addestramento con una quantità minima di dati. “One-shot” learning è un altro tipo di addestramento del modello che coinvolge l’insegnamento a un modello a riconoscere un oggetto dopo aver visto solo un’immagine di quell’oggetto. Le tattiche generali utilizzate nell’apprendimento one-shot e few-shot sono le stesse. È importante notare che il termine “few-shot” learning potrebbe essere utilizzato come un termine ombrello per descrivere qualsiasi situazione in cui un modello viene addestrato con pochi dati.

Approcci al Few-Shot Learning

La maggior parte degli approcci al few-shot learning può rientrare in una delle tre categorie: approcci a livello di dati, approcci a livello di parametri e approcci basati su metriche.

Approcci a livello di dati

Gli approcci a livello di dati al few-shot learning sono molto semplici nel concetto. Per addestrare un modello quando non si dispone di dati di training sufficienti, è possibile semplicemente ottenere più dati di training. Ci sono varie tecniche che uno scienziato dei dati può utilizzare per aumentare la quantità di dati di training a sua disposizione.

I dati di training simili possono sostenere i dati di training esatti su cui si sta addestrando un classificatore. Ad esempio, se si sta addestrando un classificatore per riconoscere tipi specifici di cani ma si dispone di poche immagini della specie specifica che si sta cercando di classificare, è possibile includere molte immagini di cani che aiuteranno il classificatore a determinare le caratteristiche generali che compongono un cane.

La creazione di dati può creare più dati di training per un classificatore. Ciò di solito comporta l’applicazione di trasformazioni ai dati di training esistenti, come ruotare le immagini esistenti in modo che il classificatore esamini le immagini da diversi angoli. I GAN possono anche essere utilizzati per generare nuovi esempi di training in base a ciò che apprendono dai pochi esempi autentici di dati di training che si hanno.

Approcci a livello di parametri

Meta-apprendimento

Un approccio a livello di parametri al few-shot learning coinvolge l’utilizzo di una tecnica chiamata “meta-apprendimento”. Il meta-apprendimento coinvolge l’insegnamento a un modello come apprendere quali caratteristiche sono importanti in un compito di apprendimento automatico. Ciò può essere realizzato creando un metodo per regolare come lo spazio dei parametri di un modello viene esplorato.

Il meta-apprendimento utilizza due modelli diversi: un modello insegnante e un modello studente. Il modello “insegnante” e un modello “studente”. Il modello insegnante apprende come incapsulare lo spazio dei parametri, mentre l’algoritmo studente apprende come riconoscere e classificare gli elementi reali nel set di dati. In altre parole, il modello insegnante apprende come ottimizzare un modello, mentre il modello studente apprende come classificare. Le uscite del modello insegnante vengono utilizzate per addestrare il modello studente, mostrando al modello studente come navigare nello spazio dei parametri grande che risulta da pochi dati di training. Quindi il “meta” nel meta-apprendimento.

Uno dei principali problemi con i modelli di few-shot learning è che possono facilmente sovrapporsi sui dati di training, poiché spesso hanno spazi ad alta dimensionalità. Limitare lo spazio dei parametri di un modello risolve questo problema e, sebbene possa essere realizzato applicando tecniche di regolarizzazione e selezionando le funzioni di perdita appropriate, l’utilizzo di un algoritmo insegnante può migliorare notevolmente le prestazioni di un modello few-shot.

Un modello di classificazione few-shot (il modello studente) cercherà di generalizzare in base ai pochi dati di training che gli vengono forniti e la sua accuratezza può migliorare con un modello insegnante per guidarlo attraverso lo spazio dei parametri ad alta dimensionalità. Questa architettura generale è denominata “meta-apprendente basato su gradienti”.

Il processo completo di addestramento di un meta-apprendente basato su gradienti è il seguente:

  1. Creare il modello base (modello insegnante)
  2. Addestrare il modello base sul set di supporto
  3. Fare in modo che il modello base restituisca previsioni per il set di query
  4. Addestrare il meta-apprendente (modello studente) sulla perdita derivata dall’errore di classificazione

Variante del Meta-apprendimento

Model-Agnostic Meta-learning è un metodo utilizzato per aumentare la tecnica di base del meta-apprendimento basato su gradienti che abbiamo trattato sopra.

Come abbiamo trattato sopra, un meta-apprendente basato su gradienti utilizza l’esperienza precedente acquisita da un modello insegnante per perfezionarsi e fornire previsioni più accurate per una piccola quantità di dati di training. Tuttavia, iniziare con parametri inizializzati casualmente significa che il modello può ancora potenzialmente sovrapporsi ai dati. Per evitare ciò, un “meta-apprendente agnostico” viene creato limitando l’influenza del modello insegnante/modello base. Invece di addestrare il modello studente direttamente sulla perdita per le previsioni fatte dal modello insegnante, il modello studente viene addestrato sulla perdita per le proprie previsioni.

Per ogni episodio di addestramento di un modello di meta-apprendimento agnostico:

  1. Viene creata una copia del modello di meta-apprendimento corrente.
  2. La copia viene addestrata con l’aiuto del modello base/modello insegnante.
  3. La copia restituisce previsioni per i dati di training.
  4. La perdita calcolata viene utilizzata per aggiornare il meta-apprendente.

Apprendimento delle metriche

Gli approcci di apprendimento delle metriche per la progettazione di un modello di few-shot learning tipicamente coinvolgono l’utilizzo di metriche di distanza di base per effettuare confronti tra campioni in un set di dati. Gli algoritmi di apprendimento delle metriche come la distanza del coseno vengono utilizzati per classificare i campioni di query in base alla loro somiglianza con i campioni di supporto. Per un classificatore di immagini, ciò significherebbe semplicemente classificare le immagini in base alla somiglianza delle caratteristiche superficiali. Dopo che un set di supporto di immagini viene selezionato e trasformato in un vettore di incorporamento, lo stesso viene fatto con il set di query e quindi i valori per i due vettori vengono confrontati, con il classificatore che seleziona la classe che ha i valori più vicini al vettore del set di query.

Una soluzione basata su metriche più avanzata è la “rete prototipale”. Le reti prototipali raggruppano i punti dati insieme combinando modelli di clustering con la classificazione basata su metriche descritta sopra. Come nel clustering K-means, vengono calcolati i centroidi dei cluster per le classi nei set di supporto e query. Una metrica di distanza euclidea viene quindi applicata per determinare la differenza tra i set di query e i centroidi del set di supporto, assegnando il set di query alla classe del set di supporto che è più vicina.

La maggior parte degli altri approcci al few-shot learning sono solo variazioni delle tecniche di base trattate sopra.

Applicazioni per il Few-Shot Learning

Il few-shot learning ha applicazioni in molti campi diversi della scienza dei dati, come la visione artificiale, l’elaborazione del linguaggio naturale, la robotica, l’assistenza sanitaria e l’elaborazione dei segnali.

Le applicazioni del few-shot learning nello spazio della visione artificiale includono il riconoscimento efficiente dei caratteri, la classificazione delle immagini, il riconoscimento degli oggetti, il tracciamento degli oggetti, la previsione del movimento e la localizzazione dell’azione. Le applicazioni del few-shot learning nell’elaborazione del linguaggio naturale includono la traduzione, il completamento della frase, la classificazione dell’intento dell’utente, l’analisi del sentimento e la classificazione del testo multietichetta. Il few-shot learning può essere utilizzato nel campo della robotica per aiutare i robot a imparare compiti da poche dimostrazioni, permettendo ai robot di imparare come eseguire azioni, muoversi e navigare nel mondo che li circonda. La scoperta di farmaci basata sul few-shot è un settore emergente dell’assistenza sanitaria basata sull’intelligenza artificiale. Infine, il few-shot learning ha applicazioni per l’elaborazione dei segnali acustici, che è il processo di analisi dei dati del suono, permettendo ai sistemi di intelligenza artificiale di clonare voci in base a pochi campioni di utente o di convertire la voce da un utente all’altro.

Blogger e programmatore con specializzazioni in Machine Learning e Deep Learning argomenti. Daniel spera di aiutare gli altri a utilizzare il potere dell'AI per il bene sociale.