mlpack_sparse_coding1
Sparse coding
Usage
mlpack_sparse_coding [-k
int]
[-i
unknown]
[-m
unknown]
[-l
double]
[-L
double]
[-n
int]
[-w
double]
[-N
bool]
[-o
double]
[-s
int]
[-T
unknown]
[-t
unknown]
[-V
bool]
[-c
unknown]
[-d
unknown]
[-M
unknown]
[-h
-v]
Overview
An implementation of Sparse Coding with Dictionary Learning, which achieves sparsity via an l1-norm regularizer on the codes (LASSO) or an (l1+l2)-norm regularizer on the codes (the Elastic Net). Given a dense data matrix X with d dimensions and n points, sparse coding seeks to find a dense dictionary matrix D with k atoms in d dimensions, and a sparse coding matrix Z with n points in k dimensions.
The original data matrix X can then be reconstructed as Z * D. Therefore, this program finds a representation of each point in X as a sparse linear combination of atoms in the dictionary D.
The sparse coding is found with an algorithm which alternates between a dictionary step, which updates the dictionary D, and a sparse coding step, which updates the sparse coding matrix.
Once a dictionary D is found, the sparse coding model may be used to encode other matrices, and saved for future usage.
To run this program, either an input matrix or an already-saved sparse coding model must be specified. An input matrix may be specified with the ’--training_file (-t)' option, along with the number of atoms in the dictionary (specified with the '--atoms (-k)' parameter). It is also possible to specify an initial dictionary for the optimization, with the ’--initial_dictionary_file (-i)' parameter. An input model may be specified with the '--input_model_file (-m)' parameter.
As an example, to build a sparse coding model on the dataset 'data.csv' using 200 atoms and an l1-regularization parameter of 0.1, saving the model into ’model.bin', use
$ mlpack_sparse_coding --training_file data.csv --atoms 200 --lambda1 0.1 --output_model_file model.bin
Then, this model could be used to encode a new matrix, 'otherdata.csv', and save the output codes to 'codes.csv':
$ mlpack_sparse_coding --input_model_file model.bin --test_file otherdata.csv --codes_file codes.csv
Options
--atoms (-k) [int]
|
Number of atoms in the dictionary. Default value 15. |
|---|---|
--help (-h) [bool]
|
Default help info. |
-
--info [string] -
Print help on a specific option. Default value ''.
- --initial_dictionary_file (-i) [unknown]
-
Optional initial dictionary matrix.
- --input_model_file (-m) [unknown]
-
File containing input sparse coding model.
- --lambda1 (-l) [double]
-
Sparse coding l1-norm regularization parameter. Default value 0.
- --lambda2 (-L) [double]
-
Sparse coding l2-norm regularization parameter. Default value 0.
- --max_iterations (-n) [int]
-
Maximum number of iterations for sparse coding (0 indicates no limit). Default value 0.
- --newton_tolerance (-w) [double]
-
Tolerance for convergence of Newton method. Default value 1e-06.
- --normalize (-N) [bool]
-
If set, the input data matrix will be normalized before coding.
- --objective_tolerance (-o) [double]
-
Tolerance for convergence of the objective function. Default value 0.01.
- --seed (-s) [int]
-
Random seed. If 0, 'std::time(NULL)' is used. Default value 0.
- --test_file (-T) [unknown]
-
Optional matrix to be encoded by trained model.
- --training_file (-t) [unknown]
-
Matrix of training data (X).
- --verbose (-v) [bool]
-
Display informational messages and the full list of parameters and timers at the end of execution.
- --version (-V) [bool]
-
Display the version of mlpack.
Options
--codes_file (-c) [unknown]
|
Matrix to save the output sparse codes of the test matrix ( |
|---|---|
--dictionary_file (-d) [unknown]
|
Matrix to save the output dictionary to. |
--output_model_file (-M) [unknown]
|
File to save trained sparse coding model to. |
Additional information
For further information, including relevant papers, citations, and theory, consult the documentation found at http://www.mlpack.org or included with your distribution of mlpack.
Releases
5 releases since Debian 8 (Jessie); the text changed 4 times.
--help until Debian 9 (Stretch);
--normalize until Debian 9 (Stretch);
--verbose until Debian 9 (Stretch);
--version until Debian 9 (Stretch).