mlpack  git-master

Class to hold the information and operations of current atoms in the soluton space. More...

Public Member Functions

 Atoms ()
 
void AddAtom (const arma::vec &v, FuncSq &function, const double c=0)
 Add atom into the solution space. More...

 
const arma::mat & CurrentAtoms () const
 Get the current atoms. More...

 
arma::mat & CurrentAtoms ()
 Modify the current atoms. More...

 
const arma::vec & CurrentCoeffs () const
 Get the current atom coefficients. More...

 
arma::vec & CurrentCoeffs ()
 Modify the current atom coefficients. More...

 
void ProjectedGradientEnhancement (FuncSq &function, double tau, double stepSize, size_t maxIteration=100, double tolerance=1e-3)
 Enhance the solution in the convex hull of current atoms with atom norm constraint tau. More...

 
void PruneSupport (const double F, FuncSq &function)
 Prune the support, delete previous atoms if they don't contribute much. More...

 
void RecoverVector (arma::mat &x)
 Recover the solution coordinate from the coefficients of current atoms. More...

 

Detailed Description

Class to hold the information and operations of current atoms in the soluton space.

Definition at line 25 of file atoms.hpp.

Constructor & Destructor Documentation

◆ Atoms()

Atoms ( )
inline

Definition at line 28 of file atoms.hpp.

Member Function Documentation

◆ AddAtom()

void AddAtom ( const arma::vec &  v,
FuncSq function,
const double  c = 0 
)
inline

Add atom into the solution space.

Parameters
vnew atom to be added.
ccoefficient of the new atom.

Definition at line 36 of file atoms.hpp.

References Atoms::CurrentAtoms(), and Atoms::CurrentCoeffs().

Referenced by UpdateSpan::Update(), and UpdateFullCorrection::Update().

◆ CurrentAtoms() [1/2]

const arma::mat& CurrentAtoms ( ) const
inline

Get the current atoms.

Definition at line 203 of file atoms.hpp.

Referenced by Atoms::AddAtom(), and UpdateSpan::Update().

◆ CurrentAtoms() [2/2]

arma::mat& CurrentAtoms ( )
inline

Modify the current atoms.

Definition at line 205 of file atoms.hpp.

◆ CurrentCoeffs() [1/2]

const arma::vec& CurrentCoeffs ( ) const
inline

Get the current atom coefficients.

Definition at line 198 of file atoms.hpp.

Referenced by Atoms::AddAtom(), UpdateSpan::Update(), and UpdateFullCorrection::Update().

◆ CurrentCoeffs() [2/2]

arma::vec& CurrentCoeffs ( )
inline

Modify the current atom coefficients.

Definition at line 200 of file atoms.hpp.

◆ ProjectedGradientEnhancement()

void ProjectedGradientEnhancement ( FuncSq function,
double  tau,
double  stepSize,
size_t  maxIteration = 100,
double  tolerance = 1e-3 
)
inline

Enhance the solution in the convex hull of current atoms with atom norm constraint tau.

Used in UpdateFullCorrection class for update step.

Minimize the function in the atom domain defined by current atoms, where the solution still need to have atom norm (defined by current atoms) less than or equal to tau. We use projected gradient method to solve it, see the "Enhancement step" of the following paper:

@article{RaoShaWri:2015Forward--backward,
Author = {Rao, Nikhil and Shah, Parikshit and Wright, Stephen},
Journal = {IEEE Transactions on Signal Processing},
Number = {21},
Pages = {5798--5811},
Publisher = {IEEE},
Title = {Forward--backward greedy algorithms for atomic norm regularization},
Volume = {63},
Year = {2015}
}
Parameters
functionfunction to be minimized.
tauatom norm constraint.
stepSizestep size for projected gradient method.
maxIterationmaximum iteration number.
tolerancetolerance for projected gradient method.

Definition at line 165 of file atoms.hpp.

References Proximal::ProjectToL1Ball(), and Atoms::RecoverVector().

Referenced by UpdateFullCorrection::Update().

◆ PruneSupport()

void PruneSupport ( const double  F,
FuncSq function 
)
inline

Prune the support, delete previous atoms if they don't contribute much.

See Algorithm 2 of paper:

@article{RaoShaWri:2015Forward--backward,
Author = {Rao, Nikhil and Shah, Parikshit and Wright, Stephen},
Journal = {IEEE Transactions on Signal Processing},
Number = {21},
Pages = {5798--5811},
Publisher = {IEEE},
Title = {Forward--backward greedy algorithms for atomic norm regularization},
Volume = {63},
Year = {2015}
}
Parameters
Fthresholding number.
functionfunction to be optimized.

Definition at line 85 of file atoms.hpp.

References Atoms::RecoverVector().

Referenced by UpdateSpan::Update().

◆ RecoverVector()

void RecoverVector ( arma::mat &  x)
inline

Recover the solution coordinate from the coefficients of current atoms.

Definition at line 61 of file atoms.hpp.

Referenced by Atoms::ProjectedGradientEnhancement(), Atoms::PruneSupport(), UpdateSpan::Update(), and UpdateFullCorrection::Update().


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