LibSGDQN proposes an implementation of
SGD-QN, a carefully designed quasi-Newton stochastic gradient descent solver for linear SVMs. The
SGD-QN algorithm is a stochastic gradient descent algorithm that makes careful use of second order information and splits the parameter update into independently scheduled components. Thanks to this design, SGD-QN iterates nearly as fast as a first order stochastic gradient descent but requires less iterations to achieve the same accuracy.
This algorithm is extensively described in the paper: “SGD-QN: Careful Quasi-Newton Stochastic Gradient Descent” by A. Bordes, L. Bottou and P. Gallinari.
SGD-QN, this library proposes the implementation of two other online solvers for linear SVMs:
SGD2, a standard first-order stochastic gradient descent (implemented by Leon Bottou) and
oLBFGS (see the paper [Schraudolph et al., 07]). A script to re-run the experiments of the JMLR paper is also provided.
We provide an implementation of
SGD-QN under the GNU Public License.
Description : The source code can be downloaded here: libsgdqn-1.1.tar.gz. All three algorithms are implemented in C++ and does not require any additional library. Their codes are in the 'libsgdqn/svm/' directory.
Compilation : (1) cd to 'libsgdqn/svm/' and (2) simply type make. Binaries: the compilation produces 2 binaries for each algorithm. A version for dense data and a version handling sparse data (with the prefix 'sparse_').
Command line : typing the command with no argument print a short help. The binaries can take up to 3 files as arguments:
Input file format : training and testing sets must be in LibSVM/SVMLight format and gziped.