Nella presente lezione descriveremo il primo, dal punto di vista storico, modello computazionale del neurone biologico:
proposto in A logical calculus of the ideas immanent in nervous activity, 1943
Prima di descrivere tale modello cerchiamo di capire, sulla base della lezione precedente, quali sono le caratteristiche strutturali e funzionali del neurone biologico che portano alla “costruzione” del modello computazionale.
Nelle prossime slide faremo, allora, vedere come:
Da un punto di vista computazionale, un singolo neurone può essere così schematizzato:
Inoltre …
A partire dalle precedenti considerazione possiamo descrivere il modello di McCulloche & Pitts nel seguente modo (vedi figura).
Un neurone è visto come una unità di computazione elementare costituita da:
L’unita di calcolo compie le seguenti operazioni:
In definitiva, il valore di output dell’unità di calcolo può essere così formalizzato:
con
Quindi il neurone artificiale avrà un valore di output pari a 1 quando la somma pesata dei suoi input supera una certa soglia T, altrimenti il suo output sarà pari a 0.
McCulloch e Pitts, nel 1943, mostrarono come dei semplici neuroni formali potessero essere combinati per calcolare le tre operazioni logiche elementari:
Ciascuna operazione logica può essere realizzata scegliendo opportunamente
il numero di linee di ingresso;
i valori dei pesi associati alle linee di ingresso;
il valore della soglia e…
… supponendo che un valore di ingresso pari a 1 codifichi il valore logico TRUE, mentre il valore di ingresso pari a 0 codifichi il valore logico FALSE.
Vediamo come possiamo fare …
Ecco una possibile scelta dei valori dei pesi e della soglia per realizzare un OR logico:
In questo caso se i valori di input sono, ad esempio, e
otteniamo:
Come esercizio provare per gli altri possibili valori di input cosa succede, cioè per:
Ecco una possibile scelta dei valori dei pesi e della soglia per realizzare un AND logico:
In questo caso se i valori di input sono, ad esempio, e
otteniamo:
Come esercizio provare per gli altri possibili valori di input cosa succede, cioè per:
Ecco una possibile scelta dei valori dei pesi e della soglia per realizzare un NOT logico:
In questo caso se il valori di input è otteniamo:
Mentre se il valore di input è otteniamo:
Nelle precedenti slide abbiamo visto come ottenere le funzioni logiche OR, AND e NOT scegliendo opportunamente il numero di linee di ingresso, i pesi e la soglia del neurone artificiale di McCulloch & Pitts. Facciamo allora una serie di considerazione o precisazioni:
Due domande possono subito essere poste:
Per ora tali domande saranno lasciate in sospeso, per essere ripresa più avanti nel corso, ma è utile subito sottolineare che l’intero corso “ruoterà” proprio intorno a tali problematiche.
Vediamo ora come è possibile “simulare” in C il modello di McCulloch & Pitts. A tale scopo è necessario:
Ecco un esempio in C delle possibile strutture dati che possono essere utilizzate:
Mostra codiceEcco un esempio in C delle principali funzioni dati che possono essere utilizzate:
struct node *newNode(int numInConn, float Th);
void setWeightConn(struct node *n, int pos, float w);
void setInputConn(struct node *n, int pos, float in);
void computeInput(struct node *n);
void computeOutput(struct node *n);
Una possibile implentazione in C delle funzioni per fissare i parametri del neurone artificiale di McCulloch & Pitts:
Mostra codiceUna possibile implentazione in C delle funzioni per calcolare l’input e l’output del neurone artificiale di McCulloch & Pitts:
void computeInput(struct node *n) {
int i;
n->input=0;
for (i=0;inumInConn;++i)
n->input +=n->inConn[i].input*n->inConn[i].weight;
}
void computeOutput(struct node *n) {
if (n->input > n->T) n->output=SPIKE; else n->output=NOSPIKE;
}
Una possibile programma in C per simulare il comportamento del neurone artificiale di McCulloch & Pitts, sulla base delle strutture dati e funzioni precedentemente definite:
Mostra codiceAbbiamo descritto un possibile programma in C per simulare un neurone artificiale di McCulloch & Pitts. Naturalmente è possibile fare di meglio. Ad esempio:
Allora al termine di questa lezione, si propone di scrivere il proprio simulatore di neuroni artificiali di McCulloch & Pitts, con le caratteristiche sopra riportate!
1. Informazioni generali sul corso
3. Un modello computazionale del neurone biologico
4. Possibili problemi risolvibili con Reti Neurali
5. Problemi di Classificazione ed approccio probabilistico
7. Capacità rappresentativa delle reti neurali - parte prima
8. Capacità rappresentativa delle reti neurali - Parte seconda
9. Apprendimento e generalizzazione
10. Discesa del gradiente e backpropagation
11. Back-Propagation
13. Interpretazione output di una rete neural feed-forward
14. Complessità della rete, generalizzazione e termini di regolari...
15. Cross-entropy e variazioni sulla discesa del gradiente
16. Verso le reti neurali RBF: interpolazione esatta.
17. Reti neurali RBF
18. Addestramento di una rete RBF
19. Parametri delle funzioni a base radiale
20. Un primo modello di reti neurali ricorrenti: formalismo di Caia...