Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D La Corte in Rete
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Roberto Prevete » 20.Un primo modello di reti neurali ricorrenti: formalismo di Caianiello


Introduzione

Nella presente lezione introdurremmo un primo modello di rete neurale ricorrente:

  • Reti Neurali ricorrenti nel formalismo di Caianello.
  • Legge di Hebb.

Formalismo di Caianiello

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.

Formalismo di Caianiello (segue)

Le nuove idee sono le seguenti:

Introduzione del tempo. Si suppone, cioè:

  • il tempo come entità discreta, multiplo intero di una unità elementare τ: t=nτ. Si suppone, cioè, che l’attività dei nodi è sincrona rispetto ad un segnale cadenzato con periodo τ.
  • Il valore di uscita di tutti i neuroni al tempo t è calcolato in base al valore di uscita di tutti i neuroni ai tempi t-τ t-2τ t-Dτ (aggiornamento sincrono).

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.

Formalismo di Caianiello (segue)

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.

Formalismo di Caianiello (segue)

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:

  • xh(t)= ∑k,l whkl yk(t-l) con k=1,2, …,N e l=1,2, …,D.
  • yh(t)=Θ(xh(t) – Th)

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

Formalismo di Caianiello (segue)

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

Output dei nodi nei primi 3 tempi

Output dei nodi nei primi 3 tempi


Formalismo di Caianiello (segue)

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:

  • Un sottoinsieme di nodi di input, diciamo i primi M nodi,
  • un sottoinsieme di nodi interni o hidden, diciamo i secondi H nodi, e
  • un sottoinsiemi di nodi di output, diciamo gli ultimi K nodi
    (ovviamente M+H+K=N).

Formalismo di Caianiello (segue)

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).

Formalismo di Caianiello: legge di Hebb

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 ?

Formalismo di Caianiello: legge di Hebb (segue)

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.

Formalismo di Caianiello: legge di Hebb (segue)

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).

Formalismo di Caianiello: legge di Hebb (segue)

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.

Formalismo di Caianiello: legge di Hebb (segue)

Facciamo un esempio: aggiornamento senza regola di Hebb.

Facciamo un esempio: aggiornamento senza regola di Hebb.


Formalismo di Caianiello: legge di Hebb (segue)

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.

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.


Formalismo di Caianiello: legge di Hebb (segue)

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)

Formalismo di Caianiello: legge di Hebb (segue)

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

Formalismo di Caianiello: legge di Hebb (segue)

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)]

Formalismo di Caianiello: legge di Hebb (segue)

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+δ

Formalismo di Caianiello: legge di Hebb (segue)

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

Formalismo di Caianiello: legge di Hebb (segue)

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);

Prossima lezione

Nella prossima lezione vedremo:

Un modello di rete ricorrente un po’ più complesso, conosciuto come:

  • Reti Neurali Ricorrenti a Tempo Continuo (CTRNN)
  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93