A primal-dual framework for distributed L1-regularized optimization
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 1 commit ahead, 5 commits behind gingsmith:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
conf
data
project
sbt
src/main/scala
.gitignore
LICENSE
README.md
build.sbt
cluster-helper.sh
local-helper.sh
run-demo-local.sh

README.md

ProxCoCoA+

A primal-dual framework for distributed L1-regularized optimization.

This code trains a standard least squares sparse regression with L1 or elastic net regularizer. The proxCoCoA+ framework runs on the primal optimization problem (called D in the paper). To solve the data-local subproblems on each machine, an arbitrary solver can be used. In this example we use randomized coordinate descent as the local solver, as the L1-regularized single coordinate problems have simple closed-form solutions.

The code can be easily adapted to include other internal solvers or to solve other data-fit objectives or regularizers.

Getting Started

How to run the code locally:

sbt/sbt assembly
./run-demo-local.sh

(For the sbt script to run, make sure you have downloaded CoCoA into a directory whose path contains no spaces.)

References

The algorithmic framework is described in more detail in the following paper:

Smith, V., Forte, S., Jordan, M.I., Jaggi, M. L1-Regularized Distributed Optimization: A Communication-Efficient Primal-Dual Framework