Las matrices de arpillera son una herramienta útil para la optimización numérica.
Primero, tenga en cuenta que las matrices de Hesse son por definición simétricas, porque el orden de diferenciación no importa (donde las segundas derivadas parciales son continuas):
[matemáticas] H (f) (\ mathbf {x}) _ {i, j} = \ frac {\ partial ^ 2} {\ partial x_i \ partial x_j} f (\ mathbf {x}) = H (f) (\ mathbf {x}) _ {j, i} = \ frac {\ partial ^ 2} {\ partial x_j \ partial x_i} f (\ mathbf {x}) [/ math]
- ¿Qué matemática debería revisar / aprender si quiero comprender a fondo el modelado de efectos mixtos / modelado de regresión?
- ¿Es el sesgo entre las mejores universidades frente a otras universidades en los Estados Unidos tan malo como el sesgo de IIT frente al resto de la India?
- ¿Ya es posible aprender las reglas de un juego como Monopoly utilizando un aprendizaje no supervisado?
- ¿Las estadísticas necesitan un cambio de marca en respuesta a la ciencia de datos y el aprendizaje automático, que están superando las estadísticas en términos de relevancia? ¿Por qué o por qué no?
- ¿Cuáles son algunos de los problemas de desarrollo que enfrenta la inteligencia artificial?
Como las arpillera son simétricas, se sostiene que las arpillera tienen todos los valores propios reales.
Valores propios de Hesse y concavidad
- Si el hessiano es positivo definido (por ejemplo, todos los valores propios son positivos) en el punto [math] \ mathbf {x} [/ math], entonces [math] \ mathbf {x} [/ math] es un mínimo local de [math ] f [/ matemáticas].
- De manera similar, si el hessiano es negativo definido (por ejemplo, si todos los valores propios son negativos), entonces [math] \ mathbf {x} [/ math] es un máximo local de [math] f [/ math].
- Si el Hessian tiene una mezcla de valores propios positivos y negativos, entonces [math] \ mathbf {x} [/ math] es un punto de referencia de [math] f [/ math].
- Si alguno de los valores propios es cero, la prueba no es concluyente.
También podemos usar la arpillera para determinar la segunda derivada en una dirección particular calculando [math] \ mathbf {d} ^ \ text {T} \ mathbf {H} \ mathbf {d} [/ math], donde [math] \ mathbf {d} [/ math] es un vector unitario en una dirección dada.
Relación con el aprendizaje automático
En el aprendizaje automático, definimos una función de pérdida y numéricamente encontramos un mínimo local satisfactorio que nos proporciona los parámetros para nuestro modelo. El descenso de gradiente estocástico listo para usar es un método de optimización de primer orden, ya que solo tiene en cuenta el gradiente, pero también podemos considerar métodos de optimización de segundo orden que incluyen la curvatura, como el método de Newton.
El valor propio de un Hessian significa “el cambio en el gradiente de una función de pérdida a medida que avanzamos una distancia infinitesimal en una dirección dada”.
El método de Newton es particularmente importante en el aprendizaje profundo, donde las funciones de error son altamente no convexas: tienen muchos mínimos locales y los métodos de optimización de primer orden son propensos a atascarse en ellos. Sin embargo, calcular el Hessian puede ser inviable, especialmente con datos de alta dimensión [2].
Esto ha llevado al desarrollo de métodos creativos de optimización numérica que no necesitan calcular y almacenar el Hessian. Por ejemplo, el enfoque de impulso agrega una memoria a corto plazo al gradiente:
[matemáticas] z ^ {k + 1} = \ beta z ^ k + \ nabla f (w ^ k) [/ matemáticas]
[matemáticas] w ^ {k + 1} = w ^ k – \ alpha z ^ {k + 1} [/ matemáticas]
Mira este artículo para más detalles, es realmente fantástico.
Fuentes:
[1] Libro de aprendizaje profundo
[2] Universidad de Toronto CSC 2515 (Hinton)