Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III)...

16
Reti Neurali (Parte III) Corso di AA, anno 2017/18, Padova Fabio Aiolli 08 Novembre 2017 Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 1 / 16

Transcript of Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III)...

Page 1: Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III) Corso di AA, anno 2017/18, Padova Fabio Aiolli 08 Novembre 2017 Fabio Aiolli Reti Neurali

Reti Neurali (Parte III)Corso di AA, anno 2017/18, Padova

Fabio Aiolli

08 Novembre 2017

Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 1 / 16

Page 2: Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III) Corso di AA, anno 2017/18, Padova Fabio Aiolli 08 Novembre 2017 Fabio Aiolli Reti Neurali

Reti Neurali Multistrato

Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 2 / 16

Page 3: Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III) Corso di AA, anno 2017/18, Padova Fabio Aiolli 08 Novembre 2017 Fabio Aiolli Reti Neurali

Reti Neurali Multistrato: terminologia

d unita di ingresso: dimensione dei dati in ingresso x ≡ (x1, . . . , xd),(d + 1 se includiamo la soglia nel vettore dei pesi x′ ≡ (x0, x1, . . . , xd))

NH unita nascoste (con output y ≡ (y1, . . . , yNH))

c unita di output: dimensione dei dati in output z = (z1, . . . , zc) edimensione degli output desiderati t = (t1, . . . , tc)

wji peso dalla unita di ingresso i alla unita nascosta j (wj e il vettorepesi dell’unita nascosta j)

wkj peso dalla unita nascosta j alla unita di output k (wk e il vettorepesi dell’unita di output k)

Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 3 / 16

Page 4: Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III) Corso di AA, anno 2017/18, Padova Fabio Aiolli 08 Novembre 2017 Fabio Aiolli Reti Neurali

Calcolo gradiente per i pesi di una unita di output

∂E

∂wk j

=∂

∂wk j

[1

2cN

N∑s=1

c∑k=1

(t(s)k − z

(s)k )2

]

=1

2cN

N∑s=1

∂wk j

[c∑

k=1

(t(s)k − z

(s)k )2

]

=1

2cN

N∑s=1

2(t(s)

k− z

(s)

k)∂

∂wk j

[(t

(s)

k− z

(s)

k)]

=1

cN

N∑s=1

(t(s)

k− z

(s)

k)∂

∂wk j

[t

(s)

k− σ(wk · y

(s))]

= − 1

cN

N∑s=1

(t(s)

k− z

(s)

k)σ′(wk · y

(s))y(s)

j

= − 1

cN

N∑s=1

(t(s)

k− z

(s)

k)zk(1− zk)y

(s)

j

Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 4 / 16

Page 5: Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III) Corso di AA, anno 2017/18, Padova Fabio Aiolli 08 Novembre 2017 Fabio Aiolli Reti Neurali

Calcolo gradiente per i pesi di unita nascoste

∂E

∂wj i

=∂

∂wj i

[1

2cN

N∑s=1

c∑k=1

(t(s)k − z

(s)k )2

]

=1

2cN

N∑s=1

c∑k=1

∂wj i

[(t

(s)k − z

(s)k )2

]=

1

2cN

N∑s=1

c∑k=1

2(t(s)k − z

(s)k )

∂wj i

[−z(s)

k

]

= − 1

cN

N∑s=1

c∑k=1

(t(s)k − z

(s)k )σ′(wk · y(s))

∂wj i

NH∑j=1

wkjy(s)j

= − 1

cN

N∑s=1

c∑k=1

(t(s)k − z

(s)k )σ′(wk · y(s))wkj

∂wj i

[y

(s)

j

]Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 5 / 16

Page 6: Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III) Corso di AA, anno 2017/18, Padova Fabio Aiolli 08 Novembre 2017 Fabio Aiolli Reti Neurali

Calcolo gradiente per i pesi di unita nascoste

= − 1

cN

N∑s=1

c∑k=1

(t(s)k − z

(s)k )σ′(wk · y(s))wkj

∂wj i

[y

(s)

j

]= − 1

cN

N∑s=1

c∑k=1

(t(s)k − z

(s)k )σ′(wk · y(s))wkjσ

′(wj · x(s))

∂wj i

[wj · x

(s)]

= − 1

cN

N∑s=1

c∑k=1

(t(s)k − z

(s)k )σ′(wk · y(s))wkjσ

′(wj · x(s))x

(s)

i

= − 1

cN

N∑s=1

σ′(wj · x(s))x

(s)

i

c∑k=1

(t(s)k − z

(s)k )wkjσ

′(wk · y(s))

= − 1

cN

N∑s=1

y(s)

j(1− y

(s)

j)x

(s)

i

c∑k=1

(t(s)k − z

(s)k )z

(s)k (1− z

(s)k )wkj

Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 6 / 16

Page 7: Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III) Corso di AA, anno 2017/18, Padova Fabio Aiolli 08 Novembre 2017 Fabio Aiolli Reti Neurali

Discesa Batch vs. Stocastica

Batch. Finche la condizione di terminazione non e soddisfatta:1 Calcola ∇ES [w]2 w← w − η∇ES [w]

Stocastica. Finche la condizione di terminazione non e soddisfatta,per ogni esempio di training s:

1 Calcola ∇Es [w]2 w← w − η∇Es [w]

Mini-batch. Finche la condizione di terminazione non e soddisfatta,consideriamo un sottoinsieme di esempi Q ⊆ S :

1 Calcola ∇EQ [w]2 w← w − η∇EQ [w]

dove in generale EQ [w] = 12cN

∑s∈Q

∑ck=1(t

(s)k − z

(s)k )2,Q ⊆ S .

Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 7 / 16

Page 8: Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III) Corso di AA, anno 2017/18, Padova Fabio Aiolli 08 Novembre 2017 Fabio Aiolli Reti Neurali

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)

Finche non e verificata la condizione di terminazione:Per ogni (x, t) ∈ S ,

1 Presenta x alla rete e calcola i vettori y e z2 Per ogni unita di output k,

δk = zk(1− zk)(tk − zk)

∆wkj = δkyj

3 Per ogni unita nascosta j ,

δj = yj(1− yj)c∑

k=1

wkjδk

∆wji = δjxi

4 Aggiorna tutti i pesi: wsq ← wsq + η∆wsq

Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 8 / 16

Page 9: Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III) Corso di AA, anno 2017/18, Padova Fabio Aiolli 08 Novembre 2017 Fabio Aiolli Reti Neurali

Fase Forward

Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 9 / 16

Page 10: Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III) Corso di AA, anno 2017/18, Padova Fabio Aiolli 08 Novembre 2017 Fabio Aiolli Reti Neurali

Fase Backward

Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 10 / 16

Page 11: Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III) Corso di AA, anno 2017/18, Padova Fabio Aiolli 08 Novembre 2017 Fabio Aiolli Reti Neurali

Esempio di funzione errore

Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 11 / 16

Page 12: Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III) Corso di AA, anno 2017/18, Padova Fabio Aiolli 08 Novembre 2017 Fabio Aiolli Reti Neurali

Universalita delle reti multi-strato

Teorema (Pinkus, 1996) semplificato

Data una rete feed-forward con un solo livello nascosto, una qualsiasifunzione continua f : Rn → R, un qualunque ε > 0 piccolo a piacere, perun’ampia classe di funzioni di attivazione, esiste sempre un intero M taleche, la funzione g : Rn → R calcolata dalla rete usando almeno M unitanascoste approssima la funzione f con tolleranza ε, ovvero:

maxx∈Ω|f (x)− g(x)| < ε

Notare che il teorema afferma l’esistenza di una rete con M unita nascosteche approssima la funzione target con la tolleranza desiderata ma non diceniente su come tale numero M possa essere calcolato!

Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 12 / 16

Page 13: Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III) Corso di AA, anno 2017/18, Padova Fabio Aiolli 08 Novembre 2017 Fabio Aiolli Reti Neurali

Alcuni problemi..

La scelta della tipologia della rete determina lo spazio delle ipotesiche si utilizza. Con architetture a 3 livelli (input, hidden, output), ilnumero delle unita nascoste determina la complessita dello spaziodelle ipotesi

La scelta del passo di discesa (valore di η) puo essere determinanteper la convergenza:

L’apprendimento e generalmente lento (ma il calcolo dell’output aregime e veloce)

Minimi locali (anche se efficace in pratica)

Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 13 / 16

Page 14: Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III) Corso di AA, anno 2017/18, Padova Fabio Aiolli 08 Novembre 2017 Fabio Aiolli Reti Neurali

Evitare minimi locali

Aggiunta di un termine (chiamato momento) alla regola di update deipesi. In pratica viene aggiunto un contributo che deriva dal passoprecedente, imponendo una specie di inerzia al sistema

L’uso di apprendimento stocastico (randomizzando sugli esempi)invece che batch puo facilitare l’uscita da minimi locali

Apprendimento di reti diverse sugli stessi dati con inizializzazionidifferenti e selezione della rete piu efficace (per esempio valutando suun validation set). Alternativamente, possiamo considerare un”comitato” di reti in cui la predizione e una media (eventualmentepesata) delle predizioni delle singole reti

Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 14 / 16

Page 15: Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III) Corso di AA, anno 2017/18, Padova Fabio Aiolli 08 Novembre 2017 Fabio Aiolli Reti Neurali

Rappresentazione dei livelli nascosti

Una importante caratteristica delle reti neurali multi-strato e chepermettono di scoprire utili rappresentazioni (alternative all’input) dei datidi ingresso. In particolare, l’output delle unita nascoste e una efficacerappresentazione dell’input che permette una piu semplice separazione deidati in output. Nell’esempio si nota come la rappresentazione (encoding)appreso assomigli all’encoding binario su 3 bit ([100, 011, 010, . . . ]).

Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 15 / 16

Page 16: Reti Neurali (Parte III) - UniPDaiolli/corsi/1718/aa/Lez10_rn3.pdf · Reti Neurali (Parte III) Corso di AA, anno 2017/18, Padova Fabio Aiolli 08 Novembre 2017 Fabio Aiolli Reti Neurali

Overfitting

Aumentando il numero di updates sui pesi, l’errore sul validation setprima diminuisce poi incrementa. Perche?All’inizio, con valori dei pesi piccoli in modulo (molto simili tra diloro) si riescono a descrivere superfici di decisione piu ”lisce”.All’aumentare del valore assoluto la complessita della superfice didecisione aumenta e con essa anche la possibilita di avere overfittingSoluzioni: Monitorare l’errore su un insieme di dati di validazione,oppure utilizzare un termine aggiuntivo nella funzione erroredipendente dalla norma dei pesi (regolarizzazione).

Fabio Aiolli Reti Neurali (Parte III) 08 Novembre 2017 16 / 16