Logo Zephyrnet

Che cos'è il trasferimento di apprendimento?

Data:

Che cos'è il trasferimento di apprendimento?
Immagine di qimono su Pixabary

 

Transfer Learning è un metodo di apprendimento automatico in cui l'applicazione della conoscenza ottenuta da un modello utilizzato in un'attività può essere riutilizzata come punto fondamentale per un'altra attività.

Gli algoritmi di apprendimento automatico utilizzano i dati storici come input per fare previsioni e produrre nuovi valori di output. Sono generalmente progettati per svolgere compiti isolati. Un'attività di origine è un'attività dalla quale la conoscenza viene trasferita a un'attività di destinazione. Un compito di destinazione si verifica quando si verifica un miglioramento dell'apprendimento grazie al trasferimento di conoscenze da un compito di origine. 

Durante il trasferimento dell'apprendimento, la conoscenza sfruttata e il rapido progresso da un'attività di origine vengono utilizzati per migliorare l'apprendimento e lo sviluppo verso una nuova attività di destinazione. L'applicazione della conoscenza utilizza gli attributi e le caratteristiche dell'attività di origine, che verranno applicati e mappati sull'attività di destinazione. 

Tuttavia, se il metodo di trasferimento comporta una diminuzione delle prestazioni della nuova attività di destinazione, si parla di trasferimento negativo. Una delle maggiori sfide quando si lavora con metodi di trasferimento di apprendimento è essere in grado di fornire e garantire il trasferimento positivo tra compiti correlati, evitando il trasferimento negativo tra compiti meno correlati. 

Cosa, quando e come trasferire l'apprendimento

  1. Cosa trasferiamo? Per capire quali parti della conoscenza appresa trasferire, dobbiamo capire quali porzioni di conoscenza riflettono meglio sia la fonte che l’obiettivo. Nel complesso, migliorando le prestazioni e la precisione dell'attività target. 
  2. Quando trasferiamo? Capire quando trasferire è importante, poiché non vogliamo trasferire conoscenze che potrebbero, a loro volta, peggiorare le cose, portando a un trasferimento negativo. Il nostro obiettivo è migliorare le prestazioni del compito target, non peggiorarlo. 
  3. Come trasferiamo? Ora abbiamo un’idea migliore di cosa vogliamo trasferire e quando potremo passare a lavorare con diverse tecniche per trasferire la conoscenza in modo efficiente. Ne parleremo più approfonditamente più avanti nell'articolo. 

Prima di approfondire la metodologia alla base del transfer learning, è bene conoscere le diverse forme di transfer learning. Esamineremo tre diversi tipi di scenari di trasferimento di apprendimento, in base alle relazioni tra l'attività di origine e l'attività di destinazione. Di seguito è riportata una panoramica dei diversi tipi di apprendimento di trasferimento:

Diversi tipi di apprendimento trasferito

 
Apprendimento induttivo per trasferimento: In questo tipo di apprendimento trasferito, l'attività di origine e quella di destinazione sono le stesse, tuttavia sono ancora diverse l'una dall'altra. Il modello utilizzerà i bias induttivi dell'attività di origine per contribuire a migliorare le prestazioni dell'attività di destinazione. L'attività di origine può contenere o meno dati etichettati, portando ulteriormente al modello che utilizza l'apprendimento multitasking e l'apprendimento autodidatta. 

Apprendimento a trasferimento non supervisionato: Presumo che tu sappia cos'è l'apprendimento non supervisionato, tuttavia, in caso contrario, è quando un algoritmo è soggetto alla capacità di identificare modelli in set di dati che non sono stati etichettati o classificati. In questo caso, l'origine e la destinazione sono simili, tuttavia, l'attività è diversa, in cui entrambi i dati sono senza etichetta sia nell'origine che nella destinazione. Tecniche come la riduzione della dimensionalità e il clustering sono ben note nell'apprendimento non supervisionato. 

Apprendimento per trasferimento trasduttivo: In quest'ultimo tipo di apprendimento trasferito, le attività di origine e di destinazione condividono somiglianze, tuttavia, i domini sono diversi. Il dominio di origine contiene molti dati etichettati, mentre nel dominio di destinazione vi è un'assenza di dati etichettati, il che porta ulteriormente al modello utilizzando l'adattamento del dominio. 

Trasferimento dell'apprendimento e perfezionamento

 
La messa a punto è un passaggio facoltativo nel trasferimento dell'apprendimento ed è incorporata principalmente per migliorare le prestazioni del modello. La differenza tra Transfer learning e Fine-tuning sta tutta nel nome.

Il trasferimento dell'apprendimento si basa sull'adozione di funzionalità apprese da un compito e sul "trasferimento" della conoscenza sfruttata su un nuovo compito. L'apprendimento basato sul trasferimento viene solitamente utilizzato in attività in cui il set di dati è troppo piccolo, per addestrare da zero un modello su vasta scala. La messa a punto si basa sull'esecuzione di aggiustamenti “fini” a un processo al fine di ottenere l'output desiderato per migliorare ulteriormente le prestazioni. I parametri di un modello addestrato durante la messa a punto vengono regolati e adattati in modo preciso e specifico, mentre si cerca di convalidare il modello per ottenere i risultati desiderati.

Perché utilizzare il Transfer Learning?

 
Motivi per utilizzare l'apprendimento del trasferimento:

Non ho bisogno di molti dati – L’accesso ai dati è sempre un ostacolo a causa della loro indisponibilità. Lavorare con quantità di dati insufficienti può comportare prestazioni ridotte. È qui che l'apprendimento trasferito brilla poiché il modello di apprendimento automatico può essere creato con un piccolo set di dati di addestramento, poiché è pre-addestrato. 

Risparmiare tempo di formazione – I modelli di machine learning sono difficili da addestrare e possono richiedere molto tempo, causando inefficienza. È necessario un lungo periodo di tempo per addestrare una rete neurale profonda da zero su un compito complesso, quindi l'utilizzo di un modello preaddestrato consente di risparmiare tempo nella creazione di uno nuovo.

Trasferisci professionisti dell'apprendimento

 
Base migliore: L'utilizzo di un modello pre-addestrato nell'apprendimento basato sul trasferimento offre una base e un punto di partenza migliori, consentendoti di eseguire alcune attività senza nemmeno alcuna formazione. 

Tasso di apprendimento più elevato: Poiché il modello è già stato addestrato in precedenza su un compito simile, il modello ha un tasso di apprendimento più elevato. 

Tasso di precisione più elevato: Con una base migliore e un tasso di apprendimento più elevato, il modello funziona con prestazioni più elevate, producendo risultati più accurati. 

Quando trasferisce l'apprendimento Non compiere Lavoro?

 
L'apprendimento del trasferimento dovrebbe essere evitato quando i pesi addestrati dall'attività di origine sono diversi dall'attività di destinazione. Ad esempio, se la tua rete precedente è stata addestrata per classificare cani e gatti e la tua nuova rete sta cercando di rilevare scarpe e calzini, si verificherà un problema poiché i pesi trasferiti dall'origine all'attività di destinazione non saranno in grado di fornire il miglior risultato. Pertanto, inizializzare la rete con pesi pre-addestrati che corrispondono a output simili a quello previsto è migliore che utilizzare pesi senza correlazione.

La rimozione dei livelli da un modello pre-addestrato causerà problemi con l'architettura del modello. Se rimuovi i primi livelli, il tuo modello avrà un basso tasso di apprendimento poiché dovrà destreggiarsi tra funzionalità di basso livello. La rimozione dei livelli riduce il numero di parametri che possono essere addestrati, il che può comportare un adattamento eccessivo. Essere in grado di utilizzare la quantità corretta di strati è fondamentale per ridurre l'overfitting, tuttavia, anche questo è un processo tempestivo. 

Trasferimento dell'apprendimento Contro

 
Apprendimento di trasferimento negativo: Come accennato in precedenza, l'apprendimento di trasferimento negativo si verifica quando un metodo di apprendimento precedente ostacola il nuovo compito. Ciò si verifica solo se la fonte e l'obiettivo non sono sufficientemente simili, rendendo il primo ciclo di addestramento troppo distante. Gli algoritmi non devono sempre concordare con ciò che riteniamo simile, rendendo difficile comprendere i fondamenti e gli standard di quale tipo di formazione sia sufficiente. 

Trasferisci l'apprendimento in 6 passaggi

 
Immergiamoci in una migliore comprensione di come viene implementato il trasferimento dell'apprendimento e dei passi compiuti. Ci sono 6 passaggi generali da seguire nel trasferimento dell'apprendimento e li esamineremo ciascuno.

  1. Seleziona attività di origine: il primo passaggio consiste nel selezionare un modello pre-addestrato che contenga una grande quantità di dati, con una relazione tra i dati di input e di output con l'attività di destinazione scelta.
  2. Crea un modello base: crea un'istanza di un modello base con pesi pre-addestrati. È possibile accedere ai pesi pre-addestrati tramite architetture come Xception. Si tratta di sviluppare il tuo modello di origine, in modo che sia migliore del modello ingenuo con cui abbiamo iniziato, garantendo un certo aumento del tasso di apprendimento. 
  3. Congelare livelli: per ridurre la nuova inizializzazione dei pesi, è necessario congelare i livelli dal modello pre-addestrato. Riscatterà la conoscenza già appresa e ti eviterà di dover addestrare il modello da zero.
base_model.trainable = Falso
  1. Aggiungi nuovi livelli addestrabili: l'aggiunta di nuovi livelli addestrabili sopra il livello congelato convertirà le vecchie funzionalità in previsioni su un nuovo set di dati.
  2. Addestra i nuovi layer: il modello preaddestrato contiene già il layer di output finale. La probabilità che l'output corrente sul modello pre-addestrato e l'output desiderato dal modello siano diversi è elevata. Pertanto, devi addestrare il modello con un nuovo livello di output. Pertanto, l'aggiunta di nuovi strati densi e dello strato denso finale in corrispondenza del modello previsto migliorerà il tasso di apprendimento e produrrà i risultati desiderati. 
  3. Ottimizzazione: è possibile migliorare le prestazioni del modello mediante un'ottimizzazione, che viene eseguita sbloccando tutti o parte dei modelli di base e quindi riqualificando il modello con un tasso di apprendimento molto basso. È fondamentale utilizzare un tasso di apprendimento basso in questa fase, poiché il modello che stai addestrando è molto più grande di quanto non fosse inizialmente nel primo turno, oltre ad essere un set di dati di piccole dimensioni. Di conseguenza, si corre il rischio di un overfitting se si applicano aggiornamenti di peso elevati, pertanto è necessario ottimizzare in modo incrementale. Ricompilare il modello man mano che ne è stato modificato il comportamento, quindi addestrare nuovamente il modello, monitorando eventuali feedback di overfitting. 

Spero che questo articolo ti abbia fornito una buona introduzione e comprensione del Transfer Learning. Resta sintonizzato, il mio prossimo articolo riguarderà l'implementazione del Transfer Learning per il riconoscimento delle immagini e l'elaborazione del linguaggio naturale.

 
Nisha Aria è un Data Scientist e scrittore tecnico freelance. È particolarmente interessata a fornire consigli o tutorial sulla carriera in Data Science e conoscenze basate sulla teoria sulla Data Science. Desidera anche esplorare i diversi modi in cui l'Intelligenza Artificiale è/può avvantaggiare la longevità della vita umana. Una studentessa appassionata, che cerca di ampliare le sue conoscenze tecnologiche e capacità di scrittura, aiutando al contempo a guidare gli altri.

Fonte: https://www.kdnuggets.com/2022/01/transfer-learning.html

spot_img

L'ultima intelligenza

spot_img