neurali:gradient_descent
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
neurali:gradient_descent [2015/07/09 18:23] – profpro | neurali:gradient_descent [2023/06/06 18:40] (current) – profpro | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ======Gradient descent====== | ||
+ | È un algoritmo, ma non è strettamente legato alle reti neurali | ||
+ | |||
+ | https:// | ||
+ | |||
+ | 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) | ||
+ | |||
+ | |||
+ | - Si crea una nuova rete neurale fornendo dei pesi random (vedi nota sotto [[neurali: | ||
+ | - Si fornisce un esempio di input (x) e di output atteso (yo) | ||
+ | - Si calcola l' | ||
+ | - Si calcola una funzione di errore: e = yo - y | ||
+ | - Poiché il valore attuale di un peso w[n+1] **dipende dal valore del peso al passo precedente w[n]** | ||
+ | - Si applica una **formula** che modifica il valore attuale dei pesi in base all' | ||
+ | |||
+ | NOTA: w[n+1] vuol dire che si sta svolgendo un passo n dell' | ||
+ | |||
+ | La **formula** è stata ottenuta calcolando l' | ||
+ | |||
+ | **Un' | ||
+ | - al vecchio peso, | ||
+ | - all' | ||
+ | - ad un coefficiente etaxx | ||
+ | |||
+ | ==Conseguenze== | ||
+ | |||
+ | Si otterrà una **dipendenza** dalla derivata della funzione di attivazione **sigmax**x (deve essere facile da derivare) | ||
+ | |||
+ | Si ottiene una **dipendenza dell' | ||
+ | |||
+ | ====Parametro di step size==== | ||
+ | |||
+ | [[neurali: | ||
+ | |||
+ | **etaxx** viene chiamato " | ||
+ | |||
+ | ====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**. |