mlpack  master
Public Member Functions | Private Attributes | List of all members
mlpack::ann::Dropout< InputDataType, OutputDataType > Class Template Reference

The dropout layer is a regularizer that randomly with probability ratio sets input values to zero and scales the remaining elements by factor 1 / (1 - ratio). More...

Public Member Functions

 Dropout (const double ratio=0.5, const bool rescale=true)
 Create the Dropout object using the specified ratio and rescale parameter. More...
 
template<typename eT >
void Backward (const arma::Mat< eT > &&, arma::Mat< eT > &&gy, arma::Mat< eT > &&g)
 Ordinary feed backward pass of the dropout layer. More...
 
OutputDataType const & Delta () const
 Get the detla. More...
 
OutputDataType & Delta ()
 Modify the delta. More...
 
bool Deterministic () const
 The value of the deterministic parameter. More...
 
bool & Deterministic ()
 Modify the value of the deterministic parameter. More...
 
template<typename eT >
void Forward (const arma::Mat< eT > &&input, arma::Mat< eT > &&output)
 Ordinary feed forward pass of the dropout layer. More...
 
InputDataType const & InputParameter () const
 Get the input parameter. More...
 
InputDataType & InputParameter ()
 Modify the input parameter. More...
 
OutputDataType const & OutputParameter () const
 Get the output parameter. More...
 
OutputDataType & OutputParameter ()
 Modify the output parameter. More...
 
double Ratio () const
 The probability of setting a value to zero. More...
 
void Ratio (const double r)
 Modify the probability of setting a value to zero. More...
 
bool Rescale () const
 The value of the rescale parameter. More...
 
bool & Rescale ()
 Modify the value of the rescale parameter. More...
 
template<typename Archive >
void Serialize (Archive &ar, const unsigned int)
 Serialize the layer. More...
 

Private Attributes

OutputDataType delta
 Locally-stored delta object. More...
 
bool deterministic
 If true dropout and scaling is disabled, see notes above. More...
 
InputDataType inputParameter
 Locally-stored input parameter object. More...
 
OutputDataType mask
 Locally-stored mast object. More...
 
OutputDataType outputParameter
 Locally-stored output parameter object. More...
 
double ratio
 The probability of setting a value to zero. More...
 
bool rescale
 If true the input is rescaled when deterministic is False. More...
 
double scale
 The scale fraction. More...
 

Detailed Description

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
class mlpack::ann::Dropout< InputDataType, OutputDataType >

The dropout layer is a regularizer that randomly with probability ratio sets input values to zero and scales the remaining elements by factor 1 / (1 - ratio).

If rescale is true the input is scaled with 1 / (1-p) when deterministic is false. In the deterministic mode (during testing), the layer just scales the output.

Note: During training you should set deterministic to false and during testing you should set deterministic to true.

For more information, see the following.

@article{Hinton2012,
author = {Geoffrey E. Hinton, Nitish Srivastava, Alex Krizhevsky,
Ilya Sutskever, Ruslan Salakhutdinov},
title = {Improving neural networks by preventing co-adaptation of feature
detectors},
journal = {CoRR},
volume = {abs/1207.0580},
year = {2012},
}
Template Parameters
InputDataTypeType of the input data (arma::colvec, arma::mat, arma::sp_mat or arma::cube).
OutputDataTypeType of the output data (arma::colvec, arma::mat, arma::sp_mat or arma::cube).

Definition at line 54 of file dropout.hpp.

Constructor & Destructor Documentation

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
mlpack::ann::Dropout< InputDataType, OutputDataType >::Dropout ( const double  ratio = 0.5,
const bool  rescale = true 
)

Create the Dropout object using the specified ratio and rescale parameter.

Parameters
ratioThe probability of setting a value to zero.
rescaleIf true the input is rescaled when deterministic is False.

Member Function Documentation

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
template<typename eT >
void mlpack::ann::Dropout< InputDataType, OutputDataType >::Backward ( const arma::Mat< eT > &&  ,
arma::Mat< eT > &&  gy,
arma::Mat< eT > &&  g 
)

Ordinary feed backward pass of the dropout layer.

Parameters
inputThe propagated input activation.
gyThe backpropagated error.
gThe calculated gradient.
template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
OutputDataType const& mlpack::ann::Dropout< InputDataType, OutputDataType >::Delta ( ) const
inline

Get the detla.

Definition at line 98 of file dropout.hpp.

References mlpack::ann::Dropout< InputDataType, OutputDataType >::delta.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
OutputDataType& mlpack::ann::Dropout< InputDataType, OutputDataType >::Delta ( )
inline

Modify the delta.

Definition at line 100 of file dropout.hpp.

References mlpack::ann::Dropout< InputDataType, OutputDataType >::delta.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
bool mlpack::ann::Dropout< InputDataType, OutputDataType >::Deterministic ( ) const
inline

The value of the deterministic parameter.

Definition at line 103 of file dropout.hpp.

References mlpack::ann::Dropout< InputDataType, OutputDataType >::deterministic.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
bool& mlpack::ann::Dropout< InputDataType, OutputDataType >::Deterministic ( )
inline

Modify the value of the deterministic parameter.

Definition at line 105 of file dropout.hpp.

References mlpack::ann::Dropout< InputDataType, OutputDataType >::deterministic.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
template<typename eT >
void mlpack::ann::Dropout< InputDataType, OutputDataType >::Forward ( const arma::Mat< eT > &&  input,
arma::Mat< eT > &&  output 
)

Ordinary feed forward pass of the dropout layer.

Parameters
inputInput data used for evaluating the specified function.
outputResulting output activation.
template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
InputDataType const& mlpack::ann::Dropout< InputDataType, OutputDataType >::InputParameter ( ) const
inline

Get the input parameter.

Definition at line 88 of file dropout.hpp.

References mlpack::ann::Dropout< InputDataType, OutputDataType >::inputParameter.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
InputDataType& mlpack::ann::Dropout< InputDataType, OutputDataType >::InputParameter ( )
inline

Modify the input parameter.

Definition at line 90 of file dropout.hpp.

References mlpack::ann::Dropout< InputDataType, OutputDataType >::inputParameter.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
OutputDataType const& mlpack::ann::Dropout< InputDataType, OutputDataType >::OutputParameter ( ) const
inline

Get the output parameter.

Definition at line 93 of file dropout.hpp.

References mlpack::ann::Dropout< InputDataType, OutputDataType >::outputParameter.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
OutputDataType& mlpack::ann::Dropout< InputDataType, OutputDataType >::OutputParameter ( )
inline

Modify the output parameter.

Definition at line 95 of file dropout.hpp.

References mlpack::ann::Dropout< InputDataType, OutputDataType >::outputParameter.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
double mlpack::ann::Dropout< InputDataType, OutputDataType >::Ratio ( ) const
inline

The probability of setting a value to zero.

Definition at line 108 of file dropout.hpp.

References mlpack::ann::Dropout< InputDataType, OutputDataType >::ratio.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
void mlpack::ann::Dropout< InputDataType, OutputDataType >::Ratio ( const double  r)
inline

Modify the probability of setting a value to zero.

Definition at line 111 of file dropout.hpp.

References mlpack::ann::Dropout< InputDataType, OutputDataType >::ratio, and mlpack::ann::Dropout< InputDataType, OutputDataType >::scale.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
bool mlpack::ann::Dropout< InputDataType, OutputDataType >::Rescale ( ) const
inline

The value of the rescale parameter.

Definition at line 118 of file dropout.hpp.

References mlpack::ann::Dropout< InputDataType, OutputDataType >::rescale.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
bool& mlpack::ann::Dropout< InputDataType, OutputDataType >::Rescale ( )
inline
template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
template<typename Archive >
void mlpack::ann::Dropout< InputDataType, OutputDataType >::Serialize ( Archive &  ar,
const unsigned  int 
)

Member Data Documentation

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
OutputDataType mlpack::ann::Dropout< InputDataType, OutputDataType >::delta
private

Locally-stored delta object.

Definition at line 130 of file dropout.hpp.

Referenced by mlpack::ann::Dropout< InputDataType, OutputDataType >::Delta().

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
bool mlpack::ann::Dropout< InputDataType, OutputDataType >::deterministic
private

If true dropout and scaling is disabled, see notes above.

Definition at line 148 of file dropout.hpp.

Referenced by mlpack::ann::Dropout< InputDataType, OutputDataType >::Deterministic().

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
InputDataType mlpack::ann::Dropout< InputDataType, OutputDataType >::inputParameter
private

Locally-stored input parameter object.

Definition at line 133 of file dropout.hpp.

Referenced by mlpack::ann::Dropout< InputDataType, OutputDataType >::InputParameter().

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
OutputDataType mlpack::ann::Dropout< InputDataType, OutputDataType >::mask
private

Locally-stored mast object.

Definition at line 139 of file dropout.hpp.

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
OutputDataType mlpack::ann::Dropout< InputDataType, OutputDataType >::outputParameter
private

Locally-stored output parameter object.

Definition at line 136 of file dropout.hpp.

Referenced by mlpack::ann::Dropout< InputDataType, OutputDataType >::OutputParameter().

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
double mlpack::ann::Dropout< InputDataType, OutputDataType >::ratio
private

The probability of setting a value to zero.

Definition at line 142 of file dropout.hpp.

Referenced by mlpack::ann::Dropout< InputDataType, OutputDataType >::Ratio().

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
bool mlpack::ann::Dropout< InputDataType, OutputDataType >::rescale
private

If true the input is rescaled when deterministic is False.

Definition at line 151 of file dropout.hpp.

Referenced by mlpack::ann::Dropout< InputDataType, OutputDataType >::Rescale().

template<typename InputDataType = arma::mat, typename OutputDataType = arma::mat>
double mlpack::ann::Dropout< InputDataType, OutputDataType >::scale
private

The scale fraction.

Definition at line 145 of file dropout.hpp.

Referenced by mlpack::ann::Dropout< InputDataType, OutputDataType >::Ratio().


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