shark::ErrorFunction< SearchPointType > Class Template Reference

Objective function for supervised learning. More...

#include <shark/ObjectiveFunctions/ErrorFunction.h>

+ Inheritance diagram for shark::ErrorFunction< SearchPointType >:

Public Types

typedef FunctionType::ResultType ResultType
 
typedef FunctionType::FirstOrderDerivative FirstOrderDerivative
 
- 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.
 
typedef TypedFeatureNotAvailableException< FeatureFeatureNotAvailableException
 

Public Member Functions

template<class InputType , class LabelType , class OutputType >
 ErrorFunction (LabeledData< InputType, LabelType > const &dataset, AbstractModel< InputType, OutputType, SearchPointType > *model, AbstractLoss< LabelType, OutputType > *loss, bool useMiniBatches=false)
 
template<class InputType , class LabelType , class OutputType >
 ErrorFunction (WeightedLabeledData< InputType, LabelType > const &dataset, AbstractModel< InputType, OutputType, SearchPointType > *model, AbstractLoss< LabelType, OutputType > *loss)
 
 ErrorFunction (ErrorFunction const &op)
 
ErrorFunctionoperator= (ErrorFunction const &op)
 
std::string name () const
 returns the name of the object
 
void setRegularizer (double factor, FunctionType *regularizer)
 
SearchPointType proposeStartingPoint () const
 Proposes a starting point in the feasible search space of the function.
 
std::size_t numberOfVariables () const
 Accesses the number of variables.
 
void init ()
 
double eval (SearchPointType const &input) const
 Evaluates the objective function for the supplied argument.
 
ResultType evalDerivative (SearchPointType const &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
 
bool hasFirstDerivative () const
 returns whether this function can calculate the first derivative
 
bool hasSecondDerivative () const
 returns whether this function can calculate the second derivative
 
bool canProposeStartingPoint () const
 returns whether this function can propose a starting point.
 
bool isConstrained () const
 returns whether this function can return
 
bool hasConstraintHandler () const
 returns whether this function can return
 
bool canProvideClosestFeasible () const
 Returns whether this function can calculate thee closest feasible to an infeasible point.
 
bool isThreadSafe () const
 Returns true, when the function can be usd in parallel threads.
 
bool isNoisy () const
 Returns true, when the function can be usd in parallel threads.
 
 AbstractObjectiveFunction ()
 Default ctor.
 
virtual ~AbstractObjectiveFunction ()
 Virtual destructor.
 
void setRng (random::rng_type *rng)
 Sets the Rng used by the objective function.
 
virtual bool hasScalableDimensionality () const
 
virtual void setNumberOfVariables (std::size_t numberOfVariables)
 Adjusts the number of variables if the function is scalable.
 
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.
 
std::size_t evaluationCounter () const
 Accesses the evaluation counter of the function.
 
AbstractConstraintHandler< SearchPointType > const & getConstraintHandler () const
 Returns the constraint handler of the function if it has one.
 
virtual bool isFeasible (const SearchPointType &input) const
 Tests whether a point in SearchSpace is feasible, e.g., whether the constraints are fulfilled.
 
virtual void closestFeasible (SearchPointType &input) const
 If supported, the supplied point is repaired such that it satisfies all of the function's constraints.
 
ResultType operator() (SearchPointType const &input) const
 Evaluates the function. Useful together with STL-Algorithms like std::transform.
 
virtual ResultType evalDerivative (SearchPointType const &input, FirstOrderDerivative &derivative) const
 Evaluates the objective function and calculates its gradient.
 
virtual ResultType evalDerivative (SearchPointType const &input, SecondOrderDerivative &derivative) const
 Evaluates the objective function and calculates its gradient.
 
- Public Member Functions inherited from shark::INameable
virtual ~INameable ()
 

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.
 
- Protected Attributes inherited from shark::AbstractObjectiveFunction< PointType, ResultT >
Features m_features
 
std::size_t m_evaluationCounter
 Evaluation counter, default value: 0.
 
AbstractConstraintHandler< SearchPointType > const * m_constraintHandler
 
random::rng_type * mep_rng
 

Detailed Description

template<class SearchPointType = RealVector>
class shark::ErrorFunction< SearchPointType >

Objective function for supervised learning.

An ErrorFunction object is an objective function for learning the parameters of a model from data by means of minimization of a cost function. The value of the objective function is the cost of the model predictions on the training data, given the targets.
It supports mini-batch learning using an optional fourth argument to The constructor. With mini-batch learning enabled, each iteration a random batch is taken from the dataset. Thus the size of the minibatch is the size of the batches in the datasets. Normalization ensures that batches of different sizes have approximately the same magnitude of error and derivative.
It automatically infers the input und label type from the given dataset and the output type of the model in the constructor and ensures that Model and loss match. Thus the user does not need to provide the types as template parameters.

Definition at line 69 of file ErrorFunction.h.

Member Typedef Documentation

◆ FirstOrderDerivative

template<class SearchPointType = RealVector>
typedef FunctionType::FirstOrderDerivative shark::ErrorFunction< SearchPointType >::FirstOrderDerivative

Definition at line 75 of file ErrorFunction.h.

◆ ResultType

template<class SearchPointType = RealVector>
typedef FunctionType::ResultType shark::ErrorFunction< SearchPointType >::ResultType

Definition at line 74 of file ErrorFunction.h.

Constructor & Destructor Documentation

◆ ErrorFunction() [1/3]

template<class SearchPointType = RealVector>
template<class InputType , class LabelType , class OutputType >
shark::ErrorFunction< SearchPointType >::ErrorFunction ( LabeledData< InputType, LabelType > const &  dataset,
AbstractModel< InputType, OutputType, SearchPointType > *  model,
AbstractLoss< LabelType, OutputType > *  loss,
bool  useMiniBatches = false 
)
inline

◆ ErrorFunction() [2/3]

template<class SearchPointType = RealVector>
template<class InputType , class LabelType , class OutputType >
shark::ErrorFunction< SearchPointType >::ErrorFunction ( WeightedLabeledData< InputType, LabelType > const &  dataset,
AbstractModel< InputType, OutputType, SearchPointType > *  model,
AbstractLoss< LabelType, OutputType > *  loss 
)
inline

◆ ErrorFunction() [3/3]

Member Function Documentation

◆ eval()

template<class SearchPointType = RealVector>
double shark::ErrorFunction< SearchPointType >::eval ( SearchPointType const &  input) const
inlinevirtual

Evaluates the objective function for the supplied argument.

Parameters
[in]inputThe argument for which the function shall be evaluated.
Returns
The result of evaluating the function for the supplied argument.
Exceptions
FeatureNotAvailableExceptionin the default implementation and if a function does not support this feature.

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

Definition at line 130 of file ErrorFunction.h.

References shark::AbstractObjectiveFunction< PointType, ResultT >::eval(), shark::ErrorFunction< SearchPointType >::eval(), and shark::AbstractObjectiveFunction< PointType, ResultT >::m_evaluationCounter.

Referenced by shark::ErrorFunction< SearchPointType >::eval().

◆ evalDerivative()

◆ init()

◆ name()

template<class SearchPointType = RealVector>
std::string shark::ErrorFunction< SearchPointType >::name ( ) const
inlinevirtual

returns the name of the object

Reimplemented from shark::INameable.

Definition at line 110 of file ErrorFunction.h.

◆ numberOfVariables()

template<class SearchPointType = RealVector>
std::size_t shark::ErrorFunction< SearchPointType >::numberOfVariables ( ) const
inlinevirtual

◆ operator=()

template<class SearchPointType = RealVector>
ErrorFunction & shark::ErrorFunction< SearchPointType >::operator= ( ErrorFunction< SearchPointType > const &  op)
inline

◆ proposeStartingPoint()

template<class SearchPointType = RealVector>
SearchPointType shark::ErrorFunction< SearchPointType >::proposeStartingPoint ( ) const
inlinevirtual

Proposes a starting point in the feasible search space of the function.

Returns
The generated starting point.
Exceptions
FeatureNotAvailableExceptionin the default implementation and if a function does not support this feature.

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

Definition at line 118 of file ErrorFunction.h.

References shark::ErrorFunction< SearchPointType >::proposeStartingPoint().

Referenced by shark::ErrorFunction< SearchPointType >::proposeStartingPoint().

◆ setRegularizer()

template<class SearchPointType = RealVector>
void shark::ErrorFunction< SearchPointType >::setRegularizer ( double  factor,
FunctionType regularizer 
)
inline

Definition at line 113 of file ErrorFunction.h.

Referenced by main(), main(), and trainProblem().


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