Glossario

Voce del glossario · · 3 min di lettura

Continual Learning

Un modello smista i messaggi dei clienti verso i reparti «ordini» e «resi». Sa riconoscere «Dov'è il mio pacco?». Ora l'azienda apre un reparto reclami. Addestri ulteriormente il modello su messaggi che parlano di prodotti danneggiati. I reclami vengono smistati sempre meglio, ma anche una parte delle domande sulla consegna comincia a finire nel nuovo reparto. Controllare soltanto i reclami darebbe una falsa impressione di progresso.

Ti serve insegnare al modello cose nuove conservando le capacità precedenti. È l'obiettivo del Continual Learning: l'apprendimento su dati o compiti che arrivano in sequenza, tenendo conto di ciò che il modello ha imparato prima. Il nome indica un problema e una famiglia di approcci; non garantisce che il modello non dimentichi. Questa esigenza è descritta da Kirkpatrick et al., Overcoming catastrophic forgetting in neural networks, §1.

Su un unico pezzo di stoffa restano ricamati cerchi e triangoli, mentre l'ago aggiunge un nuovo motivo ondulato: una metafora dello sviluppo di nuove capacità conservando quelle precedenti.

Che cosa cambiamo nell'addestramento e nella verifica

Supponiamo che l'archivio completo degli esempi usati nell'addestramento precedente non sia più disponibile. Prima di eliminarlo ne abbiamo conservato un piccolo campione: 20 messaggi di cui conosciamo il reparto corretto. Uno dei metodi possibili consiste nel mescolare questo campione ai nuovi esempi di reclami. In questo modo l'addestramento successivo riceve anche il segnale di continuare a gestire correttamente «Dov'è il mio pacco?». Il riutilizzo di vecchi esempi è una delle strategie descritte da van de Ven e Tolias, Three scenarios for continual learning, §3.3.

Vedi anche: Experience Replay — conservare un piccolo campione di vecchi esempi e mescolarlo al nuovo addestramento.

Il team di valutazione conserva un test separato di vecchi messaggi, che non usiamo per l'addestramento. Dopo ogni aggiornamento controlliamo le categorie vecchie e quelle nuove. I numeri qui sotto sono un esempio inventato, non il risultato di uno studio; ogni test contiene 100 messaggi.

Variante del modelloVecchi messaggi correttiReclami corretti
Prima del nuovo addestramento90/1000/100 — la categoria non esiste
Dopo l'addestramento sui soli reclami40/10092/100
Dopo l'addestramento con il campione di vecchi messaggi89/10087/100

L'ultima variante conserva meglio la capacità precedente, anche se riconosce i reclami peggio della seconda. La tabella mostra che cosa confrontare; non promette un risultato simile dopo aver aggiunto 20 esempi.

Le condizioni cambiano la difficoltà

Nel nostro esempio il modello sceglie da solo tra tutti i reparti che conosce. Un suggerimento del tipo «questo è un messaggio della nuova categoria» renderebbe il test più facile. La disponibilità di suggerimenti simili e dei confini tra i compiti conta quando si confrontano i metodi (van de Ven e Tolias, §2–2.3). Un campione piccolo può tralasciare le domande rare; una buona media non dimostra che ogni capacità sia stata conservata.

  • Catastrophic Forgetting [Polski] descrive un forte peggioramento delle vecchie capacità; la sua dimostrazione mostra come il nuovo addestramento modifica le impostazioni condivise.
  • Fine-tuning [Polski] è l'ulteriore addestramento di un modello su esempi selezionati. Dopo ogni nuovo addestramento controlliamo anche le capacità precedenti.
  • Knowledge Distillation [Polski] può trasmettere indicazioni da un modello più vecchio a quello in aggiornamento; è una strategia diversa dal conservare i messaggi originali (§3.3 del lavoro di van de Ven e Tolias).

Testo e illustrazione sono stati preparati con l'aiuto dell'AI; i messaggi, la dimensione del campione e i risultati della tabella sono un esempio didattico mio. L'illustrazione mostra l'obiettivo di conservare le capacità precedenti, non la struttura del modello.