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

Added a new solver for Proximal Averaged Projected Gradient Method #466

Closed
wants to merge 34 commits into from

Conversation

shnaqvi
Copy link
Contributor

@shnaqvi shnaqvi commented Nov 8, 2023

Added a new solver for solving composite prior minimization problem, called Accelerated Proximal Averaged Projected Gradient Method. The optimization problem is given by:

$\text{argmin}_x f(x) + \bar{g}(x),$
$\ \text{where}\ \ \bar{g}(x) = \sum_i \rho_i g_i(x),$
$\ \text{and}\ \ \rho_i \ge 0, \ \sum_i \rho_i = 1$

This addresses the enhancement request #456

Salman Naqvi and others added 30 commits October 5, 2023 15:02
… using the fast subiteration free algorithm proposed by Kamilov, 2016
…fixed inconsistent signature for prox function, added more comments to the helper functions
…perator of the haar transform as in Kamilov, 2016
Alternative implementation of TV norm
…called Proximal Averaged Projected Gradient Method
@shnaqvi
Copy link
Contributor Author

shnaqvi commented Nov 8, 2023

Note:

  1. New solver has been added as a standalone class deriving from the parent Optimize class. I couldn't make it to derive from the existing PGM class without modifying this other class also, because it combines both the gradient descent and projection steps in one line but for proximal-averaged method, we need to do these steps separately.
  2. I couldn't figure out how to use several PGMStepSize routines with this new solver, so I haven't exposed the feature to dynamically evaluate the Lipschitz constant at runtime. It needs to be provided beforehand for now.

Copy link

codecov bot commented Nov 8, 2023

Codecov Report

Merging #466 (d694f01) into main (08a5896) will decrease coverage by 0.86%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##             main     #466      +/-   ##
==========================================
- Coverage   94.59%   93.72%   -0.86%     
==========================================
  Files          89       90       +1     
  Lines        5541     5592      +51     
==========================================
  Hits         5241     5241              
- Misses        300      351      +51     
Flag Coverage Δ
unittests 93.72% <0.00%> (-0.86%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Coverage Δ
scico/optimize/_papgm.py 0.00% <0.00%> (ø)

@bwohlberg bwohlberg linked an issue Nov 9, 2023 that may be closed by this pull request
@bwohlberg
Copy link
Collaborator

Closing PR since alternative solution merged.

@bwohlberg bwohlberg closed this Nov 10, 2023
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.

Solve AcceleratedPGM with multiple priors applied
2 participants