Perché l'inizializzazione di pesi e distorsioni dovrebbe essere scelta intorno a 0?


13

Ho letto questo:

Per addestrare la nostra rete neurale, inizializzeremo ogni parametro W (l) ijWij (l) e ogni b (l) ibi (l) su un piccolo valore casuale vicino allo zero (diciamo secondo un normale (0, ϵ2) normale (0 , ϵ2) distribuzione per alcuni piccoli ϵϵ, diciamo 0.01)

da Stanford Tutorial di apprendimento profondo al settimo paragrafo dell'Algoritmo di Backpropagation

Quello che non capisco è perché l'inizializzazione del peso o della distorsione dovrebbe essere intorno allo 0 ?

Risposte:


11

Supponendo una normalizzazione dei dati abbastanza ragionevole, l'aspettativa dei pesi dovrebbe essere zero o vicina ad esso. Potrebbe essere ragionevole, quindi, azzerare tutti i pesi iniziali perché un peso iniziale positivo dovrà ulteriormente andare se dovesse effettivamente essere un peso negativo e viceversa. Questo, tuttavia, non funziona. Se tutti i pesi sono uguali, avranno tutti lo stesso errore e il modello non imparerà nulla - non esiste alcuna fonte di asimmetria tra i neuroni.

Quello che potremmo fare, invece, è mantenere i pesi molto vicini allo zero ma renderli diversi inizializzandoli su numeri piccoli, diversi da zero. Questo è ciò che viene suggerito nel tutorial che hai collegato. Ha lo stesso vantaggio dell'inizializzazione a zero in quanto è vicino al valore di aspettativa della "migliore ipotesi" ma la simmetria è stata anche abbastanza spezzata per far funzionare l'algoritmo.

Questo approccio ha ulteriori problemi. Non è necessariamente vero che numeri più piccoli funzioneranno meglio, specialmente se la rete neurale è profonda. I gradienti calcolati in backpropagation sono proporzionali ai pesi; pesi molto piccoli portano a gradienti molto piccoli e possono portare alla rete impiegando molto, molto più tempo ad allenarsi o non completarsi mai.

Un altro potenziale problema è che la distribuzione delle uscite di ciascun neurone, quando si usano valori di inizializzazione casuali, ha una varianza che si ingrandisce con più input. Un ulteriore passaggio comune è normalizzare la varianza di output del neurone a 1 dividendo i suoi pesi per dove è il numero di input per il neurone. I pesi risultanti sono normalmente distribuiti trasqrt(d)d[1d,1d]


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.