¿Por qué las técnicas de optimización como el gradiente natural y los métodos de segundo orden (L-BFGS por ejemplo) no se usan mucho en el aprendizaje profundo?

El usuario de Quora ya respondió muy bien a la pregunta. Solo agrego una nota para enfatizar que no se deben asignar muchos recursos a una tarea que no se garantiza que ofrezca una muy buena “recompensa” (es decir, óptima). Esto puede suceder aquí … y es la razón por la cual los métodos de segundo orden generalmente no se usan.

Es decir, es mejor invertir la potencia de cálculo para obtener varias aproximaciones aproximadas de buenos óptimos locales, y elegir la mejor de estas , en lugar de invertir los mismos recursos para obtener un valor casi exacto de un óptimo local, que, al final , puede ser malo (en la mayoría de los problemas nunca tenemos medios para probar si un óptimo que tenemos a mano es el óptimo global buscado …)

Los problemas de alta dimensión del tipo que aparecen en los problemas de ML / DL generalmente tienen muchos óptimos locales, y ahora se sabe que también tienen muchos puntos de silla (áreas de baja curvatura). Es decir, no son problemas de optimización convexa donde existe la garantía de convergencia al óptimo global.

Los métodos de gradiente completo y de segundo orden basados ​​en Hessian, como BFGS y métodos relacionados (ver por ejemplo https: //ipvs.informatik.uni-stut…), son métodos de optimización local . Por lo tanto, no hay tantos incentivos para invertir mucha energía de la computadora en seguir una pista y converger a un óptimo local que eventualmente puede ser “malo”, es decir, que puede ser bastante peor que el óptimo global buscado en términos de objetivo o costo valor de la función No hay una “recompensa” clara aquí.

Además, el gradiente es solo un vector, de tamaño [matemático] L [/ matemático], donde [matemático] L [/ matemático] es el número de parámetros en el modelo de optimización, pero el Hessiano [matemático] H [/ matemático ] es una matriz [matemática] L \ veces L [/ matemática], y las aproximaciones de las segundas derivadas son mucho más engorrosas de calcular (ver Diferencia finita) principalmente cuando el cálculo de la función de costo es costoso en términos de tiempo de computadora. Por lo tanto, los métodos basados ​​en arpillera son muy raros en problemas grandes de ML / DL debido al tiempo de cálculo muy grande necesario para calcular [matemáticas] H [/ matemáticas].

Los métodos utilizados para encontrar el óptimo óptimo global o, al menos, el óptimo local, en problemas que no son convexos, generalmente son estocásticos por naturaleza (Monte Carlo, recocido simulado, algoritmos genéticos, ver Optimización global) y, por lo tanto, las variaciones del gradiente estocástico son, en cierto sentido, adaptado al problema en cuestión.

Una razón final que descarta el uso de métodos precisos pero costosos es la optimización en línea . Suponga que está haciendo una regresión de [matemática] m [/ matemática] puntos [matemática] (x_i, y_i) [/ matemática], [matemática] i = 1,…, m [/ matemática], a una función parametrizada no lineal [math] y = f (x, \ boldsymbol \ beta) [/ math], donde [math] \ boldsymbol \ beta [/ math] es el vector (tamaño [math] L [/ math]) de los parámetros del modelo. Entonces su optimización es el problema de minimización

[matemáticas] \ min _ {\ boldsymbol \ beta} S = \ sum_ {i = 1} ^ {m} (y_i – f (x_i, \ boldsymbol \ beta)) ^ 2 [/ math]

Si sigue recibiendo más puntos [matemáticos] (x_i, y_i) [/ matemáticos] a lo largo del tiempo (por ejemplo, si está midiendo el número de visitas en su sitio web por minuto), su función de costo varía continuamente, así como también es óptima. no hay incentivo para obtener el óptimo global “exacto” [matemática] \ boldsymbol \ beta ^ \ ast [/ math] en un instante dado: es aconsejable llevarse bien con una buena optima [matemática] \ boldsymbol \ beta ^ + ( t) [/ math] que tienen alguna deriva a lo largo del tiempo.

El escenario de optimización en línea es muy común; por ejemplo, en lugar de hacer una regresión, podría estar entrenando una red neuronal (redes neuronales y aprendizaje profundo), o un bosque aleatorio, con un flujo de datos que llegan continuamente …

More Interesting

¿Cuáles son las ventajas y desventajas de las API de servicios cognitivos de Microsoft?

¿Cuál es una buena manera de convertir métrica discreta en métrica circular?

¿Cómo se implementa una red neuronal convolucional (CNN) con la estructura de un árbol binario en TensorFlow?

¿Cuáles fueron algunos de los artículos de conferencias / revistas de investigación del discurso más interesantes / dignos de mención en 2012?

¿Hay alguna anomalía inexplicable en la codificación de la computadora que pueda sugerir que las máquinas tienen alma?

Al cambiar de plataforma, ¿cómo se debe planificar con anticipación para garantizar que el almacenamiento y el análisis de datos se mantengan rápidos y eficientes?

En una red neuronal, ¿cómo podemos resolver (o limitar) el problema de la saturación de las neuronas?

¿Qué tecnologías existen actualmente para hacer matemáticas en grandes conjuntos de datos?

¿Cuál es un buen algoritmo para la extracción de características y la detección de texto escrito a mano?

¿Cuál es la diferencia clave entre un autoencoder variacional y una red adversa generativa, y cuándo debo usar cada modelo?

¿Por qué es importante la eliminación de variables en los modelos gráficos probabilísticos?

¿Usarías un mejor cuaderno Jupyter?

¿Cuáles son las 8 principales cosas para las que las startups utilizan el aprendizaje automático?

¿Cómo podemos usar el ingenuo clasificador de Bayes para el análisis del sentimiento sementico de los datos de Twitter?

¿Tiene Microsoft una mejor tecnología de aprendizaje automático y aprendizaje profundo que Google?