Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D La Corte in Rete
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Roberto Prevete » 15.Cross-entropy e variazioni sulla discesa del gradiente


Introduzione

Nella presente lezione parleremo di

  • Funzione di errore per problemi di classificazione.
  • Variazioni sulla discesa del gradiente, in particolare:
    • Resilient Propagation.
    • Quick Propagation.

Cross-entropy

In precedenza abbiamo ricavato l’errore somma dei quadrati

E=(1/2)∑nk(yk(xn;w) – tkn)2

partendo dall’ipotesi che il target t fosse una variabile continua generata da una funzione smooth a cui è addizionato un rumore Gaussiano.

Nel caso di un problema di classificazione a due classi t può assumere solo due valori, cioè t ε{0,1}.

Cross-entropy (segue)

Risulta più opportuno, allora, utilizzare la seguente funzione di errore:

E= – ∑n[tnln(yn)+(1-tn)ln(1-yn)]
(detta cross-entropy error)

Dove

  • yn rappresenta l’output della rete relativo alla n-sima coppia del training set e
  • tn il relativo valore target.

Osservo che in questo caso stiamo considerando un problema a due classi e, quindi, una rete con un solo nodo di output.

Cross-entropy (segue)

La funzione di errore:

E= – ∑n[tnln(yn)+(1-tn)ln(1-yn)]
(detta cross-entropy error)

è sempre giustificata andando a massimizzare la verosimiglianza.

Quindi:

L= ∏np(tn, xn)=∏np(tn/xn)p(xn)

considerando

E= – ln L = – ln ∏np(tn/xn)p(xn) = -∑n ln p(tn/xn) – ∑nln p(xn)

Cross-entropy (segue)

Dato, allora, la funzione di errore

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

possiamo minimizzare solo la parte che dipende dai parametri della rete, cioè definire la seguente nuova funzione di errore:

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

Cross-entropy (segue)

Come già detto in precedenza noi vorremmo che l’uscita y della rete rappresenti

  • la probabilità a posteriori P(C1/x) per la classe C1 (la probabilità per la classe C2 sarà data da P(C2/x)=1-y).
  • Allora se indichiamocon t=1 il caso in cui il vettore di input appartiene a C1 e con t=0 il caso in cui il vettore appartiene alla classe C2, possimo esprimere la probabilità di osserevare entrambi i valori targete con la seguente formula:

p(t/x)= yt(1-y)1-t

Cross-entropy (segue)

Data allora

p(t/x)= yt(1-y)1-t

la probabilità di osservare t=1 quando y=1, ad esempio, risulta

p(1/x)= p(1/x)= 11(1-1)1-1=1

Nota che questo e’ un caso particolare della distribuzione binomiale.

Cross-entropy (segue)

Quindi:

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

E =-∑n ln (yn)tn(1-yn)(1-tn)

E= -∑n (yn)tn – ∑nln (1-yn)(1-tn)

E =-∑n tn (yn) – ∑n (1-tn) ln (1-yn)

Ed infine:

E = – ∑n [tn (yn) + (1-tn) ln (1-yn)]

Cross-entropy (segue)

Nel caso della funzione di errore cross-entropy le formule per il calcolo della derivate dell’errore rispetto ai pesi resteranno, ovviamente, invariate cioè

∂ En /∂wij= zj δi

Per le unità di output (in questo caso unica):

δ=(∂ En /∂a)= g’(a) (∂ En /∂y)

Per le restanti unità:

δj=(∂ En /∂aj)=g’(aj)∑kwkj* δk

Cross-entropy (segue)

Nel caso della funzione di errore cross-entropy le formule per il calcolo della derivate dell’errore rispetto ai pesi resteranno, ovviamente, invariate, ma cambiano quelle per il calcolo dei delta delle unità di output.

Si ha cioè:

  • (∂ En /∂y)= (yn-tn)/(yn (1-yn)) e
  • δ=g’(a) (yn-tn)/(yn (1-yn))

Cross-entropy (segue)

Si noti che:

Se scegliamo come funzione di output (per il nodo di uscita) l’identità, si ottiene:

δ=(yn-tn)/(yn (1-yn))

Quindi considerando una rete neurale feed-forward con funzione di output dei nodi di output pari all’identita, nel caso della funzione cross-entropy cambiano le formule per calcolare i delta. Ma se cambiamo la funzione di output, cosa succede?

Cross-entropy (segue)

Se, invece, scegliamo come funzione di output la sigmoide

g(x)=s(x)= 1/(1+ exp(-x))

dato che s’(a)= s(a)(1-s(a)) si ottiene:

  • δ=s’(an) (yn-tn)/(yn (1-yn)) =
  • s’(a) (yn-tn)/(yn (1-yn)) =
  • s(an)(1-s(an))(yn-tn)/(yn (1-yn))

ricordando che s(an) è proprio yn, allora

  • δ= yn(1-yn)(yn-tn)/(yn (1-yn))= yn – tn

cioe’ lo stesso risultato del caso in cui consideriamo contemporaneamente come
funzione di errore la somma dei quadrati e come funzione di output (dei nodi di uscita) l’identità.

Variazioni sulla discesa del gradiente

Il momento

Possiamo calcolare la variazione del peso come dipendente dalla variazione precedente, cioè:

Δw(t)ij=-η∂E/∂wijj+μ Δw(t-1)ij

dove μ è detto coefficiente del momento e μ Δw(t-1)ij momento.

Variazioni sulla discesa del gradiente (segue)

Il momento

Cosa comporta tale variazione della regola della discesa del gradiente?
Cerchiamo di capire cosa accade con l’aggiunta del momento.

Partiamo definendo

Δwij = Δw(1)ij+ Δw(2)ij+ Δw(3)ij+ …Δw(k)ij

Dove Δwij è la variazione del peso dopo k cicli di apprendimento e Δw(i)ij la variazione del peso al i-simo ciclo di apprendimento.

Variazioni sulla discesa del gradiente (segue)

Il momento

Allora se supponiamo che la derivata non cambia (cioè se siamo in una regione in cui la superficie di errore ha curvatura bassa), abbiamo

  • Δwij= -η∂E/∂wij (1+μ+ μ2+…)

Se μ è scelto tra zero ed uno, cioè 0< μ<1, si ha allora che possiamo approssimare la variazione del peso dopo k cicli di apprendimento (supposto k sufficientemente grande)
con

  • Δwij=-(η/1-μ)∂E/∂wij

Variazioni sulla discesa del gradiente (segue)

Il momento

Dalla formula Δwij=-(η/1-μ)∂E/∂wij
si evince che nel caso in cui durante il processo di apprendimento siamo in una zona della superficie di errore con curvatura bassa il termine momento, allora, ha l’effetto di incrementare la velocità di apprendimento da η a η/(1-μ) ∂E/∂wij

Al contrario, se siamo in una regione con alta curvatura nella quale la discesa del gradiente è oscillatoria, allora successivi contributi del termine momento tenderanno a elidersi e la velocità di apprendimento sarà vicino ad η.

Variazioni sulla discesa del gradiente (segue)

Scegliendo il parametro η

Un ovvio problema della discesa del gradiente è che la scelta dei parametri η e η è fissata a priori.

Ad esempio, una possibile modo per aggiornare il parametro η è, ad ogni ciclo del processo di apprendimento, è il seguente

ηnew= ρηold se ∂E/∂w<0 , ηnew=ρηold se ∂E/∂w<0

Dove il parametro ρ è scelto poco più grande che l’unità (un tipico valore è ρ=1,1), mentre il parametro σ è scelto abbastanza più piccolo che l’unità (un tipico valore è σ=0,5).

Variazioni sulla discesa del gradiente (segue)

Il momento

Dalla formula Δwij=-(η/1-μ)∂E/∂wij
si evince che nel caso in cui durante il processo di apprendimento siamo in una zona della superficie di errore con curvatura bassa il termine momento, allora, ha l’effetto di incrementare la velocità di apprendimento da η a η/(1-μ) ∂E/∂wij

Al contrario, se siamo in una regione con alta curvatura nella quale la discesa del gradiente è oscillatoria, allora successivi contributi del termine momento tenderanno a elidersi e la velocità di apprendimento sarà vicino ad η.

Variazioni sulla discesa del gradiente (segue)

Quick-propagation

Un altro possibile approccio si basa sull’idea di approssimare la superficie di errore, nei pressi di un minimo, con una parabola.

Sotto questa assunzione si ottiene la seguente formula:

Δwi(t+1)=[gi(t) / (gi(t-1)-gi(t))] Δwi(t)

con gi(t) = ∂E/∂wi(t) e gi(t-1) = ∂E/∂wi(t-1) , cioè la derivata della funzione di errore rispetto al peso al tempo t e al tempo t-1, rispettivamente.

In tale algoritmo è necessario “stare attenti” ai casi in cui il denominatore diventa zero o prossimo a zero.

Variazioni sulla discesa del gradiente (segue)

Resilient back Propagation (Rprop)

Qui descriviamo un altro approccio ancora. In questo caso le variazioni dei pesi sono determinate nel seguente modo:

Δwij(t)= -Δij(t) SE ∂E/∂wij(t) >0 ,
Δwij(t)= +Δij(t) SE ∂E/∂wij(t) <0,
Δwij(t)= 0 ALTRIMENTI

dove

Δij(t) = η+ Δij(t-1) se ∂E/∂wij(t) *∂E/∂wij(t-1) >0
Δij(t) = η- Δij(t-1) se ∂E/∂wij(t) *∂E/∂wij(t-1) <0
Δij(t) = Δij(t-1) altrimenti

Con 0 < η- < 1 < η+ (ad esempio η-=0.5 e η+=1.2).

Prossime lezioni

Nelle prossime lezioni parleremo di:

  • Reti Neurali con funzioni a base radiale – RBF.
  • 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

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93