¿Por qué la inicialización de pesos por números pequeños es mala en las redes neuronales?

Como Dale Thomas menciona [1], el uso de pesos pequeños puede hacer que su gradiente sea bastante pequeño al comienzo y, a su vez, puede dificultar el progreso si usa algo como el descenso del gradiente con un tamaño de paso constante / recocido.

Sin embargo, existen otros métodos de optimización que pueden ayudar a evitar problemas con un gradiente pequeño. Algunos métodos son:

  • RProp variantes
    • Crecen o disminuyen exponencialmente el tamaño del paso en función de los cambios de signo en el gradiente en lugar de usar la magnitud
  • Newton / Cuasi-Newton
    • Estos métodos utilizan estimaciones de curvatura (a través de Hesse) y el gradiente para escalar el paso de una manera que lo haga independiente de la magnitud del gradiente
  • Filtro Kalman sin perfume
    • Tenga en cuenta que aquí usamos el UKF para la estimación de parámetros, por lo que los pesos se representan como dinámicas de estado lineal y la transformación de medición es donde entra en juego la no linealidad de la red neuronal
    • Este enfoque bayesiano es asintóticamente más parecido a un enfoque de Newton, pero puede hacer un buen progreso utilizando pequeños conjuntos de muestras por iteración.
  • Cualquier algoritmo de optimización global heurístico (Algoritmos genéticos, Enjambre de partículas, Recocido simulado, etc.)
    • Si bien estos métodos se pueden escalar en un clúster para problemas de lotes, su convergencia no es segura y, a menudo, es más lenta que hacer un enfoque de optimización global de varios pasos usando algo como los métodos RProp o Cuasi-Newton

Entonces, el punto es que, si bien los enfoques de descenso de gradiente nominal pueden tener un problema con gradientes pequeños, esos no son los únicos métodos que puede usar. Para grandes conjuntos de datos, puede tener sentido escalar el problema a través de un clúster y resolver la optimización a través del descenso de gradiente de mini lotes utilizando tamaños de paso de recocido / constante estándar.

Sin embargo, puede tener sentido usar métodos por lotes si el conjunto de datos no es demasiado grande … E incluso entonces, podría usar un mini lote lo suficientemente grande para muchos de los métodos por lotes y aún así funcionar bien.

Notas al pie

[1] La respuesta de Dale Thomas a ¿Por qué la inicialización de pesos por números pequeños es mala en las redes neuronales?

Una razón es que el error en la propagación hacia atrás se retroalimenta a través de los pesos a las capas anteriores. Al inicializar con pesos pequeños, este error será muy pequeño y la red tardará mucho más en aprender los datos de entrenamiento, especialmente las primeras capas en un sistema con muchas capas, que, para cuando obtienen el error, es casi cero.

No es que solo haya un conjunto único de pesos que satisfaga el sistema. Los pesos aleatorios al principio son la red, y aprende de allí. Debe tener confianza y establecer pesos iniciales de tamaño decente.

More Interesting

¿Qué tan grande es el mercado de procesadores específicamente diseñados o adaptados para la inteligencia artificial?

¿Qué es el aprendizaje de refuerzo recurrente?

¿Quién fue Alan Turing y cuál fue su contribución al campo de la Inteligencia Artificial?

Creo que descubrí cómo crear seres con inteligencia artificial. ¿Qué tengo que hacer?

¿Qué piensa la mayoría de las personas sobre el aprendizaje automático?

¿Cómo funciona la IA del juego de ping pong? ¿Qué es una explicación detallada o algunas referencias que lo explican?

¿Cómo se sienten los ateos sobre el posible sufrimiento de la inteligencia artificial?

¿Es posible detectar el fraude en tiempo real utilizando el aprendizaje automático?

¿Por qué el entrenamiento con la unidad softmax en redes neuronales es manejable si la función de partición es intratable?

¿Los personajes de IA en los videojuegos 'ven y escuchan' dónde estás o 'saben' dónde estás?

¿Cuáles son las 5 mejores ciudades del mundo para el aprendizaje automático y la experiencia de aprendizaje profundo en el mundo a partir de 2017?

¿Por qué existe el temor de dominación de robots / IA cuando se pueden incorporar múltiples niveles de interruptores de muerte?

Inteligencia artificial: ¿Qué tan útil es la computación distribuida para construir IA?

¿Cómo podemos probar si una máquina tiene sentimientos o no?

Al entrenar un modelo de Deep Learning, ¿importa la secuencia o el orden de las muestras en los datos de entrenamiento?