Class BlockCoordinateDescentDictionaryUpdater
- java.lang.Object
-
- edu.gsu.cs.dmlab.sparse.dictionary.BlockCoordinateDescentDictionaryUpdater
-
- All Implemented Interfaces:
IDictionaryUpdater
public class BlockCoordinateDescentDictionaryUpdater extends Object implements IDictionaryUpdater
Implements the block coordinate descent for dictionary update from Mairal et al., 2010. The algorithm can be found in "Sparse Modeling, Theory, Algorithms, and Applications" by Irina Rish and Genady Ya. Grabarnik. Published by CRC Press 2015, on page 173. The block-coordinate descent general algorithm can be found on p 154 of the same.- Author:
- Dustin Kempton, Data Mining Lab, Georgia State University
-
-
Constructor Summary
Constructors Constructor Description BlockCoordinateDescentDictionaryUpdater(double epsilon)
Constructor with the error stopping point (epsilon) passed in.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
updateDictionary(smile.math.matrix.DenseMatrix dictionary, smile.math.matrix.DenseMatrix auxMatrixU, smile.math.matrix.DenseMatrix auxMatrixV)
Does a dictionary update based on some algorithm utilizing the input matrices.
-
-
-
Constructor Detail
-
BlockCoordinateDescentDictionaryUpdater
public BlockCoordinateDescentDictionaryUpdater(double epsilon)
Constructor with the error stopping point (epsilon) passed in.- Parameters:
epsilon
- The acceptable difference in the norm between updates. A proxy for error after update. This really needs to be around 1e-4 or lower to do much.
-
-
Method Detail
-
updateDictionary
public void updateDictionary(smile.math.matrix.DenseMatrix dictionary, smile.math.matrix.DenseMatrix auxMatrixU, smile.math.matrix.DenseMatrix auxMatrixV) throws MatrixDimensionMismatch, VectorDimensionMismatch
Description copied from interface:IDictionaryUpdater
Does a dictionary update based on some algorithm utilizing the input matrices.- Specified by:
updateDictionary
in interfaceIDictionaryUpdater
- Parameters:
dictionary
- The dictionary to be updated.auxMatrixU
- An auxiliary matrix used to update the dictionary.auxMatrixV
- Another auxiliary matrix used to update the dictionary.- Throws:
MatrixDimensionMismatch
- Thrown when the operations cannot be completed because the dimensions of the dictionary and the two auxiliary matrices mismatch.VectorDimensionMismatch
- Thrown when an operation cannot be done be cause a dimension in the auxiliary matrices do not work with the input dictionary.
-
-