Lo sviluppo legato all’intelligenza artificiale coinvolge un’ampia varietà di metodi e tecniche, che possono valorizzare l’abilità di riutilizzare in maniera corretta ed efficiente il lavoro precedentemente svolto. Tale prospettiva viene in particolar modo enfatizzata dalla disciplina del transfer learning, che consente di personalizzare un modello di deep learning modellato in precedenza per adattarlo in funzione di nuovi scopi.
Il transfer learning, o apprendimento di trasferimento, ha visto i suoi fondamenti teorici apparire nelle pubblicazioni scientifiche sin dagli anni Settanta, anche se la sua diffusione su larga scala è avvenuta in tempi ben più prossimi ai nostri giorni, quando le risorse computazionali hanno finalmente consentito al deep learning di compiere il salto verso la maturità tecnologica e la progressiva diffusione nelle applicazioni consumer ed enterprise.
La ricerca e lo sviluppo legate al transfer learning interessano vari ambiti dell’intelligenza artificiale, tra cui le applicazioni nelle scienze cognitive, soprattutto grazie alla combinazione con le tecniche di apprendimento supervisionato.
Vediamo nello specifico in cosa consiste il transfer learning e quali sono le situazioni in cui i modelli definiti mediante questo approccio possono comportare notevoli benefici rispetto a progetti di deep learning sviluppati da zero.
Cosa si intende per Transfer Learning
Il transfer learning (apprendimento per trasferimento) è una sotto branca del machine learning e del deep learning che prevede la procedura di addestramento di una rete neurale profonda in cui in precedenza sono stati inseriti ed elaborati dei set di dati. Sia dal punto di vista concettuale che da quello strettamente pratico, l’obiettivo del transfer learning risiede nello sfruttare un modello già addestrato per personalizzarlo e adattarlo a nuovi scopi.
Grazie all’approccio dell’apprendimento per trasferimento, diventa possibile ottimizzare in maniera sensibile le risorse già disponibili, rispetto al dover creare ed istruire un nuovo modello di deep learning ogni talvolta in cui si presenti un’esigenza da soddisfare. Tale osservazione assume un riscontro pratico se si considerano due aspetti fondamentali.
In primo luogo, è possibile il riutilizzo anche parziale di un modello di rete neurale istruito in precedenza. Tale aspetto rende possibile selezionare soltanto gli aspetti che risultano pienamente compatibili con la personalizzazione operata mediante il transfer learning. In secondo luogo, nell’ambito del deep learning è frequente operare con set di dati generalisti, che rende quasi naturale la vocazione ad una successiva personalizzazione per soddisfare obiettivi specifici.
L’esempio ricorrente è costituito dall’impiego delle reti neurali per la classificazione delle immagini. Una volta che una rete neurale è stata istruita da un enorme quantità di contenuti visivi, il modello è pronto per essere personalizzato per creare tutte quelle applicazioni che necessitano di tale classificazione. Ridefinire ogni volta il modello non avrebbe di fatto alcun senso, in quanto comporterebbe un lungo ed oneroso percorso di addestramento per arrivare ad ottenere un risultato di fatto già disponibile.
Ovviando in questo modo alla dispersione delle risorse, il transfer learning ha consentito di allargare la base operativa delle applicazioni di deep learning, agendo da vero e proprio democratizzatore della tecnologia, rendendo maggiormente accessibili tali applicazioni per un numero sempre maggiore di ambiti di business.
È evidente come la possibilità di riutilizzare una rete neurale pre-addestrata costituisca un vantaggio enorme per chi deve creare una nuova applicazione senza dover ripartire da zero. Al tempo stesso, i benefici coinvolgono chi può rendere disponibili commercialmente i propri modelli di deep learning generalisti a tutti coloro che desiderano personalizzarli. Il transfer learning, oltre agli aspetti funzionali, costituisce quindi un abilitatore economico nel mercato delle tecnologie e delle applicazioni basate sull’intelligenza artificiale.
Come funziona
Il transfer learning è sua volta composto da varie tecniche, tra cui spiccano in particolare due metodi di ri-addestramento dei modelli di reti neurali addestrati in precedenza: l’estrazione di funzionalità e il fine tuning.
L’estrazione di funzionalità consiste nel reimpiego di una rete neurale per definire una serie di output sulla base di un input definito in precedenza, da cui vengono appunto estratte le funzionalità necessarie per raggiungere un nuovo obiettivo. Tale esigenza viene solitamente risolta attraverso l’impiego di un nuovo classificatore, più specifico rispetto a quello impiegato dal modello predefinito, la cui rete convoluzionale contiene tutti i contenuti e le funzionalità che occorrono per procedere alla personalizzazione.
Il fine tuning, come il nome stesso suggerisce in maniera esplicita, non entra nel merito del riaddestramento di un’intera rete neurale, concentrando le proprie attenzioni soltanto su alcuni dei suoi livelli. Tale metodo risulta pertanto più limitato nella portata nella sua azione di modifica, ma decisamente meno oneroso in termini di tempi e costi necessari per personalizzare il modello, soprattutto quando si tratta di agire su aspetti di modesta entità, facilmente risolvibili sui layer superficiali della rete neurale pre-addestrata su cui si interviene.
Un processo di transfer learning può essere definito in vari modi, ma solitamente si caratterizza in un workflow dalla complessità variabile, che potremmo sintetizzare nelle seguenti fasi:
- – Analisi e comprensione dei dati presenti nel modello pre-addestrato, per verificare la congruità con i nuovi obiettivi da soddisfare
- – Personalizzazione della pipeline di input dei dati necessari per completare il modello
- – Creazione del “nuovo” modello di rete neurale, con la definizione dei pesi e dei parametri del modello pre-addestrato e lo sviluppo dei nuovi livelli di classificazione, che si aggiungono a quelli già esistenti
- – Addestramento supervisionato del modello di rete neurale personalizzato e definizione dei workflow per generare i nuovi output.
Appare pertanto evidente come le competenze necessarie per svolgere un processo di transfer learning coincidano con quelle richieste dal machine learning e, più nello specifico, dal deep learning, a cui va progressivamente aggiunto un know-how specifico in materia di personalizzazione delle reti neurali.
Per misurare l’efficacia delle tecniche di transfer learning esistono vari indicatori. I più comuni sono i seguenti:
- – valutare se l’esecuzione dell’attività target è realizzabile utilizzando solamente le conoscenze trasferite;
- – misurare la quantità di tempo necessaria per apprendere l’attività target utilizzando le conoscenze acquisite attraverso il transfer learning rispetto ad una procedura di machine learning tradizionale.
- – verificare se il risultato ottenuto mediante il transfer learning è paragonabile a quello ottenuto mediante una procedura di machine learning tradizionale.
I modelli di transfer learning
Il transfer learning prevede l’impiego di vari algoritmi di deep learning, sulla base dei quali vengono convenzionalmente definite tre differenti tipologie di riferimento.
Transfer learning induttivo
Prevede gli stessi domini di origine e destinazione, tuttavia correlati a differenti attività. Gli algoritmi utilizzano pertanto le caratteristiche presenti nei domini di origine per cercare di risolvere i problemi che si prospettano nella definizione dei vari scenari previsti dagli obiettivi in sede di destinazione. Nel transfer learning induttivo vengono solitamente utilizzati i metodi di apprendimento multitasking e a trasferimento sequenziale.
Transfer learning trasduttivo
Prevede differenti domini di origine e destinazione, pur legati da una serie di somiglianze. La differenza sostanziale è riferibile al fatto che non tutti i dati etichettati nel dominio di origine corrispondono a quelle presenti nel dominio di destinazione, per cui si rende necessario un trasferimento di tipo adattivo.
Transfer learning non supervisionato
A differenza della tipologia induttiva, il transfer learning non supervisionato prevede che non vi siano necessariamente dati etichettati all’interno dei domini di origine e destinazione, il che presuppone una serie di operazioni specifiche per questa condizione di scenario
Quando utilizzare il transfer learning
Trattandosi a tutti gli effetti di un caso particolare del deep learning, il transfer learning prevede in linea di massima i medesimi ambiti di impiego, ma soprattutto andrebbe in primo luogo inteso quale un metodo per sviluppare modelli di apprendimento profondo più efficaci e funzionali ottimizzando nel miglior modo possibile il dispendio di risorse, sia in termini di tempo che di costi.
In particolare, la capacità di applicare nuovi classificatori consente di riutilizzare l’enorme lavoro di addestramento che viene svolto sulle reti neurali, con un impatto sugli aspetti legati non soltanto alla sostenibilità economica, ma anche per quanto concerne la sostenibilità ambientale, per via del notevole risparmio che ne consegue in termini di elaborazione complessiva dei modelli di deep learning. Un particolare non trascurabile nel particolare periodo storico che stiamo vivendo.
Gli algoritmi di transfer learning sono ad esempio frequentemente utilizzati nei seguenti ambiti:
- – Computer vision / riconoscimento delle immagini
- – Natural Language processing / riconoscimento della voce
- – Classificazione documentale / riconoscimento del testo
- – Scienze mediche / radiologia e diagnosi precoce
In termini generali, abbiamo visto come il transfer learning consenta di riutilizzare i dati archiviati ed etichettati durante la risoluzione di un problema per affrontarne uno differente ma in qualche modo correlato. Un semplice esempio per focalizzare questo concetto potrebbe essere costituito da un algoritmo per sistemi di guida autonoma, capace di riconoscere i pedoni e i veicoli che un’automobile potrebbe incontrare lungo il proprio percorso di navigazione. Grazie al transfer learning, tali conoscenze potrebbero essere pertanto trasferite in un altro modello per riconoscere veicoli differenti, sfruttando il lavoro di training già effettuato sulle reti neurali.
Il transfer learning viene utilizzato spesso nelle tecnologie AI per i chatbot, soprattutto quando si prevede di utilizzare domini simili nel corso di successive distribuzioni del software. Il transfer learning può rivelarsi infatti molto utile per classificare le conoscenze e i dati da riutilizzare nel corso delle successive evoluzioni del chatbot, automatizzando un’ampia serie di procedure legate la training di tali funzionalità.