Suponiendo una normalización de datos bastante razonable, la expectativa de los pesos debería ser cero o cercana. Puede ser razonable, entonces, establecer todos los pesos iniciales a cero porque un peso inicial positivo tendrá que ir más lejos si realmente fuera un peso negativo y viceversa. Esto, sin embargo, no funciona. Si todos los pesos son iguales, todos tendrán el mismo error y el modelo no aprenderá nada: no hay una fuente de asimetría entre las neuronas.
Lo que podríamos hacer, en cambio, es mantener los pesos muy cerca de cero, pero hacerlos diferentes inicializándolos en números pequeños que no sean cero. Esto es lo que se sugiere en el tutorial que vinculó. Tiene la misma ventaja de la inicialización de todo cero, ya que está cerca del valor de expectativa de "mejor suposición", pero la simetría también se ha roto lo suficiente como para que el algoritmo funcione.
Este enfoque tiene problemas adicionales. No es necesariamente cierto que números más pequeños funcionen mejor, especialmente si la red neuronal es profunda. Los gradientes calculados en retropropagación son proporcionales a los pesos; pesos muy pequeños conducen a gradientes muy pequeños y pueden hacer que la red tarde mucho, mucho más tiempo en entrenarse o nunca se complete.
Otro problema potencial es que la distribución de las salidas de cada neurona, cuando se usan valores de inicialización aleatorios, tiene una variación que se hace más grande con más entradas. Un paso adicional común es normalizar la varianza de salida de la neurona a 1 dividiendo sus pesos por donde es el número de entradas a la neurona. Los pesos resultantes se distribuyen normalmente entres qr t ( d)re[ - 1re√, 1re√]