standard-error – Cuando se dispone de un jacobiano analítico, ¿es mejor aproximar el hessiano por $ J ^ TJ $ o por diferencias finitas del jacobiano?

Pregunta:

Digamos que estoy calculando algunos parámetros del modelo minimizando la suma cuadrada de los residuos, y supongo que mis errores son gaussianos. Mi modelo produce derivadas analíticas, por lo que el optimizador no necesita usar diferencias finitas. Una vez que se completa el ajuste, quiero calcular los errores estándar de los parámetros ajustados.

Generalmente, en esta situación, se considera que el hessiano de la función de error está relacionado con la matriz de covarianza por: $$ \ sigma ^ 2 H ^ {- 1} = C $$ donde $ \ sigma ^ 2 $ es la varianza de los residuos.

Cuando no se dispone de derivadas analíticas del error, normalmente no es práctico calcular el hessiano, por lo que $ J ^ TJ $ se toma como una buena aproximación.

Sin embargo, en mi caso, tengo una J analítica, por lo que es relativamente barato para mí calcular H mediante la diferenciación finita J.

Entonces, mi pregunta es la siguiente: ¿sería más exacto aproximar H usando mi J exacto y aplicando la aproximación anterior, o aproximar H por diferenciación finita J?

Respuesta:

Buena pregunta. Primero, recuerde de dónde proviene esta aproximación $ H \ approx J ^ TJ $. Deje que $ (x_i, y_i) $ sean sus puntos de datos, $ f (\ cdot) $ sea su modelo y $ \ beta $ los parámetros de su modelo. Entonces, la función objetivo del problema de mínimos cuadrados no lineales es $ \ frac {1} {2} r ^ T r $ donde $ r $ es el vector de los residuos, $ r_i = y_i – f (x_i, \ beta) PS El hessiano exacto de la función objetivo es $ H = J ^ TJ + \ sum r_i \ nabla ^ 2 r_i $. Entonces, el error en esta aproximación es $ H – J ^ TJ = \ sum r_i \ nabla ^ 2 r_i $. Es una buena aproximación cuando los residuos, en sí mismos, son pequeños; o cuando la segunda derivada de los residuos es pequeña. Los mínimos cuadrados lineales pueden considerarse un caso especial en el que la segunda derivada de los residuos es cero.

En cuanto a la aproximación en diferencias finitas, es relativamente barata. Para calcular una diferencia central, deberá evaluar el jacobiano $ 2n $ veces adicionales (una diferencia hacia adelante le costará $ n $ evaluaciones adicionales, por lo que no me molestaría). El error de la aproximación de la diferencia central es proporcional a $ \ nabla ^ 4 r $ y $ h ^ 2 $, donde $ h $ es el tamaño del paso. El tamaño de paso óptimo es $ h \ sim \ epsilon ^ \ frac {1} {3} $, donde $ \ epsilon $ es la precisión de la máquina. Entonces, a menos que las derivadas de los residuales estén explotando, está bastante claro que la aproximación de diferencias finitas debería ser MUCHO mejor. Debo señalar que, si bien el cálculo es mínimo, la contabilidad no es trivial. Cada diferencia finita en el jacobiano le dará una fila del arpillera por cada residual. Luego, tendrá que volver a ensamblar el arpillera usando la fórmula anterior.

Sin embargo, existe una tercera opción. Si su solucionador usa un método Quasi-Newton (DFP, BFGS, Bryoden, etc.), ya se está aproximando al hessiano en cada iteración. La aproximación puede ser bastante buena, ya que utiliza la función objetivo y los valores de gradiente de cada iteración. La mayoría de los solucionadores le darán acceso a la estimación hessiana final (o su inversa). Si esa es una opción para usted, la usaría como estimación de Hesse. Ya está calculado y probablemente será una estimación bastante buena.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım