Reti Neurali
Mercoledì, 10 Novembre 2004
Giuseppe Manco
References:Chapter 4, Mitchell
Chapter 1-2,4, HaykinChapter 1-4, Bishop
Reti Neurali
LezioneLezione 55
Reti Neurali
OutlineOutline
• Perceptron Learning– Unità neurale– Gradiente Discendente
• Reti Multi-Layer– Funzioni nonlineari– Reti di funzioni nonlineari
• Backpropagation dell’errore– L’algoritmo backpropagation– problematiche
• Ottimi locali• Overfitting
Reti Neurali
ModelliModelli ConnezionistiConnezionisti
• Il cervello umano– Tempo di switch di un neurone: ~ 0.001 (10-3) secondi– Numero di neuroni: ~10-100 miliardi (1010 – 1011)– connessioni per neurone: ~10-100.000 (104 – 105)– Tempo di classificazione: ~0.1 secondi
• Reti Neurali artificiali– “… a system composed of many simple processing elements operating in parallel
whose function is determined by network structure, connection strengths, and the processing performed at computing elements or nodes.” - DARPA (1988)
• Proprietà– Molti neuroni
– Molte interconnessioni pesate
– Computazione distribuita
– I pesi si costituiscono automaticamente
Reti Neurali
RetiReti NeuraliNeurali
• Input: dati numerici di alta dimensionalità– Esempio: input da sensori– Rumore
• Output: nominale/Numerico/vettoriale– Funzione di forma ignota
• Risultato: leggibilità meno importante delle performances– Performance misurata in termini di accuratezza– Leggibilità: capacità di spiegare l’inferenza
• Esempi– Classificazione di immagini– Predizione finanziaria
Reti Neurali
ReteRete neuraleneurale
– http://www.cs.cmu.edu/afs/cs/project/alv/member/www/projects/ALVINN.html
Reti Neurali
Riconoscimento di caratteriRiconoscimento di caratteri(Progetto)(Progetto)
•Dimensionalità
Reti Neurali
Le regioni di decisioneLe regioni di decisione
• Dato x, vogliamo trovare h(x) consistente con c(x)– h(x) può essere approssimata con una funzione lineare y
– y = 1: h(x) = +– y = 0: h(x) = -
– Qual è una possibile istanziazione di y?– generalizzazione?
+
-+
+
--
x1
x2
);( wxfy rr=
Reti Neurali
• Perceptron: modello neuronale singolo– Input definito come una combinazione lineare
– Output: funzione di attivazione basata su una soglia sull’input (threshold θ = w0)∑=
=n
0iii xwnet
Il Il PerceptronPerceptron
x1
x2
xn
w1
w2
wn
Σ
x0 = 1w0
∑=
n
0iii xw
( )⎪⎩
⎪⎨
⎧>
= ∑=
altrimenti 1-
0 se 1 i
n
0ii
n21xw
xxxo ,, K
( ) ( )⎩⎨⎧ >⋅
==altrimenti 1-
0 se 1 xww ,xsgnxo
rrrrr
Reti Neurali
Le Le regioniregioni didi decisionedecisione
• Il perceptron può rappresentare alcune funzioni– Emulazione di porte logiche
– ESERCIZIO: Quali pesi rappresentano g(x1, x2) = AND(x1, x2)? OR(x1, x2)? NOT(x)?
• Alcune funzioni non sono rappresentabili– Non linearmente separabili
Esempio A
+
-+
+
--
x1
x2
+
+
Esempio B
-
-x1
x2
Reti Neurali
PerceptronPerceptron LearningLearning
• Regola di learning del Perceptron (Rosenblatt, 1959)– Idea: un target può aggiornare I pesi in modo tale da produrre l’output desiderato
– dove t = c(x) è il valore di output atteso, o è il valore di output calcolato– η è il tasso di learning
ii
iii
o)x(t∆w∆www−=+←
η
Reti Neurali
AlgoritmoAlgoritmo PerceptronPerceptron learninglearning
• Algorithm Train-Perceptron (D ≡ {<x, t(x) ≡ c(x)>})– inizializza tutti I pesi wi a valori random– WHILE non tutti i valori sono predetti correttamente DO
FOR EACH istanza x ∈ DCalcola l’output o(x)FOR i = 1 to n
wi ← wi + η(t - o)xi
Reti Neurali
ConvergenzaConvergenza delldell’’algoritmoalgoritmo
• Teorema di convergenza– Se esiste un insieme di pesi consistente con i dati (cioè: I dati sono linearmente
separabili), l’algoritmo converge– Complessità computazionale– Regioni non linearmente separabili
– Se le regioni non sono linearmente separabili, l’algorimo entra in un loop infinito– Cicla sugli stessi pesi
Reti Neurali
GradienteGradiente DiscendenteDiscendente::IdeaIdea
• Unità lineari– Consideriamo l’unità più semplice:
– Obiettivo: trovare il “migliore adattamento” a D
• Algoritmo di approssimazione– Minimizzare l’errore sul training set D– Funzione dell’errore: Somma dei quadrati (SSE)
• Come si minimizza?– Ottimizzazione semplice– Ci muoviamo in direzione del più ripido gradiente nello spazio pesi-errore
( ) ( ) ∑=
==n
0iii xwxnetxo
rr
[ ] [ ] ( ) ( )( )2Dx
D xoxt21werrorwE ∑
∈
−==rr
Reti Neurali
Idea di fondoIdea di fondo• Vogliamo trovare una sequenza di pesi w(1), w(2), …, w(t) tali che
• Metodo:
• Giustificazione:– Sviluppo in serie di Taylor al primo ordine
– Sostituendo,
– Quando η è positivo, il secondo addendo è sempre negativo
[ ] [ ](t)wE1)(twErr
≤+
E-(t)w1)(tw ∇=+ ηrr
[ ] [ ] [ ]( )(t)w-w(t)wE(t)wEwErrrrr T∇+≈
[ ] [ ] [ ]( )[ ] [ ] 2
(t)wE(t)wE
(t)w-1)(tw(t)wE(t)wE1)(twErr
rrrrr
T
T
∇−=
+∇+≈+
η
Reti Neurali
GradienteGradiente discendentediscendente: delta rule: delta rule
• Il gradiente
• Regola di learning
[ ] ⎥⎦
⎤⎢⎣
⎡∂∂
∂∂
∂∂
≡∇n10 w
E,,wE,
wEwE K
r
[ ]
( ) ( )( ) ( ) ( )( )
( ) ( )( ) ( ) ( )( ) ( ) ( )( ) ( )( )
( ) ( )( )( )[ ]∑
∑∑
∑∑
∈
∈∈
∈∈
−−=∂∂
⎥⎦
⎤⎢⎣
⎡⋅−
∂∂
−=⎥⎦
⎤⎢⎣
⎡−
∂∂
−=
⎥⎦
⎤⎢⎣
⎡−
∂∂
=⎥⎦
⎤⎢⎣
⎡−
∂∂
=∂∂
∂∂
−=
∇−=
Dxi
i
Dx iDx i
Dx
2
iDx
2
ii
ii
xxoxtwE
xwxtw
xoxtxoxtw
xoxt221
xoxtw2
1xoxt21
wwE
wE∆w
wEw∆
rr
rr
η
η
Reti Neurali
AlgoritmoAlgoritmo del del GradienteGradiente DiscendenteDiscendente
• Algorithm Gradient-Descent (D, r)– Ogni istanza ha la forma <x, t(x)>, dove x è il vettore di input e t(x) è il valore di
output. r è il tasso di learning (ad esempio, 0.05)– Inizializza i pesi wi a valori random– WHILE la condizione di terminazione non è soddisfatta, DO
Inizializza ogni ∆wi a 0FOR each <x, t(x)> in D, DO
Calcola o(x)FOR each wi, DO
∆wi ← ∆wi + r(t - o)xi
FOR each wi, DOwi ← wi + ∆wi
– RETURN w
Reti Neurali
• Concetti Linearmente Separabili: classificazione ottimale– esempio A: Convergenza
• Concetti Non-LS: approssimazione– esempio B: non LS; la delta rule converge, ma non è ottimale– esempio C: non LS; buona generalizzazione
• Vettore w = somma dei x ∈ D misclassificati– Perceptron: minimizza w– Delta Rule: minimizza errore ≡ distanca dal separatore
Delta e Delta e PerceptronPerceptron RulesRules
Esempio A
+
-+
+
--
x1
x2
+
+
Esempio B
-
-x1
x2
Esempio C
x1
x2
++
+
++
++
++
+
+
++
-
-
--
--
-
--
-
--
-
--
- - -
Reti Neurali
Sommario: Sommario: PerceptronPerceptron LearningLearning
• Funzione di base:
– Classificazione binaria– Separabilità lineare
• Due estensioini: – K classi– Relazioni nonlineari
⎩⎨⎧
≤−>
=
+=
=
∑=
0 se10 se1
)sgn(
)sgn(
10
zz
z
wxwa
ayn
iii
Reti Neurali
EstensioniEstensioni
• K classi
• Relazioni nonlineari0
10
)(
wWxa +=
+=
=
∑=
n
ikikik
kk
wxwa
agy
0
10
)(
)(
)(
wxWφa +=
+=
=
∑=
n
ikikik
kk
wxwa
agy
φ
Reti Neurali
• Unità nonlineari– Funzione d’attivazione (originaria): sgn (w • x)– Attivazione nonlinare: generalizzazione di sgn
• Reti Multi-Layer– Multi-Layer Perceptrons (MLPs)– Una rete multi-layer feedforward è composta da uno strato di input, uno strato
intermedio (nascosto) e uno strato di output– Gli strati di output è intermedi sono perceptrons (unità nonlineari)
• MLPs in teoria– Le reti (di 2 or o più strati) possono rappresentare qualsiasi funzione
• MLPs in pratica– Trovare la topologia “giusta” è difficoltoso– La fase di training è molto dispendiosa
RetiReti MultiMulti--LayerLayer
x1 x2 x3Input Layeru 11
h1 h2 h3 h4Hidden Layer
o1 o2 v42
Output Layer
Reti Neurali
• Funzione sigmoidale– Funzione di attivazione a threshold: sgn (w • x)
– Funzione nonlineare: generalizzazione di sgn
– σ è la funzione sigmoidale
– utile per ottenere l’update dal gradiente per
• Una unità
• Reti Multi-layer
• Funzione iperbolica
FunzioniFunzioni didi attivazioneattivazione nonlinearinonlineari
x1
x2
xn
w1
w2
wn
Σ
x0 = 1w0
xwxwnetn
0iii
rr•==∑
=
( ) ( ) ( )netσwxσxo =•=rrr
( ) netenetσ −+
=1
1
( ) ( )( ) netnet
netnet
eeee
netnetnetσ −
−
+−
==coshsinh
Reti Neurali
Reti Reti FeedFeed--ForwardForward
∑
∑
=
=
−
+=
=
+=
+=
=
n
ikijij
jj
m
jkjkjk
a
kk
wxwb
bgz
vzva
eag
agy
10
10
)(
11)(
)(
x
W
z
V
y
Reti Neurali
Addestramento di Addestramento di FFNNsFFNNs: : BackpropagationBackpropagation
• Obiettivo: minimizzazione dell’errore
• Utilizzando
• Dobbiamo calcolare
∑∑==
=−=c
kk
c
kkk eytE
1
2
1
2
21)(
21
nmmcuwE
wE
wEE
u
×+×=
⎥⎦
⎤⎢⎣
⎡∂∂
∂∂
∂∂
=∇ ,...,,][21
w
hwE
∂∂
Reti Neurali
BackpropagationBackpropagation (2)(2)
• Per un peso di output,
• otteniamo:
ji
j
j
j
j
j
jji va
ay
ye
eE
vE
∂
∂×
∂
∂×
∂
∂×
∂∂
=∂∂
iji
j
jjjj
j
zva
agagagay
=∂
∂
−=′=∂
∂))(1)(()(
1−=∂
∂
=∂∂
j
j
jj
ye
eeE
Reti Neurali
BackpropagationBackpropagation (3)(3)
• riassumendo:
• Regola di aggiustamento:
)( jjj
ijji
age
zvE
′=
−=∂∂
δ
δ
ijji zv ηδ−=∆
Reti Neurali
BackpropagationBackpropagation (4)(4)
• Su un peso interno,
• otteniamo: j
k
k
kc
kk
j
kc
kk
j
ji
j
j
j
jji
za
aee
zee
zE
wb
bz
zE
wE
∂∂
×∂∂
=∂∂
=∂∂
∂
∂×
∂
∂×
∂∂
=∂∂
∑∑== 11
iji
j
jjjj
j
xwb
bgbgbgbz
=∂
∂
−=′=∂
∂))(1)(()(
kjj
k
kk
k
vza
agae
=∂∂
′−=∂∂ )(
Reti Neurali
BackpropagationBackpropagation (5)(5)
• riassumendo:
• Regola di aggiustamento:
∑=
′=
−=∂∂
c
kkjkjj
ijji
vbg
xwE
1)( δδ
δ
ijji xw ηδ−=∆
Reti Neurali
AlgoritmoAlgoritmo BackpropagationBackpropagation
x1 x2 x3Input Layerw 11
h1 h2 h3 h4Hidden Layer
o1 o2 v42
Output Layer
• Idea: Riportiamo l’effetto dell’errore ai layers successivi• Algorithm Train-by-Backprop (D, r)
– Ogni istanza ha la forma <x, t(x)>, dove x è il vettore di input e t(x) è il valore dioutput. r è il tasso di learning (ad esempio, 0.05)
– Inizializza tutti i wi a valori random– UNTIL la condizione di terminazione non è ottenuta, DO
FOR EACH <x, t(x)> in D, DOcalcola o(x) = σ(net(x))
FOR EACH unità k di output, DO
FOR EACH unità j interna, DO
Aggiorna ogni w = wi,j (a = xj) o w = vj,k (a = zk) wstart-layer, end-layer ← wstart-layer, end-layer + ∆ wstart-layer, end-layer
∆wstart-layer, end-layer ← ηδend-layer aend-layer
– RETURN w, v
∑=
′=c
kkjkjj vbg
1)( δδ
)( jjj age ′=δ
Reti Neurali
ProprietProprietàà
• Gradiente Discendente– Trova un ottimo locale
• Backprop in pratica– Tipicamente, si tende ad include il momento α
– Quanto generalizza su altri esempi?
– La fase di training è molto lenta: migliaia di iterazioni (epoche)
– Inferenza (applicazione della rete) estremamente veloce
( ) ( )1α∆δ∆ −+= nwa nw layer-end layer,-startlayer-endlayer-endlayer-end layer,-start η
Reti Neurali
Potere di rappresentazionePotere di rappresentazione
x1 x2
x1 x2
x1 x2
Reti Neurali
PoterePotere didi rappresentazionerappresentazione
• Representational (i.e., Expressive) Power– 2-layer feedforward ANN
• Funzioni booleane• Ogni funzione continua limitata
– 3-layer feedforward ANN: Qualsiasi funzione• Inductive Bias
– Spazio delle ipotesi continuo– Spazio euclideo n-dimensionale (spazio dei pesi)
– Preference bias: “interpolazione” tra gli esempi positivi– Non ancora compreso a fondo
Reti Neurali
• Unità interne e Feature Extraction– I valori interni rappresentano le proprietà essenziali dell’input
• esempio
Learning Hidden Layer RepresentationsLearning Hidden Layer Representations
Input Hidden Values Output1 0 0 0 0 0 0 0 → → 1 0 0 0 0 0 0 00 1 0 0 0 0 0 0 → → 0 1 0 0 0 0 0 00 0 1 0 0 0 0 0 → → 0 0 1 0 0 0 0 00 0 0 1 0 0 0 0 → → 0 0 0 1 0 0 0 00 0 0 0 1 0 0 0 → → 0 0 0 0 1 0 0 00 0 0 0 0 1 0 0 → → 0 0 0 0 0 1 0 00 0 0 0 0 0 1 0 → → 0 0 0 0 0 0 1 00 0 0 0 0 0 0 1 → → 0 0 0 0 0 0 0 1
Input Hidden Values Output1 0 0 0 0 0 0 0 → 0.89 0.04 0.08 → 1 0 0 0 0 0 0 00 1 0 0 0 0 0 0 → 0.01 0.11 0.88 → 0 1 0 0 0 0 0 00 0 1 0 0 0 0 0 → 0.01 0.97 0.27 → 0 0 1 0 0 0 0 00 0 0 1 0 0 0 0 → 0.99 0.97 0.71 → 0 0 0 1 0 0 0 00 0 0 0 1 0 0 0 → 0.03 0.05 0.02 → 0 0 0 0 1 0 0 00 0 0 0 0 1 0 0 → 0.22 0.99 0.99 → 0 0 0 0 0 1 0 00 0 0 0 0 0 1 0 → 0.80 0.01 0.98 → 0 0 0 0 0 0 1 00 0 0 0 0 0 0 1 → 0.60 0.94 0.01 → 0 0 0 0 0 0 0 1
Reti Neurali
EvoluzioneEvoluzione delldell’’erroreerrore e e deidei nodinodi interniinterni
errorD(ok)
zj(01000000), 1 ≤ j ≤ 3
Reti Neurali
– w0 converge a 0
– Cambiamneti dopo le prime 1000 epoche
EvoluzioneEvoluzione deidei pesipesi
ui1, 1 ≤ i ≤ 8
Reti Neurali
OverfittingOverfitting
• Overfitting– h’peggio di h su Dtrain, meglio su Dtest
• Overtraining– Overfitting dovuto a troppe iterazioni
Reti Neurali
OverfittingOverfitting
• Altre possibili cause– Il numero di nodi interni è fissato– Troppo pochi (“underfitting”)
• La rete non riesce a riassumere• Analogia: sistemi di equazioni non
determinati (troppe variabili rispettoalle equazioni)
– Troppi• La rete non generalizza• analogia: approssimare una parabola
con un polinomio di grado >> 2
• Approcci– Prevenzione: selezione degli attributi– aggiramento
• Hold out o k-fold cross-validation• Weight decay: degrementiamo ogni
peso di un certo fattore ad ogni epoca– recovery: aggiunta o cancellazione di unità
interne
Reti Neurali
ProgettoProgetto::RetiReti per per ilil riconoscimentoriconoscimento faccialefacciale
30 x 32 Inputs
sinistra fronte destra su
Top Related