mlpack
Public Member Functions | List of all members
mlpack::ann::MiniBatchDiscrimination< InputDataType, OutputDataType > Class Template Reference

Implementation of the MiniBatchDiscrimination layer. More...

#include <minibatch_discrimination.hpp>

Public Member Functions

 MiniBatchDiscrimination ()
 Create the MiniBatchDiscrimination object.
 
 MiniBatchDiscrimination (const size_t inSize, const size_t outSize, const size_t features)
 Create the MiniBatchDiscrimination layer object using the specified number of units. More...
 
void Reset ()
 Reset the layer parameter.
 
template<typename eT >
void Forward (const arma::Mat< eT > &input, arma::Mat< eT > &output)
 Ordinary feed-forward pass of a neural network, evaluating the function f(x) by propagating the activity forward through f. More...
 
template<typename eT >
void Backward (const arma::Mat< eT > &, const arma::Mat< eT > &gy, arma::Mat< eT > &g)
 Ordinary feed-backward pass of a neural network, calculating the function f(x) by propagating x backwards through f. More...
 
template<typename eT >
void Gradient (const arma::Mat< eT > &input, const arma::Mat< eT > &, arma::Mat< eT > &gradient)
 Calculate the gradient using the output delta and the input activation. More...
 
OutputDataType const & Parameters () const
 Get the parameters.
 
OutputDataType & Parameters ()
 Modify the parameters.
 
InputDataType const & InputParameter () const
 Get the input parameter.
 
InputDataType & InputParameter ()
 Modify the input parameter.
 
OutputDataType const & OutputParameter () const
 Get the output parameter.
 
OutputDataType & OutputParameter ()
 Modify the output parameter.
 
OutputDataType const & Delta () const
 Get the delta.
 
OutputDataType & Delta ()
 Modify the delta.
 
OutputDataType const & Gradient () const
 Get the gradient.
 
OutputDataType & Gradient ()
 Modify the gradient.
 
size_t InputShape () const
 Get the shape of the input.
 
template<typename Archive >
void serialize (Archive &ar, const uint32_t)
 Serialize the layer.
 

Detailed Description

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

Implementation of the MiniBatchDiscrimination layer.

MiniBatchDiscrimination is a layer of the discriminator that allows the discriminator to look at multiple data examples in combination and perform what is called as mini-batch discrimination. This helps prevent the collapse of the generator parameters to a setting where it emits the same point. This happens because normally a discriminator will process each example independently and there will be no mechanism to diversify the outputs of the generator.

For more information, see the following.

@article{Goodfellow2016,
author = {Tim Salimans, Ian Goodfellow, Wojciech Zaremba, Vicki Cheung,
Alec Radford, Xi Chen},
title = {Improved Techniques for Training GANs},
year = {2016},
url = {https://arxiv.org/abs/1606.03498},
}
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).

Constructor & Destructor Documentation

◆ MiniBatchDiscrimination()

template<typename InputDataType , typename OutputDataType >
mlpack::ann::MiniBatchDiscrimination< InputDataType, OutputDataType >::MiniBatchDiscrimination ( const size_t  inSize,
const size_t  outSize,
const size_t  features 
)

Create the MiniBatchDiscrimination layer object using the specified number of units.

Parameters
inSizeThe number of input units.
outSizeThe number of output units.
featuresThe number of features to compute for each dimension.

Member Function Documentation

◆ Backward()

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

Ordinary feed-backward pass of a neural network, calculating the function f(x) by propagating x backwards through f.

Using the results from the feed-forward pass.

Parameters
*(input) The propagated input activation.
gyThe backpropagated error.
gThe calculated gradient.

◆ Forward()

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

Ordinary feed-forward pass of a neural network, evaluating the function f(x) by propagating the activity forward through f.

Parameters
inputInput data used for evaluating the specified function.
outputResulting output activation.

◆ Gradient()

template<typename InputDataType , typename OutputDataType >
template<typename eT >
void mlpack::ann::MiniBatchDiscrimination< InputDataType, OutputDataType >::Gradient ( const arma::Mat< eT > &  input,
const arma::Mat< eT > &  ,
arma::Mat< eT > &  gradient 
)

Calculate the gradient using the output delta and the input activation.

Parameters
inputThe input parameter used for calculating the gradient.
*(error) The calculated error.
gradientThe calculated gradient.

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