¿Cuándo usar (Él o Glorot) la inicialización normal sobre init uniforme? ¿Y cuáles son sus efectos con Batch Normalization?

51

Sabía que Residual Network (ResNet) hizo popular la inicialización normal. En ResNet, se usa la inicialización normal de He , mientras que la primera capa usa la inicialización uniforme de He.

He revisado el papel de ResNet y el documento "Profundizando en los rectificadores" (papel de inicialización de He), pero no he encontrado ninguna mención sobre init normal vs init uniforme.

También:

La normalización por lotes nos permite utilizar tasas de aprendizaje mucho más altas y tener menos cuidado con la inicialización.

En el resumen del documento de Batch Normalization, se dice que Batch Normalization nos permite ser menos cuidadosos con la inicialización.

ResNet en sí todavía se preocupa por cuándo usar init normal frente a init uniforme (en lugar de simplemente ir con init uniforme).

Entonces:

  • ¿Cuándo usar (Él o Glorot) la inicialización distribuida normalmente sobre la inicialización uniforme?
  • ¿Cuáles son los efectos de inicialización distribuidos normalmente con Batch Normalization?

Notas a un lado:

  • Rima usar init normal con Batch Normalization, pero no he encontrado ningún documento que respalde este hecho.
  • Sabía que ResNet usa He init sobre Glorot init porque He init funciona mejor en una red profunda.
  • He entendido acerca de Glorot init vs He init .
  • Mi pregunta es sobre Normal vs Uniform init.
rilut
fuente

Respuestas:

34

El inicio normal vs uniforme parece ser bastante poco claro de hecho.

Si nos referimos únicamente a los documentos de inicializaciones de Glorot y He , ambos utilizan un análisis teórico similar: encuentran una buena variación para la distribución de la que se extraen los parámetros iniciales. Esta variación se adapta a la función de activación utilizada y se deriva sin considerar explícitamente el tipo de distribución. Como tal, sus conclusiones teóricas son válidas para cualquier tipo de distribución de la varianza determinada. De hecho, en el papel de Glorot, se usa una distribución uniforme, mientras que en el papel de He se elige una gaussiana. La única "explicación" dada para esta elección en el documento de He es:

Los CNN profundos recientes se inician principalmente por pesos aleatorios extraídos de distribuciones gaussianas

con una referencia al papel de AlexNet . De hecho, se lanzó un poco más tarde que la inicialización de Glorot, pero sin embargo no hay justificación en el uso de una distribución normal.

De hecho, en una discusión sobre el rastreador de problemas de Keras , también parecen estar un poco confundidos y, básicamente, solo podría ser una cuestión de preferencia ... (es decir, hipotéticamente, Bengio preferiría una distribución uniforme, mientras que Hinton preferiría una distribución normal ...) En la discusión, hay un pequeño punto de referencia que compara la inicialización de Glorot con una distribución uniforme y gaussiana. Al final, parece que el uniforme gana pero no está realmente claro.

En el documento original de ResNet , solo dice que usaron un He init gaussiano para todas las capas, no pude encontrar dónde está escrito que usaron un He init uniforme para la primera capa. (¿Tal vez podrías compartir una referencia a esto?)

En cuanto al uso de init gaussiano con Batch Normalization, bueno, con BN el proceso de optimización es menos sensible a la inicialización, por lo que es solo una convención, diría yo.

tlorieul
fuente
Leí mal eso. Tienes razón en que ResNet no utiliza ninguna inicialización uniforme en absoluto. Estoy corregido.
rilut
0

¡Tenga la amabilidad de leer los hiperparámetros en acción! Parte II - Inicializadores de peso

Rocksyne
fuente
1
Por favor, evite publicar solo enlaces. Cualquier enlace puede quedar inactivo después de un tiempo y los nuevos lectores no podrán verificar la respuesta. Puede publicar un enlace, pero siempre agregue también un resumen de la parte más importante como texto.
Tasos
Comentario de @Tasos bien notado. Hubo demasiada información para resumir y es por eso que publiqué el enlace en su lugar y recibo su punto sobre enlaces rotos. Gracias.
Rocksyne