|
template<typename ItValue , typename Fnc > |
void | TMVA::DNN::applyFunctions (ItValue itValue, ItValue itValueEnd, Fnc fnc) |
| apply the activation functions More...
|
|
template<typename ItValue , typename Fnc , typename InvFnc , typename ItGradient > |
void | TMVA::DNN::applyFunctions (ItValue itValue, ItValue itValueEnd, Fnc fnc, InvFnc invFnc, ItGradient itGradient) |
| apply the activation functions and compute the gradient More...
|
|
template<bool HasDropOut, typename ItSource , typename ItWeight , typename ItTarget , typename ItDrop > |
void | TMVA::DNN::applyWeights (ItSource itSourceBegin, ItSource itSourceEnd, ItWeight itWeight, ItTarget itTargetBegin, ItTarget itTargetEnd, ItDrop itDrop) |
| apply weights using drop-out; for no drop out, provide (&bool = true) to itDrop such that *itDrop becomes "true" More...
|
|
template<bool HasDropOut, typename ItSource , typename ItWeight , typename ItPrev , typename ItDrop > |
void | TMVA::DNN::applyWeightsBackwards (ItSource itCurrBegin, ItSource itCurrEnd, ItWeight itWeight, ItPrev itPrevBegin, ItPrev itPrevEnd, ItDrop itDrop) |
| apply weights backwards (for backprop); for no drop out, provide (&bool = true) to itDrop such that *itDrop becomes "true" More...
|
|
template<typename LAYERDATA > |
void | TMVA::DNN::backward (LAYERDATA &prevLayerData, LAYERDATA &currLayerData) |
| backward application of the weights (back-propagation of the error) More...
|
|
template<EnumRegularization Regularization> |
double | TMVA::DNN::computeRegularization (double weight, const double &factorWeightDecay) |
| compute the regularization (L1, L2) More...
|
|
template<> |
double | TMVA::DNN::computeRegularization< EnumRegularization::L1 > (double weight, const double &factorWeightDecay) |
|
template<> |
double | TMVA::DNN::computeRegularization< EnumRegularization::L2 > (double weight, const double &factorWeightDecay) |
|
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...
|
|
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 InvFnc > |
double | TMVA::DNN::sumOfSquares (ItOutput itOutputBegin, ItOutput itOutputEnd, ItTruth itTruthBegin, ItTruth, ItDelta itDelta, ItDelta itDeltaEnd, InvFnc invFnc, double patternWeight) |
| sum of squares error function More...
|
|
template<typename Container , typename T > |
void | TMVA::DNN::uniformDouble (Container &container, T maxValue) |
|
template<typename T > |
T | TMVA::DNN::uniformFromTo (T from, T to) |
|
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 LAYERDATA > |
void | TMVA::DNN::update (const LAYERDATA &prevLayerData, LAYERDATA &currLayerData, double factorWeightDecay, EnumRegularization regularization) |
| update the node values 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...
|
|
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::Gauss = std::make_shared<std::function<double(double)>> ([](double value){ const double s = 6.0; return exp (-std::pow(value*s,2.0)); }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::GaussComplement = std::make_shared<std::function<double(double)>> ([](double value){ const double s = 6.0; return 1.0 - exp (-std::pow(value*s,2.0)); }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::InvGauss = std::make_shared<std::function<double(double)>> ([](double value){ const double s = 6.0; return -2.0 * value * s*s * (*Gauss.get ()) (value); }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::InvGaussComplement = std::make_shared<std::function<double(double)>> ([](double value){ const double s = 6.0; return +2.0 * value * s*s * (*GaussComplement.get ()) (value); }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::InvLinear = std::make_shared<std::function<double(double)>> ([](double ){ return 1.0; }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::InvReLU = std::make_shared<std::function<double(double)>> ([](double value){ const double margin = 0.0; return value > margin ? 1.0 : 0; }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::InvSigmoid = std::make_shared<std::function<double(double)>> ([](double value){ double s = (*Sigmoid.get ()) (value); return s*(1.0-s); }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::InvSoftPlus = std::make_shared<std::function<double(double)>> ([](double value){ return 1.0 / (1.0 + std::exp (-value)); }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::InvSoftSign = std::make_shared<std::function<double(double)>> ([](double value){ return std::pow ((1.0 - fabs (value)),2.0); }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::InvSymmReLU = std::make_shared<std::function<double(double)>> ([](double value){ const double margin = 0.3; return value > margin ? 1.0 : value < -margin ? 1.0 : 0; }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::InvTanh = std::make_shared<std::function<double(double)>> ([](double value){ return 1.0 - std::pow (value, 2.0); }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::InvTanhShift = std::make_shared<std::function<double(double)>> ([](double value){ return 0.3 + (1.0 - std::pow (value, 2.0)); }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::Linear = std::make_shared<std::function<double(double)>> ([](double value){ return value; }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::ReLU = std::make_shared<std::function<double(double)>> ([](double value){ const double margin = 0.0; return value > margin ? value-margin : 0; }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::Sigmoid = std::make_shared<std::function<double(double)>> ([](double value){ value = std::max (-100.0, std::min (100.0,value)); return 1.0/(1.0 + std::exp (-value)); }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::SoftPlus = std::make_shared<std::function<double(double)>> ([](double value){ return std::log (1.0+ std::exp (value)); }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::SoftSign = std::make_shared<std::function<double(double)>> ([](double value){ return value / (1.0 + fabs (value)); }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::SymmReLU = std::make_shared<std::function<double(double)>> ([](double value){ const double margin = 0.3; return value > margin ? value-margin : value < -margin ? value+margin : 0; }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::Tanh = std::make_shared<std::function<double(double)>> ([](double value){ return tanh (value); }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::TanhShift = std::make_shared<std::function<double(double)>> ([](double value){ return tanh (value-0.3); }) |
|
static std::shared_ptr< std::function< double(double)> > | TMVA::DNN::ZeroFnc = std::make_shared<std::function<double(double)>> ([](double ){ return 0; }) |
|