Error Function for Autoencoders and TiedAutoencoders which should be trained with sparse activation of the hidden neurons. More...
#include <shark/ObjectiveFunctions/SparseAutoencoderError.h>
Inheritance diagram for shark::SparseAutoencoderError:Public Types | |
| typedef LabeledData< RealVector, RealVector > | DatasetType |
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 SearchPointType | 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 | |
| template<class HiddenNeuron , class OutputNeuron > | |
| SparseAutoencoderError (DatasetType const &dataset, Autoencoder< HiddenNeuron, OutputNeuron > *model, AbstractLoss< RealVector, RealVector > *loss, double rho=0.5, double beta=0.1) | |
| template<class HiddenNeuron , class OutputNeuron > | |
| SparseAutoencoderError (DatasetType const &dataset, TiedAutoencoder< HiddenNeuron, OutputNeuron > *model, AbstractLoss< RealVector, RealVector > *loss, double rho=0.5, double beta=0.1) | |
| SparseAutoencoderError & | operator= (SparseAutoencoderError const &op) |
| std::string | name () const |
| From INameable: return the class name. More... | |
| std::size_t | numberOfVariables () const |
| Accesses the number of variables. More... | |
| SearchPointType | proposeStartingPoint () const |
| Proposes a starting point in the feasible search space of the function. More... | |
| void | setRegularizer (double factor, SingleObjectiveFunction *regularizer) |
| double | eval (RealVector const &input) const |
| Evaluates the objective function for the supplied argument. More... | |
| ResultType | evalDerivative (SearchPointType const &input, FirstOrderDerivative &derivative) const |
| Evaluates the objective function and calculates its gradient. More... | |
Public Member Functions inherited from shark::AbstractObjectiveFunction< RealVector, double > | |
| 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... | |
| AbstractObjectiveFunction () | |
| Default ctor. More... | |
| virtual | ~AbstractObjectiveFunction () |
| Virtual destructor. More... | |
| virtual void | init () |
| 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... | |
| ResultType | operator() (const SearchPointType &input) const |
| Evaluates the function. Useful together with STL-Algorithms like std::transform. More... | |
| virtual ResultType | evalDerivative (const SearchPointType &input, SecondOrderDerivative &derivative) const |
| Evaluates the objective function and calculates its gradient. More... | |
Public Member Functions inherited from shark::INameable | |
| virtual | ~INameable () |
Friends | |
| void | swap (SparseAutoencoderError &op1, SparseAutoencoderError &op2) |
Additional Inherited Members | |
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 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 |
Error Function for Autoencoders and TiedAutoencoders which should be trained with sparse activation of the hidden neurons.
This error function optimizes a Network with respect to some loss function similar to the standard ErrorFunction. Additionally another penalty term is added which enforces a sparse activation pattern of the hidden neurons. Given a target mean activation \( \rho \) the mean activation of hidden neuron j over the whole dataset \( \rho_j\) is interpreted as the activation propability and penalized using the KL-divergence: \( KL(\rho||\rho_j) = \rho log(\frac{\rho}{\rho_j})+(1-\rho) log(\frac{1-\rho}{1-\rho_j}) \)
This Error Function has two meta-parameters: rho governs the desired mean activation and beta the strength of regularization. Another regularizer can be added using setRegularizer as in typical ErrorFunctions.
Definition at line 57 of file SparseAutoencoderError.h.
| typedef LabeledData<RealVector, RealVector> shark::SparseAutoencoderError::DatasetType |
Definition at line 60 of file SparseAutoencoderError.h.
| shark::SparseAutoencoderError::SparseAutoencoderError | ( | DatasetType const & | dataset, |
| Autoencoder< HiddenNeuron, OutputNeuron > * | model, | ||
| AbstractLoss< RealVector, RealVector > * | loss, | ||
| double | rho = 0.5, |
||
| double | beta = 0.1 |
||
| ) |
| shark::SparseAutoencoderError::SparseAutoencoderError | ( | DatasetType const & | dataset, |
| TiedAutoencoder< HiddenNeuron, OutputNeuron > * | model, | ||
| AbstractLoss< RealVector, RealVector > * | loss, | ||
| double | rho = 0.5, |
||
| double | beta = 0.1 |
||
| ) |
|
inlinevirtual |
Evaluates the objective function for the supplied argument.
| [in] | input | The argument for which the function shall be evaluated. |
| FeatureNotAvailableException | in the default implementation and if a function does not support this feature. |
Reimplemented from shark::AbstractObjectiveFunction< RealVector, double >.
Definition at line 98 of file SparseAutoencoderError.h.
References shark::AbstractObjectiveFunction< PointType, ResultT >::eval(), and shark::AbstractObjectiveFunction< RealVector, double >::m_evaluationCounter.
|
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< RealVector, double >.
Definition at line 105 of file SparseAutoencoderError.h.
References shark::AbstractObjectiveFunction< PointType, ResultT >::evalDerivative(), shark::AbstractObjectiveFunction< RealVector, double >::m_evaluationCounter, and shark::blas::noalias().
|
inlinevirtual |
From INameable: return the class name.
Reimplemented from shark::INameable.
Definition at line 82 of file SparseAutoencoderError.h.
|
inlinevirtual |
Accesses the number of variables.
Implements shark::AbstractObjectiveFunction< RealVector, double >.
Definition at line 85 of file SparseAutoencoderError.h.
Referenced by main().
|
inline |
Definition at line 76 of file SparseAutoencoderError.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< RealVector, double >.
Definition at line 89 of file SparseAutoencoderError.h.
|
inline |
Definition at line 93 of file SparseAutoencoderError.h.
Referenced by main().
|
friend |
Definition at line 116 of file SparseAutoencoderError.h.