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

radius margin quotions for binary SVMs More...

#include <shark/ObjectiveFunctions/RadiusMarginQuotient.h>

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

Classes

struct  Result
 

Public Types

typedef CacheType QpFloatType
 
typedef KernelMatrix< InputType, QpFloatTypeKernelMatrixType
 
typedef CachedMatrix< KernelMatrixTypeCachedMatrixType
 
typedef LabeledData< InputType, unsigned int > DatasetType
 
typedef AbstractKernelFunction< InputTypeKernelType
 
- Public Types inherited from shark::AbstractObjectiveFunction< RealVector, double >
enum  Feature
 List of features that are supported by an implementation. More...
 
typedef RealVector SearchPointType
 
typedef double ResultType
 
typedef boost::mpl::if_< std::is_arithmetic< double >, SearchPointType, RealMatrix >::type FirstOrderDerivative
 
typedef TypedFlags< FeatureFeatures
 This statement declares the member m_features. See Core/Flags.h for details. More...
 
typedef TypedFeatureNotAvailableException< FeatureFeatureNotAvailableException
 

Public Member Functions

 RadiusMarginQuotient (DatasetType const &dataset, KernelType *kernel)
 Constructor. More...
 
std::string name () const
 From INameable: return the class name. More...
 
std::size_t numberOfVariables () const
 Accesses the number of variables. More...
 
double eval (SearchPointType const &parameters) const
 Evaluate the radius margin quotient. More...
 
double evalDerivative (SearchPointType const &parameters, FirstOrderDerivative &derivative) const
 Evaluate the radius margin quotient and its first derivative. More...
 
- Public Member Functions inherited from shark::AbstractObjectiveFunction< RealVector, double >
const Featuresfeatures () const
 
virtual void updateFeatures ()
 
bool hasValue () const
 returns whether this function can calculate it's function value More...
 
bool hasFirstDerivative () const
 returns whether this function can calculate the first derivative More...
 
bool hasSecondDerivative () const
 returns whether this function can calculate the second derivative More...
 
bool canProposeStartingPoint () const
 returns whether this function can propose a starting point. More...
 
bool isConstrained () const
 returns whether this function can return More...
 
bool hasConstraintHandler () const
 returns whether this function can return More...
 
bool canProvideClosestFeasible () const
 Returns whether this function can calculate thee closest feasible to an infeasible point. More...
 
bool isThreadSafe () const
 Returns true, when the function can be usd in parallel threads. More...
 
bool isNoisy () const
 Returns true, when the function can be usd in parallel threads. More...
 
 AbstractObjectiveFunction ()
 Default ctor. More...
 
virtual ~AbstractObjectiveFunction ()
 Virtual destructor. More...
 
virtual void init ()
 
void setRng (random::rng_type *rng)
 Sets the Rng used by the objective function. More...
 
virtual bool hasScalableDimensionality () const
 
virtual void setNumberOfVariables (std::size_t numberOfVariables)
 Adjusts the number of variables if the function is scalable. More...
 
virtual std::size_t numberOfObjectives () const
 
virtual bool hasScalableObjectives () const
 
virtual void setNumberOfObjectives (std::size_t numberOfObjectives)
 Adjusts the number of objectives if the function is scalable. More...
 
std::size_t evaluationCounter () const
 Accesses the evaluation counter of the function. More...
 
AbstractConstraintHandler< SearchPointType > const & getConstraintHandler () const
 Returns the constraint handler of the function if it has one. More...
 
virtual bool isFeasible (const SearchPointType &input) const
 Tests whether a point in SearchSpace is feasible, e.g., whether the constraints are fulfilled. More...
 
virtual void closestFeasible (SearchPointType &input) const
 If supported, the supplied point is repaired such that it satisfies all of the function's constraints. More...
 
virtual SearchPointType proposeStartingPoint () const
 Proposes a starting point in the feasible search space of the function. More...
 
ResultType operator() (SearchPointType const &input) const
 Evaluates the function. Useful together with STL-Algorithms like std::transform. More...
 
virtual ResultType evalDerivative (SearchPointType const &input, SecondOrderDerivative &derivative) const
 Evaluates the objective function and calculates its gradient. More...
 
- Public Member Functions inherited from shark::INameable
virtual ~INameable ()
 

Protected Member Functions

Result computeRadiusMargin () const
 
- Protected Member Functions inherited from shark::AbstractObjectiveFunction< RealVector, double >
void announceConstraintHandler (AbstractConstraintHandler< SearchPointType > const *handler)
 helper function which is called to announce the presence of an constraint handler. More...
 

Protected Attributes

KernelTypemep_kernel
 underlying parameterized kernel object More...
 
DatasetType m_dataset
 labeled data for radius and (hard) margin computation More...
 
- Protected Attributes inherited from shark::AbstractObjectiveFunction< RealVector, double >
Features m_features
 
std::size_t m_evaluationCounter
 Evaluation counter, default value: 0. More...
 
AbstractConstraintHandler< SearchPointType > const * m_constraintHandler
 
random::rng_type * mep_rng
 

Detailed Description

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

radius margin quotions for binary SVMs

The RadiusMarginQuotient is the quotient \( R^2 / \rho^2 \) of the radius R of the smallest sphere containing the training data and the margin \(\rho\) of a binary hard margin support vector machine. Both distances depend on the kernel function, and thus on its parameters. The radius margin quotient is a common objective function for the adaptation of the kernel parameters of a binary hard-margin SVM.

Definition at line 59 of file RadiusMarginQuotient.h.

Member Typedef Documentation

◆ CachedMatrixType

template<class InputType, class CacheType = float>
typedef CachedMatrix< KernelMatrixType > shark::RadiusMarginQuotient< InputType, CacheType >::CachedMatrixType

Definition at line 65 of file RadiusMarginQuotient.h.

◆ DatasetType

template<class InputType, class CacheType = float>
typedef LabeledData<InputType, unsigned int> shark::RadiusMarginQuotient< InputType, CacheType >::DatasetType

Definition at line 67 of file RadiusMarginQuotient.h.

◆ KernelMatrixType

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

Definition at line 64 of file RadiusMarginQuotient.h.

◆ KernelType

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

Definition at line 68 of file RadiusMarginQuotient.h.

◆ QpFloatType

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

Definition at line 62 of file RadiusMarginQuotient.h.

Constructor & Destructor Documentation

◆ RadiusMarginQuotient()

Member Function Documentation

◆ computeRadiusMargin()

◆ eval()

◆ evalDerivative()

◆ name()

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

From INameable: return the class name.

Reimplemented from shark::INameable.

Definition at line 81 of file RadiusMarginQuotient.h.

◆ numberOfVariables()

template<class InputType, class CacheType = float>
std::size_t shark::RadiusMarginQuotient< InputType, CacheType >::numberOfVariables ( ) const
inlinevirtual

Member Data Documentation

◆ m_dataset

template<class InputType, class CacheType = float>
DatasetType shark::RadiusMarginQuotient< InputType, CacheType >::m_dataset
protected

◆ mep_kernel


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