Addestramento reti neurali

Transfer learning, cos’è, come funziona e applicazioni



Indirizzo copiato

Ideato nel 1976, il transfer learning consiste nel riaddestramento di una rete neurale sulla quale è stato già inserito un set di dati di grandi dimensioni, solitamente allo scopo di classificare delle immagini su larga scala

Pubblicato il 30 set 2022

Marina Rita Carbone

Consulente privacy



RDA

Il transfer learning è un avanzato metodo di machine learning, nel quale un modello pre-sviluppato per svolgere una precisa attività viene riutilizzato quale punto di partenza per lo sviluppo di un modello destinato all’esecuzione di una seconda differente attività.

È prassi, infatti, che i modelli già addestrati siano utilizzati come punto di partenza specialmente nel deep learning destinato alla realtà virtuale e alle attività di elaborazione del linguaggio naturale. Ciò per una motivazione principale: lo sviluppo di modelli di rete neurale, specie se per tali ambiti, richiede il dispiego di risorse di calcolo e di tempo vastissime. Il problema viene risolto tramite il transfer learning, che permette il riutilizzo di modelli già impostati.

Cos’è il transfer learning

Nel deep learning, il transfer learning viene dunque utilizzato per riaddestrare un modello di rete neurale, allo scopo di risolvere un problema simile a quello per cui è stato progettato, mediante l’utilizzo di uno o più livelli dello stesso.

Tipicamente, si utilizza tale sistema all’interno di un contesto di apprendimento supervisionato, nel quale l’input è il medesimo ma cambia l’obiettivo da raggiungere: ad esempio, secondo una prima impostazione del modello di rete neurale sarà possibile conoscere un insieme di elementi e categorie visive, come cani e gatti, e nella seconda impostazione sarà possibile, invece, conoscere un diverso insieme, come formiche e vespe.

Il transfer learning, dunque, può essere molto utile nel caso in cui lo sviluppo del modello di rete neurale abbia portato a etichettare molti più dati rispetto al problema di iniziale interesse, e vi è una somiglianza nella struttura del nuovo problema da risolvere.

L’obiettivo, in parole semplici, è quello di sfruttare i dati della prima impostazione del modello neurale per estrarre informazioni che possono essere utili durante la fase di apprendimento del modello o per effettuare nuove previsioni in una seconda impostazione dello stesso.

Quando nasce l’apprendimento di trasferimento

transfer learning
Stevo Bozinovski

Nel 1976, gli scienziati Stevo Bozinovski e Ante Fulgosi hanno pubblicato un primo articolo nel quale si trattava esplicitamente il transfer learning nel processo di formazione delle reti neurali. All’interno dell’articolo è stato fornito un primo modello matematico e geometrico del c.d. apprendimento di trasferimento.

Nel 1981 è stato presentato un rapporto sull’applicazione del transfer learning nel processo di addestramento di una rete neurale, su un set di dati contenente immagini che rappresentavano lettere di terminali di computer. Si è dimostrato, così, anche in via sperimentale, che l’apprendimento di trasferimento fosse possibile.

Nel 1993, Lorien Pratt ha formulato, all’interno di un articolo dedicato al trasferimento nell’apprendimento automatico delle reti neurali, un algoritmo di trasferimento basato sulla c.d. discriminabilità (DBT). “In precedenza”, ha affermato Pratt all’interno dell’articolo, “abbiamo introdotto l’idea del trasferimento della rete neurale, in cui l’apprendimento su un problema target viene accelerato utilizzando i pesi ottenuti da una rete addestrata per un’attività di origine correlata. Qui, presentiamo un nuovo algoritmo. chiamato Discriminability-Based Transfer (DBT), che utilizza una misura di informazione per stimare l’utilità degli iperpiani definiti dai pesi delle fonti nella rete di destinazione e ri-scala, di conseguenza, le grandezze di peso trasferite. Diversi esperimenti dimostrano che le reti target inizializzate tramite DBT apprendono significativamente più velocemente rispetto alle reti inizializzate in modo casuale”.

transfer learning
Andrew Ng

La ricerca sul transfer learning è stata quindi applicata con successo anche nelle scienze cognitive. Andrew Ng, professore associato all’Università di Stanford, già co-fondatore e capo di Google Brain, ha affermato che il transfer learning sarà il prossimo driver del successo commerciale del machine learning dopo l’apprendimento supervisionato. L’apprendimento supervisionato consiste in una tecnica di apprendimento automatico tramite cui si mira a istruire un sistema informatico, in modo tale possa elaborare automaticamente previsioni sui valori di uscita di un sistema rispetto a un input, sulla base di una serie di esempi ideali già forniti, costituiti da coppie di input e di output. L’esempio tipico è rappresentato dall’identificazione vocale, che migliora sulla base degli audio già ascoltati, o l’identificazione della scrittura manuale, che si perfeziona sulla base delle osservazioni degli esempi sottoposti dall’utente.

Come funziona il transfer learning

Come anticipato, il transfer learning consiste nel riaddestramento di una rete neurale sulla quale è stato già inserito un set di dati di grandi dimensioni, solitamente allo scopo di classificare delle immagini su larga scala. Il modello pre-addestrato può essere riutilizzato nella sua interezza o utilizzato come base per personalizzare un altro modello di rete neurale a svolgere una determinata attività.

L’intuizione alla base del transfer learning, specialmente nell’attività di classificazione delle immagini, è che se un modello viene addestrato su un set di dati sufficientemente ampio e generale, lo stesso fungerà efficacemente da modello generico del mondo visivo; sarà quindi possibile sfruttare le generali mappe di funzionalità apprese senza dover addestrare da zero un nuovo modello di reti neurali, disperdendo risorse e tempo nel processo di addestramento della rete neurale su set di dati sufficientemente grandi da poter restituire un risultato ottimale.

Sono due i modi principali per personalizzare un modello pre-addestrato:

  1. Estrazione di funzionalità, con riutilizzo del comportamento della rete neurale per estrarre in modo efficace delle caratteristiche ulteriori dai medesimi dati di input: in questa ipotesi si utilizzano le rappresentazioni apprese da una rete neurale precedente per estrarre funzionalità significative da nuovi campioni. A tal fine, sarà sufficiente aggiungere al modello neurale un nuovo classificatore, che verrà addestrato da zero, in modo da poter riutilizzare le mappe delle caratteristiche apprese in precedenza sulla base di uno specifico set di dati. Non è necessario, infatti, addestrare nuovamente l’intero modello: la rete convoluzionale di base conterrà già tutte le caratteristiche genericamente utili per la classificazione delle immagini; ciò che occorrerà sarà aggiornare la parte relativa alla classificazione del modello.
  2. Fine-tuning, per limitare l’addestramento e l’elaborazione a un numero sensibilmente inferiore di parametri: in questa seconda ipotesi, invece, si sbloccano alcuni dei livelli superiori del modello di rete neurale base pre-addestrata, per provvedere all’addestramento ulteriore e maggiormente specifico del modello. Il fine-tuning consente, in tal modo, di “perfezionare” le rappresentazioni delle caratteristiche di livello superiore presenti nel modello base, per renderle più rilevanti e conformi all’esecuzione del nuovo compito specifico per il compito specifico. Gli strati riutilizzati sono etichettati come “read-only”, velocizzando i tempi di addestramento, diminuendo la potenza di elaborazione richiesta e incrementando l’accuratezza della rete.

In sintesi, il transfer learning, come più volte ribadito, consente di riutilizzare la maggior parte dei parametri (detti anche pesi) di una rete neurale già addestrata sulla risoluzione di un problema simile a quello che si intende risolvere, limitando la fase di addestramento soltanto a quei livelli (o layer) dedicati alla classificazione e/o alla regressione delle caratteristiche ottenute mediante i livelli precedentemente esistenti.

Alcuni modelli di rete neurale pre-addestrati sono resi disponibili anche online su siti come ImageNet o COCO, così da poter essere riutilizzati come “backbone” o “feature-extractor”.

Transfer Learning (C3W2L07)

Video: Andrew Ng, professore associato all’Università di Stanford, già co-fondatore e capo di Google Brain, spiega cos’è il transfer learning

Transfer learning con Keras

Keras è una libreria open source, sviluppata da François Chollet per l’apprendimento automatico e le reti neurali, scritta in linguaggio Python. È stata progettata per permettere di prototipare, con maggiore semplicità, le reti neurali profonde.

Keras ricopre un ruolo importante anche nel transfer learning, in quanto fornisce semplice e comodo accesso a una molteplicità di modelli di rete neurale differenti, ad alta capacità prestazionale nelle attività di riconoscimento delle immagini.

Il processo di transfer learning con Keras può riassumersi nei seguenti 5 macro-passaggi:

  1. esaminare e comprendere i dati;
  2. costruire una pipeline di input, usando Keras ImageDataGenerator;
  3. comporre il modello di rete neurale:
    • caricare il modello base pre-addestrato (e i relativi parametri, o pesi);
    • creare nuovi livelli di classificazione sopra quelli già esistenti;
  4. allenare il modello di rete neurale così elaborato;
  5. valutare il modello e la sua efficacia.
transfer learning

Applicazioni del transfer learning

Gli algoritmi di transfer learning sono utilizzati in molteplici campi correlati:

  • medicina, allo scopo di implementare l’imaging medico e la fase di diagnostica da parte dei medici. Casi d’uso di transfer learning in ambito medico mediante reti neurali convoluzionali sono: la rilevazione automatica dell’infezione da COVID-19 dalle immagini dei raggi X; la classificazione delle immagini di un intero vetrino per la diagnosi del cancro alla prostata e di altri tumori; la supervisione sanitaria e il rilevamento di malattie cardiache.
  • rilevamento delle immagini: caso tipico è il rilevamento di determinate caratteristiche all’interno delle immagini, come i bordi;
  • riconoscimento vocale: i modelli di riconoscimento vocale automatico forniscono un’applicazione molto semplice del transfer learning; utilizzati per la lingua inglese, infatti, sono stati impiegati come base per migliorare le prestazioni dei modelli di riconoscimento vocale di altre lingue.

Sono disponibili algoritmi di transfer learning anche per l’utilizzo degli edifici, la classificazione del testo, il riconoscimento delle cifre, e l’implementazione del filtro antispam.

In linea generale, il transfer learning è una delle principali metodologie tramite cui sviluppare, in tempi più rapidi e con minor dispendio di energie, modelli di deep learning sempre più accurati.

Sebbene i modelli di deep learning, infatti, permettano di risolvere problematiche che, fino a pochi anni fa, sarebbero risultate impossibili da sbrogliare, portano inevitabilmente con sé molte sfide. Gli stessi, infatti, richiedono in primo luogo enormi quantità di dati per funzionare; hanno bisogno di molto tempo e di elevate quantità di energia per essere addestrati correttamente.

Ciò dipende dal fatto che le reti neurali c.d. profonde hanno milioni di “pesi” che collegano fra loro molteplici strati di “neuroni”. Questi pesi sono applicati agli input e regolati nel corso della fase di allenamento, allo scopo di fornire un output. Questo processo, come anticipato, è molto oneroso in termini di risorse.

Ne consegue che il transfer learning rappresenta un’enorme opportunità per ottimizzare i processi di deep learning, risparmiando sia tempo che energia computazionale.

Strategie: tre diverse tipologie

Prendendo come punto di riferimento la tipologia di algoritmi di machine learning tradizionali coinvolti, è possibile identificare tre tipologie di transfer learning:

  1. Transfer learning induttivo: in questo scenario, i domini di origine e di destinazione (ossia, in modo oltremodo semplicistico, l’insieme contenente le differenti caratteristiche) sono gli stessi, ma le attività di origine e di destinazione sono diverse l’una dall’altra. Gli algoritmi, pertanto, tentano di utilizzare i bias (i pregiudizi) induttivi del dominio di origine per perfezionare l’attività di risoluzione dei problemi di destinazione. Se il dominio di origine contiene dati etichettati, può essere suddiviso in due sottocategorie: apprendimento multi-tasking o apprendimento a trasferimento sequenziale.
  2. Transfer learning non supervisionato: simile al TL induttivo, senza la sussistenza di dati etichettati all’interno dei domini di origine e di destinazione. Inoltre, sebbene i domini di origine e di destinazione siano simili, le attività da svolgersi sono differenti.
  3. Transfer learning trasduttivo: in questo terzo scenario, esistono delle somiglianze tra le attività di origine e di destinazione, ma i domini corrispondenti sono diversi. Inoltre, sono presenti molti dati etichettati nel dominio di origine, ma non sono presenti nel dominio di destinazione. Il trasferimento trasduttivo tra domini differenti è identificato come “adattamento del dominio”, mentre nel caso in cui avvenga tra lingue diverse, è identificato come “apprendimento interlinguistico”.

Articoli correlati

Articolo 1 di 3