Nella presente lezione parleremo di
In precedenza abbiamo ricavato l’errore somma dei quadrati
E=(1/2)∑n∑k(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}.
Risulta più opportuno, allora, utilizzare la seguente funzione di errore:
E= – ∑n[tnln(yn)+(1-tn)ln(1-yn)]
(detta cross-entropy error)
Dove
Osservo che in questo caso stiamo considerando un problema a due classi e, quindi, una rete con un solo nodo di output.
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)
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)
Come già detto in precedenza noi vorremmo che l’uscita y della rete rappresenti
p(t/x)= yt(1-y)1-t
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.
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)]
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
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è:
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?
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:
ricordando che s(an) è proprio yn, allora
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à.
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.
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.
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
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
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 η.
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).
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 η.
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.
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).
Nelle prossime lezioni parleremo di:
1. Informazioni generali sul corso
3. Un modello computazionale del neurone biologico
4. Possibili problemi risolvibili con Reti Neurali
5. Problemi di Classificazione ed approccio probabilistico
7. Capacità rappresentativa delle reti neurali - parte prima
8. Capacità rappresentativa delle reti neurali - Parte seconda
9. Apprendimento e generalizzazione
10. Discesa del gradiente e backpropagation
11. Back-Propagation
13. Interpretazione output di una rete neural feed-forward
14. Complessità della rete, generalizzazione e termini di regolari...
15. Cross-entropy e variazioni sulla discesa del gradiente
16. Verso le reti neurali RBF: interpolazione esatta.
17. Reti neurali RBF
18. Addestramento di una rete RBF
19. Parametri delle funzioni a base radiale
20. Un primo modello di reti neurali ricorrenti: formalismo di Caia...