Enabling use of TV prior with a forward operator with Accelerated PGM
Closed this issue · 2 comments
Enhancement request
My deconvolution problem of deblurring with space-variant PSF involves a forward operator that is a weighted sum of convolutions. This algorithm is presented in Flicker & Rigaut (2005), reviewed here and used very recently here. Thus the final optimization problem as presented in Eq 1 of the last reference looks like this:
Also, this last reference uses FISTA
to speed up the problem convergence. However, I'm not able to use FISTA
with SCICO
because AcceleratedPGM
does not currently support solving the problem with a forward operator and TV
regularization. Even though TV
prior is supported by other algorithms, like ADMM
and PDHG
, they have other issues of their own which prohibits me from using those. Specifically:
ADMM
needs asubproblem_solver
which is not defined for a custom forward operatorPDHG
requires really expensive computation of l2 prox with this non-trivial forward operator throughCG
Reformulating the problem in a way that it doesn't require complex l2 prox computation with ProximalADMM
hasn't worked for me either, despite extensive penalty parameter tuning. And its iterations are also much slower than APGM
.
Thus this issue is actually an enhancement
request to enable TV regularization with a forward operator when using AcceleratedPGM
. @bwohlberg mentioned the fast subiteration-free parallel proximal method for TV minimization presented by Kamilov, 2016, which can be a likely contender.
This would be a really useful addition as it would make the fastest proximal gradient method even more applicable across application domains, especially all the deblur problems which rely on TV regularization to enforce sharper edges or blockiness of image through sparsity in gradient.
Hi @bwohlberg, took some time but here I am finally scico
's main
branch, creating a pull request. I've made sure to follow the implementation style of other norms defined in scico
and document generously. Would you be kind to please review it, so we can merge it to in the official pip distribution?
P.S. I've also reached out to Ulugbek Kamilov to have this implementation reviewed but unfortunately haven't hear back from him in a week.
Thanks! Let's move further discussion to the PR.