Closed Luke-Pratley closed 8 years ago
With PADMM, you can set l1_proximal_weights
(scales as the number of wavelets) and l2ball_proximal_weights
(scales as the number of visibilities).
Otherwise, you could incorporate them directly into the definition of the linear-transforms (mathematically, adding weights means replacing the linear transform A with D*A,where D is diagonal), or into the definition of the proximal functions. That's how it should be done for SDMM.
There is an example of adding weights to sdmm in c87088e
@mdavezac , thanks that is quite useful to see. In this example, are the weights on the l2 norm, or l1 norm?
On the l1 norm. I don't completely follow how it works. It seems the weights are added into the proximal of the l1 norm rather than \Psi. I'm just following sopt_l1_sdmm
here...
Cool. With the l2 norm, it is just a standard weight matrix, D, as you suggested, right?
It's equivalent, though it's also snuck into the proximal function WeightedL2Ball
.
I have been testing PADMM on real data using purify, I have been comparing it to the matlab version.
In particular, the matlab version of purify uses
sopt_mltb_admm_bpconw
, which allows weights. Does the cpp version of PADMM allow weights as an input parameter?