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

Refactor some of the algorithms #51

Merged
merged 19 commits into from
Oct 17, 2021

Conversation

lostella
Copy link
Member

Major changes:

  • Forward-backward splitting is now split (a-ha) into fast and non-fast implementations.
  • Fast FBS now takes the (optional) convexity modulus (default = 0) which is used in computing the extrapolation coefficients.
  • The explicit linear mapping composed with smooth terms has been removed by algorithms that don’t exploit this structure (essentially all non-line-search methods); this simplifies there code quite a bit.
  • Code for initial estimation of Lipschitz constants and step size backtracking is now in its own functions and shared by multiple algorithms.

Minor changes:

  • The ProximalGradient and FastProximalGradient aliases have been added.
  • Some source files have been renamed.

@codecov
Copy link

codecov bot commented Oct 14, 2021

Codecov Report

Merging #51 (85324d2) into master (f945684) will increase coverage by 0.87%.
The diff coverage is 96.52%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #51      +/-   ##
==========================================
+ Coverage   87.91%   88.79%   +0.87%     
==========================================
  Files          19       20       +1     
  Lines         786      794       +8     
==========================================
+ Hits          691      705      +14     
+ Misses         95       89       -6     
Impacted Files Coverage Δ
src/ProximalAlgorithms.jl 100.00% <ø> (ø)
src/algorithms/douglas_rachford.jl 95.65% <ø> (ø)
src/algorithms/fista.jl 86.84% <ø> (ø)
src/algorithms/primal_dual.jl 64.40% <ø> (ø)
src/utilities/iteration_tools.jl 83.78% <ø> (ø)
src/algorithms/li_lin.jl 78.84% <71.42%> (ø)
src/algorithms/forward_backward.jl 97.14% <97.14%> (ø)
src/utilities/fb_tools.jl 97.14% <97.14%> (ø)
src/algorithms/fast_forward_backward.jl 97.77% <97.77%> (ø)
src/algorithms/davis_yin.jl 93.93% <100.00%> (ø)
... and 2 more

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 f945684...85324d2. Read the comment docs.

@lostella lostella changed the title Refactor algorithms Refactor some of the algorithms Oct 15, 2021
@lostella
Copy link
Member Author

README needs to be updated

@lostella
Copy link
Member Author

lostella commented Oct 15, 2021

Benchmark shows what seems to be a performance regression:


2021-10-16T01:58:04.7149585Z 
2021-10-16T01:58:04.7150052Z                                           ID  time ratio memory ratio
2021-10-16T01:58:04.7150880Z   –––––––––––––––––––––––––––––––––––––––––– ––––––––––– ––––––––––––
2021-10-16T01:58:04.7151586Z   ["Lasso (Float64)", "FastForwardBackward"] 1.33 (5%) ❌  0.79 (1%) ✅
2021-10-16T01:58:04.7152369Z       ["Lasso (Float64)", "ForwardBackward"] 1.61 (5%) ❌  1.08 (1%) ❌
2021-10-16T01:58:04.7153060Z                 ["Lasso (Float64)", "PANOC"] 1.49 (5%) ❌  1.25 (1%) ❌
2021-10-16T01:58:04.7153687Z               ["Lasso (Float64)", "ZeroFPR"] 1.58 (5%) ❌  1.40 (1%) ❌

@lostella lostella merged commit ab341f2 into JuliaFirstOrder:master Oct 17, 2021
@lostella lostella deleted the refactor-fb-algorithms branch October 17, 2021 00:17
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.

1 participant