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.
- A partir de octubre de 2017, ¿cuál es el estado de distill.pub?
- ¿Hay algún buen algoritmo de aprendizaje automático de código abierto implementado por MPI? No encontré ninguno de google
- ¿Cuáles son algunos métodos para etiquetar datos de entrenamiento para una red neuronal?
- ¿Puedo replicar el auto sin conductor de Google como un proyecto de pasatiempo?
- ¿Cuándo veremos a las computadoras biológicas superar a las computadoras digitales, en términos de potencia informática en bruto?
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?