Neuroni Artificiali. Come sono fatti e a cosa servono.

0

2

I neuroni artificiali non sono che la fedele emulazione dei nostri neuroni biologici, sono alla base di qualsiasi rete neurale.

Prendiamo prima di tutto una visione d’insieme sul funzionamento dei neuroni biologici. Il primo elemento sono i dendriti che comunicano al neurone uno o più input elettrici provenienti da altri neuroni, gli input vengono quindi “aggregati” grazie al soma che somma ogni stimolo. Quando il soma raggiunge un certo potenziale elettrico entra in gioco l’axon che trasmette un singolo segnale di output. Il segnale può poi propagarsi ad altri neuroni ripetendo il processo. Similmente, un neurone artificiale può ricevere uno o più input, che vengono dotati di un un peso, che vengono poi elaborati in una funzione matematica che, aggregandoli, determina se lo stimolo sia sufficiente a far “accendere” il neurone e quindi passare alla funzione di output, che diventerà  il nuovo input per il prossimo neurone /strato.

Il neurone artificiale può derivare l’input dal diretto dataset che abbiamo fornito alla rete oppure, più spesso, questo sarà l’output di un altro neurone dello stesso strato (se stiamo parlando di reti semplici) o dello strato precedente (se abbiamo reti multistrato).

L’algoritmo che entra in gioco è la funzione di attivazione, questa si occupa di aggregare i vari input per determinare l’accensione del neurone. Esiste una serie di funzioni di attivazione che differiscono per complessità e output, qui presentiamo brevemente le due forme più semplici ed immediate:

  • Step Function: fissata una soglia di valore x (i.e. x=10) la funzione restituirà 0 o 1 se la somma matematica degli input si trovi al di sopra o al di sotto del valore di soglia.
  • Linear Combination: anziché gestire un valore soglia, qui alla somma pesata dei valori di input viene sottratto un valore predefinito k, anche qui avremo un risultato binario ma sarà espresso dalla positività (+b) o negatività (-b) dell’output della sottrazione.

Dalle forme più semplici, usate nella prototipazione dei primi neuroni artificiali, passiamo poi a quelle più complesse che permettono una maggiore caratterizzazione del funzionamento del neurone:

  • Uni-Polar (o Bi-Polar) Sigmoid Function
  • Hyperbolic Tangent Function
  • Radial Basis Function
  • Conic Section Function
  • Softmax function

Solo per citarne alcune. Va tenuto a mente che la rete, e quindi i pesi nelle funzioni di attivazione, sarà poi addestrata. Per quanto la scelta della funzione di attivazione sia un importante task nella realizzazione dell’architettura della rete, studi indicano marginali differenze in termini di qualità dell’output se la fase di training viene effettuata correttamente.

I pesi sono ciò che determinano l’importanza di ciascuna fonte da cui deriva l’informazione costituente l’input. Un po’ come succede nel cervello umano: diamo un peso a ciascuna informazione, come l’opinione di un politico, in base alle caratteristiche della fonte, come ad esempio il partito di appartenenza. I pesi possono influenzare positivamente o negativamente un input, sono veri e propri numeri reali e possono certamente essere calibrati manualmente, ma in reti profonde, dove troviamo centinaia o migliaia di neuroni, di norma si utilizzano specifici algoritmi che gestiscono in modo aggregato tutti i pesi in base all’output che richiediamo alla rete. Questa fase di “calibratura” prende il nome appunto di “training”.

Per la calibratura è fondamentale stabilire la distanza dell’output della funzione di attivazione e quella che dovrebbe essere l’output corretto al fine di ottenere il determinato risultato, e questo non va fatto solo a livello macro confrontando i risultati finali, ma anche a livello micro, strato per strato, neurone per neurone. La distanza tra questi valori viene di norma calcolata attraverso lo scarto quadratico medio: il quadrato della differenza matematica tra i due valori. Ciò permette di avere un valore che sarà sempre positivo e che sarà grande tanto più grande è la differenza tra i valori e viceversa.

La fase di addestramento mira a generare una funzione che gestisca i pesi in modo da mappare al meglio gli input al fine di ottenere il determinato output. Uno dei modi più comuni di addestrare i pesi dei neuroni è la “Backpropagation”. Questo metodo si fonda su una funzione di “perdita” di informazioni. Fornendo alla rete un set di input con l’output associato, ad ogni ciclo che la rete compie, questa confronta il suo output (generato dalla attuale configurazione di pesi) con l’output della soluzione che gli abbiamo fornito generando una funzione che esprime quanto questi siano lontani l’uno dall’altro. L’obiettivo del training è minimizzare la perdita di informazione e quindi far tendere la funzione differenziale a 0. Il metodo backpropagation mira a ridurre l’errore strato per strato della rete.

Il primo modello di neurone artificiale proposto in letteratura si deve a McCulloch e Pitts e risale al 1943, quindi sette anni dopo la modellizzazione teorica della macchina di Turing che ha segnato l’inizio dell’era dei computer.

 

references:

  1. http://arxiv.org/ftp/cs/papers/0308/0308031.pdf
  2. http://en.wikibooks.org/wiki/Artificial_Neural_Networks/Activation_Functions
  3. http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.300.269&rep=rep1&type=pdf
  4. Image credits: Birth Into Being – https://www.flickr.com/photos/birthintobeing/

 

Share.

About Author

Studio Business Administration ma sono appassionato di Big Data e AI. Quello che faccio: Coworking, TEDx e Wearable. Quello che sono: uno studente di Economia con il rimpianto di non essersi iscritto ad Informatica. Quello che voglio: vedere oltre.

Leave A Reply