How do I use global solver to estimate parameters in SimBiology R2021A

조회 수: 5 (최근 30일)
I am looking for some information on how to properly use the SimBiology global solver, as I have never used it before. I am trying it for the first time, and the progress plots show my fits all failed to converge with criterion due to max iterations. However, the actual fitting results are quite excellent.
Can anyone help interpret this and indicate how to refine the solver settings? I am using scattersearch function with lsqnonlin as the local solver. Currently estimating 2 parameters related to saturable kinetics (Km & Vmax).

채택된 답변

Arthur Goldsipe
Arthur Goldsipe 2021년 12월 9일
I would not read too much into this message. It simply explains why the optimization stopped when it did. In and of itself that it not inherently good or bad. You need to use your knowledge of the specific problem to decide whether the reported optimum is good enough and whether you have explored parameter space sufficiently well. If you decide that you want to run another optimization that runs longer then the message suggests that you might want to increase the value of the MaxIterations option. Note however that scattersearch is a stochastic algorithm, so the results will vary from one run to the next unless you take care to reset the random number generator to the same state before each run.
Hope that helps.
-Arthur
  댓글 수: 2
Greg Jones
Greg Jones 2021년 12월 9일
Thank you Arthur. That makes sense given the visual curve fitting is excellent and the error is very low. Are there any good resources on the Global Solvers that are more accessible to the lay person? The SimBio documentation is a bit dense to get through.
Also, can you comment more on the Max Iterations and resetting the random # generator? I left the algorithm settings as the default, which sets MaxIterations to auto and MaxStallIterations to 50. I don't see any options to reset in between runs.
Arthur Goldsipe
Arthur Goldsipe 2021년 12월 9일
Hmm... What kind of information are you looking for? I wrote the implementation for scattersearch based on the information in this paper. But the paper is definitely not an easy read for a lay audience. If you want to learn more about global optimization in general, I suggest this documentation from Global Optimization Toolbox. Even though scattersearch is not part of that toolbox, many of the same principles apply.
The options for scattersearch are documented here. If you're estimating 2 parameters, the default of "auto" corresponds to 40 iterations, so you'd want to set it to something larger than that.
Regarding the random number generator, that's part of the global state of MATLAB. You can read more about it here. But a common approach is to execute rng('default') between runs to make the results reproducible.
Finally, if you're not already using it, I suggest enabling progress plots. That can give you some sense of the progress being made. It also allows you to stop the optimization early (by clicking on a stop button) in the progress plot window.

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

추가 답변 (0개)

커뮤니티

더 많은 답변 보기:  SimBiology Community

카테고리

Help CenterFile Exchange에서 Import Data에 대해 자세히 알아보기

제품


릴리스

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by