Una rete neurale (detta anche rete neurale artificiale o ANN) è un sistema adattivo che apprende utilizzando nodi interconnessi o neuroni in una struttura a strati simile al cervello umano. Una rete neurale è in grado di apprendere dai dati, per cui può essere addestrata per riconoscere pattern, classificare dati e prevedere eventi futuri. Una rete neurale scompone l’input in layer di astrazione. Può essere addestrata usando molti esempi per riconoscere dei pattern nel parlato o nelle immagini, proprio come fa il cervello umano. Il comportamento di una rete neurale è definito dal modo in cui i singoli elementi sono collegati tra loro e dalla forza, o pesi, di tali collegamenti. Tali pesi vengono automaticamente regolati in fase di addestramento in base a una regola specifica di apprendimento fino a quando la rete neurale artificiale non svolge l’attività desiderata nel modo corretto.
A cosa servono le reti neurali?
Le reti neurali sono un tipo di approccio di Machine Learning ispirato a come i neuroni si scambiano segnali nel cervello umano. Le reti neurali sono particolarmente adatte alla modellazione di relazioni non lineari e di solito vengono utilizzate per eseguire il pattern recognition e classificare oggetti o segnali in sistemi di controllo, visione e vocali.
Le reti neurali, nello specifico quelle profonde, si sono fatte notare per la loro efficacia nelle applicazioni di identificazione complesse come il riconoscimento facciale, la traduzione di testi e il riconoscimento vocale. Tali approcci rappresentano una tecnologia fondamentale che porta innovazione alle attività e ai sistemi avanzati di assistenza alla guida, tra cui la classificazione delle corsie e il riconoscimento della segnaletica stradale.
Esempi di reti neurali
Ecco alcuni esempi di come vengono usate le reti neurali nelle applicazioni di Machine Learning:
- Segmentazione semantica di immagini e video
- Rilevamento di oggetti nelle immagini, tra cui pedoni e ciclisti
- Addestramento di un robot bipede a camminare utilizzando il Reinforcement Learning
- Rilevamento del cancro guidando i patologi nella classificazione dei tumori
- Approssimazione di soluzioni su equazioni differenziali
- E molto altro ancora
Come funzionano le reti neurali?
Ispirate al sistema nervoso biologico, le reti neurali combinano svariati layer di elaborazione usando elementi semplici che operano in parallelo. La rete è costituita da un layer di input, uno o più layer nascosti e un layer di output. In ciascun layer ci sono svariati nodi, o neuroni, e i nodi di ogni layer usano gli output di tutti i nodi del layer precedente come input, in modo tale che tutti i neuroni siano interconnessi attraverso i diversi layer. Ogni neurone in genere è assegnato a un peso, che viene regolato durante il processo di apprendimento. Un aumento o una riduzione del peso modifica la potenza del segnale di quel neurone.
Tipica architettura di una rete neurale.
Come gli altri algoritmi di Machine Learning, le reti neurali possono essere usate per le attività di classificazione o regressione. I parametri dei modelli vengono impostati tramite la ponderazione della rete neurale con l’apprendimento sui dati di addestramento, in genere ottimizzando i pesi in modo da ridurre l’errore di previsione.
Tipi di reti neurali
La prima rete neurale, e anche la più semplice, fu introdotta da Frank Rosenblatt nel 1958 e si chiamava Perceptron. Era costituita da un unico neurone e sostanzialmente da un modello di regressione lineare con una funzione di attivazione sigmoidea. Da allora, le reti neurali si sono fatte sempre più complesse, fino ad arrivare alle reti profonde di oggi, che possono contenere centinaia di layer.
Con Deep Learning ci si riferisce a reti neurali con molti layer, mentre le reti neurali che hanno solo due o tre layer di neuroni connessi sono chiamate anche reti neurali superficiali. Il Deep Learning è sempre più utilizzato perché elimina la necessità di estrarre le feature dalle immagini, il che precedentemente complicava l’applicazione del Machine Learning all’elaborazione di segnali e immagini. Sebbene nelle applicazioni di elaborazione immagini l’estrazione delle feature possa essere omessa, una sorta di estrazione delle feature viene ancora applicata alle attività di elaborazione dei segnali per migliorare l’accuratezza del modello.
Le reti neurali usate nelle applicazioni ingegneristiche sono principalmente di tre tipi:
- Rete neurale feed-forward: costituita da un layer di input, uno o alcuni layer nascosti e un layer di output (una tipica rete neurale superficiale).
- Rete neurale convoluzionale (CNN): architettura di rete neurale profonda ampiamente utilizzata per l’elaborazione delle immagini e caratterizzata da layer convoluzionali che cambiano finestra nell’input con nodi che condividono gli stessi pesi, astraendo l’input (in genere un’immagine) su mappe di feature. È possibile utilizzare le reti CNN pre-addestrate, come SqueezeNet o GoogleNet.
- Rete neurale ricorrente (RNN): architettura di rete neurale con cicli di feedback che modellano dipendenze sequenziali nell’input, come le serie storiche e i dati testuali e di sensori; il tipo di RNN più conosciuto è la rete Long Short-Term Memory (LSTM).
Come funzionano le CNN?
Guarda questo breve video in cui vengono descritte le CNN, compresi i layer, le attivazioni e la classificazione.
Per saperne di più sul Deep Learning:
Come si crea una rete neurale con MATLAB?
Usando MATLAB® con Deep Learning Toolbox™ e Statistics and Machine Learning Toolbox™, è possibile creare reti neurali profonde e superficiali per applicazioni quali la visione artificiale e la guida autonoma.
Con appena qualche riga di codice, è possibile creare delle reti neurali in MATLAB senza essere dei grandi esperti. Si può iniziare molto rapidamente, addestrando e visualizzando dei modelli di reti neurali, per poi integrare le reti neurali nel proprio sistema esistente da distribuire su server, sistemi enterprise, cluster, cloud e dispositivi embedded.
Workflow tipico per creare sistemi con le reti neurali
Lo sviluppo delle applicazioni di IA, nello specifico quelle che includono le reti neurali, di solito prevede queste fasi:
- Preparazione dei dati
- Acquisizione di un numero sufficiente di dati di addestramento etichettati, che aumentano in caso di addestramento di reti neurali profonde; le app di etichettatura, come Image Labeler, Video Labeler e Signal Labeler, possono velocizzare questo processo.
- Uso della simulazione per generare dati di addestramento, nello specifico se non è possibile raccogliere i dati da sistemi reali (condizioni di guasto).
- Incremento dei dati per rappresentare più variabilità nei dati di addestramento.
- Modellazione dell’IA
- Addestramento interattivo di reti neurali superficiali in Classification Learner e Regression Learner in Statistics and Machine Learning Toolbox, oppure uso di funzioni alla riga di comando; questa opzione è consigliata se si desidera confrontare le prestazioni delle reti neurali superficiali con altri algoritmi convenzionali di Machine Learning, come gli alberi decisionali o le SVM, o ancora se si ha a disposizione un numero limitato di dati di addestramento etichettati.
- Determinazione e addestramento di reti neurali (superficiali o profonde) in modo interattivo con Deep Network Designer o le funzioni alla riga di comando di Deep Learning Toolbox, il che è particolarmente adatto per le reti neurali profonde o se si ha bisogno di una maggiore flessibilità nella personalizzazione dell’architettura della rete e dei solutori.
- Simulazione e test
- Integrazione delle reti neurali nei modelli Simulink® sotto forma di blocchi, il che può facilitare l’integrazione con un sistema più grande, i test e la distribuzione su più tipi di hardware.
- Distribuzione
- Generazione di codice C/C++ dalle reti neurali superficiali addestrate in Statistics and Machine Learning Toolbox per la distribuzione su hardware embedded e sistemi computazionali ad alte prestazioni.
- Generazione di codice CUDA® e C/C++ da reti neurali addestrate in Deep Learning Toolbox per l’inferenza ad alta velocità su GPU e altri tipi di hardware industriali (ARM, FPGA).
Argomenti correlati
Scopri argomenti simili comunemente utilizzati con i prodotti MATLAB e Simulink.
Seleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: .
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)