Il transfer learning è un approccio di Deep Learning in cui un modello addestrato per un’attività viene utilizzato come punto di partenza per un modello che esegue un’attività simile. Aggiornare e riaddestrare una rete con il transfer learning è più facile e veloce rispetto a dover addestrare una rete partendo da zero. Il transfer learning viene utilizzato per la classificazione delle immagini, il rilevamento oggetti, il riconoscimento vocale e altre applicazioni.
Il transfer learning è un approccio di Deep Learning in cui un modello addestrato per un determinato compito viene utilizzato come punto di partenza per un modello che svolge un compito simile, rendendo il processo più rapido e semplice rispetto all'addestramento di una rete da zero.
Il transfer learning consente di addestrare modelli con meno dati etichettati, riduce i tempi di addestramento e le risorse di calcolo necessarie e permette di sfruttare architetture di modelli sviluppate dalla comunità di ricerca sul Deep Learning, come GoogLeNet, YOLO e VGG-16.
Il transfer learning è ampiamente utilizzato nella Computer Vision (riconoscimento di immagini, rilevamento di oggetti e segmentazione di immagini), nell'elaborazione del parlato e dell'audio e nelle applicazioni di analisi del testo.
Considera tre compromessi principali: velocità di predizione, dimensione del modello (occupazione di memoria) e accuratezza. Un buon approccio consiste nel provare diversi modelli per individuare quello più adatto alla propria applicazione, iniziando con modelli più semplici come GoogLeNet o VGG-16 per iterare rapidamente.
Il flusso di lavoro comprende: la selezione di un modello preaddestrato; la sostituzione dei layer finali per adattarli alle nuove classi; il congelamento opzionale dei pesi nei layer precedenti; il riaddestramento del modello con i propri dati; la generazione di predizioni e la valutazione dell'accuratezza della rete.
È possibile accedere ai modelli tramite MATLAB Deep Learning Model Hub con una singola chiamata di funzione oppure importare modelli da piattaforme esterne come TensorFlow, PyTorch o ONNX utilizzando le funzioni di importazione.
Sì. L'app Deep Network Designer consente di completare in modo interattivo l'intero flusso di lavoro del transfer learning, inclusa la selezione o l'importazione di un modello preaddestrato, la modifica dei layer e il riaddestramento, con poco o nessun codice.
Congelare i pesi nei layer precedenti impostando i relativi tassi di apprendimento a zero può accelerare notevolmente l'addestramento e prevenire l'overfitting, soprattutto quando il nuovo dataset è di dimensioni ridotte.