#include <shark/Algorithms/Trainers/Budgeted/MergeBudgetMaintenanceStrategy.h>
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< Feature > | Features |
This statement declares the member m_features. See Core/Flags.h for details. More... | |
typedef TypedFeatureNotAvailableException< Feature > | FeatureNotAvailableException |
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 Features & | features () 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 |
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.
typedef SingleObjectiveFunction shark::MergeBudgetMaintenanceStrategy< RealVector >::MergingProblemFunction::Base |
Definition at line 114 of file MergeBudgetMaintenanceStrategy.h.
|
inline |
constructor.
[in] | a | a coefficient of the formula |
[in] | b | b coefficient of the formula |
[in] | k | k coefficient of the formula |
Definition at line 131 of file MergeBudgetMaintenanceStrategy.h.
|
inlinevirtual |
evaluation
[in] | pattern | vector to evaluate the function at. as we have a 1d problem, we ignore everything beyond the first component. |
Definition at line 151 of file MergeBudgetMaintenanceStrategy.h.
References h.
|
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.
[in] | input | Point to evaluate the function at |
[out] | derivative | Derivative at the given point |
Reimplemented from shark::AbstractObjectiveFunction< PointType, ResultT >.
Definition at line 167 of file MergeBudgetMaintenanceStrategy.h.
References h.
|
inlinevirtual |
class name
Reimplemented from shark::INameable.
Definition at line 117 of file MergeBudgetMaintenanceStrategy.h.
|
inlinevirtual |
number of variables, we have a one-dimensional problem here.
Implements shark::AbstractObjectiveFunction< PointType, ResultT >.
Definition at line 140 of file MergeBudgetMaintenanceStrategy.h.
double shark::MergeBudgetMaintenanceStrategy< RealVector >::MergingProblemFunction::m_a |
parameters for the function.
Definition at line 122 of file MergeBudgetMaintenanceStrategy.h.
double shark::MergeBudgetMaintenanceStrategy< RealVector >::MergingProblemFunction::m_b |
Definition at line 122 of file MergeBudgetMaintenanceStrategy.h.
double shark::MergeBudgetMaintenanceStrategy< RealVector >::MergingProblemFunction::m_k |
Definition at line 123 of file MergeBudgetMaintenanceStrategy.h.