Alleantia - NewsRoom

Alleantia_logo

Reti Neurali Artificiali, tipologie e applicazioni

May 11, 2021 10:15:56 AM / by Alleantia Guru

reti_neuraliIl Deep Learning, che si basa sull’uso delle reti neurali artificiali, può essere applicato su tipi molto diversi di informazioni, che richiamano l’utilizzo di particolari reti meglio adatte al raggiungimento di specifici obiettivi.

Le Reti Neurali Artificiali (ANN), su cui si basa il Deep Learning, sono modelli computazionali che imitano il funzionamento dei neuroni biologici. Andiamo ad analizzarle più nello specifico!

La struttura

Una rete neurale è costituita da nodi (i neuroni artificiali), singole unità di elaborazione che funzionano in parallelo, organizzati in strati o layer: un input layer, più hidden layer e un output layer. I nodi “pesano“ i dati in input categorizzandone gli aspetti, e collegandosi ad altri nodi li trasferiscono al successivo strato finchè non si ottiene l’output.

Il peso è la forza delle connessione tra nodi e rappresenta l’influenza, positiva o negativa, di ogni input sulla specifica caratteristica che deve essere identificata.

Ogni nodo di elaborazione possiede una propria “bolla” di conoscenza, costituita da quando ha già appreso in esperienze precedenti e da regole programmate originariamente o definite autonomamente dal nodo stesso.

L’input layer comunica con l’ambiente esterno, e non ricevendo dati da strati precedenti è generalmente costituito da neuroni passivi, mentre è negli hidden layers che si sviluppa il “thinking”.

Per definire le regole e decidere cosa passare allo strato successivo, le ANN seguono principi differenti secondo veri algoritmi, per esempio metodo del gradiente, logica fuzzy, inferenza bayesiana, e altro ancora. Semplificando, un hidden layer è un insieme di neuroni con specifica funzione di attivazione, il cui compito è elaborare gli input da layer precedenti, per estrarre specifiche caratteristiche. Il numero di questi layer dipende dalla complessità del problema da risolvere, ma va calibrato in quanto non vale come regola che più sono i livelli nascosti, maggiore l’accuratezza dei risultati.

Infine l’output layer, che raccoglie e trasmette le informazioni secondo le previste modalità, con un numero di nodi che dipende dal tipo di ANN.

Reti neurali e hidden layers

Le reti neurali possono essere caratterizzate dal numero degli hidden layer o anche dal numero dei nodi, e si parla di Deep Neural Network (DNN) solo se vi sono due o più strati nascosti. I layer sono tra loro indipendenti, e possono avere un numero arbitrario di nodi, anche se tipicamente il numero dei nodi hidden deve essere superiore a quello dei nodi di input.

Considerando specifiche caratteristiche funzionali si possono individuare: le Multilayer Perceptrons (MLP), il tipo più classico; le Spiking Neural Network (SNN, presentate sulla rivista nel giugno dello scorso anno), i cui nodi si attivano solo quando è stata raggiunta una certa soglia; le Convolution Neural Network (CNN), usate soprattutto per riconoscimento di immagini; le RNN, Recurrent Neural Network, concepite per problematiche in cui vi sono riferimenti temporali, per esempio riconoscimento del parlato, più in generale Natural Language Processing.

Da evidenziare che è possibile organizzare più ANN in stack creando delle architetture ibride, con una prima che alimenta una successiva anche di tipo diverso, e da questa eventualmente un’altra ancora, per ottenere più elevati livelli di performance.

Esempio reti neurali

Per esempio una CNN o una RNN non sempre sono usate da sole e una possibile architettura prevede uno stack con una CNN come input, una LSTM (Long Short-Term Memory, particolare versione di RNN) nel mezzo, e una MLP come output, da cui una CNN LSTM architecture.

Il termine “perceptron”, traducibile come percettrone, risale alla fine degli anni ’50, quando alla Cornell University venne sviluppato un algoritmo, il perceptron appunto, per riconoscimento di oggetti nelle immagini da parte delle macchine.

Un Perceptron è, in quanto tale, un classificatore binario, da considerarsi come il tipo più semplice di Feedforward Neural Network (FNN), ad alimentazione in avanti, quindi reti in cui i dati fluiscono attraverso i nodi in una sola direzione, senza loop o backflow.

Le FNN rappresentano la base per strutture più articolate, sono usate per classificazioni generali di dataset, e spesso se ne fa un layering con altre ANN.

A livello terminologico può esserci una certa confusione in quanto con MLP a volte ci si riferisce a qualsiasi FNN e a volte solo a reti composte da layer multipli di Perceptron.

Nel dettaglio un Multilayer Perceptron prevede almeno tre livelli di nodi: un input layer, un hidden layer e un output layer.

Ogni nodo, a parte quelli di input, utilizza una funzione di attivazione non lineare, che definisce l’output di quel nodo in base a un input o un set di input, dove per non linearità si intende, come accezione generale, che il cambiamento di un output non è proporzionale a quello dell’input.

Per il training della rete si fa uso di una tecnica di learning supervisionata e denominata backpropagation o retropropagazione dell'errore, algoritmo che risale al 1970 ma di cui solo recentemente se ne è valutato il valore.

Si ricorda che nel Supervised Learning è compito del progettista fornire all’algoritmo degli “esempi”, ciascuno costituito da una serie di valori di input e accompagnato da un’etichetta (label) contenete il risultato o un giudizio di valore, quindi dati “labeled”, con l’algoritmo che li elabora apprendendo dagli esempi per individuare una funzione predittiva o una regola generale; detto diversamente, gli algoritmi sono addestrati con esempi già classificati, cioè con input di cui già si conoscono gli output (i risultati).

Tra gli utilizzi delle MLP, predizioni di classificazione e di regressione, quest’ultima usata per forecasting e per individuare relazioni di effetto causale tra variabili.

Tags: Industry 4.0

Alleantia Guru

Written by Alleantia Guru