INFORMATICODIFICA

Il neurone artificiale

Il neurone artificiale

Il neurone artificiale

In questo articolo vedremo nel dettaglio la classica struttura del neurone artificiale, dando una definizione rigorosa del suo principio di funzionamento. Porremo quindi in evidenza le limitazioni di questo modello, che rendono necessaria la considerazione di modelli più complessi.

Il neurone artificiale rappresenta la principale unità di calcolo di una rete neurale, ha un ruolo simile ad un nodo di calcolo all’interno di una rete distribuita. Nella struttura più semplice, il modello del neurone artificiale prende ispirazione dalla struttura del neurone biologico.

Il neurone biologico

Esempio di neurone biologico. Nella figura a) sono indicate le componenti di un neurone biologico. Nella figura b) è illustrata la connessione tra due neuroni biologici tramite le sinapsi.

Un neurone biologico riceve in input mediante i dendriti, dei segnali, da parte di altri neuroni, chiamati neuroni afferenti. Questi segnali sono processati/modificati passando attraverso il soma ovvero il corpo del neurone (in figura indicato con “cell body”). Sono poi, trasmessi lungo l’assone e infine tramite le diramazioni terminali assoniche raggiungono gli altri neuroni, chiamati solitamente intercalari.Il tutto continua così fino a raggiungere i neuroni motori o efferenti, ovvero i neuroni che diffonderanno impulsi di tipo motorio agli organi.

Modello matematico del neurone artificiale

Neurone artificiale, modello di McCulloch e Pitts (1943)

Similmente ad un neurone biologico, la controparte “artificiale” riceve in ingresso degli input, che indicheremo con:

x_1, ..., x_n

Associa ad ognuno degli input un peso:

w_1, ..., w_n

Possiamo vedere l’associazione input-peso come un meccanismo che permette al neurone di attribuire più importanza ad alcuni input rispetto agli altri. Quindi il neurone artificiale esegue una somma algebrica pesata dei suoi ingressi e confronta il risultato con un valore soglia chiamato Bias, il quale è indicato con il simbolo b.

\sum_{i=1}^{n}w_ix_i-b

Infine tale somma é passata in input ad una funzione di attivazione, che indicheremo con il simbolo f. Otteniamo quindi che gli output del neurone artificiale:

y(x) = f \left( \sum_{i=1}^{n}w_ix_i-b \right)

f può essere definita come la funzione segno, che semplicemente restituisce il segno del suo argomento:

f(t) = sgn(t) = \begin{cases}    1  & \text{se } t \ge 0 \\      -1 & \text{se } t \lt 0     \end{cases}

Una diversa funzione di attivazione spesso utilizzata è la funzione di Heaviside (o funzione gradino) che fornisce un’uscita contenuta nell’intervallo {0,1}.

Si verifica facilmente che con una opportuna scelta dei pesi e del valore soglia del neurone è possibile realizzare operazioni logiche come la not, and, or. Molte delle funzione logiche di base possono essere realizzate mediante connessione logica dei più neuroni artificiali.

Il neurone artificiale può essere considerato come un classificatore lineare. Un classificatore lineare è un modello statistico che permette di associare ad un oggetto con determinate caratteristiche, una specifica classe. Questa ottenuta mediante combinazione lineare delle caratteristiche dell’oggetto.

Addestramento del neurone artificiale

L’algoritmo di addestramento di un neurone è un algoritmo di tipo incrementale, in cui ad ogni iterazione é utilizzato un solo campione del dataset. Ad ogni ciclo il vettore w é aggiornato sommando al valore corrente un termine di correzione calcolato di volta in volta. Il termine di correzione é calcolato secondo una misura d’errore che definisce la distanza tra la classificazione prevista rispetto a quella ottenuta.

Il processo di apprendimento del neurone artificiale avviene tramite la modifica dei suoi pesi. L’obiettivo del processo di apprendimento è quello di trovare i pesi ottimali per il neurone, in modo da produrre l’output desiderato per un dato di input. Questo viene fatto attraverso un algoritmo di ottimizzazione che minimizza una funzione di perdita, che misura la discrepanza tra l’output del neurone e l’output desiderato. L’algoritmo di ottimizzazione aggiorna i pesi del neurone in base alla direzione e all’entità del gradiente della funzione di perdita rispetto ai pesi.

Le limitazioni del neurone artificiale

Il neurone artificiale proposto da McCulloch e Pitts rappresenta una semplificazione binaria del neurone biologico. In particolare, questo modello di neurone è limitato dalla sua natura binaria, in cui i valori di input e output sono rappresentati da 0 e 1. Questa semplificazione può rendere difficile la modellizzazione di fenomeni complessi che richiedono una rappresentazione più fine dei dati, ad esempio quando si tratta di dati continuamente variabili.

Inoltre, il modello di McCulloch e Pitts è molto semplice e rigido, e non è in grado di apprendere e adattarsi autonomamente alle variazioni dei dati di input, come invece accade nei neuroni biologici grazie alla plasticità sinaptica. Infine, il modello di McCulloch e Pitts non tiene conto della soglia di attivazione dei neuroni biologici, che può variare in base a fattori interni ed esterni, come ad esempio la stanchezza, la fame, l’umore e la temperatura.

Il modello di neurone di McCulloch e Pitts non è in grado di esprimere la funzione XOR poiché questa funzione è linearemente non separabile. In particolare, la funzione XOR richiede che il neurone sia in grado di eseguire un’operazione di “esclusione o”, cioè di generare un output alto solo quando uno e uno solo dei due input è alto. Tuttavia, il modello di neurone di McCulloch e Pitts non è in grado di rappresentare una funzione non lineare, limitando quindi la sua capacità di modellare la funzione XOR e altri problemi complessi simili.

Libri e letture consigliate per l’approfondimento

Ecco alcuni libri che potrebbero approfondire il discorso sulla storia e lo sviluppo dei modelli di neuroni artificiali:

The Hundred-Page Machine Learning Book” di Andriy Burkov: questo libro offre un’introduzione accessibile ma approfondita alle tecniche di machine learning, comprese le reti neurali, con una spiegazione dettagliata di come funzionano questi modelli e come sono stati sviluppati.

Neural Networks and Deep Learning: A Textbook” di Charu Aggarwal: questo libro fornisce una panoramica completa delle reti neurali, con un approfondimento su vari tipi di reti, tecniche di apprendimento, applicazioni e sfide attuali.

Deep Learning” di Ian Goodfellow, Yoshua Bengio, e Aaron Courville: questo libro è considerato uno dei testi più autorevoli sull’apprendimento automatico e le reti neurali, con un approccio teorico e pratico alla materia.

The Brain That Changes Itself” di Norman Doidge: questo libro esplora la plasticità cerebrale e la capacità del cervello di adattarsi e cambiare in risposta alle esperienze. Anche se non riguarda specificamente le reti neurali artificiali, il libro offre un’interessante prospettiva sui principi biologici che stanno alla base dei modelli di apprendimento automatico.