Approximates the gradient by taking samples from an ensemble of Markov chains running in parallel. More...
#include <shark/Unsupervised/RBM/GradientApproximations/MultiChainApproximator.h>
Public Types | |
typedef MarkovChainType::RBM | RBM |
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 | |
MultiChainApproximator (RBM *rbm) | |
std::string | name () const |
From INameable: return the class name. More... | |
void | setK (unsigned int k) |
void | setNumberOfSamples (std::size_t samples) |
void | setBatchSize (std::size_t batchSize) |
MarkovChainType & | chain () |
MarkovChainType const & | chain () const |
std::size_t | numBatches () const |
Returns the number of batches of the dataset that are used in every iteration. More... | |
std::size_t & | numBatches () |
Returns a reference to the number of batches of the dataset that are used in every iteration. More... | |
void | setData (UnlabeledData< RealVector > const &data) |
SearchPointType | proposeStartingPoint () const |
Proposes a starting point in the feasible search space of the function. More... | |
std::size_t | numberOfVariables () const |
Accesses the number of variables. More... | |
void | setRegularizer (double factor, SingleObjectiveFunction *regularizer) |
double | evalDerivative (SearchPointType const ¶meter, FirstOrderDerivative &derivative) const |
Evaluates the objective function and calculates its gradient. More... | |
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 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 () |
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 |
Approximates the gradient by taking samples from an ensemble of Markov chains running in parallel.
The advantage is, that every chain can produce samples of a different mode of the distribution. The disadvantage is however, that mixing is slower and a higher value of sampling steps between subsequent samples need to be chosen.
Definition at line 44 of file MultiChainApproximator.h.
typedef MarkovChainType::RBM shark::MultiChainApproximator< MarkovChainType >::RBM |
Definition at line 46 of file MultiChainApproximator.h.
|
inline |
Definition at line 48 of file MultiChainApproximator.h.
References shark::AbstractObjectiveFunction< PointType, ResultT >::CAN_PROPOSE_STARTING_POINT, shark::AbstractObjectiveFunction< PointType, ResultT >::HAS_FIRST_DERIVATIVE, shark::AbstractObjectiveFunction< PointType, ResultT >::HAS_VALUE, shark::AbstractObjectiveFunction< PointType, ResultT >::m_features, shark::TypedFlags< Flag >::reset(), shark::MultiChainApproximator< MarkovChainType >::setBatchSize(), and SHARK_ASSERT.
|
inline |
Definition at line 74 of file MultiChainApproximator.h.
|
inline |
Definition at line 77 of file MultiChainApproximator.h.
|
inlinevirtual |
Evaluates the objective function and calculates its gradient.
[in] | input | The argument to eval the function for. |
[out] | derivative | The derivate is placed here. |
FeatureNotAvailableException | in the default implementation and if a function does not support this feature. |
Reimplemented from shark::AbstractObjectiveFunction< PointType, ResultT >.
Definition at line 136 of file MultiChainApproximator.h.
References shark::swap().
|
inlinevirtual |
From INameable: return the class name.
Reimplemented from shark::INameable.
Definition at line 59 of file MultiChainApproximator.h.
|
inline |
Returns the number of batches of the dataset that are used in every iteration.
If it is less than all batches, the batches are chosen at random. if it is 0, all batches are used
Definition at line 84 of file MultiChainApproximator.h.
|
inline |
Returns a reference to the number of batches of the dataset that are used in every iteration.
If it is less than all batches, the batches are chosen at random.if it is 0, all batches are used.
Definition at line 91 of file MultiChainApproximator.h.
|
inlinevirtual |
Accesses the number of variables.
Implements shark::AbstractObjectiveFunction< PointType, ResultT >.
Definition at line 127 of file MultiChainApproximator.h.
|
inlinevirtual |
Proposes a starting point in the feasible search space of the function.
FeatureNotAvailableException | in the default implementation and if a function does not support this feature. |
Reimplemented from shark::AbstractObjectiveFunction< PointType, ResultT >.
Definition at line 123 of file MultiChainApproximator.h.
|
inline |
Definition at line 68 of file MultiChainApproximator.h.
References shark::batchSize().
Referenced by shark::MultiChainApproximator< MarkovChainType >::MultiChainApproximator().
|
inline |
Definition at line 95 of file MultiChainApproximator.h.
References shark::Data< Type >::numberOfElements(), shark::MultiChainApproximator< MarkovChainType >::setNumberOfSamples(), and shark::swap().
|
inline |
Definition at line 62 of file MultiChainApproximator.h.
|
inline |
Definition at line 65 of file MultiChainApproximator.h.
Referenced by shark::MultiChainApproximator< MarkovChainType >::setData().
|
inline |
Definition at line 131 of file MultiChainApproximator.h.