¼ ½ ¶ Introduzione alle Reti Neurali · ´ ¹ ” I Senigallia 13-15 Ottobre 2006 Revised: 26 settembre 2006 12h : 50min O.C. Indice 1 La natura è fonte di ispirazione per i Modelli matematici. ¼ ½ ¶ · Ad esempio: ´ ¹ ” I (ANN) I NTRODUZIONE • La teoria geometrica dei frattali • Gli algoritmi genetici • Le reti neurali artificiali 2 Cronobibliografia sulle Reti Neurali. ¼ ½ ¶ • 1942 - McCulloch e Pitts • 1949 - 1969 - Hebb, Rosenblatt, Widrow, Hoff, Minsky e Papert • 1969 - 1982 assenza di contributi rilevanti • 1982 - in poi Nuovi importanti contributi: Hopfield, Kohonen, Rumelhart, Minsky, Chua e Yang. · ´ ¹ ” I Attualmente l’interesse per le reti neurali è molto alto. I NTRODUZIONE Le reti neurali artificiali tentano di riprodurre il funzionamento delle reti neurali biologiche. 3 ¼ ½ ¶ · ´ ¹ ” Soma: è la parte centrale della cellula dove è collocato il nucleo 5µm → 1mm I NTRODUZIONE I 4 ¼ ½ ¶ · ´ ¹ ” Dendriti: costituiscono la struttura attraverso la quale il neurone acquisisce informazioni. I NTRODUZIONE I 5 ¼ ½ ¶ · ´ ¹ ” Assone: estensione del neurone; può essere lungo millimetri o metri. l’assone più lungo è il nervo sciatico che parte dalla base della colonna vertebrale e termina all’ alluce di ciascun piede. I NTRODUZIONE I 6 ¼ ½ ¶ · ´ ¹ ” L’assone è rivestito di mielina. Le cellule di Schwann producono la mielina. I NTRODUZIONE I 7 ¼ ½ ¶ · ´ ¹ ” I nodi di Ranvier interrompono il rivestimento dell’assone a intervalli regolari. Hanno importanti funzioni nella trasmissione degli impulsi lungo l’assone. I NTRODUZIONE I 8 ¼ ½ ¶ · ´ ¹ ” L’assone termina con una struttura che mediante il rilascio di neurostrasmettitori comunica con gli altri neuroni. I NTRODUZIONE I 9 ¼ k-esimo neurone dello strato i-esimo ½ ¶ · ui1 i+1 wk,n i+1 i w1,k ηi = P k wk uik uo = s(η i ) i w2,k ui2 i+1 wk,2 ´ uo i+1 wk,1 i wn,k ¹ ” I uini 1 Un neurone riceve segnali ui in ingresso, pesati mediante i valori wik delle connessioni, li somma e li elabora mediante la funzione s di attivazione. Restituisce in uscita un valore ui+1 I NTRODUZIONE b 10 ¼ Possibili funzioni di attivazione sono date da ½ y ¶ σ(x) = x (1) y x 1 1+ e−x 0 x≤a σ(x) = 1 x>a (2) · ´ ¹ ” I y x σ(x) = 1 − e−x 1 + e−x y x (4) −1 x ≤ −a σ(x) = x −a < x ≤ a 1 x>a I NTRODUZIONE (3) 11 ¼ Solitamente è vantaggioso considerare la funzione ½ y σ(x) = 1 1+ e−x ¶ · ´ x ¹ ” I si ha infatti questo semplifica l’algoritmo di backpropagation che consente di adattare la rete I NTRODUZIONE σ0 = σ(1 − σ) 12 ¼ ½ b b 1 b x1 ¶ 1 1 u31 b x1 1 b x2 1 · ´ b 1 ¹ u31 x1 ” b b b 1 1 I 1 xn b b 1 Una rete neurale feedfoward è costituita da un certo numero di neuroni disposti su strati interconnessi tra loro mediante collegamenti che trasportano segnali con diversa rilevanza. I NTRODUZIONE 1 13 ¼ k-esimo neurone del primo strato ½ ¶ · 1 wk,1 u0j uoj 1 wk,2 ´ ¹ ” 1 wk,n 1 I b I neuroni del primo strato ricevono segnali dall’esterno e li passano allo strato successivo I NTRODUZIONE 1 14 ¼ k-esimo neurone dello strato i-esimo ½ ¶ · ui1 i+1 wk,n i+1 i w1,k ηi = P k wk uik uo = s(η i ) i w2,k ui2 i+1 wk,2 ´ uo i+1 wk,1 i wn,k ¹ ” I uini b 1 I NTRODUZIONE I neuroni degli strati interni elaborano i segnali 15 ¼ k-esimo neurone dell’ultimo strato ½ ¶ · ui1 i w1,k ´ ηi = P k wk uik uo = s(η i ) i w2,k uo ui2 ¹ ” i wn,k I b 1 I neuroni dell’ultimo strato sommano i segnali ricevuti dallo strato precedente e li passano all’esterno il risultato; in altre parole la funzione di attivazione dell’ultimo strato è semplicemente l’identità. ( Ciò consente di avere in uscita un qualunque numero reale (e non soltanto un valore compreso in [0, 1]) I NTRODUZIONE uini 16 Una rete neurale feedforward è in grado di approssimare ogni funzione continua in modo molto semplice. Infatti ogni funzione continua può essere approssimata mediante una funzione a scalini. ¼ ½ ¶ · ´ ¹ ” I × × I NTRODUZIONE × 17 Una funzione a scalini può essere ottenuta come somma pesata di funzioni del tipo ¼ ½ ¶ · ´ ¹ × × ” I α a b I NTRODUZIONE × 0 x < a α a≤x≤b 0 x > b 18 ¼ ½ 1 ¶ · ´ 0 a 1 ¹ ” I a b e queste si possono ottenere come differenza di due funzioni del tipo 0 x<a 1 x≥a , 0 x<b 1 x≥b I NTRODUZIONE 0 19 ¼ ½ x 1 y= n 1 x≥a 0 x<a ¶ · ´ −a ¹ 1 ” 1 I a Ciascuna delle quali pu’o essere ottenuta come uscita di un singolo neurone. I NTRODUZIONE 0 20 ¼ La rete neurale ½ 1 1 x>a 0 x<a ¶ 1 · −a x ( y= 1 1 0 x<a 1 a≤x≤b 0 x>b ´ ¹ 1 y1 = n 1 x>b 0 x<b ” −b 1 I definisce la funzione 1 0 a b 1 0 a b I NTRODUZIONE y0 = n 21 ¼ Mentre ½ y0 = n 1 x<a 0 x≥a ¶ −a α ´ y1 = β −1 1 x<b 0 x≥b 0 α q̄ = α + β α + β + γ α+β+γ+δ =0 −b x 1 γ −1 y2 = −1 −c n ¹ x<a a≤x≤b b≤x≤c c≤x≤d x>d fornisce α+β α+β+γ ” I 1 x<c 0 x≥c α δ 1 0 y3 = 0 a 1 x<d 0 x≥d b c d β α −d 1 c 0 a b d γ δ I NTRODUZIONE −1 · 1 22 ¼ Consideriamo ½ ¶ (xj, tj) , j = 1..N · ´ ¹ Problema: determinare i coefficienti Wi e bi di una rete neurale in modo che detti oj i risultati in uscita dalla rete che corrispondono agli ingressi xj, sia minimo lo scarto quadratico tra oj e tj I (oj − tj)2 j=1 I NTRODUZIONE E= N X ” 23 E è funzione dei coefficienti della rete ¼ ½ ¶ Si può minimizzare usando il metodo del gradiente · ´ ¹ ” I nonostante la apparente complessità dei calcoli necessari per ottenere le derivate di E rispetto ad ognuno dei parametri I NTRODUZIONE esistono semplici formule localizzate per descriverle. 24 Supponiamo ad esempio di considerare una rete neurale, a due strati nascosti, con ¼ ½ ¶ uno strato di input costituito da 2 neuroni uno primo strato nascosto costituito da 4 neuroni uno secondo strato nascosto costituito da 3 neuroni uno strato di output costituito da 1 neurone · ´ ¹ ” u11 1 W 1 = wi,j 2 W 2 = wi,j b11 1 w1,1 1 1 w2,1 2 w1,1 I 3 W 3 = wi,j u21 2 w2,1 b21 x1 1 w1,2 u12 b12 1 w2,2 1 u02 1 w2,3 u13 b13 1 w1,4 2 w4,1 2 w2,2 1 3 w1,1 u22 2 w3,2 2 w1,3 1 w1,3 x2 2 w3,1 2 w1,2 1 2 w4,2 2 w2,3 2 w3,3 b22 1 3 w2,1 u31 y b31 3 w3,1 1 u23 2 w4,3 1 w2,4 b23 u14 b14 1 1 I NTRODUZIONE u01 25 ¼ u11 1 W 1 = wi,j 2 W 2 = wi,j b11 1 w1,1 1 1 w2,1 2 w1,1 3 W 3 = wi,j ½ ¶ u21 2 w2,1 · b21 u01 x1 1 w1,2 u12 b12 1 w2,2 1 x2 1 w2,3 u13 b13 1 w1,4 2 w4,1 2 w2,2 1 1 2 w4,2 2 w2,3 2 w3,3 ´ 3 w1,1 u22 2 w3,2 2 w1,3 1 w1,3 u02 2 w3,1 2 w1,2 b22 1 3 w2,1 ¹ u31 y b31 3 w3,1 ” I 1 u23 2 w4,3 1 w2,4 b23 u14 1 b14 Definisce una funzione reale di due variabili reali I NTRODUZIONE 1 26 ¼ u11 1 W 1 = wi,j 2 W 2 = wi,j b11 1 w1,1 1 1 w2,1 2 w1,1 3 W 3 = wi,j ½ u21 ¶ 2 w2,1 b21 u01 1 w1,2 x1 u12 b12 1 w2,2 1 1 w2,3 x2 u13 b13 1 w1,4 2 w4,1 2 w2,2 1 1 2 w4,2 2 w2,3 2 w3,3 · 3 w1,1 u22 2 w3,2 2 w1,3 1 w1,3 u02 2 w3,1 2 w1,2 3 w2,1 b22 y b31 3 w3,1 1 ´ u31 ¹ 1 ” I u23 2 w4,3 1 w2,4 b23 u14 1 b14 1 È identificata dalle matrici W 2 = {w2k,j} , , W 3 = {w3k,j} e dai vettori (bias) b1 = {b1k} , b2 = {b2k} , b3 = {b3k} I NTRODUZIONE W 1 = {w1k,j} 27 ¼ u11 1 W 1 = wi,j 2 W 2 = wi,j b11 1 w1,1 1 1 w2,1 2 w1,1 3 W 3 = wi,j ½ u21 ¶ 2 w2,1 b21 u01 x1 1 w1,2 u12 b12 1 w2,2 1 x2 1 w2,3 u13 b13 1 w1,4 2 w4,1 2 w2,2 1 1 2 w4,2 2 w2,3 2 w3,3 · 3 w1,1 u22 2 w3,2 2 w1,3 1 w1,3 u02 2 w3,1 2 w1,2 b22 1 3 w2,1 ´ u31 y b31 3 w3,1 ¹ 1 ” u23 I 2 w4,3 1 w2,4 b23 u14 1 b14 Lo stato della rete può essere descritto mediante i vettori u0 il vettore di input u0 = (u01, u02); u1 il vettore di uscita del primo strato u2 = (u01, u02, u02, u02) u2 il vettore di uscita del secondo strato u2 = (u01, u02, u02) u3 il vettore di output u3 = o3 I NTRODUZIONE 1 28 Le rete neurale produce il corrispondente del segnale di input propagandolo in avanti ¼ ½ ¶ 0 u = (x1, x2) , 0 0 ū = (u , 1) · ´ W1 = w11,1 w12,1 w11,2 w12,2 w11,3 w12,3 w11,4 w12,4 W̄1 = w11,1 w 1 2,1 b11 w11,2 w12,2 b12 w11,3 w12,3 b13 w11,4 w12,4 b14 ¹ ” I 1 1 1 1 w1,1 w1,2 w1,3 w1,4 1 0 1 0 0 η = ū W̄ = (u1, u2, 1) w12,1 w12,2 w12,3 w12,4 b11 b12 b13 b14 u1 = s(η1) = (u11, u13, u13, u14) I NTRODUZIONE La funzione di attivazione s è una sigmoide o l’identità 29 ¼ u1 = (u11, u13, u13, u14) ū1 = (u1, 1) , ½ ¶ w21,2 w22,2 w23,2 w24,2 w21,3 w22,3 w23,3 w24,3 W̄2 = w21,1 w 2 2,1 w 2 23,1 w4,1 b21 w21,1 w 2 2,1 2 η2 = ū1W̄ 2 = (u11, u13, u13, u14, 1) w23,1 w4,1 b21 w21,2 w22,2 w23,2 w24,2 b22 w21,2 w22,2 w23,2 w24,2 b22 w21,3 w22,3 2 w3,3 w24,3 b23 · ´ ¹ ” I w21,3 w22,3 w23,3 w24,3 b23 u2 = s(η2) = (u21, u22, u23) I NTRODUZIONE w21,1 w2 2,1 W2 = w23,1 w24,1 30 ¼ u2 = s(η2) = (u21, u22, u23), , ū2 = s(η2) = (u21, u22, u23, 1) ½ ¶ w21,1 W3 = w21,2 w21,3 W̄3 = w31,1 w 2 1,2 w31,3 b31 w31,1 w 2 3 2 3 2 2 2 1,2 η = ū W̄ = (u1, u2, u3, 1) w31,3 b31 · ´ ¹ ” I I NTRODUZIONE u3 = s(η3) = (u31) = y 31 La rete viene adattata ai dati mediante Le formule di aggiornamento all’indietro. ¼ ½ ¶ 3 3 3 2 T W̄ = W̄ − lr(δ ū ) · ´ 2 2 2 3 1 T W̄ = W̄ − lr(δ δ ū ) ¹ ” 1 1 1 2 3 0 T W̄ = W̄ − lr(δ δ δ ū ) I lr è il learning rate, il passo con cui si muove il metodo del gradiente. I NTRODUZIONE dove 32 ¼ u21(1 − u21) 0 0 2 2 0 u2(1 − u2) 0 D2 = 0 0 u23(1 − u23) u11(1 − u11) 0 0 0 0 u12(1 − u12) 0 0 D1 = 0 0 u13(1 − u13) 0 0 0 0 u14(1 − u14) ½ ¶ · ´ ¹ ” I e δ3 = (u3 − t) 3 δ = D2 W = 1 1 δ1 = D1 W 2 = 1 1 u (1 − u ) 0 0 0 2 1 1 1 u (1 − u ) u12 (1 0 0 0 − u12 ) 0 0 0 u22 (1 − u12 ) u23 (1 − u23 ) 0 0 u13 (1 − u13 ) 0 0 0 0 2 1,1 w w21,2 w21,3 2 1,1 w22,1 w23,1 w24,1 w 0 0 0 u14 (1 − u14 ) w21,2 w22,2 w23,2 w24,2 w21,3 w22,3 w23,3 w24,3 I NTRODUZIONE 2 33