User Tools

Site Tools


neurali:gradient_descent

Gradient descent

È un algoritmo, ma non è strettamente legato alle reti neurali

https://en.wikibooks.org/wiki/Artificial_Neural_Networks/Error-Correction_Learning

E' usato nelle reti neurali per la fase di addrestramento?

Data una rete neurale N x M

  • N è il numero totale di layer
    • l è indice di un generico layer (1..N)
  • Ml è il numero totale di neuroni su un layer l
    • j è indice di un generico neurone sul layer l (1..Ml)
  • x è un vettore con indice i (1..Ml)
  • w è un vettore con indice i e j (i collegamenti tra due layer sono Ml·Ml)
  1. Si crea una nuova rete neurale fornendo dei pesi random (vedi nota sotto nota_sui_pesi_iniziali)
  2. Si fornisce un esempio di input (x) e di output atteso (yo)
  3. Si calcola l'output effettivo, usando le funzioni di attivazione sigmaxx: y = sigmaxx(zetaxx(w,x))
  4. Si calcola una funzione di errore: e = yo - y
  5. Poiché il valore attuale di un peso w[n+1] dipende dal valore del peso al passo precedente w[n]
  6. Si applica una formula che modifica il valore attuale dei pesi in base all'errore calcolato rispetto all'output atteso

NOTA: w[n+1] vuol dire che si sta svolgendo un passo n dell'addestramento. L'addrestramento consiste nel fare dei calcoli che modificano i pesi. w[n+1] significa che si è giunti a fornire un certo input (n+1-esimo), che ha prodotto (istantaneamente) un certo output e che ha permesso di ottenere una nuova versione del peso w

La formula è stata ottenuta calcolando l'errore quadratico medio di tutti i dati attesi di esempio, aggiungendo un termine (weight decay) che tende a diminuire la dimensione dei pesi per evitare overfitting 1) . Se voglio minimizzare questo errore variando i pesi sinaptici, si deve eseguire una derivata rispetto ai pesi

Un'altra formula produce il nuovo peso in base:

  1. al vecchio peso,
  2. all'errore, che dipende da sigmaxx
  3. ad un coefficiente etaxx
Conseguenze

Si otterrà una dipendenza dalla derivata della funzione di attivazione sigmaxx (deve essere facile da derivare)

Si ottiene una dipendenza dell'output di un layer (l+1) dal layer precedente (l) che spiega il significato del nome error backpropagation

Parametro di step size

parametri_di_progettazione_ann

etaxx viene chiamato “dimensione del passo”, ma poi, nella backpropagation rule si chiama “learning rate”

nota sui pesi iniziali

Se si inizializzassero tutti i pesi di tutti i layer a zero, il precedente algoritmo di ottimizzazione potrebbe produrre la soluzione in cui tutti i neuroni di tutti i layer hanno tutti gli stessi pesi.

Per questo motivo la rete viene sempre inizializzata con pesi random.

neurali/gradient_descent.txt · Last modified: 2023/06/06 18:40 by profpro