MLPACK  1.0.11
Public Member Functions | Private Attributes | List of all members
mlpack::amf::SVDBatchLearning Class Reference

This class implements SVD batch learning with momentum. More...

Public Member Functions

 SVDBatchLearning (double u=0.0002, double kw=0, double kh=0, double momentum=0.9, double min=-DBL_MIN, double max=DBL_MAX)
 SVD Batch learning constructor. More...
 
template<typename MatType >
void HUpdate (const MatType &V, const arma::mat &W, arma::mat &H)
 The update rule for the encoding matrix H. More...
 
template<typename MatType >
void Initialize (const MatType &dataset, const size_t rank)
 
template<typename MatType >
void WUpdate (const MatType &V, arma::mat &W, const arma::mat &H)
 The update rule for the basis matrix W. More...
 

Private Attributes

double kh
 
double kw
 
double max
 
arma::mat mH
 
double min
 
double momentum
 
arma::mat mW
 
double u
 

Detailed Description

This class implements SVD batch learning with momentum.

This procedure is described in the paper 'A Guide to singular Value Decomposition' by Chih-Chao Ma. Class implements 'Algorithm 4' given in the paper. This factorizer decomposes the matrix V into two matrices W and H such that sum of sum of squared error between V and W*H is minimum. This optimization is performed with gradient descent. To make gradient descent faster momentum is added.

Definition at line 37 of file svd_batch_learning.hpp.

Constructor & Destructor Documentation

mlpack::amf::SVDBatchLearning::SVDBatchLearning ( double  u = 0.0002,
double  kw = 0,
double  kh = 0,
double  momentum = 0.9,
double  min = -DBL_MIN,
double  max = DBL_MAX 
)
inline

SVD Batch learning constructor.

Parameters
ustep value used in batch learning
kwregularization constant for W matrix
khregularization constant for H matrix
momentummomentum applied to batch learning process

Definition at line 48 of file svd_batch_learning.hpp.

Member Function Documentation

template<typename MatType >
void mlpack::amf::SVDBatchLearning::HUpdate ( const MatType &  V,
const arma::mat &  W,
arma::mat &  H 
)
inline

The update rule for the encoding matrix H.

The function takes in all the matrices and only changes the value of the H matrix.

Parameters
VInput matrix to be factorized.
WBasis matrix.
HEncoding matrix to be updated.

Definition at line 117 of file svd_batch_learning.hpp.

References kh, mH, momentum, and u.

template<typename MatType >
void mlpack::amf::SVDBatchLearning::Initialize ( const MatType &  dataset,
const size_t  rank 
)
inline

Definition at line 58 of file svd_batch_learning.hpp.

References mH, and mW.

template<typename MatType >
void mlpack::amf::SVDBatchLearning::WUpdate ( const MatType &  V,
arma::mat &  W,
const arma::mat &  H 
)
inline

The update rule for the basis matrix W.

The function takes in all the matrices and only changes the value of the W matrix.

Parameters
VInput matrix to be factorized.
WBasis matrix to be updated.
HEncoding matrix.

Definition at line 77 of file svd_batch_learning.hpp.

References kw, momentum, mW, and u.

Member Data Documentation

double mlpack::amf::SVDBatchLearning::kh
private

Definition at line 150 of file svd_batch_learning.hpp.

Referenced by HUpdate().

double mlpack::amf::SVDBatchLearning::kw
private

Definition at line 149 of file svd_batch_learning.hpp.

Referenced by WUpdate().

double mlpack::amf::SVDBatchLearning::max
private

Definition at line 152 of file svd_batch_learning.hpp.

arma::mat mlpack::amf::SVDBatchLearning::mH
private

Definition at line 156 of file svd_batch_learning.hpp.

Referenced by HUpdate(), and Initialize().

double mlpack::amf::SVDBatchLearning::min
private

Definition at line 151 of file svd_batch_learning.hpp.

double mlpack::amf::SVDBatchLearning::momentum
private

Definition at line 153 of file svd_batch_learning.hpp.

Referenced by HUpdate(), and WUpdate().

arma::mat mlpack::amf::SVDBatchLearning::mW
private

Definition at line 155 of file svd_batch_learning.hpp.

Referenced by Initialize(), and WUpdate().

double mlpack::amf::SVDBatchLearning::u
private

Definition at line 148 of file svd_batch_learning.hpp.

Referenced by HUpdate(), and WUpdate().


The documentation for this class was generated from the following file: