Training of Epsilon-SVMs for regression. More...
#include <shark/Algorithms/Trainers/EpsilonSvmTrainer.h>
Public Types | |
typedef CacheType | QpFloatType |
typedef KernelMatrix< InputType, QpFloatType > | KernelMatrixType |
typedef BlockMatrix2x2< KernelMatrixType > | BlockMatrixType |
typedef CachedMatrix< BlockMatrixType > | CachedBlockMatrixType |
typedef PrecomputedMatrix< BlockMatrixType > | PrecomputedBlockMatrixType |
typedef AbstractModel< InputType, RealVector > | ModelType |
typedef AbstractKernelFunction< InputType > | KernelType |
Public Types inherited from shark::AbstractSvmTrainer< InputType, RealVector, KernelExpansion< InputType > > | |
typedef AbstractKernelFunction< InputType > | KernelType |
Public Types inherited from shark::AbstractTrainer< Model, LabelTypeT > | |
typedef Model | ModelType |
typedef ModelType::InputType | InputType |
typedef LabelTypeT | LabelType |
typedef LabeledData< InputType, LabelType > | DatasetType |
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 ®ularizers) |
Set the value of the regularization parameter C. More... | |
KernelType * | kernel () |
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... | |
QpStoppingCondition & | stoppingCondition () |
Read/write access to the stopping condition. More... | |
QpStoppingCondition const & | stoppingCondition () const |
Read access to the stopping condition. More... | |
QpSolutionProperties & | solutionProperties () |
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 > > | |
KernelType * | m_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... | |
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.
typedef BlockMatrix2x2< KernelMatrixType > shark::EpsilonSvmTrainer< InputType, CacheType >::BlockMatrixType |
Definition at line 86 of file EpsilonSvmTrainer.h.
typedef CachedMatrix< BlockMatrixType > shark::EpsilonSvmTrainer< InputType, CacheType >::CachedBlockMatrixType |
Definition at line 87 of file EpsilonSvmTrainer.h.
typedef KernelMatrix< InputType, QpFloatType > shark::EpsilonSvmTrainer< InputType, CacheType >::KernelMatrixType |
Definition at line 85 of file EpsilonSvmTrainer.h.
typedef AbstractKernelFunction<InputType> shark::EpsilonSvmTrainer< InputType, CacheType >::KernelType |
Definition at line 91 of file EpsilonSvmTrainer.h.
typedef AbstractModel<InputType, RealVector> shark::EpsilonSvmTrainer< InputType, CacheType >::ModelType |
Definition at line 90 of file EpsilonSvmTrainer.h.
typedef PrecomputedMatrix< BlockMatrixType > shark::EpsilonSvmTrainer< InputType, CacheType >::PrecomputedBlockMatrixType |
Definition at line 88 of file EpsilonSvmTrainer.h.
typedef CacheType shark::EpsilonSvmTrainer< InputType, CacheType >::QpFloatType |
Definition at line 83 of file EpsilonSvmTrainer.h.
|
inline |
Constructor
kernel | kernel function to use for training and prediction |
C | regularization parameter - always the 'true' value of C, even when unconstrained is set |
epsilon | Loss insensitivity parameter. |
unconstrained | when 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.
|
inline |
Definition at line 108 of file EpsilonSvmTrainer.h.
Referenced by shark::EpsilonSvmTrainer< InputType, CacheType >::setEpsilon().
|
inlinevirtual |
From INameable: return the class name.
Reimplemented from shark::INameable.
Definition at line 105 of file EpsilonSvmTrainer.h.
|
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().
|
inlinevirtual |
get the hyper-parameter vector
Reimplemented from shark::IParameterizable<>.
Definition at line 114 of file EpsilonSvmTrainer.h.
References shark::AbstractSvmTrainer< InputType, RealVector, KernelExpansion< InputType > >::m_unconstrained, and shark::AbstractSvmTrainer< InputType, RealVector, KernelExpansion< InputType > >::parameterVector().
|
inline |
Definition at line 110 of file EpsilonSvmTrainer.h.
References shark::EpsilonSvmTrainer< InputType, CacheType >::epsilon().
|
inlinevirtual |
set the vector of hyper-parameters
Reimplemented from shark::IParameterizable<>.
Definition at line 120 of file EpsilonSvmTrainer.h.
References shark::AbstractSvmTrainer< InputType, RealVector, KernelExpansion< InputType > >::numberOfParameters(), shark::AbstractSvmTrainer< InputType, RealVector, KernelExpansion< InputType > >::setParameterVector(), and SHARK_ASSERT.
|
inline |
Definition at line 131 of file EpsilonSvmTrainer.h.
References shark::AbstractSvmTrainer< InputType, RealVector, KernelExpansion< InputType > >::C(), shark::LabeledData< InputT, LabelT >::element(), shark::LabeledData< InputT, LabelT >::inputs(), shark::labelDimension(), shark::AbstractSvmTrainer< InputType, RealVector, KernelExpansion< InputType > >::m_kernel, shark::QpConfig::m_shrinking, shark::QpConfig::precomputeKernel(), shark::KernelExpansion< InputType >::setStructure(), SHARK_RUNTIME_CHECK, shark::QpConfig::solutionProperties(), shark::QpSolver< Problem, SelectionStrategy >::solve(), shark::QpConfig::sparsify(), and shark::QpConfig::stoppingCondition().
Referenced by main().