shark::EpsilonSvmTrainer< InputType, CacheType > Class Template Reference

Training of Epsilon-SVMs for regression. More...

#include <shark/Algorithms/Trainers/EpsilonSvmTrainer.h>

+ Inheritance diagram for shark::EpsilonSvmTrainer< InputType, CacheType >:

Public Types

typedef CacheType QpFloatType
 
typedef KernelMatrix< InputType, QpFloatTypeKernelMatrixType
 
typedef BlockMatrix2x2< KernelMatrixTypeBlockMatrixType
 
typedef CachedMatrix< BlockMatrixTypeCachedBlockMatrixType
 
typedef PrecomputedMatrix< BlockMatrixTypePrecomputedBlockMatrixType
 
typedef AbstractModel< InputType, RealVector > ModelType
 
typedef AbstractKernelFunction< InputTypeKernelType
 
- Public Types inherited from shark::AbstractSvmTrainer< InputType, RealVector, KernelExpansion< InputType > >
typedef AbstractKernelFunction< InputTypeKernelType
 
- Public Types inherited from shark::AbstractTrainer< Model, LabelTypeT >
typedef Model ModelType
 
typedef ModelType::InputType InputType
 
typedef LabelTypeT LabelType
 
typedef LabeledData< InputType, LabelTypeDatasetType
 
- Public Types inherited from shark::IParameterizable<>
typedef RealVector ParameterVectorType
 

Public Member Functions

 EpsilonSvmTrainer (KernelType *kernel, double C, double epsilon, bool unconstrained=false)
 
std::string name () const
 From INameable: return the class name. More...
 
double epsilon () const
 
void setEpsilon (double epsilon)
 
RealVector parameterVector () const
 get the hyper-parameter vector More...
 
void setParameterVector (RealVector const &newParameters)
 set the vector of hyper-parameters More...
 
size_t numberOfParameters () const
 return the number of hyper-parameters More...
 
void train (KernelExpansion< InputType > &svm, LabeledData< InputType, RealVector > const &dataset)
 
- Public Member Functions inherited from shark::AbstractSvmTrainer< InputType, RealVector, KernelExpansion< InputType > >
 AbstractSvmTrainer (KernelType *kernel, double C, bool offset, bool unconstrained=false)
 
 AbstractSvmTrainer (KernelType *kernel, double negativeC, double positiveC, bool offset, bool unconstrained=false)
 
double C () const
 Return the value of the regularization parameter C. More...
 
void setC (double C)
 Set the value of the regularization parameter C. More...
 
RealVector const & regularizationParameters () const
 
void setRegularizationParameters (RealVector const &regularizers)
 Set the value of the regularization parameter C. More...
 
KernelTypekernel ()
 
KernelType const * kernel () const
 
void setKernel (KernelType *kernel)
 
bool isUnconstrained () const
 
bool trainOffset () const
 
std::size_t cacheSize () const
 
void setCacheSize (std::size_t size)
 
RealVector parameterVector () const
 get the hyper-parameter vector More...
 
void setParameterVector (RealVector const &newParameters)
 set the vector of hyper-parameters More...
 
size_t numberOfParameters () const
 return the number of hyper-parameters More...
 
- Public Member Functions inherited from shark::AbstractTrainer< Model, LabelTypeT >
virtual void train (ModelType &model, DatasetType const &dataset)=0
 Core of the Trainer interface. More...
 
- Public Member Functions inherited from shark::INameable
virtual ~INameable ()
 
- Public Member Functions inherited from shark::ISerializable
virtual ~ISerializable ()
 Virtual d'tor. More...
 
virtual void read (InArchive &archive)
 Read the component from the supplied archive. More...
 
virtual void write (OutArchive &archive) const
 Write the component to the supplied archive. More...
 
void load (InArchive &archive, unsigned int version)
 Versioned loading of components, calls read(...). More...
 
void save (OutArchive &archive, unsigned int version) const
 Versioned storing of components, calls write(...). More...
 
 BOOST_SERIALIZATION_SPLIT_MEMBER ()
 
- Public Member Functions inherited from shark::QpConfig
 QpConfig (bool precomputedFlag=false, bool sparsifyFlag=true)
 Constructor. More...
 
QpStoppingConditionstoppingCondition ()
 Read/write access to the stopping condition. More...
 
QpStoppingCondition const & stoppingCondition () const
 Read access to the stopping condition. More...
 
QpSolutionPropertiessolutionProperties ()
 Access to the solution properties. More...
 
bool & precomputeKernel ()
 Flag for using a precomputed kernel matrix. More...
 
bool const & precomputeKernel () const
 Flag for using a precomputed kernel matrix. More...
 
bool & sparsify ()
 Flag for sparsifying the model after training. More...
 
bool const & sparsify () const
 Flag for sparsifying the model after training. More...
 
bool & shrinking ()
 Flag for shrinking in the decomposition solver. More...
 
bool const & shrinking () const
 Flag for shrinking in the decomposition solver. More...
 
bool & s2do ()
 Flag for S2DO (instead of SMO) More...
 
bool const & s2do () const
 Flag for S2DO (instead of SMO) More...
 
unsigned int & verbosity ()
 Verbosity level of the solver. More...
 
unsigned int const & verbosity () const
 Verbosity level of the solver. More...
 
unsigned long long const & accessCount () const
 Number of kernel accesses. More...
 
void setMinAccuracy (double a)
 
void setMaxIterations (unsigned long long i)
 
void setTargetValue (double v)
 
void setMaxSeconds (double s)
 
- Public Member Functions inherited from shark::IParameterizable<>
virtual ~IParameterizable ()
 

Additional Inherited Members

- Protected Attributes inherited from shark::AbstractSvmTrainer< InputType, RealVector, KernelExpansion< InputType > >
KernelTypem_kernel
 
RealVector m_regularizers
 Vector of regularization parameters. More...
 
bool m_trainOffset
 
bool m_unconstrained
 Is log(C) stored internally as a parameter instead of C? If yes, then we get rid of the constraint C > 0 on the level of the parameter interface. More...
 
std::size_t m_cacheSize
 Number of values in the kernel cache. The size of the cache in bytes is the size of one entry (4 for float, 8 for double) times this number. More...
 
- Protected Attributes inherited from shark::QpConfig
QpStoppingCondition m_stoppingcondition
 conditions for when to stop the QP solver More...
 
QpSolutionProperties m_solutionproperties
 properties of the approximate solution found by the solver More...
 
bool m_precomputedKernelMatrix
 should the solver use a precomputed kernel matrix? More...
 
bool m_sparsify
 should the trainer sparsify the model after training? More...
 
bool m_shrinking
 should shrinking be used? More...
 
bool m_s2do
 should S2DO be used instead of SMO? More...
 
unsigned int m_verbosity
 verbosity level (currently unused) More...
 
unsigned long long m_accessCount
 kernel access count More...
 

Detailed Description

template<class InputType, class CacheType = float>
class shark::EpsilonSvmTrainer< InputType, CacheType >

Training of Epsilon-SVMs for regression.

The Epsilon-SVM is a support vector machine variant for regression problems. Given are data tuples \( (x_i, y_i) \) with x-component denoting input and y-component denoting a real-valued label (see the tutorial on label conventions; the implementation uses RealVector), a kernel function k(x, x'), a regularization constant C > 0, and a loss insensitivity parameter \( \varepsilon \). Let H denote the kernel induced reproducing kernel Hilbert space of k, and let \( \phi \) denote the corresponding feature map. Then the SVM regression function is of the form

\[ (x) = \langle w, \phi(x) \rangle + b \]

with coefficients w and b given by the (primal) optimization problem

\[ \min \frac{1}{2} \|w\|^2 + C \sum_i L(y_i, f(x_i)), \]

where

\[ L(y, f(x)) = \max\{0, |y - f(x)| - \varepsilon \} \]

is the \( \varepsilon \) insensitive absolute loss.

Definition at line 79 of file EpsilonSvmTrainer.h.

Member Typedef Documentation

◆ BlockMatrixType

template<class InputType, class CacheType = float>
typedef BlockMatrix2x2< KernelMatrixType > shark::EpsilonSvmTrainer< InputType, CacheType >::BlockMatrixType

Definition at line 86 of file EpsilonSvmTrainer.h.

◆ CachedBlockMatrixType

template<class InputType, class CacheType = float>
typedef CachedMatrix< BlockMatrixType > shark::EpsilonSvmTrainer< InputType, CacheType >::CachedBlockMatrixType

Definition at line 87 of file EpsilonSvmTrainer.h.

◆ KernelMatrixType

template<class InputType, class CacheType = float>
typedef KernelMatrix< InputType, QpFloatType > shark::EpsilonSvmTrainer< InputType, CacheType >::KernelMatrixType

Definition at line 85 of file EpsilonSvmTrainer.h.

◆ KernelType

template<class InputType, class CacheType = float>
typedef AbstractKernelFunction<InputType> shark::EpsilonSvmTrainer< InputType, CacheType >::KernelType

Definition at line 91 of file EpsilonSvmTrainer.h.

◆ ModelType

template<class InputType, class CacheType = float>
typedef AbstractModel<InputType, RealVector> shark::EpsilonSvmTrainer< InputType, CacheType >::ModelType

Definition at line 90 of file EpsilonSvmTrainer.h.

◆ PrecomputedBlockMatrixType

template<class InputType, class CacheType = float>
typedef PrecomputedMatrix< BlockMatrixType > shark::EpsilonSvmTrainer< InputType, CacheType >::PrecomputedBlockMatrixType

Definition at line 88 of file EpsilonSvmTrainer.h.

◆ QpFloatType

template<class InputType, class CacheType = float>
typedef CacheType shark::EpsilonSvmTrainer< InputType, CacheType >::QpFloatType

Definition at line 83 of file EpsilonSvmTrainer.h.

Constructor & Destructor Documentation

◆ EpsilonSvmTrainer()

template<class InputType, class CacheType = float>
shark::EpsilonSvmTrainer< InputType, CacheType >::EpsilonSvmTrainer ( KernelType kernel,
double  C,
double  epsilon,
bool  unconstrained = false 
)
inline

Constructor

Parameters
kernelkernel function to use for training and prediction
Cregularization parameter - always the 'true' value of C, even when unconstrained is set
epsilonLoss insensitivity parameter.
unconstrainedwhen a C-value is given via setParameter, should it be piped through the exp-function before using it in the solver?

Definition at line 99 of file EpsilonSvmTrainer.h.

Member Function Documentation

◆ epsilon()

template<class InputType, class CacheType = float>
double shark::EpsilonSvmTrainer< InputType, CacheType >::epsilon ( ) const
inline

◆ name()

template<class InputType, class CacheType = float>
std::string shark::EpsilonSvmTrainer< InputType, CacheType >::name ( ) const
inlinevirtual

From INameable: return the class name.

Reimplemented from shark::INameable.

Definition at line 105 of file EpsilonSvmTrainer.h.

◆ numberOfParameters()

template<class InputType, class CacheType = float>
size_t shark::EpsilonSvmTrainer< InputType, CacheType >::numberOfParameters ( ) const
inlinevirtual

return the number of hyper-parameters

Reimplemented from shark::IParameterizable<>.

Definition at line 128 of file EpsilonSvmTrainer.h.

References shark::AbstractSvmTrainer< InputType, RealVector, KernelExpansion< InputType > >::numberOfParameters().

◆ parameterVector()

template<class InputType, class CacheType = float>
RealVector shark::EpsilonSvmTrainer< InputType, CacheType >::parameterVector ( ) const
inlinevirtual

◆ setEpsilon()

template<class InputType, class CacheType = float>
void shark::EpsilonSvmTrainer< InputType, CacheType >::setEpsilon ( double  epsilon)
inline

◆ setParameterVector()

template<class InputType, class CacheType = float>
void shark::EpsilonSvmTrainer< InputType, CacheType >::setParameterVector ( RealVector const &  newParameters)
inlinevirtual

◆ train()


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