Deep Learning

Deep Learning con MATLAB

Il deep learning è una branca dell’apprendimento automatico che utilizza molteplici layer di elaborazione non lineari per l’apprendimento di caratteristiche utili direttamente dai dati. I modelli di deep learning possono raggiungere una precisione all’avanguardia nella classificazione degli oggetti, superando talvolta le prestazioni fornite dall’uomo. L’addestramento dei modelli viene eseguito utilizzando un grande set di dati etichettati e architetture di reti neurali contenenti più layer.

Il deep learning può essere applicato a una varietà di problemi, tra cui:

  • Classificazione di immagini
  • Riconoscimento vocale
  • Elaborazione del linguaggio naturale

Addestramento di un modello di deep learning

La precisione di un modello di deep learning dipende soprattutto dalla quantità di dati utilizzata per l’addestramento del modello stesso.  I modelli più precisi possono richiedere migliaia o anche milioni di campioni, il cui addestramento può richiedere molto tempo. Una volta che un modello di deep training è stato addestrato, può essere impiegato nelle applicazioni in tempo reale, quali il rilevamento di pedoni nei sistemi avanzati di assistenza al conducente (ADAS).

Classificazione di immagini mediante l’uso di Reti neurali convoluzionali

Una rete neurale convoluzionale (CNN) è una comune architettura di deep learning. Le reti neurali sono organizzate in livelli, che consistono in un set di nodi interconnessi. Una CNN effettua la convoluzione tra le caratteristiche apprese e i dati in ingresso utilizzando i layer convoluzionali in 2D che rendono questa architettura adatta all’elaborazione di dati in 2D, come le immagini.

L’elaborazione dei dati passa attraverso una CNN addestrata per eseguire un’operazione di classificazione di immagini. A ciascuna immagine, in diverse risoluzioni, vengono applicati dei filtri e l’output di ogni immagine convolta viene utilizzato come input per il layer successivo. I filtri possono essere inizialmente caratteristiche molto semplici, come la luminosità e i bordi, per assumere forme via via più complesse con lo sviluppo dei layer.

Transfer learning

L’addestramento di una CNN richiede una grandissima quantità di dati, poiché deve apprendere milioni di pesi per un problema tipico di classificazione di immagini. Un’alternativa comune all’addestramento di una CNN da zero è l’utilizzo di un modello pre-addestrato per estrarre automaticamente le caratteristiche da un nuovo set di dati. Tale metodo, denominato transfer learning, è un modo conveniente per applicare il deep learning senza dover impiegare un grande set di dati e un tempo di addestramento molto lungo.

Comparazione tra la complessità e precisione della creazione di una CNN da zero e l’utilizzo di un modello pre-addestrato.

Accelerazione hardware con GPU

L’addestramento di un modello di deep learning può richiedere molto tempo, giorni o settimane. L’utilizzo dell’accelerazione GPU può velocizzare il processo in modo sostanziale. L’uso di una GPU riduce il tempo necessario all’addestramento di una rete e può restringere il tempo di addestramento per un problema di classificazione di immagini da alcuni giorni a poche ore.

Comandi di Neural Network Toolbox per l’addestramento della CNN da zero o l’uso di un modello pre-addestrato per il transfer learning.

Per ulteriori informazioni sull’addestramento e sull’uso di modelli di deep learning, vedere MATLAB®, Computer Vision System Toolbox™, Statistics e Machine Learning Toolbox™, nonché Neural Network Toolbox™.



Riferimenti software

Vedere anche: machine learning, rilevazione oggetti, riconoscimento oggetti, estrazione di caratteristiche, riconoscimento immagini, riconoscimento di pattern

Deep Learning con MATLAB