Fondamenti di IA
Che cos’è il Meta-Learning?
Che cos’è il Meta-Learning?
Una delle aree di ricerca in più rapida crescita nel campo del machine learning è l’area del meta-learning. Il meta-learning, nel contesto del machine learning, è l’utilizzo di algoritmi di machine learning per assistere nell’addestramento e nell’ottimizzazione di altri modelli di machine learning. Poiché il meta-learning sta diventando sempre più popolare e vengono sviluppate sempre più tecniche di meta-learning, è utile avere una comprensione di cosa sia il meta-learning e avere una sensazione delle varie modalità in cui può essere applicato. Esaminiamo le idee alla base del meta-learning, tipi di meta-learning, nonché alcuni dei modi in cui il meta-learning può essere utilizzato.
Il termine meta-learning è stato coniato da Donald Maudsley per descrivere un processo mediante il quale le persone iniziano a plasmare ciò che imparano, diventando “sempre più in controllo di abitudini di percezione, indagine, apprendimento e crescita che hanno interiorizzato”. Successivamente, scienziati cognitivi e psicologi avrebbero descritto il meta-learning come “imparare a imparare”.
Per la versione del machine learning del meta-learning, l’idea generale di “imparare a imparare” viene applicata ai sistemi di intelligenza artificiale. Nel senso dell’IA, il meta-learning è la capacità di una macchina intelligentemente artificiale di imparare a eseguire vari compiti complessi, applicando i principi che ha utilizzato per imparare un compito ad altri compiti. I sistemi di IA devono generalmente essere addestrati per eseguire un compito attraverso il padroneggiamento di molti piccoli sottocompiti. Questo addestramento può richiedere molto tempo e gli agenti di IA non trasferiscono facilmente le conoscenze apprese durante un compito ad un altro compito. La creazione di modelli e tecniche di meta-learning può aiutare l’IA a imparare a generalizzare i metodi di apprendimento e acquisire nuove abilità più velocemente.
Tipi di Meta-Learning
Meta-Learning dell’Ottimizzatore
Il meta-learning viene spesso utilizzato per ottimizzare le prestazioni di una rete neurale già esistente. I metodi di meta-learning dell’ottimizzatore funzionano generalmente modificando i hyperparametri di un’altra rete neurale al fine di migliorare le prestazioni della rete neurale di base. Il risultato è che la rete bersaglio dovrebbe diventare migliore nell’eseguire il compito per cui sta essere addestrata. Un esempio di meta-learning dell’ottimizzatore è l’utilizzo di una rete per migliorare i risultati del gradiente discendente.
Meta-Learning a Pochi Colpi
Un approccio di meta-learning a pochi colpi è uno in cui viene progettata una rete neurale profonda in grado di generalizzare dai set di dati di addestramento a set di dati non visti. Un esempio di classificazione a pochi colpi è simile a un compito di classificazione normale, ma invece, i campioni di dati sono interi set di dati. Il modello viene addestrato su molti diversi compiti di apprendimento/set di dati e quindi viene ottimizzato per la massima prestazione sui molti compiti di addestramento e sui dati non visti. In questo approccio, un singolo campione di addestramento viene diviso in più classi. Ciò significa che ogni campione di addestramento/set di dati potrebbe potenzialmente essere composto da due classi, per un totale di 4-colpi. In questo caso, il compito di addestramento totale potrebbe essere descritto come un compito di classificazione 4-colpi 2-classi.
Nell’apprendimento a pochi colpi, l’idea è che i singoli campioni di addestramento siano minimalisti e che la rete possa imparare a identificare gli oggetti dopo aver visto solo poche immagini. Ciò è molto simile a come un bambino impara a distinguere gli oggetti dopo aver visto solo un paio di immagini. Questo approccio è stato utilizzato per creare tecniche come modelli generativi a un solo colpo e reti neurali con memoria aumentata.
Meta-Learning Metrico
Il meta-learning basato su metriche è l’utilizzo di reti neurali per determinare se una metrica viene utilizzata efficacemente e se la rete o le reti stanno raggiungendo la metrica bersaglio. Il meta-learning basato su metriche è simile all’apprendimento a pochi colpi in quanto vengono utilizzati solo pochi esempi per addestrare la rete e farle imparare lo spazio metrico. La stessa metrica viene utilizzata in tutto il dominio diverso e se le reti si discostano dalla metrica, vengono considerate in difficoltà.
Meta-Learning del Modello Ricorrente
Il meta-learning del modello ricorrente è l’applicazione di tecniche di meta-learning alle reti neurali ricorrenti e alle reti a memoria a lungo termine simili. Questa tecnica funziona addestrando il modello RNN/LSTM per imparare sequenzialmente un set di dati e quindi utilizzando questo modello addestrato come base per un altro apprendista. Il meta-apprendista acquisisce l’algoritmo di ottimizzazione specifico utilizzato per addestrare il modello iniziale. La parametrazione ereditata del meta-apprendista gli consente di inizializzare e convergere rapidamente, ma ancora essere in grado di aggiornare per nuovi scenari.
Come Funziona il Meta-Learning?
Il modo esatto in cui il meta-learning viene condotto varia a seconda del modello e della natura del compito in questione. Tuttavia, in generale, un compito di meta-learning coinvolge la copia dei parametri della prima rete nei parametri della seconda rete/l’ottimizzatore.
Esistono due processi di addestramento nel meta-learning. Il modello di meta-learning viene generalmente addestrato dopo che sono stati eseguiti diversi passaggi di addestramento sul modello di base. Dopo i passaggi di addestramento in avanti, all’indietro e di ottimizzazione che addestrano il modello di base, viene eseguito il passaggio di addestramento in avanti per il modello di ottimizzazione. Ad esempio, dopo tre o quattro passaggi di addestramento sul modello di base, viene calcolata una perdita meta. Dopo che la perdita meta è stata calcolata, vengono calcolati i gradienti per ogni parametro meta. Dopo che ciò si verifica, i parametri meta nell’ottimizzatore vengono aggiornati.
Una possibilità per calcolare la perdita meta è completare il passaggio di addestramento in avanti del modello iniziale e quindi combinare le perdite che sono già state calcolate. L’ottimizzatore meta potrebbe anche essere un altro meta-apprendista, sebbene a un certo punto debba essere utilizzato un ottimizzatore discreto come ADAM o SGD.
Molti modelli di deep learning possono avere centinaia di migliaia o addirittura milioni di parametri. Creare un meta-apprendista che abbia un insieme completamente nuovo di parametri sarebbe computazionalmente costoso e per questo motivo viene generalmente utilizzata una tattica chiamata condivisione di coordinate. La condivisione di coordinate coinvolge la progettazione del meta-apprendista/ottimizzatore in modo che impari un singolo parametro dal modello di base e poi cloni solo quel parametro al posto di tutti gli altri parametri. Il risultato è che i parametri che l’ottimizzatore possiede non dipendono dai parametri del modello.












