This class implements a method titled 'Alternating Least Squares' described in the following paper: More...

Public Member Functions

 NMFALSUpdate ()
 Empty constructor required for the UpdateRule template. More...

 
template
<
typename
MatType
>
void Initialize (const MatType &, const size_t)
 Set initial values for the factorization. More...

 
template
<
typename
Archive
>
void serialize (Archive &, const uint32_t)
 Serialize the object (in this case, there is nothing to serialize). More...

 

Static Public Member Functions

template
<
typename
MatType
>
static void HUpdate (const MatType &V, const arma::mat &W, arma::mat &H)
 The update rule for the encoding matrix H. More...

 
template
<
typename
MatType
>
static void WUpdate (const MatType &V, arma::mat &W, const arma::mat &H)
 The update rule for the basis matrix W. More...

 

Detailed Description

This class implements a method titled 'Alternating Least Squares' described in the following paper:

@article{paatero1994positive,
title={Positive matrix factorization: A non-negative factor model with
optimal utilization of error estimates of data values},
author={Paatero, P. and Tapper, U.},
journal={Environmetrics},
volume={5},
number={2},
pages={111--126},
year={1994}
}

It uses the least squares projection formula to reduce the error value of $ \sqrt{\sum_i \sum_j(V-WH)^2} $ by alternately calculating W and H respectively while holding the other matrix constant.

Definition at line 41 of file nmf_als.hpp.

Constructor & Destructor Documentation

◆ NMFALSUpdate()

NMFALSUpdate ( )
inline

Empty constructor required for the UpdateRule template.

Definition at line 45 of file nmf_als.hpp.

Member Function Documentation

◆ HUpdate()

static void HUpdate ( const MatType &  V,
const arma::mat &  W,
arma::mat &  H 
)
inlinestatic

The update rule for the encoding matrix H.

The formula used is

\[ H = \frac{W^T V}{W^T W} \]

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 105 of file nmf_als.hpp.

◆ Initialize()

void Initialize ( const MatType &  ,
const size_t   
)
inline

Set initial values for the factorization.

In this case, we don't need to set anything.

Definition at line 52 of file nmf_als.hpp.

◆ serialize()

void serialize ( Archive &  ,
const uint32_t   
)
inline

Serialize the object (in this case, there is nothing to serialize).

Definition at line 123 of file nmf_als.hpp.

◆ WUpdate()

static void WUpdate ( const MatType &  V,
arma::mat &  W,
const arma::mat &  H 
)
inlinestatic

The update rule for the basis matrix W.

The formula used isa

\[ W^T = \frac{H V^T}{H H^T} \]

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 72 of file nmf_als.hpp.


The documentation for this class was generated from the following file:
  • /home/ryan/src/mlpack.org/_src/mlpack-git/src/mlpack/methods/amf/update_rules/nmf_als.hpp