¿Cuál es una explicación intuitiva del método de optimización llamado Hessian-free Optimizer (HF) para redes neuronales?

La optimización sin arpillera se refiere a una clase de optimizadores con una calidad específica. En general, en la optimización convexa (lo que no implica que las funciones que se optimizan sean convexas, solo que los métodos que se utilizan y la teoría que los impulsa se desarrollaron para funciones convexas), construimos optimizadores que buscan mínimos locales de una función. En otras palabras, tenemos una función [math] f (\ theta) [/ math] y estamos buscando el valor de [math] \ theta [/ math] que minimiza [math] f [/ math]. En las redes neuronales, [math] f [/ math] es típicamente una función basada en la probabilidad, y [math] \ theta [/ math] son ​​los pesos de la red.

Podemos caracterizar a los optimizadores según el tipo de información que utilizan. La mayoría de los optimizadores (aunque no todos) están basados ​​en gradientes. En este caso, la actualización en cada iteración se da como:

[matemáticas] \ theta ^ {\ tau} = \ theta ^ {\ tau-1} – \ eta \ nabla _ {\ theta} f (\ theta ^ {\ tau-1}) [/ math]

Básicamente, inicializamos [math] \ theta [/ math] a algún valor aleatorio, luego lo actualizamos iterativamente en función de un paso de tamaño [math] \ eta [/ math] en la dirección del gradiente. Podemos dar un paso más al introducir el Hessian (esto se justifica teóricamente por una expansión de la serie Taylor de segundo orden de [math] f (\ theta) [/ math] sobre [math] \ theta ^ {\ tau} [/ matemática]), que nos proporciona información sobre la curvatura de la función en nuestra ubicación. Esto nos dice mucho sobre el tamaño de paso correcto y puede mejorar drásticamente las tasas de convergencia. En este caso, la regla de actualización se convierte en:

[matemáticas] \ theta ^ {\ tau} = \ theta ^ {\ tau-1} – \ eta H ^ {- 1} (\ theta ^ {\ tau-1}) \ nabla _ {\ theta} f (\ theta ^ {\ tau-1}) [/ matemáticas]

El problema es que la Hessian [matemática] H [/ matemática] (y su inversión) puede ser muy costosa y numéricamente inestable de evaluar, especialmente para modelos grandes como las redes neuronales. Entonces, la optimización de HF es el uso de cualquier optimizador que no evalúe el Hessian. SGD simple no tiene arpillera, al igual que todos los optimizadores populares utilizados en la práctica (RMSprop, Adam, Adagrad, Adadelta, etc.). Esta es un área de investigación súper activa, y generalmente incluye una aproximación inteligente a la información de Hesse, como los términos basados ​​en el momento.

More Interesting

¿Existe una relación entre la detección comprimida y las redes de yacimientos?

Cómo implementar un modelo entrenado de TensorFlow (solo parte de propaganda directa) en CPP puro

¿Cuáles son las principales diferencias entre la teoría de juegos y el aprendizaje por refuerzo?

¿Es posible agregar una nueva entrada a la capa totalmente conectada justo antes del softmax en la CNN?

Quiero cambiar mi flujo de .NET a Big Data o Machine Learning. ¿Como empiezo?

¿Cómo detectaría el modelo de aprendizaje profundo los mismos objetos varias veces en un parche de imagen si existe?

¿Cuáles son algunos trabajos de investigación basados ​​en ciencia de datos y aprendizaje automático en los que R se utiliza como lenguaje de programación?

¿Cuáles son los posibles remedios si está atascado en la comprensión de la parte técnica de un trabajo de investigación de STEM?

Visión por computadora: ¿Cuáles son los problemas abiertos para la recuperación de imágenes?

Cómo aprender el aprendizaje automático desde el nivel cero

¿Cuál es el mejor enfoque para construir un sistema de clasificación basado en la clasificación de otros?

¿Por qué hay tantas redes de aprendizaje profundo?

¿Puede la red neuronal convolucional reconocer un objeto en cualquier condición?

¿Cuánto del aprendizaje automático es en realidad solo optimización?

¿Está bien usar software como scikit learn, tensorflow, keras y desarrollar aplicaciones sin profundizar en los conceptos matemáticos?