-
Notifications
You must be signed in to change notification settings - Fork 26
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
Ideas to make ProximalProjection
more robust
#802
Comments
Case for a precise-QA-like equilibrium in free boundary, each step in the proximal just gives a bad approximation, files are here: https://drive.google.com/drive/folders/19-F7cVb1yxks42eCI1Nx7DlxjCkyxaaf?usp=drive_link |
Adds the option to use QR decomposition for solving least squares trust region problem. This appears to be significantly faster than SVD with negligible loss in accuracy (at least on our tests). This also makes QR the new default instead of SVD. There are a few other places that we use SVD that could possibly also be replaced by QR: - In `perturb.py`, though probably not worth it here, since initial SVD and initial QR take about the same time, but SVD can reuse the factorization for 2nd and higher order perturbations. - In `ProximalProjection._jvp_f` - I tried replacing this but it seems here we need the extra accuracy. Could maybe get it to work if we also implement some of the ideas from #802 but that can wait for another PR. Resolves #708
@dpanici check thru notebooks and link here along with current commit that it occurs at |
Something I have seen in a case where I get a bad approx error is when the eq subproblem default (I have not tested that tightening the xtol fixes the bad approx yet, doing it now, but I suspect it should) I also have not tested with #1073 though which maybe would help in this case? |
Right now we still have cases where the proximal optimizer keeps trying smaller and smaller steps until eventually it quits saying
Warning: A bad approximation caused failure to predict improvement.
This seems to be due to inconsistent linearizations or a possibly instability, where small changes in the boundary (the
x
variable the optimizer sees) lead to large changes in the volume (thef
values the optimizer sees).Some possible ideas to make this better:
The text was updated successfully, but these errors were encountered: