Discesa del gradiente
La discesa del gradiente è una tecnica di ottimizzazione di tipo locale. Data una funzione matematica multidimensionale, la discesa del gradiente consente di trovare un minimo locale di questa funzione.
La tecnica consiste nel valutare, inizialmente in un punto scelto a caso nello spazio multidimensionale (primo punto), sia la funzione stessa sia il suo gradiente. Il gradiente indica la direzione in cui la funzione tende a un minimo. Si sceglie poi un altro punto (secondo punto) nella direzione indicata dal gradiente. Se la funzione al secondo punto ha un valore inferiore al valore calcolato al primo punto, la discesa può continuare, seguendo adesso però il gradiente calcolato al secondo punto, che potrebbe essere molto diverso dal gradiente calcolato al primo punto.
Per esempio, data una funzione di molte variabili
, si possono scegliere a caso valori per le
nello spazio di interesse, dando un risultato iniziale
. Il gradiente si calcola perturbando ciascuno dei valori iniziali delle
, cioè ricalcolando il valore della funzione
a posizioni in cui al valore iniziale di ciascun
si somma o si sottrae un valore minimo (epsilon). La differenza fra il valore originale e il valore perturbato è la derivata discreta in ciascuna dimensione. La stima del gradiente in ciascuna dimensione è proporzionale a questa derivata discreta. Per continuare il nostro esempio, se la funzione fosse
e i punti iniziali fossero
,
,
,
,
,
. Si vede che per trovare un minimo di questa funzione conviene diminuire i valori di
e
, e aumentare il valore di
. Si vede anche che diminuire il valore di
minimizza la funzione circa due volte più velocemente che diminuire il valore di
o aumentare il valore di
, quindi, volendo un cambiamento totale di circa
, si utilizzerá una formula tipo
,
,
.
Se la funzione al secondo punto dovesse avere un valore maggiore o uguale a quello calcolato al primo punto, o si è trovato un minimo locale per la funzione, oppure la distanza fra il primo e il secondo punto (per esempio il valore di
dell'esempio precedente) è eccessiva per questa funzione (quanto meno in questa zona dello spazio multidimensionale). I due casi si possono distinguere valutando la funzione in vari punti intermedi, perché nel caso del minimo locale i valori saranno simili, e altrimenti potranno essere molto diversi. Se non si è raggiunto un minimo locale, la ricerca può ricomiciare dal primo punto, magari usando una distanza minore.
La discesa di gradiente d'errore trova solo minimi locali di funzione. Può però anche esser utilizzata nella ricerca di un mimimo globale, scegliendo a caso un nuovo punto iniziale una volta che si sia trovato un minimo locale, e ripetendo l'operazione moltissime volte. Se il numero di minimi della funzione è limitato e il numero di tentativi molto elevato, ci sono buone probabilitá che prima o poi il minimo globale sarà identificato.
[modifica] Applicazione alle reti neuronali artificiali
La discesa sul gradiente d'errore è una caratteristica che descrive le prestazioni di una delle più semplici regole di apprendimento delle reti neurali: la regola delta
La regola, una delle più classiche dell'apprendimento supervisionato, può essere applicata a reti neurali di tipo "in avanti" (cioè con propagazione unidirezionale dei segnali, in inglese feedforward) e permette di calcolare la differenza tra i valori di output che la rete ottiene e quelli che invece dovrebbe apprendere. La regola deve essere applicata a reti che usano unità di output ad attivazione continua e differenziabile e può essere definita precursore dell'algoritmo di retroazione (o in inglese: backpropagation), "cavallo di battaglia" dell'approccio connessionista.
Data una rete "in avanti" con le proprietà sopra descritte, il nostro compito è di minimizzare la differenza tra i valori di attivazione delle unità di output y dalla rete, ottenuti mediante la sommatoria dei segnali provenienti dalle unità di input (vettori di ingresso x) moltiplicati per l'efficacia delle connessioni provenienti dalle unità presinaptiche (vettori di pesi sinaptici w), e la risposta desiderata (vettori di pesi ideali t).
Le prestazioni della rete possono essere descritte da una funzione di costo (la funzione utilizza lo scarto quadratico medio tra y e t per ciascuna unità della rete sommato per tutte le unità di output e per tutti i pattern d'apprendimento) che desideriamo ridurre. La sua variazione dipende dalla modifica dell'efficacia dei pesi sinaptici che permettono alla rete di giungere all'apprendimento degli esempi presentati nella fase di addestramento. Il gradiente rappresenta la direzione di massima crescita della funzione e dipende dal valore delle connessioni w. Il nostro intento è ridurre al minimo lo scarto quadratico medio tra y e t modificando i pesi in direzione opposta al gradiente eseguendo una discesa del gradiente. Possiamo immaginare la funzione d'errore come una superficie n dimensionale, dove le n-dimensioni sono il numero di pesi sinaptici w, e il gradiente è la tangente alla superficie definito da un vettore di derivate parziali della funzione rispetto a ciascun peso sinaptico w.
|
|