Public Member Functions | Protected Member Functions | Protected Attributes

CMKLMultiClass Class Reference


Detailed Description

MKLMultiClass is a class for L1-norm multiclass MKL.

It is based on the GMNPSVM Multiclass SVM. Its own parameters are the L2 norm weight change based MKL Its termination criterion set by void set_mkl_epsilon(float64_t eps ); and the maximal number of MKL iterations set by void set_max_num_mkliters(int32_t maxnum); It passes the regularization constants C1 and C2 to GMNPSVM.

Definition at line 32 of file MKLMultiClass.h.

Inheritance diagram for CMKLMultiClass:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 CMKLMultiClass ()
 CMKLMultiClass (float64_t C, CKernel *k, CLabels *lab)
virtual ~CMKLMultiClass ()
virtual EClassifierType get_classifier_type ()
float64_tgetsubkernelweights (int32_t &numweights)
void set_mkl_epsilon (float64_t eps)
void set_max_num_mkliters (int32_t maxnum)
virtual void set_mkl_norm (float64_t norm)

Protected Member Functions

 CMKLMultiClass (const CMKLMultiClass &cm)
CMKLMultiClass operator= (const CMKLMultiClass &cm)
void initlpsolver ()
void initsvm ()
virtual bool evaluatefinishcriterion (const int32_t numberofsilpiterations)
void addingweightsstep (const std::vector< float64_t > &curweights)
float64_t getsumofsignfreealphas ()
float64_t getsquarenormofprimalcoefficients (const int32_t ind)
virtual bool train_machine (CFeatures *data=NULL)

Protected Attributes

CGMNPSVMsvm
MKLMultiClassOptimizationBaselpw
::std::vector< std::vector
< float64_t > > 
weightshistory
float64_t mkl_eps
int32_t max_num_mkl_iters
float64_t pnorm
std::vector< float64_tnormweightssquared

Constructor & Destructor Documentation

CMKLMultiClass (  ) 

Class default Constructor

Definition at line 17 of file MKLMultiClass.cpp.

CMKLMultiClass ( float64_t  C,
CKernel k,
CLabels lab 
)

Class Constructor commonly used in Shogun Toolbox

Parameters:
C constant C
k kernel
lab labels

Definition at line 28 of file MKLMultiClass.cpp.

~CMKLMultiClass (  )  [virtual]

Class default Destructor

Definition at line 40 of file MKLMultiClass.cpp.

CMKLMultiClass ( const CMKLMultiClass cm  )  [protected]

Class Copy Constructor protected to avoid its usage

Definition at line 48 of file MKLMultiClass.cpp.


Member Function Documentation

void addingweightsstep ( const std::vector< float64_t > &  curweights  )  [protected]

adds a constraint to the LP used in MKL

Parameters:
curweights are the current MKL weights

it uses void addingweightsstep( const std::vector<float64_t> & curweights); and float64_t getsumofsignfreealphas();

Definition at line 205 of file MKLMultiClass.cpp.

bool evaluatefinishcriterion ( const int32_t  numberofsilpiterations  )  [protected, virtual]

checks MKL for convergence

Parameters:
numberofsilpiterations is the number of currently done iterations

Definition at line 129 of file MKLMultiClass.cpp.

virtual EClassifierType get_classifier_type (  )  [virtual]

get classifier type

Returns:
classifier type GMNPMKL

Reimplemented from CMachine.

Definition at line 56 of file MKLMultiClass.h.

float64_t getsquarenormofprimalcoefficients ( const int32_t  ind  )  [protected]

computes the second svm-dependent part used for generating MKL constraints

Parameters:
ind is the index of the kernel for which to compute $ \|w \|^2 $

Definition at line 289 of file MKLMultiClass.cpp.

float64_t * getsubkernelweights ( int32_t &  numweights  ) 

returns MKL weights for the different kernels

Parameters:
numweights is output parameter, is set to zero if no weights have been computed or to the number of MKL weights which is equal to the number of kernels
Returns:
NULL if no weights have been computed or otherwise an array with the weights, caller has to SG_FREE() the output

Definition at line 403 of file MKLMultiClass.cpp.

float64_t getsumofsignfreealphas (  )  [protected]

computes the first svm-dependent part used for generating MKL constraints it is $ \sum_y b_y^2-\sum_i \sum_{ y | y \neq y_i} \alpha_{iy}(b_{y_i}-b_y-1) $

Definition at line 241 of file MKLMultiClass.cpp.

void initlpsolver (  )  [protected]

performs some sanity checks (on the provided kernel), inits the GLPK-based LP solver

Definition at line 90 of file MKLMultiClass.cpp.

void initsvm (  )  [protected]

inits the underlying Multiclass SVM

Definition at line 67 of file MKLMultiClass.cpp.

CMKLMultiClass operator= ( const CMKLMultiClass cm  )  [protected]

Class Assignment operator protected to avoid its usage

Definition at line 58 of file MKLMultiClass.cpp.

void set_max_num_mkliters ( int32_t  maxnum  ) 

sets maximal number of MKL iterations

Parameters:
maxnum is the desired maximal number of MKL iterations; when it is reached the MKL terminates irrespective of the MKL progress set it to a nonpositive value in order to turn it off

Definition at line 424 of file MKLMultiClass.cpp.

void set_mkl_epsilon ( float64_t  eps  ) 

sets MKL termination threshold

Parameters:
eps is the desired threshold value the termination criterion is the L2 norm between the current MKL weights and their counterpart from the previous iteration

Definition at line 419 of file MKLMultiClass.cpp.

void set_mkl_norm ( float64_t  norm  )  [virtual]

set mkl norm

Parameters:
norm 

Definition at line 429 of file MKLMultiClass.cpp.

bool train_machine ( CFeatures data = NULL  )  [protected, virtual]

train Multiclass MKL classifier

Parameters:
data training data (parameter can be avoided if distance or kernel-based classifiers are used and distance/kernels are initialized with train data)
Returns:
whether training was successful

Reimplemented from CMachine.

Definition at line 325 of file MKLMultiClass.cpp.


Member Data Documentation

the solver wrapper

Definition at line 174 of file MKLMultiClass.h.

int32_t max_num_mkl_iters [protected]

maximal number of MKL iterations is set by void set_max_num_mkliters(int32_t maxnum);

Definition at line 187 of file MKLMultiClass.h.

float64_t mkl_eps [protected]

MKL termination threshold is set void set_mkl_epsilon(float64_t eps );

Definition at line 183 of file MKLMultiClass.h.

std::vector<float64_t> normweightssquared [protected]

stores the term \| w_l \|^2 ~~~ "alpha o Y K_l Y o alpha"

Definition at line 195 of file MKLMultiClass.h.

float64_t pnorm [protected]

MKL norm >=1

Definition at line 191 of file MKLMultiClass.h.

CGMNPSVM* svm [protected]

the multiclass svm for fixed MKL weights

Definition at line 170 of file MKLMultiClass.h.

::std::vector< std::vector< float64_t> > weightshistory [protected]

stores the last two mkl iteration weights

Definition at line 178 of file MKLMultiClass.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

SHOGUN Machine Learning Toolbox - Documentation