Logo ROOT  
Reference Guide
NeuralNet.h File Reference
#include <vector>
#include <iostream>
#include <algorithm>
#include <iterator>
#include <functional>
#include <tuple>
#include <cmath>
#include <cassert>
#include <random>
#include <thread>
#include <future>
#include <type_traits>
#include <string>
#include <utility>
#include "Pattern.h"
#include "Monitoring.h"
#include "TApplication.h"
#include "Timer.h"
#include "TH1F.h"
#include "TH2F.h"
#include <fenv.h>
#include "TMVA/NeuralNet.icc"
Include dependency graph for NeuralNet.h:
This graph shows which files directly or indirectly include this file:

Classes

class  TMVA::DNN::Batch
 The Batch class encapsulates one mini-batch. More...
 
class  TMVA::DNN::ClassificationSettings
 Settings for classificationused to distinguish between different function signatures. More...
 
class  TMVA::DNN::Layer
 Layer defines the layout of a layer. More...
 
class  TMVA::DNN::LayerData
 LayerData holds the data of one layer. More...
 
class  TMVA::DNN::MeanVariance
 
class  TMVA::DNN::Net
 neural net More...
 
class  TMVA::DNN::Settings
 Settings for the training of the neural net. More...
 
class  TMVA::DNN::Steepest
 Steepest Gradient Descent algorithm (SGD) More...
 

Namespaces

 TMVA
 create variable transformations
 
 TMVA::DNN
 

Typedefs

typedef std::vector< char > TMVA::DNN::DropContainer
 
typedef std::tuple< Settings &, Batch &, DropContainer & > TMVA::DNN::pass_through_type
 

Enumerations

enum  TMVA::DNN::EnumFunction {
  TMVA::DNN::EnumFunction::ZERO = '0', TMVA::DNN::EnumFunction::LINEAR = 'L', TMVA::DNN::EnumFunction::TANH = 'T', TMVA::DNN::EnumFunction::RELU = 'R',
  TMVA::DNN::EnumFunction::SYMMRELU = 'r', TMVA::DNN::EnumFunction::TANHSHIFT = 't', TMVA::DNN::EnumFunction::SIGMOID = 's', TMVA::DNN::EnumFunction::SOFTSIGN = 'S',
  TMVA::DNN::EnumFunction::GAUSS = 'G', TMVA::DNN::EnumFunction::GAUSSCOMPLEMENT = 'C'
}
 
enum  TMVA::DNN::EnumRegularization { TMVA::DNN::EnumRegularization::NONE, TMVA::DNN::EnumRegularization::L1, TMVA::DNN::EnumRegularization::L2, TMVA::DNN::EnumRegularization::L1MAX }
 
enum  TMVA::DNN::MinimizerType { TMVA::DNN::fSteepest }
 < list all the minimizer types More...
 
enum  TMVA::DNN::ModeErrorFunction { TMVA::DNN::ModeErrorFunction::SUMOFSQUARES = 'S', TMVA::DNN::ModeErrorFunction::CROSSENTROPY = 'C', TMVA::DNN::ModeErrorFunction::CROSSENTROPY_MUTUALEXCLUSIVE = 'M' }
 error functions to be chosen from More...
 
enum  TMVA::DNN::ModeOutput { TMVA::DNN::ModeOutput::FETCH }
 
enum  TMVA::DNN::ModeOutputValues : int { TMVA::DNN::ModeOutputValues::DIRECT = 0x01, TMVA::DNN::ModeOutputValues::SIGMOID = 0x02, TMVA::DNN::ModeOutputValues::SOFTMAX = 0x04, TMVA::DNN::ModeOutputValues::BATCHNORMALIZATION = 0x08 }
 
enum  TMVA::DNN::WeightInitializationStrategy { TMVA::DNN::WeightInitializationStrategy::XAVIER, TMVA::DNN::WeightInitializationStrategy::TEST, TMVA::DNN::WeightInitializationStrategy::LAYERSIZE, TMVA::DNN::WeightInitializationStrategy::XAVIERUNIFORM }
 weight initialization strategies to be chosen from More...
 

Functions

template<typename ItValue , typename ItFunction >
void TMVA::DNN::applyFunctions (ItValue itValue, ItValue itValueEnd, ItFunction itFunction)
 
template<typename ItValue , typename ItFunction , typename ItInverseFunction , typename ItGradient >
void TMVA::DNN::applyFunctions (ItValue itValue, ItValue itValueEnd, ItFunction itFunction, ItInverseFunction itInverseFunction, ItGradient itGradient)
 
template<typename ItSource , typename ItWeight , typename ItTarget >
void TMVA::DNN::applyWeights (ItSource itSourceBegin, ItSource itSourceEnd, ItWeight itWeight, ItTarget itTargetBegin, ItTarget itTargetEnd)
 
template<typename ItSource , typename ItWeight , typename ItPrev >
void TMVA::DNN::applyWeightsBackwards (ItSource itCurrBegin, ItSource itCurrEnd, ItWeight itWeight, ItPrev itPrevBegin, ItPrev itPrevEnd)
 
template<typename LAYERDATA >
void TMVA::DNN::backward (LAYERDATA &prevLayerData, LAYERDATA &currLayerData)
 backward application of the weights (back-propagation of the error) More...
 
template<typename ItProbability , typename ItTruth , typename ItDelta , typename ItInvActFnc >
double TMVA::DNN::crossEntropy (ItProbability itProbabilityBegin, ItProbability itProbabilityEnd, ItTruth itTruthBegin, ItTruth, ItDelta itDelta, ItDelta itDeltaEnd, ItInvActFnc, double patternWeight)
 cross entropy error function More...
 
template<typename LAYERDATA >
void TMVA::DNN::forward (const LAYERDATA &prevLayerData, LAYERDATA &currLayerData)
 apply the weights (and functions) in forward direction of the DNN More...
 
double TMVA::DNN::gaussDouble (double mean, double sigma)
 
template<typename T >
bool TMVA::DNN::isFlagSet (T flag, T value)
 
ModeOutputValues TMVA::DNN::operator& (ModeOutputValues lhs, ModeOutputValues rhs)
 
ModeOutputValues TMVA::DNN::operator&= (ModeOutputValues &lhs, ModeOutputValues rhs)
 
ModeOutputValues TMVA::DNN::operator| (ModeOutputValues lhs, ModeOutputValues rhs)
 
ModeOutputValues TMVA::DNN::operator|= (ModeOutputValues &lhs, ModeOutputValues rhs)
 
int TMVA::DNN::randomInt (int maxValue)
 
template<typename ItOutput , typename ItTruth , typename ItDelta , typename ItInvActFnc >
double TMVA::DNN::softMaxCrossEntropy (ItOutput itProbabilityBegin, ItOutput itProbabilityEnd, ItTruth itTruthBegin, ItTruth, ItDelta itDelta, ItDelta itDeltaEnd, ItInvActFnc, double patternWeight)
 soft-max-cross-entropy error function (for mutual exclusive cross-entropy) More...
 
template<typename ItOutput , typename ItTruth , typename ItDelta , typename ItInvActFnc >
double TMVA::DNN::sumOfSquares (ItOutput itOutputBegin, ItOutput itOutputEnd, ItTruth itTruthBegin, ItTruth itTruthEnd, ItDelta itDelta, ItDelta itDeltaEnd, ItInvActFnc itInvActFnc, double patternWeight)
 
double TMVA::DNN::uniformDouble (double minValue, double maxValue)
 
template<typename LAYERDATA >
void TMVA::DNN::update (const LAYERDATA &prevLayerData, LAYERDATA &currLayerData, double factorWeightDecay, EnumRegularization regularization)
 update the node values More...
 
template<typename ItSource , typename ItDelta , typename ItTargetGradient , typename ItGradient >
void TMVA::DNN::update (ItSource itSource, ItSource itSourceEnd, ItDelta itTargetDeltaBegin, ItDelta itTargetDeltaEnd, ItTargetGradient itTargetGradientBegin, ItGradient itGradient)
 update the gradients More...
 
template<EnumRegularization Regularization, typename ItSource , typename ItDelta , typename ItTargetGradient , typename ItGradient , typename ItWeight >
void TMVA::DNN::update (ItSource itSource, ItSource itSourceEnd, ItDelta itTargetDeltaBegin, ItDelta itTargetDeltaEnd, ItTargetGradient itTargetGradientBegin, ItGradient itGradient, ItWeight itWeight, double weightDecay)
 update the gradients, using regularization More...
 
template<typename ItWeight >
double TMVA::DNN::weightDecay (double error, ItWeight itWeight, ItWeight itWeightEnd, double factorWeightDecay, EnumRegularization eRegularization)
 compute the weight decay for regularization (L1 or L2) More...
 

Detailed Description

Author
Peter Speckmayer
Version
1.0

LICENSE

net implementation

An implementation of a neural net for TMVA. This neural net uses multithreading

Definition in file NeuralNet.h.