L'apprendimento da pochi esempi (ininglesefew-shot learning, FSL) è una forma di apprendimento supervisionato che, a partire da un numero estremamente ridotto di esempi etichettati, ha come obiettivo quello di imparare modelli atti a risolvere problemi diversi, come classificare istanze rispetto a nuovi concetti, tipicamente generalizzando modelli esistenti.
A differenza dei modelli tradizionali come quelli appresi tramite deep learning, che richiedono centinaia o migliaia di istanze per classe al fine di evitare il fenomeno del sovradattamento, il few-shot learning si ispira alla capacità cognitiva umana di generalizzare rapidamente nuovi concetti sfruttando conoscenza pregressa pur potendo disporre di pochi esempi etichettati rispetto alle nuove classi.
Formulazione del problema
Nel paradigma standard del few-shot learning, il problema viene formulato attraverso l'impostazione detta classificazione -way -shot:
(way): Il numero di classi distinte presenti nel compito di destinazione.
(shot): Il numero di esempi etichettati disponibili per ciascuna delle classi.
Un tipico problema 5-way 1-shot richiede dunque di classificare un'istanza incognita scegliendo tra 5 classi possibili, avendo a disposizione un solo esempio etichettato per ciascuna classe (generalmente si va da 1 a 5 esempi).
Struttura del Dataset: insiemi di supporto e di query
L'addestramento e la valutazione avvengono suddividendo i dati in due insiemi principali:
Support set (): insieme limitato di dati etichettati forniti per l'adattamento immediato al nuovo compito che contiene esattamente campioni:
Query set (): insieme di istanze non etichettate da classificare sulla base delle informazioni contenute in :
Metodologie
I principali approcci al few-shot learning si dividono in tre famiglie:
Siamese Neural Network: si utilizzano due retigemelle con pesi condivisi per confrontare la coppia e determinare se i campioni appartengono alla stessa classe.
Matching Network: integrano meccanismi di attenzione dinamica (attention mechanism) e reti ricorrenti per calcolare la classe delle istanze di query come combinazione lineare delle etichette contenute in .
Prototypical Network: si calcola un singolo prototipo per ogni classe come media degli embedding di appartenenti alla classe :
;
la query viene poi assegnata alla classe del prototipo più vicino via softmax:
dove è l'estrattore di feature parametrico impiegato per l'embedding e è la distanza euclidea.
Approcci basati su ottimizzazione
Questi metodi, noti anche come approcci al Meta-learning ("apprendere ad apprendere"), mirano ad addestrare l'inizializzazione dei parametri della rete affinché poi bastino pochi passi di discesa del gradiente per adattare il modello a un nuovo problema di apprendimento senza incorrere nel sovradattamento.
MAML (Model-Agnostic Meta-Learning): approccio nel quale si ottimizza una configurazione iniziale dei parametri tale per cui una singola o poche iterazioni di discesa di gradiente su un task producano parametri ottimali per modelli di accuratezza elevata.
In-context learning nei modelli linguistici
Nei moderni LLM (come ad es. GPT-3 e LLaMA), il few-shot learning viene realizzato in modo puramente "in-context", ovvero senza aggiornare i pesi del modello via retropropagazione. Il modello riceve all'interno del prompt esempi dimostrativi prima dell'input finale.
Esempio: prompting few-shot nei modelli linguistici
Classifica il sentiment delle seguenti recensioni in [Positivo, Negativo].
Testo: "Il cibo era freddo e il servizio lentissimo."
Sentiment: Negativo
Testo: "Un'esperienza fantastica, tornerò sicuramente!"
Sentiment: Positivo
Testo: "L'ambiente è accogliente e il personale è molto gentile."
Sentiment:
In questo scenario (2-shot learning), il modello sfrutta gli esempi forniti nella finestra di contesto per dedurre il formato dell'output e il criterio di classificazione senza che sia necessario alcun raffinamento incrementale del modello.
Ambiti di applicazione
Visione artificiale: riconoscimento di specie rare di flora/fauna, diagnosi medica per immagini (dove i casi clinici etichettati sono scarsi).
Elaborazione del linguaggio naturale: traduzione automatica per lingue a basse risorse (low-resource languages), estrazione di informazioni specialistiche.
Robotica: adattamento rapido a nuove traiettorie o manipolazione di oggetti mai visti prima.
↑Vinyals, O., Blundell, C., Lillicrap, T., Wierstra, D., &ier, D., Matching Networks for One Shot Learning, in Advances in Neural Information Processing Systems (NeurIPS 29), 2016, pp.3630–3638, DOI:10.5555/3157096.3157504.
↑Snell, J., Swersky, K., & Zemel, R., Prototypical Networks for Few-shot Learning, in Advances in Neural Information Processing Systems (NeurIPS 30), 2017, pp.4077–4087, DOI:10.5555/3294996.3295163.
↑Finn, C., Abbeel, P., & Levine, S., Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks, in Proceedings of the 34th International libro on Machine Learning (ICML), vol.70, 2017, pp.1126–1135, DOI:10.5555/3305890.3305981.
↑Brown, T., et al., Language Models are Few-Shot Learners, in Advances in Neural Information Processing Systems (NeurIPS 33), vol.33, 2020, pp.1877–1901, DOI:10.5555/3495724.3495883.