Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica La Corte in Rete
 
I corsi di Scienze Matematiche Fisiche e Naturali
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Roberto Prevete » 12.Funzione di errore


Introduzione

In questa lezione vedremo:

  • Perchè utilizziamo come possibile funzione di errore:

E= (1/2) ∑ nk [yk(xn,w) -tkn]2

  • Alcune osservazioni su tale funzione di errore.
  • Utilizzo del training set e del validation set durante il processo di apprendimento.

Funzione di errore somma dei quadrati

Somma dei quadrati

Come possibile funzione di errore abbiamo introdotto la somma dei quadrati:

E= (1/2) ∑ nk [yk(xn,w) -tkn]2

Ma perché minimizzare tale funzione di errore ci assicura di ottenere un buon insieme di parametri della rete?

Funzione di errore somma dei quadrati (segue)

Somma dei quadrati

Tale funzione di errore derivate dal principio di massima verosimiglianza.

Principio di massima verosimiglianza: dato un training set {xn,tn}, estratto da una data funzione h(x), vogliamo massimizzare la probabilità di avere proprio tale training set nel caso in cui al posto della funzione h(x) mettiamo un funzione modello y(xn,w) (la nostra rete neurale).

Naturalmente variare, e quindi massimizzare, tale probabilità significa variare i parametri del modello (i pesi e i bias della rete).

Funzione di errore somma dei quadrati (segue)

Somma dei quadrati

Estratto un training set, allora, quale è la sua verosimiglianza?

La verosimiglianza, ℒ, del training set può essere scritta nel seguente modo:

Sia p(x,t) la la densità di probabilità di avere la coppia di valori (x,t) allora la verosimiglianza del training set è data da:

ℒ =Πnp(xn,tn)

Ricordo che la probabilità di avere x appartenente ad un dato sottoinsieme X, x ∈X, e t appartenente ad un dato sottoinsieme T, t ∈T, è data da:

P(x ∈X,t _T)= ∫x ∈Xt ∈T p(x,t) dx dt

Funzione di errore somma dei quadrati (segue)

Somma dei quadrati

Dato, allora

ℒ=Πnp(xn,tn)

E assumendo che i punti (xn,tn) siano indipendenti si ottiene

ℒ =Πnp(xn,tn)= Πnp(tn/xn) p(xn)

Dato che vogliamo massimizzare la probabilità di avere il training set dato, possiamo equivalenetemente minimizzare la seguente funzione:

E=-ln ℒ

Funzione di errore somma dei quadrati (segue)

Somma dei quadrati

La funzione E=-ln ℒ è allora la nostra funzione di errore da minimizzare

Tale funzione di errore può essere suddivisa in due termini, infatti:

E=-ln ℒ=-lnΠnp(tn/xn) p(xn) da qui
E= -∑ n ln p(tn/xn) p(xn) da qui
E= -∑ n ln p(tn/xn) – ∑ n ln p(xn)

Ottenendo così E come somma di da due termini E’ = -∑ n ln p(tn/xn) ed E” = – ∑ n ln p(xn)

Funzione di errore somma dei quadrati (segue)

Somma dei quadrati

Dato E come somma dei due termini E’ = -∑ n ln p(tn/xn) ed E” = – ∑ n ln p(xn), osserviamo che:

Il secondo termine non dipende dai parametri della rete (cioè indipendentemente dalla scelta dei parametri w di y(xn,w) la densità di probabilità a priori di x sarà sempre la stessa).

Quindi possiamo minimizzare solo la funzione

E=-∑ n ln p(tn/xn)

dove abbiamo rinominato E’ con E.

Funzione di errore somma dei quadrati (segue)

Somma dei quadrati

Supponendo che le componenti del vettore tn=(tkn,tkn, …,tcn) siano tutte variabili statisticamente indipendenti, ancora possiamo scrivere:

E=-∑ n ln p(tn/xn) = -∑ n ln Πk p(tkn/xn)= -∑ nk ln p(tkn/xn)

Quindi risulta:

E=-∑ nk ln p(tkn/xn)

Funzione di errore somma dei quadrati (segue)

Somma dei quadrati

Soffermiamoci, prima di andare avanti, su quale è la “distribuzioni” delle variabili target.

Ciascuna variabile target può essere scritta come

  • tk= hk(x) + εk
  • Dove hk(x) è la componente k della funzione che vogliamo modellare, e
  • εkè l’errore su tale componente.

Assumendo che εk abbia una distribuzione normale, possiamo scrivere

p(εk)= exp(-εk2/2σ2)/(√2πσ)

Funzione di errore somma dei quadrati (segue)

Somma dei quadrati

Dal considerare p(εk)= exp(-εk2/2σ2)/(√2πσ), allora anche la variabile tk assumerà una distribuzione gaussiana con centro hk(x) e deviazione standard σ.

Possiamo scrivere, allora, che

p(tkn/xn)= exp(-[yk(xn,w) -tkn]2/2σ2)/(√2πσ)

dove abbiamo sostituito hk(x) con il suo modello yk(xn,w)

Funzione di errore somma dei quadrati (segue)

Somma dei quadrati

Infine possiamo dedurre quanto segue:

  • E= -∑ nk ln exp(-[yk(xn,w) -tkn]2/2σ2)/(√2πσ)
  • E= -∑ nk ln exp(-[yk(xn,w) -tkn]2/2σ2) + Nd ln(√2πσ)
  • E= ∑ n=1..Nk=1..d [yk(xn,w) -tkn]2/2σ2) + Nd ln(√2πσ)

Quindi la funzione di errore è ancora una volta riscritta come somma di due termini.

Funzione di errore somma dei quadrati (segue)

Somma dei quadrati

Dato che il termine Nd ln(√2πσ) è indipendente dai parametri della rete, risulta che la funzione di errore da minimizzare è:

E= (1/2) ∑ nk [yk(xn,w) -tkn]2

Dove abbiamo omesso il termineσ2 (o analogamente abbiamo supposto σ=1) ottenendo così la classica funzione di errore somma dei quadrati.

Funzione di errore

Alcune osservazioni

Come errore sul test set, possiamo utilizziamo la seguente funzione di errore:

E’=(1/N’)∑ nk [yk(xn,w*) -tkn]2

N’ è il numero di elementi del test set.

Tale errore risulta indipendente dal numero di elementi del test set.

Funzione di errore (segue)

Alcune osservazioni

Come errore sul test set, possiamo anche utilizzare l’errore quadratico medio (RMS, Root Mean Square):

ERMS=∑ nk [yk(xn,w*) -tkn]2/∑ nk [yk(xn,w*) -mk]2

Dove w*è il vettore di pesi della rete già addestrata e m è il vettore valore medio dei target del test set, cioè:

mk=(1/N’) ∑ n tnk e N’ è il numero di elementi del test set.

Tale errore risulta indipendente dal range di variazione dei dati.

Funzione di errore (segue)

Alcune osservazioni

Più in generale possiamo utilizzare, su training, validation e test set, funzioni di errore di tipo diverso.

Ad esempio

nk [yk(xn,w*) -tkn]p

Dove p è un parametro compreso tra 0 e 1.

Tali funzioni, ad esempio, per alcuni problemi ci permettono di raggiungere una migliore soluzione al problema.

Funzione di errore (segue)

Alcune osservazioni

Nel processo di addestramento di una rete neurale, e quindi nella ricerca dei parametri che rendono minimo il valore della funzione di errore, possiamo “incappare” in dei minimi locali.

In altre parole, la funzione di errore al variare dei parametri w può presentare più minimi, ma non tutto i minimi risultano una “buona soluzione” del nostro modello, e…

Nulla ci garantisce che il processo di apprendimento non ci faccia cadere in un minimo locale che non è una “buona soluzione” per il nostro problema.

Funzione di errore (segue)

Alcune osservazioni

Quindi uno dei problemi da risolvere quando minimizziamo una funzione di errore è di riuscire a “sfuggire” dai minimi locali e arrivare al minimo globale o in prossimità di esso.

Allora:

Non è detto che riusciamo a trovare il minimo globale dell’errore sul training set

Inoltre:

Non è detto che il minimo globale dell’errore sul training set sia la migliore soluzione, in quanto dobbiamo trovare un “giusto compromesso” tra valore dell’errore sul training set e valore dell’errore sul validation set.

Funzione di errore (segue)

Un esempio di algoritmo di apprendimento on-line

Vediamo, allora, come aggiustare i pesi della rete mostrando un algoritmo come esempio.


  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion