mlpack  git-master
ConstrStructGroupSolver< GroupType > Class Template Reference

Linear Constrained Solver for FrankWolfe. More...

Public Member Functions

 ConstrStructGroupSolver (GroupType &groupExtractor)
 Construct the structure group optimization solver. More...

 
void Optimize (const arma::mat &v, arma::mat &s)
 Optimizer of structure group ball constrained Problem for FrankWolfe. More...

 

Detailed Description


template
<
typename
GroupType
>

class mlpack::optimization::ConstrStructGroupSolver< GroupType >

Linear Constrained Solver for FrankWolfe.

Constrained domain given in the form of unit ball of different structured group. That is, given original vector $ v $ in high dimensional space, suppose we can map it into different smaller dimensional spaces (decomposing the information):

\[ v \rightarrow v_g, \qquad g\in G. \]

For example, each group corresponds to a specific set of support subsets, as in GroupLpBall class. Also, a norm would be equipped for each group: $ || v_g ||_g $, for example lp norm could be used, as in GroupLpBall class. Now, the norm defined for the original vector is:

\[ ||v||_G := \min_{v_g} \sum_{g\in G} ||v_g||_g, \qquad s.t. \quad v = \sum_{g\in G} v_g \]

This norm is an atom norm, and the dual norm is given by

\[ ||y||^*_G := \max_{g\in G} ||y_g||_g^* \]

See Jaggi's paper:

@inproceedings{Jag:2013Revisiting,
Author = {Jaggi, Martin},
Booktitle = {ICML (1)},
Pages = {427--435},
Title = {Revisiting Frank-Wolfe: Projection-Free Sparse Convex Optimization.},
Year = {2013}}

For ConstrStrctGroupSolver to work, we need to use template class GroupType, which gives functions:

size_t NumGroups(); double DualNorm(const arma::vec& yk, const int group_ind); ProjectToGroup(const arma::mat& v, const size_t groupId, arma::vec& y); void OptimalFromGroup(const arma::mat& v, const size_t groupId, arma::mat& s);

Template Parameters
GroupTypeClass that implements functions to map original vectors to each group, and to solve linear optimization problem in the unit ball defined by the norm of each group.

Definition at line 68 of file constr_structure_group.hpp.

Constructor & Destructor Documentation

◆ ConstrStructGroupSolver()

ConstrStructGroupSolver ( GroupType &  groupExtractor)
inline

Construct the structure group optimization solver.

Parameters
groupExtractorClass used to project to a group, recovery from a group, and compute norm in each group.

Definition at line 77 of file constr_structure_group.hpp.

Member Function Documentation

◆ Optimize()

void Optimize ( const arma::mat &  v,
arma::mat &  s 
)
inline

Optimizer of structure group ball constrained Problem for FrankWolfe.

Parameters
vInput local gradient.
sOutput optimal solution in the constrained atom domain.

Definition at line 87 of file constr_structure_group.hpp.


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