Nella presente lezione introdurremmo un primo modello di rete neurale ricorrente:
A partire dal neurone di McCulloch & Pitts introdotto nelle prime lezioni è possibile supporre di avere una rete di neuroni realizzanti and, or e not,
allora è possibile immaginare di implementare con tale rete una qualunque operazione del calcolo proposizionale.
Le nuove idee sono le seguenti:
Introduzione del tempo. Si suppone, cioè:
Presenza di uno spike (1) ≡ TRUE. Assenza di uno spike (0) ≡ FALSE.
I segnali di ingresso di un neurone corrispondono ai valori di uscita di altri neuroni.
Rete neurale nel formalismo di Caianiello.
S≡(n1, n2, …, nN} insieme ordinato di N nodi o unità computazionali.
C≡{(h, k, l) }, un insieme di triple ciascuna delle quali definisce una connessione che va dal neurone nk, al neurone nh con ritardo l, con k=1,2, …, N; h=1,2, …,N e l=1,2, …,D.
Una funzione peso w: (h,k,l) ∈ S → whkl∈ R.
A ciascun neurone nh è associato una soglia, o Threshold, Th.
Rete neurale nel formalismo di Caianiello.
A ciascun neurone nh , cioè con h=1, 2, …N, è associato, al tempo t, un valore di input xh(t) ed un valore di uscita yh(t) così calcolati:
Lo stato (o configurazione) della rete al tempo t è dato dal vettore y(t) =[ y1(t), y2(t), ..., yN(t)]
La rete al tempo t=0 assume un valore iniziale y0=[ y10, y20, ..., yN0], cioè y(t=0)= y0
Facciamo un esempio.
Vediamo quale è il comportamento di una rete di 4 nodi con configurazione iniziale [1,1,0,0], soglia dei nodi pari a 1 e con tutti i pesi pari a zero tranne
w311=w421=w431=1.5
Osserviamo che:
Se vogliamo che una rete di N nodi possa interagire con un “ambiente esterno”, ad esempio la rete controlla un robot ricevendo delle informazioni dall’esterno tramite dei sensori (sonar, telecamera, etc..) e inviando – in risposta a tali informazioni- dei valori di output verso degli effettori (ruote, braccia, mani, etc..) opportunamente interpretati come comandi, allora possiamo supporre di segmentare l’insieme dei nodi della rete in tre sottoinsiemi:
In questo modo l’attività della rete sarà la seguente:
Il valore di output dei nodi interni e dei nodi di output sarà calcolato come visto nelle slide precedenti.
Il valore di output dei nodi di input sarà calcolato sulla base di modalità esterne alla rete. (Ovviamente i nodi di input potranno solo “inviare” connessioni verso gli altri nodi della rete, ma non riceveranno connessioni, possiamo interpretarli come delle variabili di ingresso alla rete).
Nel 1949, in The Organization of Behavior, Donald Hebb suppose che:
se un neurone A ha una connessione bottone sinaptico-membrana post-cellulare con un altro neurone B e i due neuroni sono attivi (è presente uno potenziale d’azione) nello stesso tempo allora l’efficacia della connessione tra i due neuroni aumenta.
Come introdurre tale ipotesi nel modello di rete neurale nel formalismo di Caianiello, ispirato a quello di Mc Culloch & Pitts ?
Alcune problematiche devono essere sciolte:
Cosa significa l’espressione “allo stesso tempo”?
Nel nostro modello supporremo che se un neurone è attivo al tempo t allora qualunque altro neurone attivo al tempo t’=t±D è “attivo allo stesso tempo”, dove D è il ritardo massimo.
Come si può quantificare l’incremento della connessione?
Si può supporre che esista una costante α che quantifica l’incremento del peso della connessione.
Da un punto di vista formale, allora, possiamo scrivere:
wijd(t+1)=wijd(t) + αyi(t)yj(t-d) con 1≤d≤D
Una prima cosa da dire è che di formulazione di “leggi di Hebb” ne esistono in grande quantità per diversi modelli di reti neurali.
Possiamo, perciò, parlare di “famiglia di leggi di Hebb” unite dalla seguente peculiarità:
il peso della generica connessione tra i e j varia in base ai valori di uscita di i e j
(è una legge di tipo locale).
Facciamo un esempio.
Vediamo quale è il comportamento di una rete di 4 nodi con configurazione iniziale [1,1,0,0], soglia dei nodi pari a 1 e con tutti i pesi pari a zero tranne
w311=w421=w431=1.5
Con i nodi 1 e 2 come nodi di input.
Vedremo quale è il comportamento con e senza una regola di aggiornamento dei pesi come quella di Hebb.
Facciamo un esempio: aggiornamento senza regola di Hebb. Come si vede la rete acquista un diverso comportamento a partire dal tempo t=5. Possiamo dire che impara ad associare l'attività del nodo 4 all'attività del nodo 3.
Alcune osservazioni
Una prima osservazione da fare è la seguente: l’incremento del peso di una connessione avviene indefinitamente?
In genere si può “smorzare” tale incremento o con una soglia massima, ad esempio:
wijd(t+1)=wijd(t) + αyi(t)yj(t-d) se wijd(t)< Tm
altrimenti wijd(t+1)=wijd(t),
dove Tm è un predefinito valore di soglia.
Oppure si può pensare di “modulare” l’incremento tramite una opportuna funzione, ad esempio:
wijd(t+1)=wijd(t) + αe-βwijd(t)yi(t)yj(t-d)
Alcune osservazioni
Fin qui abbiamo visto solo la possibilità di incrementare il valore del peso.
Possiamo, però, supporre di variare, facendolo diminuire, il valore del peso associato ad una connessione che va dal neurone j al neurone i con ritardo l, nei casi in cui almeno uno dei due neuroni non è attivo, cioè:
j attivo, i non attivo: variazione di un valore β<0
j non attivo, i attivo: variazione di un valore γ<0
j non attivo, i non attivo: variazione di un valore δ<0
con β<γ<δ<0
Alcune osservazioni
Formalmente, allora, possiamo scrivere:
wijd(t+1)=wijd(t)+ Δwijd(t+1)
Con
Dwijd(t+1)= ……….. α yi(t)yj(t-d) +
………………………….. β [1-yi(t)]yj(t-d) +
………………………….. γ yi(t)[1-yj(t-d)] +
………………………….. δ [1-yi(t)][1-yj(t-d)]
Alcune osservazioni
Possiamo trasformare la regola precedente in una forma più elegante facendo alcuni calcoli.
Rinominiamo yi(t) ≡y e yj(t-d) ≡x, allora abbiamo
Dwijd(t+1) = α yx + β [1-y]x + γ y[1-x] + δ [1-y][1-x)]
=α yx + βx-βyx + γ y-γ y x + δ -y δ – δ x+ δ x y
= (α-β-γ-)xy +(β-δ)x+(γ-δ)y+δ
Alcune osservazioni
Possiamo, infine, scrivere:
Dwijd(t+1)=a yi(t) yj(t-d)+b yj(t-d) +c yi(t)+d
con a>0 e b,c,d<0
Alcune osservazioni
La legge di Hebb è da applicare a tutte le connessioni?
Se limitiamo le connessioni per le quali vale la legge di Hebb, come identifichiamo tali connessioni?
Una risposta può essere quella di: “etichettare” alcuni nodi come “Hebb_out”, altri nodi come “Hebb_in” e tutti gli altri “No_Hebb”, in modo tale che solo le connessioni che partono da nodi Hebb_out per terminare in nodi Hebb_in abbiano peso variabile, cioè sono connessioni per le quali vale la legge di Hebb (possiamo chiamarle connessione Hebbiane);
Nella prossima lezione vedremo:
Un modello di rete ricorrente un po’ più complesso, conosciuto come:
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...