Il Transfer Learning è un metodo di Machine Learning molto avanzato in cui un modello presviluppato per eseguire una certa attività viene riutilizzato come punto di partenza per la definizione di un modello adibito poi all’esecuzione di una seconda attività diversa.
È ormai abitudine, infatti, che i modelli già allenati siano impiegati come fonte, specialmente nel Deeep Learning usato nella realtà virtuale e nelle operazioni di elaborazione del linguaggio naturale. Ciò avviene per un motivo particolare: lo sviluppo di modelli di rete neurale richiede l’uso di risorse di calcolo e di tempo molto ampie.
La difficoltà viene quindi risolta attraverso il Transfer Learning che consente il “riciclo” di modelli già impostati. Proviamo ad analizzare nel dettaglio come funziona questa branca dell’AI e quali applicazioni trova oggi.
Che cos’è il Transfer Learning
All’interno del Deep Learning viene utilizzato il Transfer Learning per riaddestrare un modello di rete neurale con l’obiettivo di trovare soluzione ad un problema simile a quello per il quale è stato progettato, attraverso l’uso di uno o più livelli dello stesso.
Per semplificare, si tratta di apprendere un certo compito partendo da una conoscenza pregressa. Tale conoscenza già acquisita viene spostata dall’attività originale alla nuova. Avviene, dunque, un riuso di quello che è stato appreso in un contesto per rendere migliore la generalizzazione di un altro.
In questo modo è possibile ridurre le tempistiche di addestramento di un modello di rete neurale, con un minore rischio di errore di generalizzazione (overfitting).
In genere ci si avvale dell’aiuto di tale sistema in un ambiente di apprendimento supervisionato, dove l’input è uguale, ma a cambiare è lo scopo da raggiungere. Per esempio, con una prima impostazione del modello di rete neurale si potrà conoscere un gruppo di elementi e categorie visive (cani e gatti) e nella seconda un differente insieme (mosche e formiche).
Il Transfer Learning può quindi essere d’aiuto nei casi nei quali lo sviluppo del modello abbia etichettato più dati rispetto al problema iniziale e vi è magari una somiglianza nella struttura della nuova attività da risolvere. Lo scopo è allora quello di riciclare le informazioni della prima impostazione del modello di rete neurale per ottenere dati che possono essere utili in fase di apprendimento del modello.
Com’è nato il Transfer Learning
Gli scienziati Ante Fulgosi e Stevo Bozinovski nel 1976 hanno divulgato un primo articolo in cui si parlava per del Transfer Learning all’interno del processo di costruzione delle reti neurali. Nel testo si analizzava un primo modello matematico dell’apprendimento di trasferimento.
Invece nel 1981 è stato pubblicato un rapporto sull’applicazione del Transfer Learning nell’attività di addestramento di una rete neurale, con un set di dati composto di immagini che raffiguravano lettere di terminali di computer. Lo scopo era quello di dimostrare, anche se in modo sperimentale, come fosse possibile l’apprendimento di trasferimento.
Anni più tardi, nel 1993, l’informatica americana Lorien Pratt ha sviluppato un algoritmo di trasferimento fondato sulla discriminabilità, il Discriminability-Based Transfer (DBT), il quale impiegava una misura di informazione per calcolare l’utilità degli iperpiani stabiliti dai pesi delle fonti presenti nella rete di destinazione e che andava poi a riscalare le grandezze di peso così trasferite. Vari esperimenti hanno comunque accertato che le reti inizializzate attraverso DBT riescono ad apprendere più rapidamente in confronto a quelle inizializzate in maniera casuale.
Nel tempo la ricerca sul Transfer Learning è stata anche applicata al settore delle scienze cognitive. Infatti, secondo Andrew Ng, capo di Google Brain, questa branca dell’AI rappresenterà il futuro driver del successo commerciale del Machine Learning, dopo l’apprendimento supervisionato.
In che modo funziona il Transfer Learning
Come già detto, il Transfer Learning si basa sul riaddestrare una rete neurale su cui è già stato inserito un quantitativo di dati di grandi dimensioni, di solito con l’obiettivo di classificare immagini su vasta scala. Il modello così riaddestrato potrà essere riutilizzato interamente oppure come base per personalizzarne un altro nel compiere una specifica attività.
L’idea fondante del Transfer Learning è che se un modello viene addestrato su un gruppo di dati abbastanza ampio e generico, questo stesso può essere modello generale del mondo visivo. Dunque, si potranno impiegare le mappe di funzionalità apprese senza l’obbligo di andare ad addestrare daccapo un nuovo modello di rete neurale, sprecando tempo e risorse nel farlo.
Ci sono essenzialmente due metodi per poter personalizzare un modello preaddestrato:
- Estrazione di funzionalità: è previsto il reimpiego del comportamento della rete neurale per ricavare ulteriori caratteristiche dagli stessi dati di input. In tal caso si usano le rappresentazioni imparate dalla rete neurale precedente per ottenere funzionalità importanti da nuovi campioni. Quindi basta aggiungere al modello un nuovo classificatore da addestrare ex-novo secondo un particolare set di dati;
- Fine-tuning: serve a circoscrivere l’addestramento ad un numero inferiore di parametri. Così facendo, si vanno a sbloccare alcuni livelli superiori del modello base di rete neurale preaddestrata, per eseguire l’addestramento ulteriore e più specifico. Si potranno allora perfezionare le rappresentazioni delle caratteristiche di grado superiore contenute nel modello base per renderle più idonee allo svolgimento del nuovo compito.
Le strategie di Transfer Learning
Tenendo come riferimento i vari algoritmi di Machine Learning più tradizionali, si possono individuare 3 categorie di Transfer Learning:
- Transfer Learning induttivo: in questa situazione i domini di origine e destinazione sono i medesimi, ma i compiti di origine e destinazione sono differenti l’uno dall’altro. Gli algoritmi provano ad usare i bias, ovvero i pregiudizi induttivi del dominio di provenienza per migliorare l’attività di soluzione dei problemi di destinazione. Se poi il dominio di origine presenta dati etichettati, potrà essere diviso in due tipologie: apprendimento a trasferimento sequenziale e apprendimento multitasking;
- Transfer Learning non supervisionato: ricorda molto quello induttivo, ma non ci sono dati etichettati nei domini di origine e destinazione e nonostante questi domini siamo simili, i compiti da eseguire sono diversi;
- Transfer Learning trasduttivo: la terza categoria prevede delle similitudini tra le attività di origine e destinazione, ma i domini associati sono differenti. In aggiunta, ci sono molti dati etichettati nel dominio di origine che non sono presenti in quello di destinazione. Infatti, il trasferimento trasduttivo tra domini diversi è considerato come adattamento del dominio.
Quali applicazioni trova il Transfer Learning?
Oggi gli algoritmi di Transfer Learning trovano spazio in svariati campi di utilizzo:
- Riconoscimento vocale: i modelli di riconoscimento vocale offrono un’applicazione molto efficiente e facile del Transfer Learning. Usati per la lingua inglese, sono stati utilizzati come base per perfezionare le prestazioni dei modelli di riconoscimento vocale di altre lingue;
- Rilevamento delle immagini: esempio più classico è il rilevamento di particolari caratteristiche presenti all’interno delle immagini, come i bordi;
- Settore medico-sanitario: il Transfer Learning è di grande aiuto per l’implementazione dell’imaging medico e la fase di diagnostica da parte del personale medico. Ci sono casi di applicazione di reti neurali convoluzionali in ambito medico, tra cui la classificazione delle immagini di un vetrino per la diagnosi di varie tipologie di cancro, l’identificazione automatica del Covid-19 dalle lastre dei raggi X e l’individuazione di malattie cardiache.
Attualmente esistono anche altri algoritmi di Transfer Learning per l’uso degli edifici, la classificazione dei testi o per implementare il filtro antispam. In generale, questo ramo dell’AI è una delle migliori metodologie per sviluppare modelli di Deep Learning più accurati in minor tempo e con minore spreco di risorse.
Questo perché i modelli di Deep Learning necessitano di enormi quantità di dati per funzionare e richiedono elevate quantità di energia per l’addestramento. Ciò dipende dal fatto che le reti neurali contengono milioni di pesi (connessioni) che legano tra loro i vari strati di neuroni.
I pesi sono applicati agli input e sono impostati durante l’addestramento per fornire un output. Tale procedimento è molto dispendioso ed ecco che una tecnica come il Transfer Learning può rappresentare una grande occasione per ottimizzare le attività di Deep Learning, preservando energia e tempo.