Funzioni di errore in Reti
Neurali
Roberto Tagliaferri
Dipartimento di Matematica ed Informatica
Università di Salerno
84081 Baronissi (Sa)
e-mail robtag@unisa.it
Corso di dottorato: Apprendimento automatico e
Pattern Recognition statistico
Funzioni di errore
Introduzione
Errore somma-di-quadrati
Somma-di-quadrati per classificazione
Cross-entropia per due classi
Cross-entropia per più classi
Funzioni di errore:
introduzione
"
Per problemi di regressione, lo scopo è di modellare la
distribuzione delle variabili output condizionate sulle
variabili input (con la funzione di errore somma-diquadrati)
"
Per problemi di classificazione, lo scopo è di modellare
le probabilità a posteriori delle variabili output
condizionate sulle variabili input (con la funzione di errore
somma-di-quadrati che non va altrettanto bene)
"
Scopo del training non è memorizzare i dati di training
ma modellare il generatore dei dati per ottimizzare la
generalizzazione della rete sui nuovi input
"
La descrizione più generale e completa del generatore
h(x) è data in termini della pdf p(x, t) dello spazio
congiunto input-target
Funzioni di errore:
introduzione
"
In questi problemi è conveniente decomporre la pdf
congiunta come
p x , t = p t∣x p x
dove p(t |x) è la pdf di t dato che x ha preso un particolare
valore e p(x) è la pdf non condizionata di x data da
p x =∫ p t , x d t
"
La maggioranza delle funzioni di errore per reti neurali
multi-strato può essere motivata dal principio di massima
verosimiglianza
"
Per un insieme di dati di training {xn, t n}, la
verosimiglianza può essere scritta come
₤=∏ p x , t =∏ p t ∣x
n
n
n
n
n
n
p xn
dove abbiamo assunto che ciascun punto (xn, t n) è preso
indipendentemente dalla stessa distribuzione
Funzioni di errore: introduzione
"
Poiché la funzione logaritmo è monotona, invece di
massimizzare la verosimiglianza, si può minimizzare la
funzione
E=−ln ₤=−∑ ln p t n∣x n −∑ ln p x n
n
"
n
E è chiamata funzione di errore e una rete neurale feed-
forward è un sistema per modellare le pdf condizionali
p(t |x)
"
Poiché il secondo termine non dipende dai parametri
della rete, possiamo eliminarlo dalla funzione di errore:
E=−∑ ln p t ∣x
n
n
"
n
Dall'indipendenza dei dati segue che la funzione è la
somma di termini errore ciascuno dato da un input
"
Differenti pdf differenti funzioni di errore
"
Per problemi di interpolazione i t n sono quantità
continue
"
Per problemi di classificazione i t n sono label di classe o
probabilità di appartenenza a classi
La funzioni di errore somma-diquadrati
"
Consideriamo di avere c variabili target tk con k = 1, ..., c
e che la distribuzione delle differenti variabili target sia
indipendente: allora possiamo scrivere
c
p t∣x =∏ p t k∣x
k =1
"
Supponiamo che la distribuzione dei target sia gaussiana
"
Supponiamo, inoltre, che la variabile target tk si possa
scrivere come una funzione deterministica di x sommata
ad un errore gaussiano
t k =h k x k
"
Supponiamo che gli errori k abbiano una distribuzione
con media 0 e varianza 2 indipendente da x o k
2k
1
p k =
exp −
2 1/ 2
2
2
2
La funzioni di errore somma-diquadrati
"
Vogliamo modellare la funzione hk (x) con una rete
neurale con output yk (x ; w)
"
Usando le ultime due equazioni otteniamo
1
p t k∣x =
exp −
2 1/ 2
2
2
{ y k x ; w −t k }
2
2
dove abbiamo sostituito hk (x) con yk (x ; w)
"
Sostituendo quest'ultima espressione in
c
p t∣x =∏ p t k∣x
k =1
e poi in
E=−∑ ln p t ∣x
n
n
n
otteniamo
N
c
1
Nc
n
n 2
E=
y
x
;
w
−t
N
c
ln
ln 2
k}
2 ∑∑{ k
2
2 n=1 k =1
(1)
La funzioni di errore somma-diquadrati
"
Per i nostri scopi di minimizzazione dell'errore, il secondo
ed il terzo termine della parte destra di (1) possono essere
eliminati perché indipendenti da w
"
Inoltre anche 1/2 si può eliminare per lo stesso motivo
"
Otteniamo allora la funzione di errore somma-di quadrati
N
c
N
1
1
n
n 2
n
n 2
E= ∑ ∑ { y k x ; w −t k } = ∑ ∥ y x ; w −t ∥
2 n=1 k =1
2 n=1
"
Avendo trovato il valore dei pesi ottimo w* che rende
minimo l'errore, il valore ottimo di può essere trovato
derivando E rispetto a in (1) ed uguagliando a 0,
ottenendo
N
c
1
2
n
∗
n 2
=
y k x ; w −t k }
{
∑
∑
N c n=1 k =1
Conclusione 1
"
Il valore ottimo di 2 è proporzionale al valore residuo
della funzione somma-di-quadrati nel suo minimo
La funzioni di errore somma-diquadrati
Conclusione 2
"
Abbiamo derivato la funzione somma-di-quadrati dal
principio di massima verosimiglianza con l'assunzione di
dati target distribuiti in modo gaussiano
"
Ovviamente l'errore somma-di-quadrati non richiede che i
dati target siano distribuiti in modo gaussiano
"
Se usiamo tale funzione di errore, allora non possiamo
distinguere tra la distribuzione vera e qualunque altra
distribuzione con la stessa media e varianza
La funzioni di errore somma-diquadrati
Conclusione 3
"
Spesso è utile usare funzioni di errore diverse per il
training ed il test
"
Per esempio, in un problema di interpolazione, è possibile
addestrare la rete con una funzione di errore somma-diquadrati del tipo
N
1
n
n 2
E= ∑ ∥ y x ; w −t ∥
2 n=1
dove N è il numero di pattern nel training set
La funzioni di errore somma-diquadrati
Conclusione 3 (continua)
"
Il test, invece, viene fatto con l'errore "root-mean-square"
(RMS) della forma
N'
E
RMS
=
∑∥y x
n
∗
; w −t
n=1
N'
∑ ∥t
n=1
n
n 2
∥
2
−t ∥
dove N ' è il numero di pattern nel test set e
N'
t =
"
1
n
'∑t
N n
L'errore RMS ha il vantaggio che non cresce con la taglia
del data set
"
Ha valore 1 se la rete predice i dati di test "in media" e
valore 0 se li predice perfettamente
La funzioni di errore somma-diquadrati
Unità output lineari
"
La funzione di un MLP o di una rete RBF può essere
scritta nella forma
y k x ; w =g a k
M
a k =∑ w kj z j x ; w
con
j=0
dove g() è la funzione di attivazione delle unità output,
{wkj} è l'insieme dei pesi connessi agli output e w~ tutti gli
altri parametri della rete
"
La derivata dell'errore somma-di-quadrati rispetto ad ak è
N
c
∂E
∂ 1
n
=
y
{
∑
∑
k −t
∂ a k ∂ a k 2 n=1 k =1
"
n 2
k
N
n
n
=
g
'
a
y
−t
} ∑ k{ k k}
n=1
Se scegliamo attivazioni di output lineari, g(a) = a, la
derivata assume un forma semplice del tipo
N
∂E
n
n
=∑ { y k −t k }
∂ a k n=1
La funzioni di errore somma-diquadrati
Unità output lineari (continua)
"
La scelta di funzioni di attivazione lineari delle unità
output, permette, quindi, la minimizzazione rispetto ai pesi
{wkj} (una volta fissati i parametri w~ ) che può essere
risolta come un problema di ottimizzazione lineare in
forma chiusa come è stato già fatto per le reti lineari
La funzioni di errore somma-diquadrati
Interpretazione degli output della rete
"
Otterremo un risultato importante per l'interpretazione
degli output di una rete neurale che ha appreso
minimizzando la funzione di errore somma-di-quadrati
"
Si può dimostrare che gli ouput approssimano la media
condizionale dei dati target
"
Questo risultato ha molte conseguenze importanti per
applicazioni pratiche di reti neurali
"
Capire le sue implicazioni porta ad evitare errori comuni
e ad un uso più effettivo delle tecniche neurali
La funzioni di errore somma-diquadrati
Interpretazione degli output della rete
"
In figura c'è un esempio schematico della proprietà
precedente
Stimare le probabilità a
posteriori
Quando usiamo una rete neurale per classificazione
abbiamo due casi:
la rete neurale rappresenta un discriminante non-lineare
la rete neurale modella le P. a posteriori dell'appartenenza
di classe
In questo secondo approccio, il numero di neuroni output è
uguale al numero di classi e l'attivazione dell'unità k
rappresenta la probabilità P(Ck|x) per la classe k e l'input x
Cross-entropia per due classi
Consideriamo una rete con un solo output y(x) e codifica:
t =1 se x appartiene a C1 e t = 0 se x appartiene a C2
Vogliamo che la y(x) rappresenti la P. a posteriori
y x =P C 1∣x
mentre la P. a posteriori per la classe C2 è data da
P C 2∣x =1−P C 1∣x =1− y x
Combinando le espressioni precedenti, otteniamo la P. di
osservare uno dei valori target
1−t
p t∣x = y t 1− y
che è un caso particolare della distribuzione di Bernoulli
La verosimiglianza di osservare i dati del training set,
assumendo i punti presi indipendentemente da questa
distribuzione è data da
n
n t
n
n 1−t
∏ y 1− y
n
Cross-entropia per due classi
Come al solito è più conveniente il logaritmo negativo
della verosimiglianza
E=−∑ {t n ln y n 1−t n ln 1− y n }
14
n
Questa funzione di errore è la cross-entropia
Differenziando tale funzione rispetto a y n, otteniamo
n
n
∂E
y −t
=
n
n
n
∂y
y 1− y
il cui minimo assoluto occorre quando y n =t n
∀n
Se consideriamo la funzione logistica
1
g a≡
1exp−a
con derivata
g ' a=g a1−g a
ed una rete neurale a singolo output y = g(a), combinando
le espressioni precedenti, otteniamo
n
∂
E
∂
E
∂
y
n
n ∂E
n
n
≡ n= n
=g
'
a
=
y
−t
n
n
∂a ∂ y ∂a
∂y
15
Cross-entropia per due classi
In (15) n è la quantità di errore retro-propagata per
calcolare le derivate dell'errore rispetto ai pesi della rete
La (15) ha la stessa forma di quella ottenuta con funzione
di errore somma-di-quadrati e attivazione output lineare
Abbiamo visto che la funzione di errore ha il suo minimo
quando y n=t n
∀ n ed assume il valore
E min =−∑ {t n ln t n 1−t n ln 1−t n }
n
Per lo schema di codifica 1-di- c, questo errore va a 0
La funzione di errore cross-entropia (14) può essere usata
anche per variabili t n continue nel range (0,1), che
rappresentano probabilità di appartenenza alle classi output
In questo caso la (14) non si azzera e la quantità Emin si
può sottrarre da (14) per ottenere un errore dato da
E =−∑
n
{
1− y
y
n
n
t ln n 1−t ln
t
1−t n
n
n
}
Cross-entropia per due classi
Conclusioni
Emin è indipendente dagli output della rete, e, poiché in
questo modo non altera la locazione del minimo, non ha
effetti sul training della rete
L'errore modificato ha il minimo uguale a 0
indipendentemente dal particolare training set usato
Come esempio dell'interpretazione degli output come
probabilità, illustriamo un semplice problema con due
classi, una variabile output e con le pdf classi-condizionali
date da una mistura di gaussiane
Cross-entropia per due classi
Esempio:
interpretazione degli output come probabilità:
illustriamo un semplice problema con due classi, una
variabile output e con le pdf classi-condizionali date da una
mistura di gaussiane
Cross-entropia per due classi
Esempio: interpretazione degli output come probabilità:
illustriamo un semplice problema con due classi, una
variabile output e con le pdf classi-condizionali date da una
mistura di gaussiane
Cross-entropia per due classi
Proprietà dell'errore cross-entropia
Se scriviamo l'output della rete per il pattern n come
y n = t n+ n, allora l'errore cross-entropia diventa
E =−∑
n
{
n
n
t n ln 1 n 1−t n ln 1−
t
1−t n
}
cosicché la funzione di errore dipende dagli errori relativi
degli output della rete
La minimizzazione della funzione di errore cross-entropia
porta ad errori relativi simili sia per valori piccoli che
grandi dei target
Invece l'errore somma-di-quadrati, che dipende dai
quadrati degli errori assoluti, porta ad avere errori assoluti
simili per ciascun pattern e, quindi, errori relativi grandi per
valori di output piccoli
Questo implica che l'errore cross-entropia è migliore per
la stima di probabilità piccole
Cross-entropia per più classi
Consideriamo una rete con c output yk(x) e codifica:
tkn =1 se xn appartiene a Ck e tkn = 0 se xn altrimenti, ovvero
tkn = kl per xn appartenente a Cl
Il valore della pdf per il pattern xn è data da
c
p t ∣x =∏ y
n
n
k =1
n
n tk
k
Se prendiamo il logaritmo negativo della verosimiglianza
otteniamo la funzione errore della forma
N
c
E=−∑ ∑ t nk ln y nk
k =1
n
17
Il minimo assoluto di questa funzione si ha quando yk = tkn
per tutti i valori di k e n
La funzione di errore assume nel minimo il valore
N
c
n
k =1
E min =−∑ ∑ t nk ln t nk
che è 0 per uno schema di codifica 1-di-c
Cross-entropia per più classi
La funzione di errore (17) può essere usata anche per
variabili tkn continue nel range (0,1), che rappresentano
probabilità di appartenenza alle classi output
In questo caso la (17) non si azzera e la quantità Emin si
può sottrarre da (17) per ottenere un errore dato da
N
c
E=−∑ ∑ t nk ln y nk /t nk
n
18
k =1
che è non-negativo ed uguale a 0 quando ykn = tkn per tutti i
valori di k e n
Se vogliamo che gli output siano probabilità, scegliamo
una generalizzazione della funzione logistica della forma
yk=
expa k
∑k ' expa k '
19
nota come esponenziale normalizzato o funzione di
attivazione soft-max (Bridle, 1990)
Cross-entropia per più classi
La motivazione più forte per l'uso delle funzioni soft-max
per gli output della rete viene data dal fatto che possiamo
dimostrare che in questo caso le attivazioni dei neuroni
output sono P. a posteriori di appartenenza di classe