Main Content

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

Deep Learning in MATLAB

Che cos’è il Deep Learning?

Il Deep Learning è una disciplina del Machine Learning che insegna ai computer a fare ciò che risulta naturale per gli esseri umani, ossia apprendere dall’esperienza. Il Deep Learning utilizza le reti neurali per apprendere utili rappresentazioni delle feature direttamente dai dati. Le reti neurali combinano diversi livelli di elaborazione non lineari, utilizzando elementi semplici che operano in parallelo e che sono ispirati dai sistemi nervosi biologici. I modelli di Deep Learning possono raggiungere una precisione all’avanguardia nella classificazione di oggetti, superando talvolta la performance a livello umano.

Deep Learning Toolbox™ fornisce semplici comandi di MATLAB® per la creazione e interconnessione dei livelli di una rete neurale profonda. Gli esempi e le reti preaddestrate rendono semplice l'utilizzo di MATLAB per il Deep Learning, anche se non si possiedono conoscenze sugli algoritmi avanzati di computer vision o sulle reti neurali.

Per un’introduzione concreta ai metodi pratici di Deep Learning, vedere Deep Learning Onramp. Per iniziare rapidamente con il Deep Learning, vedere Prova il Deep Learning in 10 righe di codice MATLAB.

Avvio rapido del Deep Learning utilizzando il transfer learning

Il transfer learning è ampiamente utilizzato nelle applicazioni di Deep Learning. Si può prendere una rete preaddestrata e utilizzarla come punto di partenza per l’apprendimento di una nuova attività. Il fine-tuning di una rete tramite il transfer learning è molto più rapido e semplice dell’addestramento da zero. È possibile far apprendere rapidamente alla rete una nuova attività utilizzando un numero inferiore di immagini di addestramento. Il vantaggio del transfer learning è che la rete preaddestrata ha già appreso un ampio set di feature che possono essere applicate a una vasta gamma di attività simili. Per un esempio interattivo, vedere Transfer Learning con Deep Network Designer. Per un esempio programmatico, vedere Addestramento della rete di Deep Learning per classificare nuove immagini.

Per valutare se utilizzare una rete preaddestrata o creare una nuova rete profonda, si considerino gli scenari riportati in questa tabella.

 Utilizzo di una rete preaddestrata per il transfer learningCreazione di una nuova rete profonda
Dati di addestramentoCentinaia o migliaia di dati etichettati (piccoli)Migliaia o milioni di dati etichettati
CalcoloCalcolo moderato (GPU opzionale)Calcolo intensivo (necessita della GPU per la velocità)
Tempo di addestramentoDa secondi a minutiDa giorni a settimane per problemi reali
Precisione del modelloBuono, dipendente dal modello preaddestratoElevato, ma può sovraadattare piccoli set di dati

Per scoprire una selezione di reti preaddestrate, utilizzare Deep Network Designer.

Workflow del Deep Learning

Per saperne di più sulle aree di applicazione del Deep Learning, vedere Applications.

DominioWorkflow di esempioPer saperne di più

Classificazione, regressione e elaborazione di immagini

Image data example

Utilizzare il Deep Learning per attività sui dati delle immagini.

Ad esempio, utilizzare il Deep Learning per la classificazione e la regressione di immagini.

Come iniziare a utilizzare il transfer learning

Reti neurali profonde preaddestrate

Creazione di una rete neurale semplice di Deep Learning per la classificazione

Train Convolutional Neural Network for Regression

Preprocess Images for Deep Learning

Sequenze e serie temporali

Time series data example

Utilizzare il Deep Learning per attività di sequenza e serie temporale.

Ad esempio, utilizzare il Deep Learning per la previsione della classificazione delle sequenze e delle serie temporali.

Classificazione di sequenze utilizzando il Deep Learning

Previsione delle serie temporali tramite il Deep Learning

Computer vision

Semantic segmentation data example

Utilizzare il Deep Learning per le applicazioni di computer vision.

Ad esempio, utilizzare il Deep Learning per la segmentazione semantica e il rilevamento di oggetti.

Getting Started with Semantic Segmentation Using Deep Learning (Computer Vision Toolbox)

Recognition, Object Detection, and Semantic Segmentation (Computer Vision Toolbox)

Elaborazione audio

Audio data example

Utilizzare il Deep Learning per le applicazioni di elaborazione di audio e parlato.

Ad esempio, utilizzare il Deep Learning per l’identificazione dell’oratore, il riconoscimento dei comandi vocali e il riconoscimento acustico della scena.

Audio Processing

Deep Learning for Audio Applications (Audio Toolbox)

Guida automatizzata

Automated driving data example

Utilizzare il Deep Learning per le applicazione di guida automatizzata.

Ad esempio, utilizzare il Deep Learning per il rilevamento dei veicoli e la segmentazione semantica.

Automated Driving

Train a Deep Learning Vehicle Detector

Elaborazione dei segnali

Signal processing data example

Utilizzare il Deep Learning per le applicazioni di elaborazione dei segnali.

Ad esempio, utilizzare il Deep Learning per la segmentazione delle forme d’onda, la classificazione dei segnali e la riduzione del rumore nei segnali vocali.

Signal Processing

Classify Time Series Using Wavelet Analysis and Deep Learning

Comunicazioni wireless

Wireless communications data example

Utilizzare il Deep Learning per i sistemi di comunicazione wireless.

Ad esempio, utilizzare il Deep Learning per il posizionamento, il rilevamento dello spettro, la progettazione di autoencoder e la predistorsione digitale (DPD).

Wireless Communications

Spectrum Sensing with Deep Learning to Identify 5G and LTE Signals

Three-Dimensional Indoor Positioning with 802.11az Fingerprinting and Deep Learning (WLAN Toolbox)

Apprendimento di rinforzo

Reinforcement learning data example

Addestrare gli agenti delle reti neurali profonde interagendo con un ambiente dinamico sconosciuto.

Ad esempio, utilizzare l’apprendimento di rinforzo per addestrare le politiche di implementazione di controller e algoritmi decisionali per applicazioni complesse, come l’assegnazione delle risorse, la robotica e i sistemi autonomi.

Reinforcement Learning

Finanza computazionale

Computational finance data example

Utilizzare il Deep Learning per i workflow finanziari.

Ad esempio, utilizzare il Deep Learning per applicazioni quali gli strumenti di pricing, il trading e la gestione del rischio.

Computational Finance

Compare Deep Learning Networks for Credit Default Prediction

Elaborazione lidar

Lidar processing data example

Utilizzare gli algoritmi di Deep Learning per l’elaborazione di dati di nuvole di punti lidar.

Ad esempio, utilizzare il Deep Learning per la segmentazione semantica, il rilevamento di oggetti basati su dati tridimensionali organizzati a nuvola di punti.

Lidar Processing

Aerial Lidar Semantic Segmentation Using PointNet++ Deep Learning

Lidar 3-D Object Detection Using PointPillars Deep Learning

Analisi del testo

Text analytics data example

Utilizzare gli algoritmi di Deep Learning per le applicazioni di analisi del testo.

Ad esempio, utilizzare il Deep Learning per la classificazione dei testi, la traduzione linguistica e la generazione di testi.

Text Analytics

Classify Text Data Using Deep Learning

Manutenzione predittiva

Predictive maintenance data example

Utilizzare il Deep Learning per le applicazioni di manutenzione predittiva.

Ad esempio, utilizzare il Deep Learning per il rilevamento dei guasti e la stima della vita utile residua.

Predictive Maintenance

Chemical Process Fault Detection Using Deep Learning

Applicazioni di Deep Learning

Elaborare i dati, visualizzare e addestrare le reti, monitorare gli esperimenti e quantificare le reti in modo interattivo utilizzando le applicazioni.

È possibile elaborare i dati prima dell'addestramento utilizzando le applicazioni per etichettare i dati di verità. Per ulteriori informazioni sulla scelta di un’applicazione per l’etichettatura, vedere Choose an App to Label Ground Truth Data.

NomeDescrizionePer saperne di più
Deep Network Designer

Deep Network Designer

Costruire, visualizzare, modificare e addestrare reti di Deep Learning.

Transfer Learning con Deep Network Designer

Train Network for Time Series Forecasting Using Deep Network Designer

Experiment Manager

Experiment Manager

Creare esperimenti di Deep Learning per addestrare le reti in diverse condizioni iniziali e confrontare i risultati.

Create a Deep Learning Experiment for Classification

Create a Deep Learning Experiment for Regression

Deep Network Quantizer

Deep Network Quantizer

Ridurre il fabbisogno di memoria di una rete neurale profonda quantizzando i pesi, i bias e le attivazioni dei livelli convoluzionali in tipi di dati interi scalati a 8 bit.

Quantization of Deep Neural Networks

Reinforcement Learning Designer (Reinforcement Learning Toolbox)

Reinforcement Learning Designer

Progettare, addestrare e simulare agenti di apprendimento di rinforzo.Design and Train Agent Using Reinforcement Learning Designer (Reinforcement Learning Toolbox)
Image Labeler (Computer Vision Toolbox)

Image Labeler

Etichettare i dati di verità di base in una raccolta di immagini.

Get Started with the Image Labeler (Computer Vision Toolbox)

Video Labeler (Computer Vision Toolbox)

Video Labeler

Etichettare i dati di verità di base in un video, in una sequenza di immagini o da un lettore sorgente di dati personalizzato.

Get Started with the Video Labeler (Computer Vision Toolbox)

Ground Truth Labeler (Automated Driving Toolbox)

Ground Truth Labeler

Etichettare i dati di verità di base in più video, sequenze di immagini o nuvole di punti lidar.

Get Started with Ground Truth Labelling (Automated Driving Toolbox)

Lidar Labeler (Lidar Toolbox)

Lidar Labeler

Etichettare gli oggetti in una nuvola di punti o in una sequenza di nuvole di punti. L'applicazione legge i dati delle nuvole di punti dai file PLY, PCAP, LAS, LAZ, ROS e PCD.

Get Started with the Lidar Labeler (Lidar Toolbox)

Signal Labeler (Signal Processing Toolbox)

Signal Labeler

Etichettare i segnali per l'analisi o per l'utilizzo in applicazioni di Machine Learning e Deep Learning.

Using Signal Labeler App (Signal Processing Toolbox)

Addestramento dei classificatori utilizzando le feature estratte dalle reti preaddestrate

L'estrazione di feature consente di utilizzare la potenza delle reti preaddestrate senza investire tempo e fatica nell’addestramento. L'estrazione di feature può essere il modo più veloce per utilizzare il Deep Learning. Si estraggono le feature apprese da una rete preaddestrata e le si utilizzano per addestrare un classificatore; ad esempio, una macchina a vettori di supporto (SVM richiede Statistics and Machine Learning Toolbox™). Ad esempio, se una SVM addestrata utilizzando alexnet può ottenere una precisione superiore al 90% sul set di addestramento e di convalida, il perfezionamento tramite il transfer learning potrebbe risultare inutile per l’ottenimento di una maggiore precisione. Inoltre, se il perfezionamento viene eseguito su un set di dati di piccole dimensioni, si rischia anche il sovraadattamento. Se l’SVM non riesce a raggiungere una precisione sufficiente per l’applicazione, conviene eseguire un perfezionamento atto a ottenere un'accuratezza maggiore.

Per un esempio, vedere Extract Image Features Using Pretrained Network.

Deep Learning con Big Data su CPU, GPU, in parallelo e nel cloud

L'addestramento delle reti profonde è impegnativo dal punto di vista computazionale e può richiedere molte ore; tuttavia, le reti neurali sono costituite da algoritmi intrinsecamente paralleli. È possibile utilizzare Parallel Computing Toolbox™ per sfruttare questo parallelismo eseguendo in parallelo GPU e cluster di computer ad alte prestazioni. Per saperne di più sul Deep Learning in parallelo, nel cloud o utilizzando una GPU, vedere Scale Up Deep Learning in Parallel, on GPUs, and in the Cloud.

Accelerating training in the cloud with Parallel Computing Toolbox.

I datastore in MATLAB® sono un modo conveniente per lavorare e rappresentare raccolte di dati troppo grandi per essere inserite nella memoria in una sola volta. Per saperne di più sul Deep Learning con grandi set di dati, vedere Deep Learning with Big Data.

Deep Learning utilizzando Simulink

Implementare la funzionalità di Deep Learning nei modelli di Simulink® utilizzando i blocchi della libreria di blocchi Deep Neural Networks, inclusa nella Deep Learning Toolbox™, o utilizzando il blocco Deep Learning Object Detector della libreria di blocchi Analysis & Enhancement inclusa nella Computer Vision Toolbox™.

Per ulteriori informazioni, vedere Deep Learning with Simulink.

BloccoDescrizione

Image Classifier

Classifica i dati utilizzando una rete neurale addestrata di Deep Learning

Predict

Prevede le risposte utilizzando una rete neurale addestrata di Deep Learning

Stateful Classify

Classifica i dati utilizzando una rete neurale ricorrente addestrata di Deep Learning

Stateful Predict

Prevede le risposte utilizzando una rete neurale ricorrente addestrata

Deep Learning Object Detector (Computer Vision Toolbox)

Rileva gli oggetti utilizzando un rilevatore di oggetti addestrato per il Deep Learning

Interpretabilità del Deep Learning

Le reti di Deep Learning sono spesso descritte come "scatole nere" in quanto il motivo per cui una rete prende una certa decisione non sempre è evidente. È possibile utilizzare tecniche di interpretabilità per tradurre il comportamento della rete in un output interpretabile da una persona. Questo output interpretabile può rispondere a domande sulle previsioni di una rete.

La Deep Learning Toolbox fornisce diversi metodi di visualizzazione del Deep Learning che consentono di studiare e comprendere il comportamento della rete. Ad esempio, gradCAM, occlusionSensitivity e imageLIME. Per ulteriori informazioni, vedere Deep Learning Visualization Methods.

Deep learning interpretability and visualization methods applied to an image of a dog.

Personalizzazione del Deep Learning

È possibile addestrare e personalizzare un modello di Deep Learning in vari modi. Ad esempio, è possibile costruire una rete utilizzando i livelli integrati o definendo dei livelli personalizzati. È quindi possibile addestrare la rete utilizzando la funzione di addestramento integrata trainNetwork o definire un modello di Deep Learning come una funzione e utilizzare un loop di addestramento personalizzato. Per decidere quale metodo sia meglio utilizzare, consultare la seguente tabella.

MetodoCasi d’usoPer saperne di più
Addestramento e livelli integratiAdatto alla maggior parte delle attività di Deep Learning.

Livelli personalizzatiSe Deep Learning Toolbox non fornisce il livello necessario per l’attività, è possibile creare un livello personalizzato.
Personalizzazione del loop di addestramentoSe si desidera un'ulteriore personalizzazione, è possibile costruire e addestrare la rete utilizzando un loop di addestramento personalizzato.

Per ulteriori informazioni, vedere Train Deep Learning Model in MATLAB.

Importazione ed esportazione di Deep Learning

È possibile importare reti neurali e grafici di livello da TensorFlow™ 2, TensorFlow-Keras, PyTorch® e dal formato di modello ONNX™ (Open Neural Network Exchange). È inoltre possibile esportare le reti neurali e i grafici di livello Deep Learning Toolbox su TensorFlow 2 e nel formato di modello ONNX.

Funzioni di importazione

Piattaforma esterna di Deep Learning e formato di modelloImportazione del modello come rete neuraleImportazione del modello come grafico di livello
Rete neurale TensorFlow in formato SavedModelimportTensorFlowNetworkimportTensorFlowLayers
Rete neurale TensorFlow-Keras in formato HDF5 o JSONimportKerasNetworkimportKerasLayers
Modello PyTorch tracciato in un file .ptimportNetworkFromPyTorchNon applicabile
Rete neurale in formato di modello ONNXimportONNXNetworkimportONNXLayers

Le funzioni importTensorFlowNetwork e importTensorFlowLayers sono consigliate rispetto alle funzioni importKerasNetwork e importKerasLayers. Per ulteriori informazioni, vedere .

Le funzioni importTensorFlowNetwork, importTensorFlowLayers, importNetworkFromPyTorch, importONNXNetwork e importONNXLayers creano livelli personalizzati generati automaticamente quando si importa un modello con i livelli TensorFlow, PyTorch o con gli operatori ONNX che le funzioni non possono convertire in livelli MATLAB integrati. Le funzioni salvano i livelli personalizzati generati automaticamente in un pacchetto nella cartella corrente. Per ulteriori informazioni, vedere Autogenerated Custom Layers.

Funzioni di esportazione

Esportazione della rete neurale o di un grafico di livelloPiattaforma esterna di Deep Learning e formato di modello
exportNetworkToTensorFlowModello TensorFlow 2 nel pacchetto Python®
exportONNXNetworkFormato di modello ONNX

La funzione exportNetworkToTensorFlow salva una rete neurale o un grafico di livello Deep Learning Toolbox come un modello TensorFlow in un pacchetto Python. Per ulteriori informazioni su come caricare il modello esportato e salvarlo in un formato TensorFlow standard, vedere Load Exported TensorFlow Model e Save Exported TensorFlow Model in Standard Format.

Utilizzando ONNX come un formato intermedio, è possibile interoperare con altri framework di Deep Learning che supportano l’esportazione o l’importazione del modello ONNX.

Argomenti complementari