shark::MergeBudgetMaintenanceStrategy< RealVector >::MergingProblemFunction Struct Reference

#include <shark/Algorithms/Trainers/Budgeted/MergeBudgetMaintenanceStrategy.h>

+ Inheritance diagram for shark::MergeBudgetMaintenanceStrategy< RealVector >::MergingProblemFunction:

Public Types

typedef SingleObjectiveFunction Base
 
- Public Types inherited from shark::AbstractObjectiveFunction< PointType, ResultT >
enum  Feature {
  HAS_VALUE = 1, HAS_FIRST_DERIVATIVE = 2, HAS_SECOND_DERIVATIVE = 4, CAN_PROPOSE_STARTING_POINT = 8,
  IS_CONSTRAINED_FEATURE = 16, HAS_CONSTRAINT_HANDLER = 32, CAN_PROVIDE_CLOSEST_FEASIBLE = 64, IS_THREAD_SAFE = 128,
  IS_NOISY = 256
}
 List of features that are supported by an implementation. More...
 
typedef PointType SearchPointType
 
typedef ResultT ResultType
 
typedef boost::mpl::if_< std::is_arithmetic< ResultT >, 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

std::string name () const
 class name More...
 
 MergingProblemFunction (double a, double b, double k)
 
std::size_t numberOfVariables () const
 number of variables, we have a one-dimensional problem here. More...
 
virtual double eval (RealVector const &pattern) const
 
virtual double evalDerivative (const SearchPointType &input, FirstOrderDerivative &derivative) const
 
- Public Member Functions inherited from shark::AbstractObjectiveFunction< PointType, ResultT >
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...
 
virtual ResultType eval (SearchPointType const &input) const
 Evaluates the objective function for the supplied argument. 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 ()
 

Public Attributes

double m_a
 parameters for the function. More...
 
double m_b
 
double m_k
 

Additional Inherited Members

- Protected Member Functions inherited from shark::AbstractObjectiveFunction< PointType, ResultT >
void announceConstraintHandler (AbstractConstraintHandler< SearchPointType > const *handler)
 helper function which is called to announce the presence of an constraint handler. More...
 
- Protected Attributes inherited from shark::AbstractObjectiveFunction< PointType, ResultT >
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<>
struct shark::MergeBudgetMaintenanceStrategy< RealVector >::MergingProblemFunction

This is the objective function we need to optimize during merging. Basically the merging strategy needs a line search to find the parameter which maximizes

\[ a \cdot k_h (x_m, x_n) + b \cdot k_{1-h}(x_m, x_n) \]

. (all in the notation of wang, crammer and vucetic). The coefficients a and b are given by the alpha coefficients of the corresponding support vectors

\[ x_m \]

and

\[ x_n\]

, more precicely we have

\[ a = \sum \alpha_m^{(i)}/d_i\]

and

\[b = 1 - a = \sum \alpha_n^{(i)}/d_i\]

with

\[d_i = \alpha_m^{(i)} + \alpha_n^{(i)} \]

.

Definition at line 112 of file MergeBudgetMaintenanceStrategy.h.

Member Typedef Documentation

◆ Base

Constructor & Destructor Documentation

◆ MergingProblemFunction()

shark::MergeBudgetMaintenanceStrategy< RealVector >::MergingProblemFunction::MergingProblemFunction ( double  a,
double  b,
double  k 
)
inline

constructor.

Parameters
[in]aa coefficient of the formula
[in]bb coefficient of the formula
[in]kk coefficient of the formula

Definition at line 131 of file MergeBudgetMaintenanceStrategy.h.

Member Function Documentation

◆ eval()

virtual double shark::MergeBudgetMaintenanceStrategy< RealVector >::MergingProblemFunction::eval ( RealVector const &  pattern) const
inlinevirtual

evaluation

Parameters
[in]patternvector to evaluate the function at. as we have a 1d problem, we ignore everything beyond the first component.
Returns
function value at the point

Definition at line 151 of file MergeBudgetMaintenanceStrategy.h.

References h.

◆ evalDerivative()

virtual double shark::MergeBudgetMaintenanceStrategy< RealVector >::MergingProblemFunction::evalDerivative ( const SearchPointType input,
FirstOrderDerivative derivative 
) const
inlinevirtual

Derivative of function. Unsure if the derivative is really needed, but wolfram alpha helped computing it, do not want to let it down, wasting its capacity. The search routine uses it, as we did not removed the derivative-feature.

Parameters
[in]inputPoint to evaluate the function at
[out]derivativeDerivative at the given point
Returns
Function value at the point

Reimplemented from shark::AbstractObjectiveFunction< PointType, ResultT >.

Definition at line 167 of file MergeBudgetMaintenanceStrategy.h.

References h.

◆ name()

std::string shark::MergeBudgetMaintenanceStrategy< RealVector >::MergingProblemFunction::name ( ) const
inlinevirtual

class name

Reimplemented from shark::INameable.

Definition at line 117 of file MergeBudgetMaintenanceStrategy.h.

◆ numberOfVariables()

std::size_t shark::MergeBudgetMaintenanceStrategy< RealVector >::MergingProblemFunction::numberOfVariables ( ) const
inlinevirtual

number of variables, we have a one-dimensional problem here.

Implements shark::AbstractObjectiveFunction< PointType, ResultT >.

Definition at line 140 of file MergeBudgetMaintenanceStrategy.h.

Member Data Documentation

◆ m_a

double shark::MergeBudgetMaintenanceStrategy< RealVector >::MergingProblemFunction::m_a

parameters for the function.

Definition at line 122 of file MergeBudgetMaintenanceStrategy.h.

◆ m_b

double shark::MergeBudgetMaintenanceStrategy< RealVector >::MergingProblemFunction::m_b

Definition at line 122 of file MergeBudgetMaintenanceStrategy.h.

◆ m_k

double shark::MergeBudgetMaintenanceStrategy< RealVector >::MergingProblemFunction::m_k

Definition at line 123 of file MergeBudgetMaintenanceStrategy.h.


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