What is the scale problem in lsqcurvefit optimization?

조회 수: 3 (최근 30일)
hussain alqattan
hussain alqattan 2020년 12월 22일
댓글: Bjorn Gustavsson 2020년 12월 22일
Hi,
I'm trying to optimize only two parameters in a computationally expensive model, and I'm using lsqcurvefit with the Levenberg-Marquardt Algorithm.
I want to limit the minimum step sizes (or change magnitude in parameter values) to certain values; because the change in parameter values is very small by default, the gain of the loss functions is very small which lead the optimizer of getting stuck in local minima.
I tried to set a minimum variable difference, but the "MinDiffChange" can only be one scalar applied to both, while the two parameter values are not normalized to each other. This means that one parameter is 1, while another parameter is 10000. So changing the first parameter by 1 is a big deal, changing the second parameter by 1 is not!
How can I make sure the optimizer takes minimum step sizes proportional to each parameter used?
What is the "ScaleProblem" parameter in the optimization options of lsqcurvefit? Is it related to my issue?
Thanks,
H
  댓글 수: 1
Bjorn Gustavsson
Bjorn Gustavsson 2020년 12월 22일
Wouldn't the simples solution be that you rescale your parameters such that you use "kilo-unit-one" for the larger and "unit-two" for the smaller, that way you know what's going on, as long as you document what scalings you use...

댓글을 달려면 로그인하십시오.

답변 (1개)

Alan Weiss
Alan Weiss 2020년 12월 22일
Check out the lsqcurvefit FiniteDifferenceStepSize option that you set with optimoptions.
Alan Weiss
MATLAB mathematical toolbox documentation

카테고리

Help CenterFile Exchange에서 Solver Outputs and Iterative Display에 대해 자세히 알아보기

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by