new CCSA and MMA parameters: inner_gradients and always_improve #623
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds two new algorithm-specific parameters to the CCSA and MMA algorithms, one to control whether gradients are requested on inner iterations, and one to control how aggressive the algorithm is about updating the current point (see the new docs).
The default behavior is not changed, in order to not hurt existing code that uses these algorithms. For example, not computing the gradient on inner iterations actually hurts performance in the common case where it succeeds after a single inner iteration — since it has to then call the function again with gradients on the outer iteration — unless the caller optimizes their objective function (and constraints) to cache the current
xpoint and not recompute the function (only compute the new gradient) if it is called twice in a row with the samex.Closes #484. Closes #376.