¿Por qué se utiliza sqrt (6) para calcular epsilon para la inicialización aleatoria de redes neuronales?

8

En las notas de la semana 5 para la clase de aprendizaje automático Coursera de Andrew Ng , se proporciona la siguiente fórmula para calcular el valor deϵ solía inicializar Θ con valores aleatorios:

Forumla para calcular epsilon-init para inicialización aleatoria

En el ejercicio , se dan más aclaraciones:

Una estrategia efectiva para elegir ϵyonorteyot es basarlo en la cantidad de unidades en la red. Una buena elección de ϵyonorteyot es ϵyonorteyot=6 6Lyonorte-Lotut, dónde Lyonorte=sl y Lotut=sl+1 son el número de unidades en las capas adyacentes a Θ(l).

¿Por qué es la constante 6 6utilizado aquí? Por qué no5 5, 7 7 o 6.1?

Tom Hale
fuente

Respuestas:

4

Creo que esta es la inicialización normalizada de Xavier (implementada en varios marcos de aprendizaje profundo, por ejemplo, Keras, Cafe, ...) desde Comprender la dificultad de entrenar redes neuronales de alimentación profunda por Xavier Glorot y Yoshua Bengio.

Véanse las ecuaciones 12, 15 y 16 en el documento vinculado: su objetivo es satisfacer la ecuación 12:

Var[Wyo]=2norteyo+norteyo+1

y la varianza de un RV uniforme en [-ϵ,ϵ] es ϵ2/ /3 (la media es cero, pdf = 1/ /(2ϵ) entonces la varianza =-ϵϵX212ϵreX

seanv507
fuente
Hmm, entonces por qué usar 6 6 en vez de 2?
Tom Hale
Inserte épsilon en la fórmula para la varianza de la variable aleatoria uniforme en +/- x y ¿qué obtiene?
seanv507
Doh! Ahora veo en las fórmulas (16) que[-ϵ,ϵ]es usado De donde sacasX2/ /3de aunque?
Tom Hale
1
explicación adicional para la varianza del RV uniforme ...
seanv507