6 votos

Levenberg-Marquardt - ¿Es correcto forzar que el hessiano sea definido positivo?

A menudo realizo la estimación de parámetros utilizando el método de Levenberg-Marquard, que implica resolver el siguiente sistema lineal en cada paso:

$$(H+\lambda I)\delta=r_{i}$$

donde $H$ es una matriz hessiana cuadrada, $I$ es la matriz de identidad, $r_{i}$ es el vector residual (en la iteración i-ésima), $\lambda$ es un factor de amortiguación, $\delta$ es el paso de mejora a calcular.

En $\lambda$ disminuye cuando el paso mejora la solución (valor objetivo reducido) y aumenta en caso contrario.

En $\lambda$ puede permitir resolver problemas mal planteados, ya que hace que el hessiano sea definido positivo.

En la mayoría de los casos $H$ es positiva definida por sí misma, pero a veces no.

¿Qué hacer en ese caso? ¿Debo detener la iteración por completo o aumentar lambda hasta que $H$ se convierte en definida positiva y resuelve el problema normalmente?

1voto

Arctictern Puntos 85

Una similar pregunta se ha preguntado en MO hace un tiempo. La respuesta es que no debes ni detener la iteración, ni aumentar lambda. Podrías utilizar una descomposición QR con pivoteo, y poner a cero elementos diagonales muy pequeños de R (o utilizar una descomposición de valor singular si se trata de una pregunta teórica). Otra sugerencia si esto es demasiado costoso fue añadir un pequeño múltiplo de la identidad a $J^TJ$ en lugar de multiplicar los elementos diagonales por $(1+\lambda)$ .

Esta última sugerencia demuestra en realidad que su presentación del problema no es exacta. En realidad no está resolviendo $(H+\lambda I)\delta=r_{i}$ . (En ese caso, cualquier $\lambda>0$ haría que su problema positivo definido, porque el hessiano $H$ es semidefinido). En cambio, el método de Levenberg-Marquard resuelve

$$(J^T J + \lambda\, \operatorname{diag}(J^T J)) \delta = J^T [y - f(\boldsymbol \beta)]$$

En este caso, puede ocurrir que el problema permanezca singular durante $\lambda>0$ pero aumentando $\lambda$ no ayudará.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X