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

Roberto Prevete » 22.Reti neurali ricorrenti a tempo continuo


Introduzione

Nella presente lezione descriveremo un particolare tipo di reti neurali ricorrenti,
in particolare

  • CTRNN
  • DTRNN

Reti Neurali Ricorrenti a Tempo Continuo

Le reti neurali ricorrenti a tempo continuo (Continuous Time Recurrent Neural Network – CTRNN) sono reti costituite da n neuroni modellati ciascuno con una equazione differenziale del primo ordine:

dy1/dt=f1(y1,y2, ….,yn)=(1/τ1)(-y1 +∑j=1…n wij σ(yj+b1)+ Ie1 )

dy2/dt=f2(y1,y2, ….,yn)=(1/τ2)(-y2 +∑j=1…n wij σ(yj+b2)+ Ie2 )
.
.
.
dyn/dt=fn(y1,y2, ….,yn)=(1/τn)(-yn +∑j=1…n wij σ(yj+bn)+ Ien )

Reti Neurali Ricorrenti a Tempo Continuo (segue)

In ciascuna equazione differenziale:

dyi/dt=fi(y1,y2, ….,yi)=(1/τi)(-yi +∑j=1…n wij σ(yj+bj)+ Ii )

τi è lo stato (o l’attivazione) di ciascun neurone (da un punto di vista biologico rappresenta il potenziale di membrana).

yi è una costante di tempo.

wij è il peso associato alla connessione che va dal neurone j al neurone i.
Si noti che ogni nodo i riceve connessioni da tutti i nodi, compreso se stesso.

σ(x) è la classica sigmoide. Da un punto di vista biologico σ(yi) rappresenta la frequenza di sparo media (nel tempo).

Ii è un input esterno.

Reti Neurali Ricorrenti a Tempo Continuo (segue)

Si noti che:

L’ input esterno, Ii, ricevuto dall’ i-simo nodo può assumere la seguente forma:

Ii =∑ j=1…d w’ij xj(t)

In questo modo la rete neurale riceve d input x1(t), x1(t), …,xd(t), variabili nel tempo, che sono inviati a ciascuno nodo i tramite d connessioni. A ciascuna connessione è associato un peso w’ij.

Reti Neurali Ricorrenti a Tempo Continuo (segue)

Una osservazione (1).

Tale modello nasce da una semplificazione del modello di Hodgkin-Huxley descritto nella lezione precedente.

Infatti, se consideriamo l’equazione del modello di Hodgkin-Huxley per un neuone:

C(dVm/dt)= I(t) -(gl + gNa + gK )Vm+ gl El +gNaENa+ gKEK

Questa può essere riscritta come:

dVm/dt= -(1/C)(gl + gNa + gK )Vm+ (1/C)[gl El +gNaENa+ gKEK+ I(t)]

Reti Neurali Ricorrenti a Tempo Continuo (segue)

Una osservazione (2).

Ed ancora, trascurando i termini con gNa e gK, da

dVm/dt= -(1/C)(gl + gNa + gK )Vm+ (1/C)[gl El +gNaENa+ gKEK+ I(t)]

Possiamo scrivere:

dVm/dt= -(gl/C) [Vm+ (1/gl )(gl El + I(t))]

Ed ancora: dVm/dt= -(1/τ) [Vm+ (1/gl )(gl El + I(t))]

Avendo posto τ=C/gl

Reti Neurali Ricorrenti a Tempo Continuo (segue)

Una osservazione (3).

Se osserviamo, allora, l’equazione

dVm/dt= -(1/τ) [Vm+ (1/gl )(gl El + I(t))]

E la generica equazione di un nodo di una CTRNN:

dyi/dt=fi(y1,y2, ….,yn)=(1/τi)(-yi +∑j=1…n wijσ(yj+bj)+ Ii )

Si possono notare le somiglianze, considerando:

Vm come yi

Vm+ (1/gl )(gl El + I(t)) come l’input proveniente dagli altri nodi della rete e
dall’input esterno.

Reti Neurali Ricorrenti a Tempo Continuo (segue)

In forma vettoriale il sistema di equazioni che definiscono una CTRNN può essere così riscritto.

In forma vettoriale il sistema di equazioni che definiscono una CTRNN può essere così riscritto.


Reti Neurali Ricorrenti a Tempo Continuo (segue)

Oppure in un formalismo più compatto:

τdy/dt= -y + W σ(y+b) + I

Reti Neurali Ricorrenti a Tempo Continuo (segue)

Cosa ci interessa di tali reti?

Risulta importante la dinamica della rete, e in particolare:

Punti fissi

Attrattori

Biforcazioni

Prima di dare una definizione più precisa di tali concetti, affrontiamo il problema di come implementare al calcolatore il sistema di equazioni differenziali che definisce una CTRNN.

Reti Neurali Ricorrenti a Tempo Discreto (DTRNN)

Naturalmente molti sono i possibili metodici numerici per risolvere una equazione differenziale del tipo che abbiamo visto, tra i tanti mostriamo uno tra i più usati:

il metodo di Eulero.

Reti Neurali Ricorrenti a Tempo Discreto (DTRNN) (segue)

Il metodo di Eulero.

Data una equazione differenziale del tipo:

dy/dt=f(y) ……………………………………… (1)
con condizione iniziale y(0)=y0 ………… (2)

sappiamo, dal teorema di Cauchy, che sotto opportune ipotesi per la f(y) esiste, ed è unica,

la soluzione y(t) per la (1) e la (2).

Reti Neurali Ricorrenti a Tempo Discreto (DTRNN) (segue)

Il metodo di Eulero.

Scelto un intervallo di tempo DT, possiamo considerare i tempi

t0=0,

t1= t0 +DT=DT,

t2= t1 +DT= 2DT, …,

tn= tn-1+DT=nDT, …

e cercare di calcolare numericamente quali sono i valori della soluzione a tali tempi.

Reti Neurali Ricorrenti a Tempo Discreto (DTRNN) (segue)

Il metodo di Eulero.

Dallo sviluppo in serie di Taylor possiamo scrivere:

y(t1)=y(t0)+ [dy/dt]t=t0 DT + R (3)

dove R è il resto di Lagrange ed, in questo caso, risulta

R=(( t1 – t0)2/2)[d2y/dt2]t=t* con t* ∈[t0, t1].

Reti Neurali Ricorrenti a Tempo Discreto (DTRNN) (segue)

Il metodo di Eulero.

Allora y(t1) può essere approssimato con un errore conosciuto da un valore numerico y1 dato da

y1 = y(t0)+ [dy/dt]t=t0 DT (4)

ma sapendo, dalle (1) e (2), che

y(t0=0)=y0 …………. e …………. [dy/dt]t=t0 = f(y(t0))=f(y0)

si ha:

y1 = y0+ f(y0)DT

Reti Neurali Ricorrenti a Tempo Discreto (DTRNN) (segue)

Il metodo di Eulero.

Quindi supposto di conoscere l’approssimazione numerica yn-1 di y(tn-1) possiamo
ripetere lo stesso ragionamento di prima è ottenere, in generale, l’approssimazione
numerica di y(tn) come

yn = yn-1+ f(yn-1)DT (5)

Reti Neurali Ricorrenti a Tempo Discreto (DTRNN) (segue)

Il metodo di Eulero (una osservazione).

In genere per un metodo di approssimazione numerica sono importanti due proprietà:

L’accuratezza. Cioè che i valori numerici siano effettivamente vicini ai valori
reali della soluzione. Nel nostro caso è necessario minimizzare il termine di
errore dello sviluppo in serie di Taylor.

La stabilità numerica. Vogliamo che la sequenza di valori numerici
y1,y2, yk, … sia poco sensibile alle variazioni di y0.
Più formalmente: ∀ε>0 ∃δε>0 : |y0- y’0| < δε allora ∀k |yk – y’k| < ε
dove y’1, y’2, … è la sequenza di valori numerici calcolati a partire da y’0.

Reti Neurali Ricorrenti a Tempo Discreto (DTRNN) (segue)

Il metodo di Eulero.

Applicando la (5) alle equazioni differenziali della CTRNN si ottiene:

yi[n] = yi[n-1] +(DT/τi)(-yi[n-1]+∑j=1…n wij σ( yj[n-1]+bj)+ Ii)

con i=1,2, …,n (6)

Reti Neurali Ricorrenti a Tempo Discreto (DTRNN) (segue)

Osserviamo che la (6) ha una doppia interpretazione:

  • Può essere interpretata come una soluzione numerica delle CTRNN (quando DT è sufficientemente piccolo!).
  • Può essere visto come un modello a se stante di rete neurale.

Reti Neurali Ricorrenti a Tempo Discreto (DTRNN) (segue)

Nella seconda interpretazione, allora, possiamo parlare di Reti neurali ricorrenti a tempo discreto.

Osservo subito che la scelta opportuna di DT (in genere DT<2τi) fa sì che il modello di rete descritto dalla (6) abbia lo stesso comportamento di quello descritto dalle CTRNN.

Molto spesso, quindi, si preferisce studiare analiticamente un modello di rete CTRNN per
poi utilizzare i risultati ottenuti con un tipo di rete DTRNN.

Reti Neurali Ricorrenti a Tempo Discreto (DTRNN) (segue)

Vediamo, però, meglio che tipo di rete individua la (6):

  • Il tempo è discreto.
  • La sequenza di aggiornamento è sincrona.
  • La rete è pienamente connessa.
  • Le connessioni sono orientate. A ciascuna connessione da un neurone j ad un neurone i è associato un peso wij.
  • A ciascun nodo i è associato un bias bi e un valore di input esterno Ii.
  • Ciascun neurone i, al tempo n, ha un valore di input hi[n], un valore di attivazione yi[n] e un valore di output σi[n].
  • … (continua)

Reti Neurali Ricorrenti a Tempo Discreto (DTRNN) (segue)

Vediamo, però, meglio che tipo di rete individua la (6):

  • Il valore di input, al tempo n, è definito come: hi[n] = ∑j=1…n wij sj[n-1]+ Ii
    dove Ii è, in genere, un valore costante.
  • Il valore di attivazione, al tempo n, è definito come:
    yi[n] = yi[n-1] +(DT/τi)(-yi[n-1]+ hi[n]).
    In genere abbiamo τi=1 e DT<2τi.
  • Il valore di output, al tempo n, è definito come: σi[n] = s(yi[n]+bi)

Reti Neurali Ricorrenti a Tempo Discreto (DTRNN) (segue)

Alcune osservazioni.

Le reti DTRNN ricadono nella caratterizzazione generale di una rete neurale che abbiamo dato nella lezione 6.

I risultati di uno studio teorico delle CTRNN possono essere riportati facilmente alle reti DTRNN in quanto queste ultime possono essere viste come una soluzione numerica delle prime (se abbiamo accuratezza e stabilità del metodo numerico).

Questo ci permette di focalizzare l’attenzione sulle CTRNN.

Reti Neurali Ricorrenti a Tempo Discreto (DTRNN) (segue)

Prossime lezioni.

Dato che tali reti CTRNN sono definite da un insieme di equazioni differenziali ordinarie del primo ordine, il loro comportamento (e quindi quello di una DTRNN) può essere studiato nell’ambito della teoria dei sistemi dinamici.

Questo studio ci permette di capire quale può essere il comportamento di una rete se conosciamo il valore dei pesi e, viceversa, come scegliere i valori dei pesi in modo da avere particolari comportamenti.

A tale scopo, allora, nella prossima lezione faremo un richiamo di alcuni elementi di base della teoria dei sistemi dinamici.

  • 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