Funzioni di errore in Reti Neurali Roberto Tagliaferri Dipartimento di Matematica ed Informatica Università di Salerno 84081 Baronissi (Sa) e-mail [email protected] 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