Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Convergence/Divergence #11

Open
bayerj opened this issue Feb 28, 2012 · 2 comments
Open

Convergence/Divergence #11

bayerj opened this issue Feb 28, 2012 · 2 comments

Comments

@bayerj
Copy link
Contributor

bayerj commented Feb 28, 2012

So we had that issue yesterday that climin should never stop iterating because it thinks it converged. However, it might happen that it diverges and that that needs to be handled.

E.g. I am currently playing around with logistic regression and NCG which sometimes diverges because the direction becomes invalid (e.g. NaN).

What is the best behaviour here?

  • throw a Diverged exception?
  • stop iterating?
  • try to recover via heuristics?
  • just continue and let the user find out via inspection of info?
@rueckstiess
Copy link
Contributor

there could be a "diverged" stop criterion as well. the problem would then be a special case of the whole stopping mechanism and shouldn't be handled by the minimizer explicitly. so that would be suggestion 4 "just continue".

but i don't know if an external stop criterion can always decide that the algorithm diverged only based on the info dict. perhaps the minimizer knows that best. in that case i'd probably vote for 1 "throw exception".

@bayerj
Copy link
Contributor Author

bayerj commented Feb 28, 2012

The difference here is, that divergence can actually be harmfull.

If we converge, running longer does not do any harm since our solution
will not get worse. If we diverge, the following operations might
overwrite the current wrt with a mess, result in infinite line
searches or throw a numpy error.

Thus, a divergence stopping criterion would be the default... but that
could be ok.

2012/2/28 Thomas Rückstieß
[email protected]:

there could be a "diverged" stop criterion as well. the problem would then be a special case of the whole stopping mechanism and shouldn't be handled by the minimizer explicitly. so that would be suggestion 4 "just continue".

but i don't know if an external stop criterion can always decide that the algorithm diverged only based on the info dict. perhaps the minimizer knows that best. in that case i'd probably vote for 1 "throw exception".


Reply to this email directly or view it on GitHub:
#11 (comment)

Dipl. Inf. Justin Bayer
Lehrstuhl für Robotik und Echtzeitsysteme, Technische Universität München
http://www6.in.tum.de/Main/Bayerj

@bayerj bayerj closed this as completed Aug 3, 2013
@bayerj bayerj reopened this Aug 3, 2013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants