Reti neuronali artificiali dinamiche I campioni: sequenze di vettori X=(x(n),n=1 N) Segnali temporali (audio, radar, ecc.), Segnali immagine (fisse o in movimento-video) I campioni di un stessa classe hanno generalmente lunghezze diverse Apprendimento: i campioni devono essere estratti dal segnale Il riconoscimento può non richiedere la estrazione preliminare
x2x2 r(t) x(t) t=10 t=0 TrTr TxTx x1x1 D(r,x) = |r(t)-x(t)|dt Tr= r( (t)), (t) e’ una distorsione temporale, G r (x) = min [ D(x,Tr); T C] C l’insieme delle dist. (t) - distanza senza distorsione Distanza con distorsione
t x(t),r(t) x r r(t) x(t)
1 i N t (x) Mj1Mj1 (r) Esempio di distorsione (t) calcolabili con la PD (DTW) Distorsioni possibili
t x(t) Distanza fra il campione x(t) e il prototipo r(t). T è l’ insieme dei ritardi 0 e delle distorsioni G r (x) = min [ |x( )-Tr( )| d ; T C] - x(t) t r(t) 00
t x(t) Riconoscimento senza segmentazione h r (x,t) = inf [ ( -t)|x( )-Tr( )| d ; T C] filtro adattato generalizzato - x(t) h r (x,t) r(t) x(t) t d(t) S h r (x,(t)) t u[S-h r (v,t)]inf(.) d(t) segnalazione di riconoscimento
x1x1 x2x2 X(1) X(2) X(n+1) X(n) X(N) x1x1 x2x2 X(1),1 X(2),2 X(n+1),n+1 X(n),n X(N),N n Fig. 18 Traiettorie di un campione temporale nello spazio delle caratteristiche (a) e nello spazio-tempo (b) 1 2 n n+1 N a) b)
x(n) x(n-1)x(n-2) x(n-3) y(n) T T T x(n-4) x(n-5) T T RETE A RITARDO TEMPORALE, “TDNN” RNA MLP, SOM
x(n) x(n-1)x(n-2) y(n-1) y(n+1) T T y(n) T T RETE RICORRENTE RNA MLP, SOM
1 j P wjwj x(n) RETE SPAZIO-TEMPORALE (cascata di neuroni risonanti ) neuroni con autoanelli ed interagenti y(n) segnale di abilitazione segnale di riconoscimento
PT pT wpwp yjnyjn wPwP sjnsjn w0w0 xinxin + s j n ) s j n = h w ji h x i n-h =w ji n x i n Nodo con connessione sinaptica dinamica Connessione dinamica (FIR) j x(n) x(n-1)x(n-2) x(n-3) w0w0 w2w2 w3w3 w1w1 z -1 + w4w4 1 x. (n)=[x. (n),...,x. (n-P),1)] T ; w T =[w 0,...,w P+1 ] s j (n) = h w ji.x. (n-h) = w j. x j (n) w ji x j (n) s j (n)
v2v2 v3v3 y(n) x 1 (n) TDNN distribuita (per riconoscimento di processi non stazionari) (.) z2z2 z3z3 v1v1 z1z1 w1w1 x 3 (n)w3w3 w2w2 z -1 (.) + x 2 (n) + s(n) E tot (W,v)= 1/2 n (y*(n)-y(n)) 2
J=N -H-K JT jT wjwj wJwJ w0w0 s c (n) KT kT vkvk vKvK v0v0 s z (n) HT hT uhuh uHuH u0u0 s y (n) nodo d’ingresso nodo nascosto di convoluzione nodo nascosto nodo d’uscita (d’integrazione della classe) N.B. la rete evidenzia il nodo d’uscita di una sola classe x(n); n=0 N z (n) c (n) y (n)
c1nc1n x =( x n ; n=0 N) JT jT wjwj wJwJ w0w0 yinyin s c (n) KT kT vkvk vKvK v0v0 s q (n) HT hT uhuh uHuH u0u0 s p (n) sqnsqn Strato d’ingresso H1 strato nascosto (di convoluzione comune per tutte le classi H2 (uno per classe) HO uno per classe c3nc3n JT jT wjwj wJwJ w0w0 s c (n) KT kT vkvk vKvK v0v0 s q (n) sqnsqn c2nc2n JT jT wjwj wJwJ w0w0 s c (n) KT kT vkvk vKvK v0v0 s q (n) sqnsqn
n 0 H n N n 0 H H+K n N n 0 H n N xnxn u0u0 uHuH v0v0 vKvK znzn ynyn cNcN w0w0 wJwJ x0x0 z H+K yHyH s y (n)= h x n-h u h con h=0 H ; y n = [s y (n)] con n= H N s z (n)= k y n-k v k con k=0 K ; z n = [s z (n)] con n= H+K N s c (N)= j z n-j w j con j=0 J ; c N = [s c (N)] con J= N-H-K xNxN TDNN sviluppata nel tempo
Addestramento delle TDNN a) a epoche: segnale d’ ingresso segmentato addestramento come MLP spaziale (segnale desiderato presentato al termine dell’ epoca) b) in tempo reale: rete con ritardi solo allo strato d’ ingresso (pesi di FIR); addestramento come MLP spaziale, (segnale desiderato presentato ad ogni istante) c) in tempo reale: rete distribuita con connessioni sinaptiche temporali;addestramento a retropropagazione nel tempo
n 0 H n N n 0 H H+K n N n 0 H n N xnxn u0u0 uHuH v0v0 vKvK znzn ynyn eNeN w0w0 wJwJ x0x0 z H+K yHyH e N =d N -c N [s c (N)] = - ’[s c (N)] e N w j = [s c (N)]z N-j con j=0 J e J=N-H-K [s z (n)]= ’[s z (n)] [s c (N)] w N-n ; v k = n [s z (n-k)]y k )/(N-H-K+1) con n= H+K N e k=0 K [s y (n)]= ’[s y (n)] k [s z (n-k)]v k con k=0 K ; u h = ( n [s y (n-h)] x n )/(N-H+1) con n= H N e h=0 H xnxn x0x0 xNxN Addestramento ad epoche con retropropagazione dell’errore
v r (k) con n k n+p v j (n) rArA A HO: w rj (n+1)= w rj (n)- r (n)y i (n) con r (n)= -e r (n) ’[s r (n)]; Hl: w ji (n+1) = w ji (n)- j (n-lp)y i (n-lp) dove j (n-lp) = - ’(s j (n-lp)) r r T (n-lp) w rj con r A. con vettore gradiente in r: r (n-lp)= [ r (n-lp), r (n-l(p-1)),…, r (n)] ed l è l’ordine dello strato nascosto a partire dallo strato d’uscita Addestramento TDNN distribuita in tempo reale w jr (n) 1R r w j1 (n) w jR (n) w ji (n) y i (n) j i
x(n) x(n-1)x(n-2)x(n-3) w1w1 w2w2 w3w3 w4w4 x’(n+1) x(n+1) e(n+1) w j = e(n+1) (x(n+1-j)) + _ z -1 (.) Fig. 36 predittore non lineare per un segnale temporale addestramento in tempo reale con retropropagazione
MLP lunghezza del registro d’ ingresso: Q; campo ricettivo: L= Q+1 dimensione dello strato nascosto: M= Q+1 numero di pesi diversi: (Q+2)M Fig. 20a) RNA temporale a ritardo: TDNN completamente connessa x(n) scalare x(n) TT T T 1 i M y(n) x(n-Q) y i (n) zizi i
x(n) x(n-1)x(n-2)x(n-3) y T T T x(n-4) x(n-5) T T z1z1 z4z4 w2w2 w1w1 w3w3 dimensione di ogni campo ricettivo: P (P=3) dimensione dello strato nascosto: M= Q-P+2 numero dei pesi diversi: P+1 Fig. 20c) RNA a ritardo: TDNN convoluzionale M
x(n) x(n-1) x(n-2)x(n-3) T TT x(n-h) x(n-12) T T Fig. 20d) TDNN convoluzionale a tre strati sviluppata nel tempo (riconoscimento dei fonemi plosivi) T T N l =n. nodi dello strato l W l = lungh. finestra di conv. nello strato 1 N l +1 =N l - W l +1 y b y d y g
X(n) x 1 (n) x 16 (n) TDNN a “ritardo distribuito” per riconoscimento d’immagini
x(n) x(n-1)x(n-2) x(n-3) y(n) uscita desiderata y*(n)=d(n) T T T MLP Fig. 21 RNA ricorrenti: r(n) sono i segnali retroazionati (di contesto) r(n) r(n-1)r(n-2) T T strato d’ ingresso strato di contesto
w ij i j w jj w ji x i (n) w0w0 w2w2 w3w3 w1w1 z -1 + w4w4 1 x. (n)=[x. (n),...,x. (n-P),1)] T ; w T =[w 0,...,w P+1 ] s j (n) = h w ji.x. (n-h) = w j. x j (n) w ji x j (n) s j (n) Connessioni sinaptiche dinamiche della rete recursiva s j (n) x i (n-1) x i (n-2) x i (n-3)
n0n0 n1n1 n1n1 n0n0 n H n a) retropropagazione temporale a epoche (errore totale ed aggiornamento globale: n 0 <n<n 1 ) b) retropropagazione in tempo reale temporale troncata a n-H (errore locale ed aggiornamento istantaneo con retropropagazione) c) addestramento in tempo reale ricorrente (errore locale ed aggiornamento istantaneo recursivo) Fig. 23 Metodi di addestramento per RNA recursive
y n-1 T w xnxn v campo indotto locale: s n =v.x n +w.y n-1 uscita: y n+1 = s n ); Rete neuronale artificiale recursiva elementare ynyn
y n-1 w xnxn v ynyn w y n+1 x n+1 v w x n+2 v y n+2 w y n+3 x n+3 v w x n+1 n+2 w n+3 x n+2 v w e n =d n -y n e n+1 e n+2 ’(s n+2 ) Sviluppo temporale della rete elementare: addestramento a epoche con retropropagazione dell’errore n+1 w v ’(s n+1 ) x n-1 nn w xnxn e n-1 enen ’(s n ) n+2 w v ’(s n-1 ) v y n-1 ynyn y n+1 y n+2 Per la rete inversa : in ogni nodo (s n )= ’(s n )(en+w (s n+1 )) e in ogni connessione: v=- (s n )x n e w=- (s n )y n-1 Mentre la variazione da apportare ai pesi è la somma delle variazioni elementari
y n-1 w xnxn v ynyn w y n+1 x n+1 v w x n+2 v y n+2 w y n+3 x n+3 v w x n-1 nn xnxn e n =d n -y n ’(s n ) Sviluppo temporale della rete elementare: addestramento in tempo reale con retropropagazione troncata dell’errore n-1 ’(s n-1 ) x n-H n-H w ’(s n- H ) y n-H w v w v w v y n-1 Per la rete inversa : in ogni nodo (s n )= ’(s n )w (s n+1 ) e in ogni connessione: v=- (s n )x n e w=- (s n )y n-1 Mentre la variazione da apportare ai pesi è la somma delle variazioni elementari
+ w ij w jj j x i (n) s(n) (s) y(n) T + w ij w jj j y i (n) s(n) (s) y j (n) T + w ji w hi i s(n) (s) y 1 (n) T y k (n) Neuroni artificiali dinamici: memoria locale (a), memeoria locale e interazione fra nodi (b) a) b) w ji >> w ij w ii w kj w 1i y h (n) y 1 (n) w 1j -1< w jj <1
u 1 (n) y 1 (n+1) T T 1 2 w 12 y 2 (n+1) y 2 (n) y 1 (n) w 21 v2v2 v1v1 Rete recursiva senza memoria locale u 2 (n)
u(n) y 1 (n+2) w 12 y 2 (n+2)y 2 (n+1) y 1 (n+1) w 21 v1v1 v2v2 u(n+1) v1v1 v2v2 Sviluppo temporale della rete elementare w1w1 w2w2 y 2 (n) y 1 (n).. w 12 w 21 w 12 u 1 (n-1) v1v1 v2v2 w 21 w 12 u 2 (n-1) u 1 (n) v1v1 v2v2 u 2 (n+1) u 1 (n+1) v1v1 v2v2 u 2 (n+1)
e 1 (n+1) w 12 e 2 (n+1) e 2 (n) e 1 (n) w 21 Elemento della rete di retropropagazione e aggiornamento locale 1 (n+1) e 1 r (n)=e 1 (n)+ 2 (n+1) w 21 1 (n)= e 1 r (n) ’(s 1 (n)) v 1 (n)= 1 (n)u 1 (n) ; w 12 (n)= 1 (n+1)y 1 (n) Addestramento a epoche v 1 = n v 1 (n) w 12 = n w 12 (n) con n=1÷N 2 (n+2) 1 (n) 2 (n) 1 (n+2) 2 (n+1) ’(s j (n))
u 1 (n) y 1 (n) T T 1 2 w 12 w 11 w 22.. y 2 (n) y 2 (n-1) y 1 (n-1) w 21 v 12 v 22 v 11 v 21 u(n) 1 2 y1y1 y2y2 Nodi con interconnesione locale Rete recursiva con memoria locale u 2 (n)=1 v1v1 v2v2 w 12 w 11 w 22 w 21
u(n) y 1 (n+1) w 12 w1w1 w2w2 y 2 (n+1)y 2 (n) y 1 (n) w 21 v1v1 v2v2 u(n+1) v1v1 v2v2 Sviluppo temporale a traliccio della rete elementare w1w1 w2w2 y 2 (n-1) y 1 (n-1).. w1w1 w2w2 s 1 (n)= u(n)v 11 + v 12 + y 1 (n-1)w 1 +y 2 (n-1)w 12 s 2 (n)= u(n)v 22 + v 21 + y 1 (n-1)w 21 +y 2 (n-1)w 2 y 1 (n)= (s 1 (n)); y 2 (n)= (s 2 (n)) E(v,w,n)= ½[ (y 1 *(n)-y 1 (n)) 2 + (y 2 *(n)-y 2 (n)) 2 ] w 12 w 21 w 12 u(n-1) v1v1 v2v2 w1w1 w2w2. w 21 w 12
e 1 (n+1) w 12 w1w1 w2w2 e 2 (n+1) e 2 (n) e 1 (n) w 21 Elemento della rete di retropropagazione e aggiornamento locale w1w1 w2w2 w1w1 w2w2 1 (n+1) e 1 r (n)=e 1 (n)+ 1 (n+1) w 11 + 2 (n+1) w 21 1 (n)= e 1 r (n) ’(s 1 (n)) v 1 (n)= 1 (n)u(n) ; w 1 (n-1)= 1 (n)y 1 (n-1) 2 (n+2) 1 (n) 2 (n) 1 (n+2) 2 (n+1) ’(s j (n))
u(n) x(n) x(n+1) y(n) RNA T y(n) x(n+1) u(n) y*(n) e(n) WaWa WbWb + _ x(n) T uscita desiderata RNA recursiva canonica
u(n 0 ) x(n 0 ) y(n 0 ) x(n 0 +1) RNA u(n 0 +1) y(n 0 +1) RNA u(n 1 -2) y(n 1 -2) x(n 1 -1) RNA u(n 1 ) y(n 1 ) x(n 1 +1) RNA x(n 0 +2) x(n 1 -2) y*(n 0 ) y*(n 0 +1) y*(n 1 -2) y*(n 1 ) Svilupo della RNA recursiva canonica e sua rete inversa e j (n 0 ) h (n 0 +1) e j (n) h (n+1) e j (n 1 ) h (n) j (n 1 ) u(n 0 ), x(n 0 -1) n n0n0 n1n1 u(n), x(n-1) e j (n 0 ) e j (n 1 ) j (n) = ’(s j (n))[e j (n) + h w ahji T h (n+1)]; h (n 1 +1)=0 w aji = n j (n+1) x i (n); w bji = n j (n) u i (n); i,h= 1,…,N; n=n 0 +1,...,n 1
Rete recursiva canonica con addestramento in tempo reale con retropropagazione troncata a n-H e solo errore corrente h (n-H+1) h (l+1) e j (n) h (n-H) h(l)h(l) h (n 1 ) j (n) = ’(s j (n))e j (n) j (l) = ’(s j (l))[ h w hj (l) T h (l+1)]; e per n-H <l <n w aji (n)= l j (l) x i (1 -1); con n-H +1<l <n w bji (n)= l j (n) u i (1 -1); con n-H +1<l <n u(n-H), x(n-H-1) u(l), x(l-1) u(n), x(n-1) nn-Hl
w hj x i (n) s ch (n)) Q q w jj (q) s yj (n)) Qq N.B. la rete evidenzia un nodo per strato w jj (Q) w ji (q) w ji (Q-1) w ji (0) y j (n) c h (n) i=1÷M q=0÷Q-1 j=1÷P h=1÷C q=1÷Q Nodo con memoria locale connessione sinaptica dinamica
ynyn T w xnxn v campo indotto locale: s n =v.x n +w.y n uscita: y n+1 = s n ) errore locale: e n =d n -y n Funzione errore: E n =1/2e n 2 v= e n y n / v per cui v n+1 =v n + e n s’(s n )x n, w= e n y n / w Espressione recursiva per il calcolo di y n+1 / w: y n+1 / w= ’(s n )(y n +w y n / w) con y 0 / w =0 e n=0,1,… Per cui w n+1 =w n + e n y n / w con n=1,2,… Addestramento in tempo reale per la rete elementare (attenzione alla definizione dell’errore e n ) y n+1 T ynyn
x 1 (n) y(n) Percettrone ricorrente (si noti l’ analogia con un filtro IIR) y 1 (n)=y(n-1) y 2 (n)=y(n-2) T T w1w1 w2w2 x 2 (n) v2v2 v1v1 vettori peso: v(n)=(v 1 (n),v 2 (n)); w(n)=(w 1 (n),w 2 (n)); vettore d’ ingresso: x(n)=(x 1 (n),x 2 (n)); campo indotto locale: s(n)=v(n) T x(n)+w(n) T y(n); uscita: y(n)= [s(n)]; stato della rete: y(n)=(y(n-1),y(n-2)); Errore: e(n)= d(n)-y(n)
y(n)= [s(n)]=v(n) T x(n)+w(n) T y(n); v(n)= e(n) ’(s(n)) s(n)/ v= - (s(n))x(n) w(n)= e(n) ’(s(n)) s(n)/ w= - (s(n))[y(n)+w(n) T y(n)/ w] in cui: y(n)/ w= ’(s(n-1))[y(n-1)+w(n-1) T y(n-1)/ w] ; y(0)/ w = 0 e per i singoli pesi w i dello strato di contesto: w i (n)= (n)[y(n-i)+w 1 (n)( y(n-1)/ w i )+w 2 (n)( y(n-2)/ w i )] derivando come funzione di funzione si ha la recursione (i=1,2): y(n)/ w i = ’[s(n-1)][y(n-i) +w 1 (n-1) y(n-1)/ w i +w 2 (n-1) y(n-2)/ w i ] con y(n)/ w i = 0 con n <=2 Aggiornamento dei pesi di contesto
u 1 (n) T T w1w1 w2w2 u 2 (n) v2v2 v1v1 T Forma canonica del percettrone ricorrente per l’addestramento in tempo reale x 1 (n+1) y(n)=x(n) Attenzione! e(n)=d(n)-y(n) x 2 (n+1) x 1 (n) x 2 (n)
Si definiscono i vettori: u n =(u 1n,u 2n ); x n =(x 1n,x 2n ) Equazioni di funzionamento: 1) y n =x 1n 2) x n+1 = (s n ) 3) s n =v.u n +w.x n 4) E n = 1/2e n 2 con e n =d n -y n Aggiornamento dei pesi delle connessioni sinaptiche: v=- E n / v con E n / v = (s n )u n w=- E n / w con E n / w = (s n )(x n +w x n / w ) En/ w è calcolata recursivamente da 2) e 3): x n / w= ’(s n-1 )(x n-1 +w n-1 x n-1 / w) con x 0 / w=0 L’espressione recursiva utilizza, ovviamente, i valori al tempo n-1
u(n) x(n) x(n+1) (n) T =[x(n), u(n)] w j T =[w aj,w bj ], W =[w aj,w bj,j=1 M] x(n+1)= (W a T x(n)+W b T u(n)]= [W T (n)] y(n)=Cx(n) j w bj z -1 C z -1 y(n) Fig. 27a) Struttura canonica della rete ricorrente per addestramento in tempo reale w aj
Addestramento in tempo reale E(W,n)=1/2e(n) T e(n); e(n)=y*(n)-y(n)= y*(n)-Cx(n) dE(W,n)/dw j =[de(W,n)/dw j ] T e(n) = -e(n) T Cdx(n)/dw j aggiornamento dei pesi di contesto: w j (n)= - dE(W,n)/dw j = e(n) T Cdx(n)/dw j Si definisce la matrice: j (n) = dx(n)/dw j =dx(n)/ds(n).[ds(n)/dw j ] per cui si ha: w j (n) = e(n) T C j (n)
Calcolo della matrice delle derivate j (n) j (n) = dx(n)/dw j =dx(n)/ds(n).[ds(n)/dw j ] x (n+1) = ( ( w 1 T (n)),..., ( w j T (n)),..., ( w q T (n)) s (n+1)=W(n) T (n) = w a (n) T x (n)+ w b T U(n-1) derivando come funzione di funzione si ha la recursione: j (n)= (n-1)[W a (n-1) j (n-1)+U j (n-1)] con j (0)=0 dove: (n)= diag[ ’( w 1 T (n)),..., ’( w j T (n)),..., ’( w q T (n)] U j (n) T =[0,..., (n) T,...,0] alla j-esima riga
w4w4 w3w3 w2w2 w1w u(n) 0 Conness. con ritardo x1x1 x2x2 W1W1 W3W3 W2W2 W4W4 u(n)
w4w4 w3w3 w2w2 w1w1 y 1 (n) 1 y 2 (n) 2 3 y 3 (n) 4 y 4 (n) u(n) Fig. 28a) Esempio di rete recursiva con uscite decodificate x 1 (n) x 2 (n) x 3 (n) x 4 (n) w4w4 w3w3 w2w2 w1w u(n) Conness. con ritardo Reset=AND[ (u(n),wj>S, j=1 4 ] 0 0 x 1 (n) y 0 (n)
y*(n) n u(n) Fig. 28b) Esempio ingressi ed uscite (decodificate) di rete recursiva y*(n)=0 y(n) T = ( ),………….y*(n)= 3 y(n) T = ( ) (n) T =[x 1 (n), x 2 (n), x 3 (n), x 4 (n),u(n)] ), 1 w j T =[w aj,w j ] [6x6] x(n+1)= [W T (n)] y(n)=Ix(n)
Fig. 29a) RNST spazio-temporale: struttura (a), nodo(b) (Rete di Hecht-Nielsen) wKwK wiwi w2w2 w1w1 y 0 (n)=1 1 y 1 (n) 2 y i-1 (n) i y i (n) K y N (n) y N-1 (n) x(n) y i (n) + i s i (n) u(s i -S i ) y i-1 (n) aiai x(n) w i ) u(R i ) a) b) y i-1 (n-1)
SOM x(n) 1 a) addestramento non superivsionato di SOM b) addestramento supervisionato di TIME [x(n),y*(n)] Fig. 30) Rete SOM-TIME y K (n) y 1 (n) y j (n) TIME v j(j-1) w jh
Problemi generali per le RNA dinamiche a) le sequenze campione x(n) non hanno lunghezza predefinita (+/-20%) b) l’ addestramento si fa con le coppie [x(n),y*(n)] previa segmentazione c) funzione errore: E(W)=1/2 n j [y j *(n)-y j (n)] 2 j è un nodo d’ uscita d) Esistono solo algoritmi per l’apprendimento supervisionato Addestramento Si utilizza l’addestramento a epoche quando il segnale desiderato è applicato solo alla fine dell’epoca Si utilizza preferibilmente l’addestramento in tempo reale quando il segnale desiderato è applicato ad ogni istante
x1x1 x2x2 w1w1 w3w3 w2w2 x x x o x SOFM RNA Hopfield w2w2 x n=0 n >0 w (n) w 2 x classificatore statico classificatore dinamico Fig. 31 RNA dinamiche per il riconoscimento di campioni statici
w 3 (n) Fig. 32 Rete di Hopfield w 2 (n) w 1 (n) w 3 (0) = x 3 T ij i j w 2 (0) = x 2 w 1 (0) = x 1
y1y1 y2y2 y y (0) x o MLP DAM y x y (n+1) y x classificatore con DAM Fig. 33 Memoria ad accesso dinamico (DAM) R y(n) classificatore statico