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

Stronger stop criterion for PANOC+ #60

Merged
merged 2 commits into from
Jan 12, 2022
Merged

Stronger stop criterion for PANOC+ #60

merged 2 commits into from
Jan 12, 2022

Conversation

aldma
Copy link
Collaborator

@aldma aldma commented Jan 10, 2022

Hi there again! Thanks for your tips.

This fix enforces a stronger stop criterion in PANOC+, in order to give stationarity guarantees for problems with locally Lipschitz gradient. This requires some more (gradient) evaluations though. When not used in adaptive mode (eg, if the Lipschitz constant is known), the previous criterion would work fine too.

Removed idle allocations.

@codecov
Copy link

codecov bot commented Jan 10, 2022

Codecov Report

Merging #60 (8747a47) into master (b34a049) will increase coverage by 0.06%.
The diff coverage is 100.00%.

❗ Current head 8747a47 differs from pull request most recent head 558c075. Consider uploading reports for the commit 558c075 to get more accurate results
Impacted file tree graph

@@            Coverage Diff             @@
##           master      #60      +/-   ##
==========================================
+ Coverage   89.66%   89.73%   +0.06%     
==========================================
  Files          22       22              
  Lines         939      945       +6     
==========================================
+ Hits          842      848       +6     
  Misses         97       97              
Impacted Files Coverage Δ
src/algorithms/panocplus.jl 94.25% <100.00%> (+0.42%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b34a049...558c075. Read the comment docs.

@lostella
Copy link
Member

Looks good to me! It’s a little weird to have additional operations in the non-adaptive case, only for the sake of the stopping criterion (they could be performed in the stopping criterion itself, but then again they are not needed in the adaptive case). But I guess the adaptive mode is really the primary mode of operation, for this algorithm but really for all the forward-backward based ones.

We can revisit the code later here, if we find a better way to decouple algorithm from stopping condition.

@lostella lostella merged commit 0e3efb9 into JuliaFirstOrder:master Jan 12, 2022
@aldma aldma deleted the panocplus-fixes branch January 12, 2022 14:07
@aldma aldma restored the panocplus-fixes branch January 12, 2022 14:08
@aldma aldma deleted the panocplus-fixes branch February 12, 2022 10:39
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

Successfully merging this pull request may close these issues.

None yet

2 participants