¼
½
¶
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