Reti Neurali (Parte III)
Corso di AA, anno 2017/18, Padova
Fabio Aiolli
08 Novembre 2017
Reti Neurali Multistrato
Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 2 / 16
Reti Neurali Multistrato: terminologia
d unit` a di ingresso: dimensione dei dati in ingresso x ≡ (x
1, . . . , x
d), (d + 1 se includiamo la soglia nel vettore dei pesi x
0≡ (x
0, x
1, . . . , x
d)) N
Hunit` a nascoste (con output y ≡ (y
1, . . . , y
NH))
c unit` a di output: dimensione dei dati in output z = (z
1, . . . , z
c) e dimensione degli output desiderati t = (t
1, . . . , t
c)
w
jipeso dalla unit` a di ingresso i alla unit` a nascosta j (w
j` e il vettore pesi dell’unit` a nascosta j )
w
kjpeso dalla unit` a nascosta j alla unit` a di output k (w
k` e il vettore
pesi dell’unit` a di output k)
Calcolo gradiente per i pesi di una unit` a di output
∂E
∂w
k ˆˆj= ∂
∂w
ˆk ˆj"
1 2cN
N
X
s=1 c
X
k=1
(t
k(s)− z
k(s))
2#
= 1
2cN
N
X
s=1
∂
∂w
k ˆˆj"
cX
k=1
(t
k(s)− z
k(s))
2#
= 1
2cN
N
X
s=1
2(t
ˆ(s)k
− z
ˆ(s)k
) ∂
∂w
k ˆˆjh
(t
(s)ˆk
− z
(s)ˆk
) i
= 1
cN
N
X
s=1
(t
ˆ(s)k
− z
ˆ(s)k
) ∂
∂w
k ˆˆjh
t
ˆ(s)k
− σ(w
ˆk· y
(s)) i
= − 1
cN
N
X
s=1
(t
(s)ˆk
− z
(s)ˆk
)σ
0(w
kˆ· y
(s))y
ˆ(s)j
= − 1
cN
N
X
s=1
(t
(s)ˆk
− z
(s)ˆk
)z
kˆ(1 − z
kˆ)y
ˆ(s)j
Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 4 / 16
Calcolo gradiente per i pesi di unit` a nascoste
∂E
∂w
ˆj ˆi= ∂
∂w
j ˆˆi"
1 2cN
N
X
s=1 c
X
k=1
(t
k(s)− z
k(s))
2#
= 1
2cN
N
X
s=1 c
X
k=1
∂
∂w
ˆj ˆih
(t
k(s)− z
k(s))
2i
= 1
2cN
N
X
s=1 c
X
k=1
2(t
k(s)− z
k(s)) ∂
∂w
ˆj ˆih
−z
k(s)i
= − 1
cN
N
X
s=1 c
X
k=1
(t
k(s)− z
k(s))σ
0(w
k· y
(s)) ∂
∂w
j ˆˆi
NH
X
j =1
w
kjy
j(s)
= − 1
cN
N
X
s=1 c
X
k=1
(t
k(s)− z
k(s))σ
0(w
k· y
(s))w
k ˆj∂
∂w
ˆj ˆih
y
ˆ(s)j
i
Calcolo gradiente per i pesi di unit` a nascoste
= − 1
cN
N
X
s=1 c
X
k=1
(t
k(s)− z
k(s))σ
0(w
k· y
(s))w
k ˆj∂
∂w
ˆj ˆih y
ˆ(s)j
i
= − 1
cN
N
X
s=1 c
X
k=1
(t
k(s)− z
k(s))σ
0(w
k· y
(s))w
k ˆjσ
0(w
jˆ· x
(s)) ∂
∂w
ˆj ˆih
w
ˆj· x
(s)i
= − 1
cN
N
X
s=1 c
X
k=1
(t
k(s)− z
k(s))σ
0(w
k· y
(s))w
k ˆjσ
0(w
jˆ· x
(s))x
ˆ(s)i
= − 1
cN
N
X
s=1
σ
0(w
jˆ· x
(s))x
ˆ(s)i c
X
k=1
(t
k(s)− z
k(s))w
k ˆjσ
0(w
k· y
(s))
= − 1
cN
N
X
s=1
y
ˆ(s)j
(1 − y
ˆ(s)j
)x
ˆ(s)i c
X
k=1
(t
k(s)− z
k(s))z
k(s)(1 − z
k(s))w
k ˆjFabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 6 / 16
Discesa Batch vs. Stocastica
Batch. Finch´ e la condizione di terminazione non ` e soddisfatta:
1
Calcola ∇E
S[w]
2
w ← w − η∇E
S[w]
Stocastica. Finch´ e la condizione di terminazione non ` e soddisfatta, per ogni esempio di training s:
1
Calcola ∇E
s[w]
2
w ← w − η∇E
s[w]
Mini-batch. Finch´ e la condizione di terminazione non ` e soddisfatta, consideriamo un sottoinsieme di esempi Q ⊆ S :
1
Calcola ∇E
Q[w]
2
w ← w − η∇E
Q[w]
dove in generale E
Q[w] =
2cN1P
s∈Q
P
ck=1
(t
k(s)− z
k(s))
2, Q ⊆ S .
Algoritmo Backprop con uno strato nascosto
Back-Propagation-1hl-stocastico(S ,η):
Inizializza tutti i pesi a valori random piccoli (es. tra -0.05 e +0.05) Finch´ e non ` e verificata la condizione di terminazione:
Per ogni (x, t) ∈ S ,
1
Presenta x alla rete e calcola i vettori y e z
2
Per ogni unit` a di output k,
δ
k= z
k(1 − z
k)(t
k− z
k)
∆w
kj= δ
ky
j 3Per ogni unit` a nascosta j ,
δ
j= y
j(1 − y
j)
c
X
k=1
w
kjδ
k∆w
ji= δ
jx
i 4Aggiorna tutti i pesi: w
sq← w
sq+ η∆w
sqFabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 8 / 16
Fase Forward
Fase Backward
Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 10 / 16
Esempio di funzione errore
Universalit` a delle reti multi-strato
Teorema (Pinkus, 1996) semplificato
Data una rete feed-forward con un solo livello nascosto, una qualsiasi funzione continua f : R
n→ R, un qualunque > 0 piccolo a piacere, per un’ampia classe di funzioni di attivazione, esiste sempre un intero M tale che, la funzione g : R
n→ R calcolata dalla rete usando almeno M unit`a nascoste approssima la funzione f con tolleranza , ovvero:
max
x∈Ω|f (x) − g (x)| <
Notare che il teorema afferma l’esistenza di una rete con M unit` a nascoste che approssima la funzione target con la tolleranza desiderata ma non dice niente su come tale numero M possa essere calcolato!
Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 12 / 16
Alcuni problemi..
La scelta della tipologia della rete determina lo spazio delle ipotesi che si utilizza. Con architetture a 3 livelli (input, hidden, output), il numero delle unit` a nascoste determina la complessit` a dello spazio delle ipotesi
La scelta del passo di discesa (valore di η) pu` o essere determinante per la convergenza:
L’apprendimento ` e generalmente lento (ma il calcolo dell’output a regime ` e veloce)
Minimi locali (anche se efficace in pratica)
Evitare minimi locali
Aggiunta di un termine (chiamato momento) alla regola di update dei pesi. In pratica viene aggiunto un contributo che deriva dal passo precedente, imponendo una specie di inerzia al sistema
L’uso di apprendimento stocastico (randomizzando sugli esempi) invece che batch pu` o facilitare l’uscita da minimi locali
Apprendimento di reti diverse sugli stessi dati con inizializzazioni differenti e selezione della rete pi` u efficace (per esempio valutando su un validation set). Alternativamente, possiamo considerare un
”comitato” di reti in cui la predizione ` e una media (eventualmente pesata) delle predizioni delle singole reti
Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 14 / 16
Rappresentazione dei livelli nascosti
Una importante caratteristica delle reti neurali multi-strato ` e che
permettono di scoprire utili rappresentazioni (alternative all’input) dei dati
di ingresso. In particolare, l’output delle unit` a nascoste ` e una efficace
rappresentazione dell’input che permette una pi` u semplice separazione dei
dati in output. Nell’esempio si nota come la rappresentazione (encoding)
appreso assomigli all’encoding binario su 3 bit ([100, 011, 010, . . . ]).
Overfitting
Aumentando il numero di updates sui pesi, l’errore sul validation set prima diminuisce poi incrementa. Perch´ e?
All’inizio, con valori dei pesi piccoli in modulo (molto simili tra di loro) si riescono a descrivere superfici di decisione pi` u ”lisce”.
All’aumentare del valore assoluto la complessit` a della superfice di decisione aumenta e con essa anche la possibilit` a di avere overfitting Soluzioni: Monitorare l’errore su un insieme di dati di validazione, oppure utilizzare un termine aggiuntivo nella funzione errore dipendente dalla norma dei pesi (regolarizzazione).
Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 16 / 16