• Non ci sono risultati.

Reti Neurali (Parte II) Corso di AA, anno 2017/18, Padova Fabio Aiolli 06 Novembre 2017

N/A
N/A
Protected

Academic year: 2021

Condividi "Reti Neurali (Parte II) Corso di AA, anno 2017/18, Padova Fabio Aiolli 06 Novembre 2017"

Copied!
11
0
0

Testo completo

(1)

Reti Neurali (Parte II)

Corso di AA, anno 2017/18, Padova

Fabio Aiolli

06 Novembre 2017

(2)

La regola Delta

L’algoritmo Perceptron trova un vettore dei pesi (iperpiano) capace di separare i dati solo se questi dati sono linearmente separabili

La regola Delta ` e una regola di aggiornamento dei pesi diversa da quella del Perceptron che ci permette di ottenere una soluzione che approssima al meglio il concetto target

In particolare, essa usa la discesa di gradiente per esplorare lo spazio

delle ipotesi e selezionare l’ipotesi che approssima meglio il concetto

target (minimizzando una funzione di errore di apprendimento,

opportunamente definita)

(3)

La regola Delta

Consideriamo un Perceptron SENZA la hard-threshold (attivazione lineare):

o(x) =

n

X

i =0

w i x i = w · x

e definiamo una misura dell’errore commesso (scarto quadratico medio) da un particolare vettore dei pesi w come:

E [w] = 1 2N

X

(x

(s)

,t

(s)

)∈S

(t (s) − o(x (s) )) 2

dove N ` e la cardinalit` a dell’insieme di apprendimento S

∀(x (s) , t (s) ) ∈ S , o(x (s) ) = t (s) ⇒ E [w] = 0 quindi... bisogna

MINIMIZZARE E [w] rispetto a w!

(4)

Minimizzazione con discesa di gradiente

Idea base: partire da un w random e modificarlo nella direzione contraria al gradiente (che indica la direzione di crescita di E [w]).

∇E [w] ≡ [ ∂w ∂E

0

, ∂w ∂E

1

, . . . , ∂w ∂E

n

], ∆w = −η∇E [w], ∆w i = −η ∂w ∂E

i

.

(5)

Calcolo del gradiente (caso attivazione lineare)

∂E

∂w i = ∂

∂w i

"

1 2N

N

X

s=1

(t (s) − o (s) ) 2

#

= 1

2N

N

X

s=1

∂w i h

(t (s) − o (s) ) 2 i

= 1

2N

N

X

s=1

2(t (s) − o (s) ) ∂

∂w i

h

t (s) − o (s) i

= 1

N

N

X

s=1

(t (s) − o (s) ) ∂

∂w i h

t (s) − w · x (s) i

(6)

Calcolo del gradiente (caso attivazione lineare)

∂E

∂w i = 1 N

N

X

s=1

(t (s) − o (s) ) ∂

∂w i h

t (s) − w · x (s) i

= 1

N

N

X

s=1

(t (s) − o (s) )



− ∂

∂w i h

w · x (s) i 

= − 1 N

N

X

s=1

(t (s) − o (s) ) ∂

∂w i

n

X

j =1

w j x j (s)

= − 1 N

N

X

s=1

(t (s) − o (s) )x i (s)

(7)

Algoritmo con discesa di gradiente

Gradient-Descent(S ,η):

Ogni esempio di apprendimento ` e una coppia (x, t) dove x ` e il vettore di valori in input e t ` e il valore desiderato in output (target). η ` e il

coefficiente di apprendimento (che ingloba il termine costante 1/N)

1

Assegna a w i valori piccoli random

2

Finch´ e la condizione di terminazione non ` e verificata:

(a) ∆w

i

← 0

(b) Per ogni (x, t) ∈ S :

(i) Presenta x al neurone e calcola l’output o(x) = w · x (ii) Per ogni i ∈ {1, . . . , n}:

∆w

i

← ∆w

i

+ η(t − o)x

i

(c) Per ogni i ∈ {1, . . . , n}:

w

i

← w

i

+ ∆w

i

(8)

Attivazione con sigmoide

(9)

Attivazione con sigmoide

Consideriamo ora un Perceptron con funzione di attivazione sigmoidale:

o(x) = σ(

n

X

i =0

w i x i ) = σ(w · x) = σ(y )

dove y = w · x and σ(y ) = 1+e 1

−y

.

Seguiamo lo stesso approccio di prima, ovvero vogliamo trovare il vettore dei pesi che minimizza lo scarto quadratico medio sul training set

utilizzando un algoritmo basato su discesa di gradiente.

A questo scopo si nota intanto che per la funzione σ() definita sopra vale la seguente relazione (verificare per esercizio):

∂σ(y )

∂y = σ(y )(1 − σ(y ))

(10)

Calcolo del gradiente (attivazione sigmoidale)

∂E

∂w i

= ∂

∂w i

"

1 2N

N

X

s=1

(t (s) − o (s) ) 2

#

= 1

2N

N

X

s=1

∂w i h

(t (s) − o (s) ) 2 i

= 1

2N

N

X

s=1

2(t (s) − o (s) ) ∂

∂w i h

t (s) − o (s) i

= 1

N

N

X

s=1

(t (s) − o (s) ) ∂

∂w i

h

t (s) − σ(y (s) ) i

= − 1 N

N

X

s=1

(t (s) − o (s) ) ∂

∂w i h

σ(y (s) )

i

(11)

Calcolo del gradiente (attivazione sigmoidale)

∂E

∂w i

= − 1 N

N

X

s=1

(t (s) − o (s) ) ∂

∂w i

h

σ(y (s) ) i

= − 1 N

N

X

s=1

(t (s) − o (s) ) ∂σ(y (s) )

∂y (s)

∂y (s)

∂w i

= − 1 N

N

X

s=1

(t (s) − o (s) ) ∂σ(y (s) )

∂y (s)

∂w i

h

w · x (s) i

= − 1 N

N

X

s=1

(t (s) − o (s) )σ(y (s) )(1 − σ(y (s) ))x i (s)

Quindi il punto 2.b.ii dell’algoritmo dato sopra ora diventa:

∆w i ← ∆w i + η(t − o)σ(y )(1 − σ(y ))x i

Riferimenti

Documenti correlati

Dare reti multi-strato basate su Perceptron con soglia hard e relativi pesi (senza usare apprendimento) che realizzino funzioni booleane semplici quali: A and (not B), A xor

Non ` e detto che converga ad un

Apprendimento di reti diverse sugli stessi dati con inizializzazioni differenti e selezione della rete pi` u efficace (per esempio valutando su un validation set)?.

Step 1 is justified by Cover’s theorem on separability, which states that non-linearly separable patterns may be transformed into a new feature space where the patterns are

Raccolta, analisi e pulizia dei dati Preprocessing e valori mancanti Studio delle correlazioni tra variabili Feature Selection/Weighting/Learning Scelta del predittore e Model

Neural Networks: nonlinear/linear neurons, number of hidden units, η, other learning parameters we have not discussed (e.g., momentum µ) Hold-out or Cross-Validation can be used

Transductive feature extraction with non-linear kernels Spectral Kernel Learning. Multiple

EasyMKL (Aiolli and Donini, 2015) is able to combine sets of weak kernels by solving a simple quadratic optimization problem with.