¿Por qué se utiliza un descenso gradiente iterativo para redes neuronales y no inmediato?

Una red neuronal se ajusta al encontrar el mínimo de una función de pérdida que describe qué tan bien el modelo se ajusta al proceso de interés. Piense en usar una expansión de la serie Taylor para describir la función. El gradiente contiene solo información de primer orden, pero la función de pérdida puede tener términos de orden más altos en la expansión. Si una expansión de primer orden puede describir completamente la función de pérdida, entonces puede encontrar un mínimo en un solo paso. Una expansión de la serie Taylor de una función de pérdida de red neuronal generalmente tiene muchos, muchos términos de orden superior y no puede explicarse simplemente por información de primer orden en el gradiente, por lo que se requiere un enfoque iterativo. No creo que la otra respuesta sobre las limitaciones de hardware sea correcta. El descenso por gradiente por lotes usa todos los datos de la muestra (mientras que el descenso por gradiente estocástico solo usa un subconjunto), pero el descenso por gradiente por lotes aún tiene la misma limitación que solo puede explicar el comportamiento de primer orden y generalmente no le permitirá minimizar un Función de pérdida en un solo paso.

Descenso de gradiente

El descenso de gradiente intenta encontrar un mínimo / máximo yendo hacia la dirección del descenso más empinado.

En una dimensión es fácil de representar, SGD sigue la dirección de la tangente de su función (el gradiente).

Ahora porque es más probable que la función sea así …

.. hay pocas posibilidades de que ir hacia el descenso más empinado traerá al mínimo.

Método de segundo orden

Puede ” mejorar” la velocidad, utilizando un método de segundo orden. Los métodos de segundo orden, como el método de Newton, tienen en cuenta la curvatura de su función. El método de Newton corrige la dirección de la búsqueda de modo que siempre apunta al mínimo, mientras que el descenso del gradiente apunta a la dirección máxima de cambio. Sin embargo, es mucho más costoso porque necesita calcular e invertir el Hessian, que es una matriz muy grande (es cierto que puede reducir a un vector, utilizando la optimización libre de Hessian).

Como otros sugieren, siempre se trata de escalar, y en este momento no existe un algoritmo único que funcione globalmente mejor que SGD para cualquier función de pérdida.

Tiene razón al decir que podemos averiguar de inmediato los mínimos locales. Pero el problema es que el hardware actual no está equipado para este tipo de técnicas.

La razón principal por la que usamos el Descenso de degradado iterativo (o estocástico) es que nos da flexibilidad para enviar grandes cantidades de datos a la red en paquetes cortos. Mientras que si no usamos SGD, habríamos tenido que manejar los problemas de ampliación para obtener datos más grandes.

Es como comer alimentos, en lugar de tragar toda la comida, ponemos trozos de comida, que podrían “manejarse” por vía oral.

No se ha descubierto aún dicho algoritmo, excepto en casos muy limitados.

Si descubre uno, háganoslo saber. Serás muy muy famoso.

More Interesting

¿Qué sucede si hacemos que cada unidad de filtro o núcleo en una capa CNN dentro de una red neuronal profunda tenga diferentes tamaños de ventana pero el mismo número de parámetros de peso (lo que resulta en granulado grueso)? ¿Podría conducir a un efecto contextual?

¿Dónde están los temas interesantes que se cruzan con la neurociencia y el aprendizaje automático?

Dada una oración, quiero encontrar la emoción de la persona que la dijo. ¿Cómo puedo hacer esto?

¿Cuáles son algunas aplicaciones del aprendizaje automático para la ciencia ambiental y la ingeniería ambiental?

Tengo muchos datos de clientes. ¿Qué algoritmos de aprendizaje automático serían mejores para predecir qué productos desea comprar cada cliente?

Redes neuronales artificiales: ¿Por qué las partes internas de las neuronas se simulan con una suma lineal de entradas en lugar de alternativas no lineales?

¿Debería estudiar aprendizaje automático, aprendizaje profundo o aprendizaje de refuerzo?

Teoría de la complejidad computacional: ¿Qué es un problema NP difícil?

¿Cuántas estadísticas y probabilidades debo saber para sumergirme en el aprendizaje automático?

¿Dónde puedo encontrar el conjunto de datos para un sistema de recomendación?

¿Cómo construiría un sitio web que utiliza el aprendizaje automático (qué marcos para frontend y backend, Python o R)?

¿Qué tipo de sistema de recomendación usar con datos extremadamente escasos?

¿Cómo validaría un modelo que creó para generar un modelo predictivo de una variable de resultado cuantitativa mediante regresión múltiple?

¿Será el hardware especializado para el aprendizaje profundo un cambio de juego?

¿Debo aprender el aprendizaje automático para IoT?