View
35
Download
1
Category
Preview:
DESCRIPTION
Lezione 5. Reti Neurali. Mercoledì, 10 Novembre 2004 Giuseppe Manco References: Chapter 4, Mitchell Chapter 1-2,4, Haykin Chapter 1-4, Bishop. Outline. Perceptron Learning Unità neurale Gradiente Discendente Reti Multi-Layer Funzioni nonlineari Reti di funzioni nonlineari - PowerPoint PPT Presentation
Citation preview
Reti Neurali
Mercoledì, 10 Novembre 2004
Giuseppe Manco
References:
Chapter 4, Mitchell
Chapter 1-2,4, Haykin
Chapter 1-4, Bishop
Reti Neurali
Lezione 5Lezione 5
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
Modelli ConnezionistiModelli Connezionisti
• 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
Reti NeuraliReti Neurali
• 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
Rete neuraleRete neurale
– http://www.cs.cmu.edu/afs/cs/project/alv/member/www/projects/ALVINN.html
Reti Neurali
Riconoscimento di caratteriRiconoscimento di caratteri(Progetto scorso anno)(Progetto scorso anno)
•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
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 PerceptronIl Perceptron
x1
x2
xn
w1
w2
wn
x0 = 1
w0
n
0iii xw
altrimenti 1-
0 se 1 i
n
0ii
n21
xwxxxo ,,
altrimenti 1-
0 se 1 xww ,xsgnxo
Reti Neurali
Le regioni di decisioneLe regioni di decisione
• 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
Perceptron LearningPerceptron Learning
• 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
Algoritmo Perceptron learningAlgoritmo Perceptron learning
• 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 D
Calcola l’output o(x)
FOR i = 1 to n
wi wi + (t - o)xi
Reti Neurali
Convergenza dell’algoritmoConvergenza dell’algoritmo
• 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
Gradiente Discendente:Gradiente Discendente: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
2Dx
D xoxt2
1werrorwE
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)(twE
E-(t)w1)(tw
(t)w-w(t)wE(t)wEwE T
2
(t)wE(t)wE
(t)w-1)(tw(t)wE(t)wE1)(twE
T
T
Reti Neurali
Gradiente discendente: delta ruleGradiente discendente: delta rule
• Il gradiente
• Regola di learning
n10 w
E,,
w
E,
w
EwE
Dxi
i
Dx iDx i
Dx
2
iDx
2
ii
ii
xxoxtw
E
xwxtw
xoxtxoxtw
xoxt22
1
xoxtw2
1xoxt
2
1
ww
E
w
EΔw
wEwΔ
Reti Neurali
Algoritmo del Gradiente DiscendenteAlgoritmo del Gradiente Discendente
• 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 0
FOR each <x, t(x)> in D, DO
Calcola o(x)
FOR each wi, DO
wi wi + r(t - o)xi
FOR each wi, DO
wi 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 Perceptron RulesDelta e Perceptron Rules
Esempio A
+
-+
+
--
x1
x2
+
+
Esempio B
-
-x1
x2
Esempio C
x1
x2
++
+
++
++
++
+
+
++
-
-
--
--
-
--
-
--
-
--
- - -
Reti Neurali
Sommario: Perceptron LearningSommario: Perceptron Learning
• Funzione di base:
– Classificazione binaria– Separabilità lineare
• Due estensioini: – K classi– Relazioni nonlineari
0 se1
0 se1)sgn(
)sgn(
10
z
zz
wxwa
ayn
iii
Reti Neurali
EstensioniEstensioni
• K classi
• Relazioni nonlineari
0
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
Reti Multi-LayerReti Multi-Layer
x1 x2 x3Input Layer
u 11
h1 h2 h3 h4Hidden Layer
o1 o2v42
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
Funzioni di attivazione nonlineariFunzioni di attivazione nonlineari
x1
x2
xn
w1
w2
wn
x0 = 1
w0
xwxwnetn
0iii
netσwxσxo
nete
netσ
1
1
netnet
netnet
ee
ee
net
netnetσ
cosh
sinh
Reti Neurali
Reti Feed-ForwardReti Feed-Forward
n
ikijij
jj
m
jkjkjk
a
kk
wxwb
bgz
vzva
eag
agy
10
10
)(
1
1)(
)(
x
W
z
V
y
Reti Neurali
Addestramento di FFNNs: BackpropagationAddestramento di FFNNs: Backpropagation
• Obiettivo: minimizzazione dell’errore
• Utilizzando
• Dobbiamo calcolare
c
kk
c
kkk eytE
1
2
1
2
2
1)(
2
1
nmmcu
w
E
w
E
w
EE
u
,...,,][21
w
hw
E
Reti Neurali
Backpropagation (2)Backpropagation (2)
• Per un peso di output,
• otteniamo:
ji
j
j
j
j
j
jji v
a
a
y
y
e
e
E
v
E
iji
j
jjjj
j
zv
a
agagaga
y
))(1)(()(
1
j
j
jj
y
e
ee
E
Reti Neurali
Backpropagation (3)Backpropagation (3)
• riassumendo:
• Regola di aggiustamento:
)( jjj
ijji
age
zv
E
ijji zv
Reti Neurali
Backpropagation (4)Backpropagation (4)
• Su un peso interno,
• otteniamo: j
k
k
kc
kk
j
kc
kk
j
ji
j
j
j
jji
z
a
a
ee
z
ee
z
E
w
b
b
z
z
E
w
E
11
iji
j
jjjj
j
xw
b
bgbgbgb
z
))(1)(()(
kjj
k
kk
k
vz
a
aga
e
)(
Reti Neurali
Backpropagation (5)Backpropagation (5)
• riassumendo:
• Regola di aggiustamento:
c
kkjkjj
ijji
vbg
xw
E
1
)(
ijji xw
Reti Neurali
Algoritmo BackpropagationAlgoritmo Backpropagation
x1 x2 x3Input Layer
w 11
h1 h2 h3 h4Hidden Layer
o1 o2v42
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 di
output. 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, DO
calcola 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
ProprietàProprietà
• Gradiente Discendente
– Trova un ottimo locale
• Backprop in pratica
– Tipicamente, si tende ad includere 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
Potere di rappresentazionePotere di rappresentazione
• 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 0
0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0
0 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 0
0 1 0 0 0 0 0 0 0.01 0.11 0.88 0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0.01 0.97 0.27 0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0 0.99 0.97 0.71 0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0 0.03 0.05 0.02 0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0 0.22 0.99 0.99 0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0 0.80 0.01 0.98 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1 0.60 0.94 0.01 0 0 0 0 0 0 0 1
Reti Neurali
Evoluzione dell’errore e dei nodi interniEvoluzione dell’errore e dei nodi interni
errorD(ok)
zj(01000000), 1 j 3
Reti Neurali
– w0 converge a 0
– Cambiamneti dopo le prime 1000 epoche
Evoluzione dei pesiEvoluzione dei pesi
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 rispetto alle 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: decrementiamo ogni peso di un certo fattore ad ogni epoca
– recovery: aggiunta o cancellazione di unità interne
Reti Neurali
Progetto:Progetto:Reti per il riconoscimento faccialeReti per il riconoscimento facciale
30 x 32 Inputs
sinistra fronte destra su
Recommended