Details

Type: Story

Status: Done

Resolution: Done

Fix Version/s: None

Component/s: meas_deblender

Labels:None

Story Points:4

Epic Link:

Sprint:DRP S175

Team:Data Release Production
Description
In its current implementation, the NMF deblender using proximal operators cannot apply both the monotonicity and symmetry constraints on the same object. This is unfortunate, as the monotonic operator works quite well except that it can include nonsymmetric features that are not present in the data, and the symmetric operator also works great except that it can steal flux from neighboring sources because it is not monotonic. It's worth investigating the possibility of projecting the constraints onto a joint space that will 1) Be more likely to converge and 2) allow both symmetry and monotonicity constraints (and perhaps others?) to increase the effectiveness of the new deblender.
While there were no references that solved our exact problem, a single likelihood function f(x) with multiple linear constraints g_i(L_i x), I was able to combine the SDMM method of Combettes and Pesquet (2009) which solves a system with multiple linear constraints g_i(L_i x), the ADMM method of Parikh and Boyd (2013) for a likelihood function and a single linear constraint, and the method of augmented Lagrangians from Andreani et al. (2007) to extend the ADMM update algorithm to use multiple linear constraints.
The result is a deblender than can combine an arbitrary number of linear constraints. See the Jupyter notebook for an example running the ADMM deblender with only monotonicity and the SDMM deblender using both monotonicity and symmetry.
While it is possible to run part of the algorithm on multiple cores, that functionality is not yet being taken advantage of and will require work in a later ticket, if we want to implement multiprocessing before fully optimizing our code in C++.