Solving LASSO through LCA

Dear all,

We have been working on LASSO problems which consist of finding the a vector such that it minimizes:

E(a) = 1/2 ||s − \Phi a||^2_2 + \lambda||a||_1

with \Phi a known vector, s a known scalar and \lambda a tuning parameter. This problem can be solved using Local Competitive Algorithm (LCA).

The LCA equation is:

\dot{u}=\Phi s − u − (\Phi^T \Phi − Id)T(u)

with

T(u_i) = u_i-sign(u_i)*\lambda if abs(u_i) > \lambda

T(u_i) = 0 if abs(u_i) <= \lambda

\lambda a threshold and Id the Identity matrix.

In Lava software from Intel (lava-nc \dot org)) there exist a LASSO solver:

We were wondering if there is an implementation at low level and in NengoLoihi for the LASSO solver using LCA.

Maybe using the Winning Take All implementation we can arrive to LCA?

github \dot com/nengo/nengo-spa/blob/master/nengo_spa/networks/selection.py#L212

We would appreciate your feedback.

Thank you!

Hi @IgnacioRubioScola,

As part of some contracted work, we (ABR) have explored this problem and have implemented working code as well as results (though, it was for an older version of Nengo, and may need to be updated). We were given permission to share the code, but not to publish it. If you could send us your contact information (to info@appliedbrainresearch.com) we could send you a link to the work we did. :smiley:

1 Like