Seguici sui social

AI 101

Che cos'è il trasferimento di apprendimento?

mm

Che cos'è il trasferimento di apprendimento?

Quando si pratica l'apprendimento automatico, l'addestramento di un modello può richiedere molto tempo. Creare un'architettura del modello da zero, addestrare il modello e quindi modificarlo richiede un'enorme quantità di tempo e impegno. Un modo molto più efficiente per addestrare un modello di machine learning è utilizzare un'architettura già definita, potenzialmente con pesi già calcolati. Questa è l'idea principale alla base trasferire l'apprendimento, prendendo un modello già utilizzato e riutilizzandolo per un nuovo compito.

Prima di approfondire i diversi modi in cui è possibile utilizzare il transfer learning, prendiamoci un momento per capire perché il transfer learning è una tecnica così potente e utile.

Risolvere un problema di apprendimento profondo

Quando stai tentando di risolvere un problema di deep learning, come la creazione di un classificatore di immagini, devi creare un'architettura del modello e quindi addestrare il modello sui tuoi dati. L'addestramento del classificatore di modelli comporta la regolazione dei pesi della rete, un processo che può richiedere ore o addirittura giorni a seconda della complessità sia del modello che del set di dati. Il tempo di addestramento verrà ridimensionato in base alle dimensioni del set di dati e alla complessità dell'architettura del modello.

Se il modello non raggiunge il tipo di accuratezza necessaria per l'attività, sarà probabilmente necessario apportare modifiche al modello e quindi ripetere il training del modello. Ciò significa più ore di formazione fino a quando non è possibile trovare un'architettura, una durata della formazione e una partizione del set di dati ottimali. Quando si considera quante variabili devono essere allineate tra loro affinché un classificatore sia utile, ha senso che gli ingegneri di machine learning siano sempre alla ricerca di modi più semplici ed efficienti per addestrare e implementare i modelli. Per questo motivo è stata creata la tecnica del transfer learning.

Dopo aver progettato e testato un modello, se il modello si è rivelato utile, può essere salvato e riutilizzato in seguito per problemi simili.

Tipi di trasferimento dell'apprendimento

In generale, ci sono due diversi tipi di trasferimento dell'apprendimento: sviluppo di un modello da zero e utilizzo di un modello preaddestrato.

Quando sviluppi un modello da zero, dovrai creare un'architettura del modello in grado di interpretare i tuoi dati di addestramento ed estrarne i modelli. Dopo che il modello è stato addestrato per la prima volta, probabilmente dovrai apportarvi delle modifiche per ottenere le prestazioni ottimali dal modello. È quindi possibile salvare l'architettura del modello e utilizzarla come punto di partenza per un modello che verrà utilizzato in un'attività simile.

Nella seconda condizione, l'uso di un modello pre-addestrato, devi semplicemente selezionare un modello pre-addestrato da utilizzare. Molte università e gruppi di ricerca renderanno disponibili le specifiche del loro modello per uso generale. L'architettura del modello può essere scaricata insieme ai pesi.

Quando si esegue il transfer learning, è possibile utilizzare l'intera architettura e i pesi del modello per l'attività da svolgere oppure è possibile utilizzare solo determinate porzioni/livelli del modello. L'utilizzo solo di una parte del modello pre-addestrato e l'addestramento del resto del modello viene definito fine tuning.

Messa a punto di una rete

La messa a punto di una rete descrive il processo di addestramento solo di alcuni dei livelli di una rete. Se un nuovo set di dati di addestramento è molto simile al set di dati utilizzato per addestrare il modello originale, è possibile utilizzare molti degli stessi pesi.

Il numero di livelli nella rete che devono essere sbloccati e riaddestrati deve essere ridimensionato in base alle dimensioni del nuovo set di dati. Se il set di dati su cui viene eseguito il training è piccolo, è consigliabile mantenere la maggior parte dei layer così come sono e addestrare solo i pochi layer finali. Questo per evitare che la rete si sovradimensioni. In alternativa, gli strati finali della rete preaddestrata possono essere rimossi e vengono aggiunti nuovi strati, che vengono poi addestrati. Al contrario, se il set di dati è un set di dati di grandi dimensioni, potenzialmente più grande del set di dati originale, l'intera rete dovrebbe essere riaddestrata. Per utilizzare la rete come un estrattore di caratteristiche fisse, la maggior parte della rete può essere utilizzata per estrarre le funzionalità mentre solo il livello finale della rete può essere sbloccato e addestrato.

Quando si perfeziona una rete, è sufficiente ricordare che i livelli precedenti della ConvNet sono quelli che contengono le informazioni che rappresentano le caratteristiche più generiche delle immagini. Queste sono caratteristiche come bordi e colori. Al contrario, i livelli successivi di ConvNet contengono i dettagli più specifici delle singole classi contenute nel set di dati su cui il modello è stato inizialmente addestrato. Se stai addestrando un modello su un set di dati piuttosto diverso dal set di dati originale, probabilmente vorrai utilizzare i livelli iniziali del modello per estrarre le funzionalità e riaddestrare il resto del modello.

Trasferisci esempi di apprendimento

Le applicazioni più comuni del transfer learning sono probabilmente quelle che utilizzano dati immagine come input. Si tratta spesso di attività di previsione/classificazione. Il modo Reti neurali involutive interpretare i dati delle immagini si presta al riutilizzo di aspetti dei modelli, poiché gli strati convoluzionali spesso distinguono caratteristiche molto simili. Un esempio di un problema comune di apprendimento del trasferimento è l'attività ImageNet 1000, un enorme set di dati pieno di 1000 diverse classi di oggetti. Le aziende che sviluppano modelli che ottengono prestazioni elevate su questo set di dati spesso rilasciano i propri modelli con licenze che consentono ad altri di riutilizzarli. Alcuni dei modelli che sono il risultato di questo processo includono il Modello ResNet di Microsoft, il modello iniziale di Google e il Modello Oxford VGG gruppo.

Blogger e programmatore con specialità in machine Learning e Deep Learning temi. Daniel spera di aiutare gli altri a usare il potere dell'intelligenza artificiale per il bene sociale.