29template<
typename Real_t>
 
   36   for(
size_t i = 0; i<
m; i++)
 
   38      for(
size_t j=0; j<
n; j++)
 
   40         A(i, j) += biases(i, 0);
 
   47template <
typename Real_t>
 
   55   for (
size_t i = 0; i < (size_t)fVBiases.
GetNrows(); i++)
 
   57      for (
size_t j = 0; j < (size_t)fVBiases.
GetNcols(); j++) {
 
   58         VBiasError(i, j) = 
x(i, j) - z(i, j);
 
   59         fVBiases(i, j) += learningRate * VBiasError(i, j) / fBatchSize;
 
   67         HBiasError(i, 0) += fWeights(i, j) * VBiasError(j, 0);
 
   69      HBiasError(i, 0) *= 
y(i, 0) * (1 - 
y(i, 0));
 
   70      fHBiases(i, 0) += learningRate * HBiasError(i, 0) / fBatchSize;
 
   76         fWeights(i, j) += learningRate * (HBiasError(i, 0) * tildeX(j, 0) +
 
   77                                          VBiasError(j, 0) * 
y(i, 0)) / fBatchSize;
 
   84template<
typename Real_t>
 
   92   for (
size_t i = 0; i < 
m; i++) {
 
   93      for (
size_t j = 0; j < 
n; j++) {
 
   98   for (
size_t i = 0; i < 
m; i++) {
 
   99      for (
size_t j = 0; j < 
n; j++) {
 
  107template <
typename Real_t>
 
  111   for(
size_t i=0; i< (size_t)input.
GetNrows(); i++)
 
  113      for(
size_t j=0; j<(size_t)input.
GetNcols(); j++ )
 
  116         if ((
size_t)((rand() / (RAND_MAX + 1.0)) * 100) %
 
  117              ((
size_t)(corruptionLevel * 10)) ==
 
  120            corruptedInput(i, j) = 0;
 
  124            corruptedInput(i, j) = input(i, j);
 
  133template <
typename Real_t>
 
  142   for (
size_t i = 0; i < 
m; i++) {
 
  143      compressedInput(i, 0) = 0;
 
  144      for (
size_t j = 0; j < 
a; j++) {
 
  145         compressedInput(i, 0) =
 
  146          compressedInput(i, 0) + (Weights(i, j) * input(j, 0));
 
  151template <
typename Real_t>
 
  155  for (
size_t i=0; i<(size_t)reconstructedInput.
GetNrows(); i++)
 
  157      reconstructedInput(i, 0) = 0;
 
  158      for(
size_t j=0; j<(size_t)compressedInput.
GetNrows();j++)
 
  160         reconstructedInput(i, 0) += fWeights(j, i) * compressedInput(j, 0);
 
  170template<
typename Real_t>
 
  178   for(
size_t i= 0; i < 
m; i++)
 
  181      for(
size_t j=0; j < 
n; j++)
 
  183         p(i, 0) += fWeights(i, j) * input(j, 0);
 
  190template<
typename Real_t>
 
  204   for(
size_t i= 0; i<
m; i++)
 
  206      difference(i, 0) = 
output(i, 0) - p(i, 0);
 
  207      for(
size_t j=0; j<
n; j++)
 
  210          learningRate * difference(i, 0) * input(j, 0) / fBatchSize;
 
  213      fBiases(i, 0) += learningRate * difference(i, 0) / fBatchSize;
 
static void SoftmaxAE(TMatrixT< AReal > &A)
static void EncodeInput(TMatrixT< AReal > &input, TMatrixT< AReal > &compressedInput, TMatrixT< AReal > &Weights)
static void ReconstructInput(TMatrixT< AReal > &compressedInput, TMatrixT< AReal > &reconstructedInput, TMatrixT< AReal > &fWeights)
static void UpdateParams(TMatrixT< AReal > &x, TMatrixT< AReal > &tildeX, TMatrixT< AReal > &y, TMatrixT< AReal > &z, TMatrixT< AReal > &fVBiases, TMatrixT< AReal > &fHBiases, TMatrixT< AReal > &fWeights, TMatrixT< AReal > &VBiasError, TMatrixT< AReal > &HBiasError, AReal learningRate, size_t fBatchSize)
static void UpdateParamsLogReg(TMatrixT< AReal > &input, TMatrixT< AReal > &output, TMatrixT< AReal > &difference, TMatrixT< AReal > &p, TMatrixT< AReal > &fWeights, TMatrixT< AReal > &fBiases, AReal learningRate, size_t fBatchSize)
static void CorruptInput(TMatrixT< AReal > &input, TMatrixT< AReal > &corruptedInput, AReal corruptionLevel)
static void ForwardLogReg(TMatrixT< AReal > &input, TMatrixT< AReal > &p, TMatrixT< AReal > &fWeights)
static void AddBiases(TMatrixT< AReal > &A, const TMatrixT< AReal > &biases)
create variable transformations
static long int sum(long int i)
static void output(int code)