How to regularize the Levenberg-Marquardt algorithm in lsqnonlin?

8 vues (au cours des 30 derniers jours)
Abhilash Awasthi
Abhilash Awasthi le 27 Juil 2022
Modifié(e) : Matt J le 27 Juil 2022
I need to solve a non-linear least square problem using Levenberg-Marquardt (LM) method but with some additional terms in the objective function (see below)
lsqnonlin function in MATLAB optimization toolbox only takes ( as input and updates the parameters using the normal equations for the least-square problem [1]. Is there any way to solve such problems using lsqnonlin?
[1] Moré, J.J., 1978. The Levenberg-Marquardt algorithm: implementation and theory. In Numerical analysis (pp. 105-116). Springer, Berlin, Heidelberg.

Réponses (1)

Matt J
Matt J le 27 Juil 2022
Modifié(e) : Matt J le 27 Juil 2022
You can append the square root of the regularization term to the vector . However, your objective function does not look differentiable, which Levenberg-Marquardt assumes, so you might have to use a differentiable approximation to the TV term.
  8 commentaires
Torsten
Torsten le 27 Juil 2022
Modifié(e) : Torsten le 27 Juil 2022
And in the end, PI is one scalar value - some sort of cumulated approximation error over complete Omega ?
In this case, fmincon is better suited to solve your problem compared to lsqnonlin, I guess, because PI already performs summation of the errors squared in the discretization points whereas lsqnonlin would work with the errors in the discretization points separately.
Matt J
Matt J le 27 Juil 2022
Modifié(e) : Matt J le 27 Juil 2022
@Abhilash Awasthi If you construct the vector-valued function,
F(theta)=[u(theta)-um;
sqrt(2*regularization(theta))]
and give this F(theta) to lsqnonlin as the objective function, then lsqnonlin will minimize the regularized objective function H(theta) that you have posted.

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by