IGLib  1.5
The IGLib base library for development of numerical, technical and business applications.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events
IG.Num.NeuralApproximatorBase Class Referenceabstract

Base class for neural network approximators. More...

+ Inheritance diagram for IG.Num.NeuralApproximatorBase:
+ Collaboration diagram for IG.Num.NeuralApproximatorBase:

Public Member Functions

 NeuralApproximatorBase ()
 
virtual int GetNumNeuronsInHiddenLayer (int whichLayer)
 Returns the number of neurons in the specified hidden layer. Hidden layers are those not containing input or output neurons. More...
 
virtual void SetNumNeuronsInHiddenLayer (int whichLayer, int numNeurons)
 Sets the number of neurons in the specified hidden layer. Hidden layers are those not containing input or output neurons. More...
 
virtual void SetHiddenLayers (params int[] numNeurons)
 Sets the numbers of neurons in each hidden layer. Can be called with table of integers as argument, kor with variable number of integer parameters. Numbers are set by an array of integers in which each element contains the number of neurons in the corresponding hidden layer (indexed from 0). Hidden layers are those not containing input or output neurons. More...
 
abstract void PrepareNetwork ()
 Prepares neural network for use. If networks have not yet been created accordinfg to internal data, they are created. If networks are already prepared then this method does nothing. More...
 
abstract void CreateNetwork ()
 Creates the neural network anew. It the network already exists on the current object, it is discarded. More...
 
abstract void ResetNetwork ()
 Resets the neural network. More...
 
abstract void DestroyNetwork ()
 Destroys the neural network. More...
 
string GetNetworkFilePath (string fileOrDirectoryPath, int whichNetwork)
 Returns an absolute path to the file for storing the specified neural network contained on the current object, with respect to suggested file path and index of the network. The returned path is in the same directory as suggested file path and has the same file extension (if any). If the suggested path represents a directory, then some default suggested path is assumed. If there is only one network then the returned file path is the same as the suggested one (or the same as default file name within the suggested directory, if a directory path is proposed). More...
 
void SaveNetwork (string filePath)
 Saves the state of the neural network to the specified file. If the file already exists, its contents are overwritten. More...
 
void LoadNetwork (string filePath)
 Restores neural network from a file where it has been stored before. More...
 
void SetTrainingAndVerificationData (SampledDataSet trainingData, SampledDataSet verificationData)
 
void GetTrainingData (ref SampledDataSet trainingData)
 
void GetVerificationData (ref SampledDataSet veerificationData)
 
void GetTrainingAndVerificationData (ref SampledDataSet trainingData, ref SampledDataSet verificationData)
 
void SaveTrainingDataJson (string filePath)
 Saves network's training data to the specified JSON file. File is owerwritten if it exists. More...
 
void LoadTrainingDataJson (string filePath)
 Restores training data from the specified file in JSON format. More...
 
void SetNeuronsInputRange (double min, double max)
 Sets the neurons input range. Bounds for all input neurons are set equally. More...
 
void SetNeuronsOutputRange (double min, double max)
 Sets the neurons output range. Bounds for all output neurons are set equally. More...
 
void RecalculateInputDataBounds ()
 Recalculates input data bounds by taking into account the training data set of the current object. More...
 
void RecalculateOutputDataBounds ()
 Recalculates output data bounds by taking into account the training data set of the current object. More...
 
void RecalculateDataBounds ()
 Recalculates input and output data bounds by taking into account the training data set of the current object. More...
 
void RecalculateInputDataBounds (SampledDataSet trainingData)
 Recalculates input data bounds by taking into account the specified training data set. More...
 
void RecalculateOutputDataBounds (SampledDataSet trainingData)
 Recalculates output data bounds by taking into account the specified training data set. More...
 
void RecalculateDataBounds (SampledDataSet trainingData)
 Recalculates input and output data bounds by taking into account the specified training data set. More...
 
void GetErrorsTrainingRms (ref IVector errors)
 Calculates the RMS (root mean square) of the errors of output values for the training elements of the training set (this excludes verification points). More...
 
void GetErrorsVerificationRms (ref IVector errors)
 Calculates the RMS (root mean square) of the errors of output values for the verification elements of the training set. More...
 
void GetErrorsTrainingMax (ref IVector errors)
 Calculates the maximum absolute errors of output values for the training elements of the training set (this excludes verification points). More...
 
void GetErrorsVerificationMax (ref IVector errors)
 Calculates the maximum absolute errors of output values for the verification elements of the training set. More...
 
void GetErrorsTrainingMeanAbs (ref IVector errors)
 Calculates the mean absolute errors of output values for the training elements of the training set (this excludes verification points). More...
 
void GetErrorsVerificationMeanAbs (ref IVector errors)
 Calculates the mean absolute errors of output values for the verification elements of the training set. More...
 
virtual void InvalidateTrainingDependencies ()
 Invalidates all data that must be recalculated after training of the network is done. This method is called after training or additional training of the network is performed. Invalidation is achieved throughthe the appropriate flags. More...
 
virtual void InvalidateTrainingDataDependencies ()
 Invalidates all data that must be re-calculated after training data changes. This method is called after training data is modified. Invalidation is achieved throughthe the appropriate flags. More...
 
virtual void InvalidateNetworkDependencies ()
 Invalidates all data that must be re-calculated after the neural network itself changes. This method must be called after the internal neural network is re-defined (or are re-defined). Invalidation is achieved throughthe the appropriate flags. More...
 
void TrainNetwork (int numEpochs)
 Trains neural network wiht the specified data, performing the specified number of epochs. More...
 
void TrainNetworkMultiple (int numEpochs, int numIterations)
 Performs a specified number of training iterations where the specified number of epochs are run in each iteration. More...
 
void TrainNetworkMultiple (int NumIterations)
 Performs a specified number of training iterations where the prescribed number of epochs (contained in the EpochsInBundle property) are run in each iteration. More...
 
virtual void TrainNetwork ()
 Trains neural network until stopping criteria are met (in terms of errors and number of epochs performed. More...
 
virtual bool StopTrainingCriteriaMet ()
 Returns true if the stopping criteria for training is met, with respect to current settings, errors and number of epochs already performed, and false otherwise. More...
 
override double CalculateOutput (IVector input, int whichElement)
 Calculates and returns the specified output by using the neural network. More...
 
override void CalculateOutput (IVector input, int[] indices, ref IVector filteredOutput)
 Calculates and returns the required output values corresponding to the specified inputs, by using the current neural network(s). More...
 
override string ToString ()
 Returns string describing the current neural network approximator. More...
 
void SaveTrainingDataJson_To_delete (string filePath)
 Saves network's training data to the specified JSON file. File is owerwritten if it exists. More...
 
void LoadTrainingDataJson_To_Delete (string filePath)
 Restores training data from the specified file in JSON format. More...
 
void TestMapping ()
 Test back and forth mapping (scaling and shifting) from actual data to data prepared for training, and vice versa (checks if transformed data falls withi the prescribed ranges and if backward transformation yields the same result as forward transformation). Testing is performed on all data from the TrainingData property, including verification elements. More...
 
- Public Member Functions inherited from IG.Num.VectorApproximatorBase
abstract void CalculateOutput (IVector input, ref IVector output)
 Calculates and returns the approximated outputs corresponding to the specified inputs, by using the current vector function approximator. More...
 
- Public Member Functions inherited from IG.Num.INeuralApproximator
void CalculateOutput (IVector input, ref IVector output)
 Calculates and returns the approximated outputs corresponding to the specified inputs, by using the current neural network. More...
 

Static Public Member Functions

static void CalculateErrorsRms (int dimOutput, IVector[] prescribed, IVector[] calculated, ref IVector errors)
 Calculates error measures - RMS (root mean square) of the differences - for the specified arrays of prescribed and calculated output values in a set of sampling points. More...
 
static void CalculateErrorsMeanAbs (int dimOutput, IVector[] prescribed, IVector[] calculated, ref IVector errors)
 Calculates error measures - mean absolute value of the differences - for the specified arrays of prescribed and calculated output values in a set of sampling points. More...
 
static void CalculateErrorsMax (int dimOutput, IVector[] prescribed, IVector[] calculated, ref IVector errors)
 Calculates error measures - maximum absolute value of the differences - for the specified arrays of prescribed and calculated output values in a set of sampling points. More...
 
static void SaveJson (INeuralApproximator approximator, string filePath)
 Saves a neural network approximator to a file. If the neural netwoek is trained then internal state is also saved to a file. More...
 
static void SaveJson (INeuralApproximator approximator, string filePath, bool saveInternalState)
 Saves a neural network approximator to a file. More...
 
static void LoadJson (string filePath, ref INeuralApproximator approximatorRestored)
 Loads network from a file. More...
 
static void ExampleSaveNetwork (string directoryPath, string fileName, string internalStateFileName)
 Example of saving an entire trained neural network to a file, and then restoring it from a file. Network internal state is saved by the SaveNetwork() method that is specific to the type of the network, therefore it is saved to a separate file. The path of this file is savad with the network approximator object itself. Network is saved only once. More...
 
static void ExampleSaveNetwork (string directoryPath, string fileName, string internalStateFileName, bool saveRestored)
 Example of saving an entire trained neural network to a file, and then restoring it from a file. Network internal state is saved by the SaveNetwork() method that is specific to the type of the network, therefore it is saved to a separate file. The path of this file is savad with the network approximator object itself. If the saveRestored flag parameter is true then the restored file ia saved again for comparison. More...
 
static INeuralApproximator ExampleQuadratic ()
 Example demonstrating usage of the neural network approximator. A quadratic function with random coefficients is sampled with enough samples to exactly specify function coefficients, a part of samples is randomly designated as verification points, then neural network is created and trained on training samples, and it is verified how close the obtained approximation matches actual function in verification points. More...
 
static INeuralApproximator ExampleQuadratic (int inputLength, int outputLength)
 Example demonstrating usage of the neural network approximator. A quadratic function with random coefficients is sampled with enough samples to exactly specify function coefficients, a part of samples is randomly designated as verification points, then neural network is created and trained on training samples, and it is verified how close the obtained approximation matches actual function in verification points. More...
 
static INeuralApproximator ExampleQuadratic (int inputLength, int outputLength, int outputLevel, int maxEpochs)
 Example demonstrating usage of the neural network approximator. A quadratic function with random coefficients is sampled with enough samples to exactly specify function coefficients, a part of samples is randomly designated as verification points, then neural network is created and trained on training samples, and it is verified how close the obtained approximation matches actual function in verification points. More...
 

Protected Member Functions

void SetRmsToleranceRelstiveToRange ()
 Updates the tolerances on RMS errors of outputs according to the relative tolerances (defined by ToleranceRmsRelativeToRange) and the ranges in output data (defined by OutputDataBounds), if both are defined. More...
 
void SetMaxToleranceRelstiveToRange ()
 Updates the tolerances on max. abs. errors of outputs according to the relative tolerances (defined by ToleranceMaxRelativeToRange) and the ranges in output data (defined by OutputDataBounds), if both are defined. More...
 
abstract void PrepareNetworksArray ()
 Prepares the networks array (allocates it if necessary) for storing all neural networks of the current object. More...
 
abstract void SaveNetworkSpecific (string filePath)
 Saves the state of the neural network to the specified file. If the file already exists, its contents are overwritten. More...
 
abstract void LoadNetworkSpecific (string filePath)
 Restores neural network from a file where it has been stored before. More...
 
virtual double MapInput (int componentIndex, double value)
 Maps (scales & shifts) and returns specific input value to the value prepared for the corresponding input neuron. More...
 
virtual double MapFromNeuralInput (int componentIndex, double value)
 Inverse maps (scales & shifts) and returns specific input value back from the neural input to the actual input. More...
 
virtual void MapInput (IVector values, ref IVector mappedValues)
 Maps (scales & shifts) vector of input values to the vector of neuron inputs. More...
 
virtual void MapFromNeuralInput (IVector values, ref IVector mappedValues)
 Inverse maps (scales & shifts) vector of neural input values back to the vector of actual inputs. More...
 
virtual double MapOutput (int componentIndex, double value)
 Maps (scales & shifts) and returns specific output value to the output value of the corresponding output neuron. More...
 
virtual double MapFromNeuralOutput (int componentIndex, double value)
 Inverse maps (scales & shifts) and returns specific output value back from the neural output to the actual output. More...
 
virtual void MapOutput (IVector values, ref IVector mappedValues)
 Maps (scales & shifts) vector of output values to the vector of neuron outputs. More...
 
virtual void MapFromNeuralOutput (IVector values, ref IVector mappedValues)
 Inverse maps (scales & shifts) vector of neural output values back to the vector of actual outputs. More...
 
void CalculateTrainingVerificationOutputs (bool calculateTrainingOutputs, bool calculateVerificationOutputs)
 Calculates outputs in training points contained in training set, either in training points, in verification points, or both. More...
 
void CalculateTrainingOutputs ()
 Calculates outputs in training points of the training data set (this excludes verification points). More...
 
void CalculateVerificationOutputs ()
 Calculates outputs in verification points of the training data set. More...
 
virtual void PrepareErrorData (ref int dimOutput, ref IVector[] prescribed, ref IVector[] calculated, bool takeTrainingPoints, bool takeVerificationPoints)
 Prepares data for calculation of various error measures over training points or in verification points after training of the neural network(s). More...
 
abstract void PrepareInternalTrainingData ()
 Prepares internal training data that is needed by the native training algorithm. When overridden, this method must set the InternalTrainingDataPrepared flag to true. More...
 
abstract void TrainNetworkSpecific (int numEpochs)
 Trains neural network wiht the specified data, performing the specified number of epochs. This method must be implemented in derived classes and is specific to specific network type. More...
 

Protected Attributes

const string _defaultNetworkFilename = "network.dat"
 
double _defaultNeuronMinInput = -2
 
double _defaultNeuronMaxInput = 2
 
double _defaultNeuronMinOutput = -1.0
 
double _defaultNeuronMaxOutput = 1.0
 
List< IVector_calculatedOutputs = null
 List of calculated outputs in points contained in (all) training data. More...
 
bool _calculateVerificationErrors = false
 
Vector _auxErrors = null
 
- Protected Attributes inherited from IG.Num.VectorApproximatorBase
IVector _lastCalculationInputParameters
 

Properties

object Lock [get]
 This object's central lock object to be used by other object. Do not use this object for locking in class' methods, for this you should use InternalLock. More...
 
int OutputLevel [get, set]
 Level of output printed to console when performing actions. More...
 
virtual bool MultipleNetworks [get, set]
 Flag indicating whether multiple neural networks are used to approximate multiple outputs (one network for each output) More...
 
override int InputLength [get, set]
 Gets or sets the number of input neurons. More...
 
override int OutputLength [get, set]
 Gets or sets the number of output neurons. More...
 
virtual int[] NumHiddenNeurons [get, set]
 Gets or sets the numbers of neurons in each hidden layer. When setting, contents of array are copied, not only a reference. Numbers are set by an array of integers in which each element contains the number of neurons in the corresponding hidden layer (indexed from 0). Hidden layers are those not containing input or output neurons. More...
 
virtual int NumHiddenLayers [get, set]
 Gets or sets the number of hidden layers of the neural network (these are layers that don't contain input or output neurons). More...
 
bool NetworkPrepared [get, protected set]
 Gets a flag telling whether the network is prepared for operation (training and calculation of output). More...
 
double SigmoidAlphaValue [get, set]
 Alpha value specifying the shape of the activation function. More...
 
double LearningRate [get, set]
 Gets or sets learning rate. More...
 
double Momentum [get, set]
 Gets or sets momentum. More...
 
int EpochCount [get, protected set]
 Number of learning epochs performed up to the current moment. More...
 
int MaxEpochs [get, set]
 Maximal number of epochs in training. More...
 
int EpochsInBundle [get, set]
 Number of epochs in a single training bundle. This number of epochs is performed at once when training, without checking convergence criteria between. Larger value means slightly more efficient training (because of less checks) but rougher criteria checks. More...
 
IVector ToleranceRms [get, set]
 Tolerances on RMS errors of outputs over training points. Training will continue until error becomes below tolerance or until maximal number of epochs is reached. If less or equal than 0 then this tolerance is not taken into account. More...
 
IVector ToleranceMax [get, set]
 Tolerances on maximal errors of outputs over training points. Training will continue until error becomes below tolerance or until maximal number of epochs is reached. If less or equal than 0 then this tolerance is not taken into account. More...
 
IVector ToleranceRmsRelativeToRange [get, set]
 Relative tolerances on RMS errors of outputs over training points, relative to the correspoinding ranges of output data. More...
 
double ToleranceRmsRelativeToRangeScalar [get, set]
 Scalar through which all components of the Relative tolerances on RMS errors of outputs can be set to the same value. More...
 
IVector ToleranceMaxRelativeToRange [get, set]
 Relative tolerances on max. abs. errors of outputs over training points, relative to the correspoinding ranges of output data. More...
 
double ToleranceMaxRelativeToRangeScalar [get, set]
 Scalar through which all components of the Relative tolerances on max. abs. errors of outputs can be set to the same value. More...
 
List< int > EpochNumbers [get, set]
 List of epoch numbers at which convergence data was sampled. Saved after every set of epochs. More...
 
List< IVectorConvergenceErrorsTrainingRmsList [get, set]
 Convergence List of RMS errors calculated on training data. Saved after every set of epochs. More...
 
List< IVectorConvergenceErrorsTrainingMaxList [get, set]
 Convergence List of Maximum errors calculated on training data. Saved after every set of epochs. More...
 
List< IVectorConvergenceErrorsVerificationRmsList [get, set]
 Convergence List of Rms errors calculated on verification data. Saved after every set of epochs. More...
 
List< IVectorConvergenceErrorsVerificationMaxList [get, set]
 Convergence List of Maximum errors calculated on verification data. Saved after every set of epochs. More...
 
bool SaveConvergenceRms [get, set]
 Flag to enable RMS error convergence colection. More...
 
string NeuralApproximatorType [get]
 Gets string representation of type of the current object. This is used e.g. in deserialization in order to prevent that wrong type of internal representation would be read in. More...
 
string NetworkStateFilePath [get, set]
 Path where the curren network state has been saved, or null if the current state has not been saved yet. The SaveFile methods takes care that the file path is stored when network state is saved. InvalidateTrainingDependencies() takes care that this file path is set to null if network state has changed after last save. More...
 
string NetworkStateRelativePath [get, set]
 Relative path where the curren network state has been saved. Auxiliary property used in deserialization. When the whole Neural network approximator is saved to a file, tis path is updated in such a way that it points to the fiele where the network state has been saved, but relative to the path where the whole approximator is saved. This enables restore of the saved network state at a later time, even if the containing directory has moved within the file system or has even been copied to another system. More...
 
SampledDataSet TrainingData [get, set]
 Gets or sets the training data. More...
 
virtual IndexList VerificationIndices [get, set]
 Gets or sets indices of training data elements that are used for verification of how precise appeoximation is. These elements are excluded from training of neural network. More...
 
virtual IBoundingBox InputDataBounds [get, set]
 Bounds on input data, used for scaling from actual input to input used by neural network. Scaling is performed because of the bound codomain and image of activation functions. More...
 
virtual IBoundingBox OutputDataBounds [get, set]
 Bounds on output data, used for scaling from actual output to output produced by neural network. Scaling is performed because of the bound codomain and image of activation functions. More...
 
virtual double InputBoundsSafetyFactor [get, set]
 Safety factor by which interval lenghts of input data bounds are enlarged after bounds are automatically determined from the range of input data in the training set. Setter re-calculated the input data bounds and therefore invalidates training data dependencies. More...
 
virtual double OutputBoundsSafetyFactor [get, set]
 Safety factor by which interval lenghts of output data bounds are enlarged after bounds are automatically determined from the range of output data in the training set. Setter re-calculated the output data bounds and therefore invalidates training data dependencies. More...
 
virtual IBoundingBox InputNeuronsRange [get, protected set]
 Gets the range in which data should be for input neurons, used for scaling from actual input to input used by neural network. This depends on the activation function. More...
 
virtual IBoundingBox OutputNeuronsRange [get, protected set]
 Gets the range of the data output from output neurons, used for scaling from actual output to output produced by neural network. This will normally depend on the activation function. More...
 
int NumAllTrainingPoints [get]
 Gets number of all training points, including verification points. More...
 
virtual int NumTrainingPoints [get]
 Gets number of training points (this excludes verification points). More...
 
virtual int NumVerificationPoints [get]
 Gets number of verification points. More...
 
bool TrainingOutputsCalculated [get, set]
 Whether outputs have been calculated, after last training, in the training points (excluding verification points). More...
 
bool VerificationOutputsCalculated [get, set]
 Whether outputs have been calculated, after last training, in the training points (excluding verification points). More...
 
bool InternalTrainingDataPrepared [get, set]
 Gets or sets a flag indicating whether internal training data is prepared. This flag is used internally for signalization between methods that deal with training data. More...
 
bool NetworkTrained [get, protected set]
 Whether network has been trained since the training data was set. More...
 
bool BreakTraining [get, set]
 Flags that signalizes (if true) that training should be broken on external request. More...
 
bool CalculateVerificationErrors [get, set]
 
- Properties inherited from IG.Num.VectorApproximatorBase
object Lock [get]
 This object's central lock object to be used by other object. Do not use this object for locking in class' methods, for this you should use InternalLock. More...
 
abstract int InputLength [get, set]
 Gets or sets the number of input parameters. More...
 
abstract int OutputLength [get, set]
 Gets or sets the number of output values. More...
 
- Properties inherited from IG.Lib.ILockable
object Lock [get]
 
- Properties inherited from IG.Num.INeuralApproximator
int OutputLevel [get, set]
 Level of output printed to console when performing actions. More...
 
bool MultipleNetworks [get, set]
 Flag indicating whether multiple neural networks are used to approximate multiple outputs (one network for each output) More...
 
int InputLength [get, set]
 Gets or sets the number of input neurons. More...
 
int OutputLength [get, set]
 Gets or sets the number of output neurons. More...
 
int[] NumHiddenNeurons [get, set]
 Sets the numbers of neurons in each hidden layer. Numbers are set by an array of integers in which each element contains the number of neurons in the corresponding hidden layer (indexed from 0). Hidden layers are those not containing input or output neurons. More...
 
int NumHiddenLayers [get, set]
 Gets or sets the number of hidden layers of the neural network (these are layers that don't contain input or output neurons). More...
 
bool NetworkPrepared [get]
 Gets a flag telling whether the network is prepared for operation (training and calculation of output). More...
 
double SigmoidAlphaValue [get, set]
 Alpha value specifying the shape of the activation function. More...
 
double LearningRate [get, set]
 Gets or sets learning rate. More...
 
double Momentum [get, set]
 Gets or sets momentum. More...
 
int EpochCount [get]
 Number of learning epochs performed up to the current moment. More...
 
int MaxEpochs [get, set]
 Maximal number of epochs in training. More...
 
int EpochsInBundle [get, set]
 Number of epochs in a single training bundle. This number of epochs is performed at once when training, without checking convergence criteria between. Larger value means slightly more efficient training (because of less checks) but rougher criteria checks. More...
 
IVector ToleranceRms [get, set]
 Tolerance over RMS error of output over training points. Training will continue until error becomes below tolerance or until maximal number of epochs is reached. If less or equal than 0 then this tolerance is not taken into account. More...
 
IVector ToleranceMax [get, set]
 Tolerance on maximal error of output over training points. Training will continue until error becomes below tolerance or until maximal number of epochs is reached. If less or equal than 0 then this tolerance is not taken into account. More...
 
IVector ToleranceRmsRelativeToRange [get, set]
 Relative tolerances on RMS errors of outputs over training points, relative to the correspoinding ranges of output data. More...
 
double ToleranceRmsRelativeToRangeScalar [get, set]
 Scalar through which all components of the Relative tolerances on RMS errors of outputs can be set to the same value. More...
 
IVector ToleranceMaxRelativeToRange [get, set]
 Relative tolerances on max. abs. errors of outputs over training points, relative to the correspoinding ranges of output data. More...
 
double ToleranceMaxRelativeToRangeScalar [get, set]
 Scalar through which all components of the Relative tolerances on max. abs. errors of outputs can be set to the same value. More...
 
bool SaveConvergenceRms [get, set]
 Flag to enable Rms error convergence colection. Default is false. More...
 
List< int > EpochNumbers [get, set]
 List of epoch numbers at which convergence data was sampled. Saved after every set of epochs. More...
 
List< IVectorConvergenceErrorsTrainingRmsList [get, set]
 Convergence List of Rms errors calculated on training data. Saved after every set of epochs. More...
 
List< IVectorConvergenceErrorsTrainingMaxList [get, set]
 Convergence List of Maximum errors calculated on training data. Saved after every set of epochs. More...
 
List< IVectorConvergenceErrorsVerificationRmsList [get, set]
 Convergence List of Rms errors calculated on verification data. Saved after every set of epochs. More...
 
List< IVectorConvergenceErrorsVerificationMaxList [get, set]
 Convergence List of Maximum errors calculated on verification data. Saved after every set of epochs. More...
 
string NeuralApproximatorType [get]
 Gets string representation of type of the current object. This is used e.g. in deserialization in order to prevent that wrong type of internal representation would be read in. More...
 
string NetworkStateFilePath [get]
 Path where the curren network state has been saved, or null if the current state has not been saved yet. The SaveFile methods takes care that the file path is stored when network state is saved. InvalidateTrainingDependencies() takes care that this file path is set to null if network state has changed after last save. More...
 
string NetworkStateRelativePath [get, set]
 Relative path where the curren network state has been saved. Auxiliary property used in deserialization. When the whole Neural network approximator is saved to a file, tis path is updated in such a way that it points to the fiele where the network state has been saved, but relative to the path where the whole approximator is saved. This enables restore of the saved network state at a later time, even if the containing directory has moved within the file system or has even been copied to another system. More...
 
SampledDataSet TrainingData [get, set]
 Gets or sets the training data. More...
 
IndexList VerificationIndices [get, set]
 Gets or sets indices of training data elements that are used for verification of how precise appeoximation is. These elements are excluded from training of neural network. More...
 
IBoundingBox InputDataBounds [get, set]
 Bounds on input data, used for scaling from actual input to input used by neural network. Scaling is performed because of the bound codomain and image of activation functions. More...
 
IBoundingBox OutputDataBounds [get, set]
 Bounds on output data, used for scaling from actual output to output produced by neural network. Scaling is performed because of the bound codomain and image of activation functions. More...
 
double InputBoundsSafetyFactor [get, set]
 Safety factor by which interval lenghts of input data bounds are enlarged after bounds are automatically determined from the range of input data in the training set. Setter re-calculated the input data bounds and therefore invalidates training data dependencies. More...
 
double OutputBoundsSafetyFactor [get, set]
 Safety factor by which interval lenghts of output data bounds are enlarged after bounds are automatically determined from the range of output data in the training set. Setter re-calculated the output data bounds and therefore invalidates training data dependencies. More...
 
IBoundingBox InputNeuronsRange [get]
 Gets the range in which data should be for input neurons, used for scaling from actual input to input used by neural network. This depends on the activation function. More...
 
IBoundingBox OutputNeuronsRange [get]
 Gets the range of the data output from output neurons, used for scaling from actual output to output produced by neural network. This will normally depend on the activation function. More...
 
int NumAllTrainingPoints [get]
 Gets number of all training points, including verification points. More...
 
int NumTrainingPoints [get]
 Gets number of training points (this excludes verification points). More...
 
int NumVerificationPoints [get]
 Gets number of verification points. More...
 
bool NetworkTrained [get]
 Whether network has been trained since the training data was set. More...
 
bool BreakTraining [get, set]
 Flags that signalizes (if true) that training should be broken on external request. More...
 
- Properties inherited from IG.Num.IVectorApproximator
int InputLength [get, set]
 Gets or sets the number of input parameters. More...
 
int OutputLength [get, set]
 Gets or sets the number of output values. More...
 

Private Attributes

object _mainLock = new object()
 
int _outputLevel = Util.OutputLevel
 
int _inputLength
 
int _outputLength
 
int[] _numHiddenNeurons
 
bool _multipleNetworks = true
 
bool _networkPrepared = false
 
double _sigmoidAlphaValue = NeuralTrainingParameters.DefaultSigmoidAlphaValue
 
double _learningRate = NeuralTrainingParameters.DefaultLearningRate
 
double _momentum = NeuralTrainingParameters.DefaultMomentum
 
int _epochCount = 0
 
bool _convergenceRmsEnabled = false
 
int _maxEpochs = NeuralTrainingParameters.DefaultMaxEpochs
 
int _epochsInBundle = NeuralTrainingParameters.DefaultEpochsInBundle
 
List< int > _epochNumbers = null
 
List< IVector_convergenceErrorsTrainingRmsList = null
 
List< IVector_convergenceErrorsTrainingMaxList = null
 
List< IVector_convergenceErrorsVerificationRmsList = null
 
List< IVector_convergenceErrorsVerificationMaxList = null
 
IVector _toleranceRms = null
 
IVector _toleranceMax = null
 
IVector _tolRmsRelative
 Auxiliary properties for defining tolerances in a relative way: More...
 
double _tolRmsRelativeScalar
 
IVector _tolMaxRelative
 
double _tolMaxRelativeScalar
 
string _networkFilePath = null
 
string _networkRelativePath = null
 
SampledDataSet _trainingData
 
IndexList _verificationIndices
 
IBoundingBox _inputDataBounds
 
IBoundingBox _outputDataBounds
 
IBoundingBox _inputNeuronRange
 
IBoundingBox _outputNeuronsRange
 
double _inputBoundsSafetyFactor = 1.5
 
double _outputBoundsSafetyFactor = 2.0
 
bool _internalTrainingDataPrepared = false
 
bool _trainingOutputsCalculated = false
 
bool _verificationOutputsCalculated = false
 
bool _networkTrained
 
List< IVector_prescribed = null
 
List< IVector_calculated = null
 
bool _breakTraining = false
 
IVector _output = null
 
IVector _outputFiltered1 = null
 

Detailed Description

Base class for neural network approximators.

$A Igor Mar11;

Constructor & Destructor Documentation

IG.Num.NeuralApproximatorBase.NeuralApproximatorBase ( )
inline

Member Function Documentation

virtual int IG.Num.NeuralApproximatorBase.GetNumNeuronsInHiddenLayer ( int  whichLayer)
inlinevirtual

Returns the number of neurons in the specified hidden layer. Hidden layers are those not containing input or output neurons.

Parameters
whichLayerIndex of the hidden layer for which number of neurons is returned.

Implements IG.Num.INeuralApproximator.

virtual void IG.Num.NeuralApproximatorBase.SetNumNeuronsInHiddenLayer ( int  whichLayer,
int  numNeurons 
)
inlinevirtual

Sets the number of neurons in the specified hidden layer. Hidden layers are those not containing input or output neurons.

Parameters
whichLayerIndex of the hidden layer for which number of neurons is returned.
numNeuronsPrescribed number of neurons in the specified layer.

Implements IG.Num.INeuralApproximator.

Referenced by IG.Num.NeuralTrainingParameters.CopyTo().

virtual void IG.Num.NeuralApproximatorBase.SetHiddenLayers ( params int[]  numNeurons)
inlinevirtual

Sets the numbers of neurons in each hidden layer. Can be called with table of integers as argument, kor with variable number of integer parameters. Numbers are set by an array of integers in which each element contains the number of neurons in the corresponding hidden layer (indexed from 0). Hidden layers are those not containing input or output neurons.

Parameters
numNeuronsArray containing the prescribed numbers of neurons in each hidden layer. Instead of array, a variable number of integer parameters can be specified.

Implements IG.Num.INeuralApproximator.

Referenced by IG.Num.NeuralApproximatorBase.ExampleQuadratic(), and IG.Neural.NeuralTadej.ExampleStore().

void IG.Num.NeuralApproximatorBase.SetRmsToleranceRelstiveToRange ( )
inlineprotected

Updates the tolerances on RMS errors of outputs according to the relative tolerances (defined by ToleranceRmsRelativeToRange) and the ranges in output data (defined by OutputDataBounds), if both are defined.

References IG.Num.VectorBase.ArrayProductPlain().

void IG.Num.NeuralApproximatorBase.SetMaxToleranceRelstiveToRange ( )
inlineprotected

Updates the tolerances on max. abs. errors of outputs according to the relative tolerances (defined by ToleranceMaxRelativeToRange) and the ranges in output data (defined by OutputDataBounds), if both are defined.

References IG.Num.VectorBase.ArrayProductPlain().

abstract void IG.Num.NeuralApproximatorBase.PrepareNetworksArray ( )
protectedpure virtual

Prepares the networks array (allocates it if necessary) for storing all neural networks of the current object.

Implemented in IG.Num.NeuralApproximatorAforgeFake, and IG.Neural.NeuralApproximatorAforge.

abstract void IG.Num.NeuralApproximatorBase.PrepareNetwork ( )
pure virtual

Prepares neural network for use. If networks have not yet been created accordinfg to internal data, they are created. If networks are already prepared then this method does nothing.

Some things suc as creation of a neural network follow the pattern of lazy evaluation.

Implements IG.Num.INeuralApproximator.

Implemented in IG.Neural.NeuralApproximatorAforge, and IG.Num.NeuralApproximatorAforgeFake.

abstract void IG.Num.NeuralApproximatorBase.CreateNetwork ( )
pure virtual

Creates the neural network anew. It the network already exists on the current object, it is discarded.

Implements IG.Num.INeuralApproximator.

Implemented in IG.Neural.NeuralApproximatorAforge, and IG.Num.NeuralApproximatorAforgeFake.

abstract void IG.Num.NeuralApproximatorBase.ResetNetwork ( )
pure virtual

Resets the neural network.

Implements IG.Num.INeuralApproximator.

Implemented in IG.Neural.NeuralApproximatorAforge, and IG.Num.NeuralApproximatorAforgeFake.

abstract void IG.Num.NeuralApproximatorBase.DestroyNetwork ( )
pure virtual

Destroys the neural network.

Implements IG.Num.INeuralApproximator.

Implemented in IG.Neural.NeuralApproximatorAforge, and IG.Num.NeuralApproximatorAforgeFake.

string IG.Num.NeuralApproximatorBase.GetNetworkFilePath ( string  fileOrDirectoryPath,
int  whichNetwork 
)
inline

Returns an absolute path to the file for storing the specified neural network contained on the current object, with respect to suggested file path and index of the network. The returned path is in the same directory as suggested file path and has the same file extension (if any). If the suggested path represents a directory, then some default suggested path is assumed. If there is only one network then the returned file path is the same as the suggested one (or the same as default file name within the suggested directory, if a directory path is proposed).

Parameters
fileOrDirectoryPathSuggested file or directory path, can be a relative path.
whichNetworkIndex of the network for which path of the file to store the network is returned.
Returns

Implements IG.Num.INeuralApproximator.

void IG.Num.NeuralApproximatorBase.SaveNetwork ( string  filePath)
inline

Saves the state of the neural network to the specified file. If the file already exists, its contents are overwritten.

Parameters
filePathPath to the file into which the network is saved.

Implements IG.Num.INeuralApproximator.

void IG.Num.NeuralApproximatorBase.LoadNetwork ( string  filePath)
inline

Restores neural network from a file where it has been stored before.

Parameters
filePathPath to the file from which the neural network is read.

Implements IG.Num.INeuralApproximator.

abstract void IG.Num.NeuralApproximatorBase.SaveNetworkSpecific ( string  filePath)
protectedpure virtual

Saves the state of the neural network to the specified file. If the file already exists, its contents are overwritten.

Parameters
filePathPath to the file into which the network is saved.

Implemented in IG.Neural.NeuralApproximatorAforge, and IG.Num.NeuralApproximatorAforgeFake.

abstract void IG.Num.NeuralApproximatorBase.LoadNetworkSpecific ( string  filePath)
protectedpure virtual

Restores neural network from a file where it has been stored before.

Parameters
filePathPath to the file from which the neural network is read.

Implemented in IG.Neural.NeuralApproximatorAforge, and IG.Num.NeuralApproximatorAforgeFake.

void IG.Num.NeuralApproximatorBase.SetTrainingAndVerificationData ( SampledDataSet  trainingData,
SampledDataSet  verificationData 
)
inline
void IG.Num.NeuralApproximatorBase.GetTrainingData ( ref SampledDataSet  trainingData)
inline
void IG.Num.NeuralApproximatorBase.GetVerificationData ( ref SampledDataSet  veerificationData)
inline
void IG.Num.NeuralApproximatorBase.GetTrainingAndVerificationData ( ref SampledDataSet  trainingData,
ref SampledDataSet  verificationData 
)
inline
void IG.Num.NeuralApproximatorBase.SaveTrainingDataJson ( string  filePath)
inline

Saves network's training data to the specified JSON file. File is owerwritten if it exists.

Parameters
filePathPath to the file where training data is saved.

Implements IG.Num.INeuralApproximator.

void IG.Num.NeuralApproximatorBase.LoadTrainingDataJson ( string  filePath)
inline

Restores training data from the specified file in JSON format.

Parameters
filePathFile from which training data is restored.

Implements IG.Num.INeuralApproximator.

void IG.Num.NeuralApproximatorBase.SetNeuronsInputRange ( double  min,
double  max 
)
inline

Sets the neurons input range. Bounds for all input neurons are set equally.

Parameters
minLower bound for all input neurons.
maxUpper bound for all input neurons.

Implements IG.Num.INeuralApproximator.

void IG.Num.NeuralApproximatorBase.SetNeuronsOutputRange ( double  min,
double  max 
)
inline

Sets the neurons output range. Bounds for all output neurons are set equally.

Parameters
minLower bound for all output neurons.
maxUpper bound for all output neurons.

Implements IG.Num.INeuralApproximator.

void IG.Num.NeuralApproximatorBase.RecalculateInputDataBounds ( )
inline

Recalculates input data bounds by taking into account the training data set of the current object.

Training data dependencies are invalidated by this method because setting bounds invalidates them.

Implements IG.Num.INeuralApproximator.

void IG.Num.NeuralApproximatorBase.RecalculateOutputDataBounds ( )
inline

Recalculates output data bounds by taking into account the training data set of the current object.

Training data dependencies are invalidated by this method because setting bounds invalidates them.

Implements IG.Num.INeuralApproximator.

void IG.Num.NeuralApproximatorBase.RecalculateDataBounds ( )
inline

Recalculates input and output data bounds by taking into account the training data set of the current object.

Training data dependencies are invalidated by this method because setting bounds invalidates them.

Implements IG.Num.INeuralApproximator.

void IG.Num.NeuralApproximatorBase.RecalculateInputDataBounds ( SampledDataSet  trainingData)
inline

Recalculates input data bounds by taking into account the specified training data set.

Parameters
trainingDataTraining data set accourding to which input bounds are adjusted.

Training data dependencies are invalidated by this method because setting bounds invalidates them.

Implements IG.Num.INeuralApproximator.

References IG.Num.SampledDataSet.GetInputRange().

void IG.Num.NeuralApproximatorBase.RecalculateOutputDataBounds ( SampledDataSet  trainingData)
inline

Recalculates output data bounds by taking into account the specified training data set.

Parameters
trainingDataTraining data set accourding to which output bounds are adjusted.

Training data dependencies are invalidated by this method because setting bounds invalidates them.

Implements IG.Num.INeuralApproximator.

References IG.Num.SampledDataSet.GetOutputRange().

void IG.Num.NeuralApproximatorBase.RecalculateDataBounds ( SampledDataSet  trainingData)
inline

Recalculates input and output data bounds by taking into account the specified training data set.

Parameters
trainingDataTraining data set accourding to which input and output bounds are adjusted.

Training data dependencies are invalidated by this method because setting bounds invalidates them.

Implements IG.Num.INeuralApproximator.

virtual double IG.Num.NeuralApproximatorBase.MapInput ( int  componentIndex,
double  value 
)
inlineprotectedvirtual

Maps (scales & shifts) and returns specific input value to the value prepared for the corresponding input neuron.

Parameters
componentIndexIndex of the input value within the input vector.
valueValue that is mapped.
Returns
Input value mapped for the input to neural network.

References IG.Num.BoundingBoxBase.Map().

virtual double IG.Num.NeuralApproximatorBase.MapFromNeuralInput ( int  componentIndex,
double  value 
)
inlineprotectedvirtual

Inverse maps (scales & shifts) and returns specific input value back from the neural input to the actual input.

Parameters
componentIndexIndex of the input value within the input vector.
valueValue that is mapped back from neural input.
Returns
Input value mapped back from the neural input.

References IG.Num.BoundingBoxBase.Map().

virtual void IG.Num.NeuralApproximatorBase.MapInput ( IVector  values,
ref IVector  mappedValues 
)
inlineprotectedvirtual

Maps (scales & shifts) vector of input values to the vector of neuron inputs.

Parameters
valuesVector of input values to be mapped.
mappedValuesVector where mapped values are stored.

References IG.Num.BoundingBoxBase.Map().

virtual void IG.Num.NeuralApproximatorBase.MapFromNeuralInput ( IVector  values,
ref IVector  mappedValues 
)
inlineprotectedvirtual

Inverse maps (scales & shifts) vector of neural input values back to the vector of actual inputs.

Parameters
valuesVector of neural inputs to be mapped.
mappedValuesVector where inverse mapped values are stored.

References IG.Num.BoundingBoxBase.Map().

virtual double IG.Num.NeuralApproximatorBase.MapOutput ( int  componentIndex,
double  value 
)
inlineprotectedvirtual

Maps (scales & shifts) and returns specific output value to the output value of the corresponding output neuron.

Parameters
componentIndexIndex of the output value within the output vector.
valueValue that is mapped.
Returns
Output value mapped for the output to neural network.

References IG.Num.BoundingBoxBase.Map().

virtual double IG.Num.NeuralApproximatorBase.MapFromNeuralOutput ( int  componentIndex,
double  value 
)
inlineprotectedvirtual

Inverse maps (scales & shifts) and returns specific output value back from the neural output to the actual output.

Parameters
componentIndexIndex of the output value within the output vector.
valueValue that is mapped back from neural output.
Returns
Output value mapped back from the neural output.

References IG.Num.BoundingBoxBase.Map().

virtual void IG.Num.NeuralApproximatorBase.MapOutput ( IVector  values,
ref IVector  mappedValues 
)
inlineprotectedvirtual

Maps (scales & shifts) vector of output values to the vector of neuron outputs.

Parameters
valuesVector of output values to be mapped.
mappedValuesVector where mapped values are stored.

References IG.Num.BoundingBoxBase.Map().

virtual void IG.Num.NeuralApproximatorBase.MapFromNeuralOutput ( IVector  values,
ref IVector  mappedValues 
)
inlineprotectedvirtual

Inverse maps (scales & shifts) vector of neural output values back to the vector of actual outputs.

Parameters
valuesVector of neural outputs to be mapped.
mappedValuesVector where inverse mapped values are stored.

References IG.Num.BoundingBoxBase.Map().

void IG.Num.NeuralApproximatorBase.CalculateTrainingVerificationOutputs ( bool  calculateTrainingOutputs,
bool  calculateVerificationOutputs 
)
inlineprotected

Calculates outputs in training points contained in training set, either in training points, in verification points, or both.

Parameters
calculateTrainingOutputsWhether outputs are calculated in training points.
calculateVerificationOutputsWhether outputs are calculated in verification points.

References IG.Num.SampledDataElement.InputParameters.

void IG.Num.NeuralApproximatorBase.CalculateTrainingOutputs ( )
inlineprotected

Calculates outputs in training points of the training data set (this excludes verification points).

void IG.Num.NeuralApproximatorBase.CalculateVerificationOutputs ( )
inlineprotected

Calculates outputs in verification points of the training data set.

static void IG.Num.NeuralApproximatorBase.CalculateErrorsRms ( int  dimOutput,
IVector[]  prescribed,
IVector[]  calculated,
ref IVector  errors 
)
inlinestatic

Calculates error measures - RMS (root mean square) of the differences - for the specified arrays of prescribed and calculated output values in a set of sampling points.

Parameters
dimOutputDimension of output values.
prescribedArray of prescribed output values (e.g. from training data, measurements, etc.).
calculatedArray of calculated output values (e.g. by a trained neural network).
errorsVector where error measures for each indivitual output value are stored.

References IG.Num.VectorBase.Resize().

static void IG.Num.NeuralApproximatorBase.CalculateErrorsMeanAbs ( int  dimOutput,
IVector[]  prescribed,
IVector[]  calculated,
ref IVector  errors 
)
inlinestatic

Calculates error measures - mean absolute value of the differences - for the specified arrays of prescribed and calculated output values in a set of sampling points.

Parameters
dimOutputDimension of output values.
prescribedArray of prescribed output values (e.g. from training data, measurements, etc.).
calculatedArray of calculated output values (e.g. by a trained neural network).
errorsVector where error measures for each indivitual output value are stored.

References IG.Num.VectorBase.Resize().

static void IG.Num.NeuralApproximatorBase.CalculateErrorsMax ( int  dimOutput,
IVector[]  prescribed,
IVector[]  calculated,
ref IVector  errors 
)
inlinestatic

Calculates error measures - maximum absolute value of the differences - for the specified arrays of prescribed and calculated output values in a set of sampling points.

Parameters
dimOutputDimension of output values.
prescribedArray of prescribed output values (e.g. from training data, measurements, etc.).
calculatedArray of calculated output values (e.g. by a trained neural network).
errorsVector where error measures for each indivitual output value are stored.

References IG.Num.VectorBase.Resize().

virtual void IG.Num.NeuralApproximatorBase.PrepareErrorData ( ref int  dimOutput,
ref IVector[]  prescribed,
ref IVector[]  calculated,
bool  takeTrainingPoints,
bool  takeVerificationPoints 
)
inlineprotectedvirtual

Prepares data for calculation of various error measures over training points or in verification points after training of the neural network(s).

Parameters
dimOutputLocation where number (dimension) of output values is stored.
prescribedArray where prescribed values from the training set are stored.
calculatedArray where calculated values in the corresponding points from the training set are stored.
takeTrainingPointsSpecifies whether training points (i.e., excludingverification points) are taken from the training set to constitute the output data.
takeVerificationPointsSpecifies whether verification points are taken from the training set.
void IG.Num.NeuralApproximatorBase.GetErrorsTrainingRms ( ref IVector  errors)
inline

Calculates the RMS (root mean square) of the errors of output values for the training elements of the training set (this excludes verification points).

Parameters
errors

Implements IG.Num.INeuralApproximator.

Referenced by IG.Num.NeuralTrainingParameters.CopyResultsFrom().

void IG.Num.NeuralApproximatorBase.GetErrorsVerificationRms ( ref IVector  errors)
inline

Calculates the RMS (root mean square) of the errors of output values for the verification elements of the training set.

Parameters
errors

Implements IG.Num.INeuralApproximator.

Referenced by IG.Num.NeuralTrainingParameters.CopyResultsFrom().

void IG.Num.NeuralApproximatorBase.GetErrorsTrainingMax ( ref IVector  errors)
inline

Calculates the maximum absolute errors of output values for the training elements of the training set (this excludes verification points).

Parameters
errors

Implements IG.Num.INeuralApproximator.

Referenced by IG.Num.NeuralTrainingParameters.CopyResultsFrom().

void IG.Num.NeuralApproximatorBase.GetErrorsVerificationMax ( ref IVector  errors)
inline

Calculates the maximum absolute errors of output values for the verification elements of the training set.

Parameters
errors

Implements IG.Num.INeuralApproximator.

Referenced by IG.Num.NeuralTrainingParameters.CopyResultsFrom().

void IG.Num.NeuralApproximatorBase.GetErrorsTrainingMeanAbs ( ref IVector  errors)
inline

Calculates the mean absolute errors of output values for the training elements of the training set (this excludes verification points).

Parameters
errors

Implements IG.Num.INeuralApproximator.

Referenced by IG.Num.NeuralTrainingParameters.CopyResultsFrom(), and IG.Neural.NeuralTadej.ExampleStore().

void IG.Num.NeuralApproximatorBase.GetErrorsVerificationMeanAbs ( ref IVector  errors)
inline

Calculates the mean absolute errors of output values for the verification elements of the training set.

Parameters
errors

Implements IG.Num.INeuralApproximator.

Referenced by IG.Num.NeuralTrainingParameters.CopyResultsFrom(), and IG.Neural.NeuralTadej.ExampleStore().

abstract void IG.Num.NeuralApproximatorBase.PrepareInternalTrainingData ( )
protectedpure virtual

Prepares internal training data that is needed by the native training algorithm. When overridden, this method must set the InternalTrainingDataPrepared flag to true.

Implemented in IG.Neural.NeuralApproximatorAforge, and IG.Num.NeuralApproximatorAforgeFake.

virtual void IG.Num.NeuralApproximatorBase.InvalidateTrainingDependencies ( )
inlinevirtual

Invalidates all data that must be recalculated after training of the network is done. This method is called after training or additional training of the network is performed. Invalidation is achieved throughthe the appropriate flags.

Implements IG.Num.INeuralApproximator.

virtual void IG.Num.NeuralApproximatorBase.InvalidateTrainingDataDependencies ( )
inlinevirtual

Invalidates all data that must be re-calculated after training data changes. This method is called after training data is modified. Invalidation is achieved throughthe the appropriate flags.

Implements IG.Num.INeuralApproximator.

virtual void IG.Num.NeuralApproximatorBase.InvalidateNetworkDependencies ( )
inlinevirtual

Invalidates all data that must be re-calculated after the neural network itself changes. This method must be called after the internal neural network is re-defined (or are re-defined). Invalidation is achieved throughthe the appropriate flags.

Implements IG.Num.INeuralApproximator.

void IG.Num.NeuralApproximatorBase.TrainNetwork ( int  numEpochs)
inline

Trains neural network wiht the specified data, performing the specified number of epochs.

Parameters
numEpochsNumber of epochs used in training of the network.

Implements IG.Num.INeuralApproximator.

Referenced by IG.Num.NeuralApproximatorBase.ExampleQuadratic(), and IG.Neural.NeuralTadej.ExampleStore().

abstract void IG.Num.NeuralApproximatorBase.TrainNetworkSpecific ( int  numEpochs)
protectedpure virtual

Trains neural network wiht the specified data, performing the specified number of epochs. This method must be implemented in derived classes and is specific to specific network type.

Parameters
numEpochsNumber of epochs used in training of the network.

Implemented in IG.Neural.NeuralApproximatorAforge, and IG.Num.NeuralApproximatorAforgeFake.

void IG.Num.NeuralApproximatorBase.TrainNetworkMultiple ( int  numEpochs,
int  numIterations 
)
inline

Performs a specified number of training iterations where the specified number of epochs are run in each iteration.

Parameters
numEpochsNumber of epochs run in each iteration.
numIterationsNumber of iterations.
void IG.Num.NeuralApproximatorBase.TrainNetworkMultiple ( int  NumIterations)
inline

Performs a specified number of training iterations where the prescribed number of epochs (contained in the EpochsInBundle property) are run in each iteration.

Parameters
numIterationsNumber of iterations.
virtual void IG.Num.NeuralApproximatorBase.TrainNetwork ( )
inlinevirtual

Trains neural network until stopping criteria are met (in terms of errors and number of epochs performed.

Implements IG.Num.INeuralApproximator.

virtual bool IG.Num.NeuralApproximatorBase.StopTrainingCriteriaMet ( )
inlinevirtual

Returns true if the stopping criteria for training is met, with respect to current settings, errors and number of epochs already performed, and false otherwise.

Implements IG.Num.INeuralApproximator.

override double IG.Num.NeuralApproximatorBase.CalculateOutput ( IVector  input,
int  whichElement 
)
inline

Calculates and returns the specified output by using the neural network.

Implements IG.Num.INeuralApproximator.

Referenced by IG.Num.NeuralApproximatorBase.ExampleQuadratic(), and IG.Neural.NeuralTadej.ExampleStore().

override void IG.Num.NeuralApproximatorBase.CalculateOutput ( IVector  input,
int[]  indices,
ref IVector  filteredOutput 
)
inline

Calculates and returns the required output values corresponding to the specified inputs, by using the current neural network(s).

Parameters
inputInput parameters for which output values are calculated.
indicesArray of indices of the output values to be returned.
filteredOutputVector where filtered output values are stored.

Implements IG.Num.INeuralApproximator.

References IG.Num.VectorBase.Resize().

override string IG.Num.NeuralApproximatorBase.ToString ( )
inline

Returns string describing the current neural network approximator.

Referenced by IG.Num.NeuralApproximatorBase.ExampleQuadratic(), and IG.Neural.NeuralTadej.ExampleStore().

static void IG.Num.NeuralApproximatorBase.SaveJson ( INeuralApproximator  approximator,
string  filePath 
)
inlinestatic

Saves a neural network approximator to a file. If the neural netwoek is trained then internal state is also saved to a file.

Parameters
approximatorNeural network approximator to be saved.
filePathPath to the file where approximator is saved.

Referenced by IG.Num.NeuralApproximatorBase.ExampleSaveNetwork().

static void IG.Num.NeuralApproximatorBase.SaveJson ( INeuralApproximator  approximator,
string  filePath,
bool  saveInternalState 
)
inlinestatic

Saves a neural network approximator to a file.

Parameters
approximatorNeural network approximator to be saved.
filePathPath to the file where approximator is saved.
saveInternalStateSpecifies whether internal state should be saved, too (only in the case that network is trained).

References IG.Lib.UtilSystem.GetRelativePath(), IG.Num.INeuralApproximator.NetworkStateFilePath, IG.Num.INeuralApproximator.NetworkStateRelativePath, IG.Num.INeuralApproximator.NetworkTrained, and IG.Num.INeuralApproximator.SaveNetwork().

static void IG.Num.NeuralApproximatorBase.LoadJson ( string  filePath,
ref INeuralApproximator  approximatorRestored 
)
inlinestatic

Loads network from a file.

Parameters
filePathPath to the file.
approximatorRestoredNeural approximator that is produced by deserialization.

Referenced by IG.Neural.NeuralAllpicationCommands.CmdNeuralCalculateApproximationPlain(), IG.Num.NeuralApproximatorBase.ExampleSaveNetwork(), and IG.Neural.NeuraApproximationFileManager.LoadNeuralNetwork().

void IG.Num.NeuralApproximatorBase.SaveTrainingDataJson_To_delete ( string  filePath)
inline

Saves network's training data to the specified JSON file. File is owerwritten if it exists.

Parameters
filePathPath to the file where training data is saved.
void IG.Num.NeuralApproximatorBase.LoadTrainingDataJson_To_Delete ( string  filePath)
inline

Restores training data from the specified file in JSON format.

Parameters
filePathFile from which training data is restored.
void IG.Num.NeuralApproximatorBase.TestMapping ( )
inline

Test back and forth mapping (scaling and shifting) from actual data to data prepared for training, and vice versa (checks if transformed data falls withi the prescribed ranges and if backward transformation yields the same result as forward transformation). Testing is performed on all data from the TrainingData property, including verification elements.

References IG.Num.VectorBase.Subtract(), IG.Num.BoundingBoxBase.ToString(), and IG.Num.BoundingBoxBase.Update().

Referenced by IG.Num.NeuralApproximatorBase.ExampleQuadratic().

static void IG.Num.NeuralApproximatorBase.ExampleSaveNetwork ( string  directoryPath,
string  fileName,
string  internalStateFileName 
)
inlinestatic

Example of saving an entire trained neural network to a file, and then restoring it from a file. Network internal state is saved by the SaveNetwork() method that is specific to the type of the network, therefore it is saved to a separate file. The path of this file is savad with the network approximator object itself. Network is saved only once.

Parameters
directoryPathDirectory where the neural network is saved.
fileNameName o the file into which the network is saved.
internalStateFileNameName of the file where the state of the trained network (internal representation) is stored.
static void IG.Num.NeuralApproximatorBase.ExampleSaveNetwork ( string  directoryPath,
string  fileName,
string  internalStateFileName,
bool  saveRestored 
)
inlinestatic

Example of saving an entire trained neural network to a file, and then restoring it from a file. Network internal state is saved by the SaveNetwork() method that is specific to the type of the network, therefore it is saved to a separate file. The path of this file is savad with the network approximator object itself. If the saveRestored flag parameter is true then the restored file ia saved again for comparison.

Parameters
directoryPathDirectory where the neural network is saved.
fileNameName o the file into which the network is saved.
internalStateFileNameName of the file where the state of the trained network (internal representation) is stored.
saveRestoredIf true then the restored neural network is saved again for comparison with the file where original was saved.

References IG.Num.INeuralApproximator.GetErrorsTrainingRms(), IG.Num.INeuralApproximator.GetErrorsVerificationRms(), IG.Num.NeuralApproximatorBase.LoadJson(), IG.Num.INeuralApproximator.NetworkStateFilePath, IG.Num.INeuralApproximator.OutputLength, IG.Num.NeuralApproximatorBase.SaveJson(), IG.Num.INeuralApproximator.SaveNetwork(), IG.Num.VectorBase.Subtract(), and IG.Num.INeuralApproximator.TrainNetwork().

static INeuralApproximator IG.Num.NeuralApproximatorBase.ExampleQuadratic ( )
inlinestatic

Example demonstrating usage of the neural network approximator. A quadratic function with random coefficients is sampled with enough samples to exactly specify function coefficients, a part of samples is randomly designated as verification points, then neural network is created and trained on training samples, and it is verified how close the obtained approximation matches actual function in verification points.

Returns
The trained neural network approximator that includes the training data, and can be saved to a file and used at a later time.
static INeuralApproximator IG.Num.NeuralApproximatorBase.ExampleQuadratic ( int  inputLength,
int  outputLength 
)
inlinestatic

Example demonstrating usage of the neural network approximator. A quadratic function with random coefficients is sampled with enough samples to exactly specify function coefficients, a part of samples is randomly designated as verification points, then neural network is created and trained on training samples, and it is verified how close the obtained approximation matches actual function in verification points.

Parameters
inputLengthNumber of input parameters of the neural network.
outputLengthNumber of approximated output values of the neural network.
Returns
The trained neural network approximator that includes the training data, and can be saved to a file and used at a later time.
static INeuralApproximator IG.Num.NeuralApproximatorBase.ExampleQuadratic ( int  inputLength,
int  outputLength,
int  outputLevel,
int  maxEpochs 
)
inlinestatic

Example demonstrating usage of the neural network approximator. A quadratic function with random coefficients is sampled with enough samples to exactly specify function coefficients, a part of samples is randomly designated as verification points, then neural network is created and trained on training samples, and it is verified how close the obtained approximation matches actual function in verification points.

Parameters
inputLengthNumber of input parameters of the neural network.
outputLengthNumber of approximated output values of the neural network.
outputLevelLevel of output written to console (0 - no output).
MaxEpochsIf greater than 0 then this is the maximal number of epochs used for training.
Returns
The trained neural network approximator that includes the training data, and can be saved to a file and used at a later time.

References IG.Num.NeuralApproximatorBase.CalculateOutput(), IG.Lib.SortedUniqueItemList< Type >.Contains(), IG.Num.SampledDataSet.CreateExampleQuadratic(), IG.Lib.IndexList.CreateRandom(), IG.Num.NeuralApproximatorBase.EpochsInBundle, IG.Num.SampledDataSet.GetInputParameters(), IG.Num.SampledDataSet.GetOutputValues(), IG.Num.NeuralApproximatorBase.InputBoundsSafetyFactor, IG.Num.NeuralApproximatorBase.InputLength, IG.Num.NeuralApproximatorBase.InputNeuronsRange, IG.Num.NeuralApproximatorBase.LearningRate, IG.Num.NeuralApproximatorBase.Lock, IG.Num.NeuralApproximatorBase.MaxEpochs, IG.Num.NeuralApproximatorBase.Momentum, IG.Num.NeuralApproximatorBase.MultipleNetworks, IG.Num.NeuralApproximatorBase.OutputBoundsSafetyFactor, IG.Num.NeuralApproximatorBase.OutputLength, IG.Num.NeuralApproximatorBase.OutputLevel, IG.Num.NeuralApproximatorBase.OutputNeuronsRange, IG.Num.IBoundingBox.Reset(), IG.Num.NeuralApproximatorBase.SetHiddenLayers(), IG.Num.NeuralApproximatorBase.SigmoidAlphaValue, IG.Num.VectorBase.Subtract(), IG.Num.NeuralApproximatorBase.TestMapping(), IG.Num.NeuralApproximatorBase.ToleranceRms, IG.Num.IVector.ToString(), IG.Num.NeuralApproximatorBase.ToString(), IG.Num.NeuralApproximatorBase.TrainingData, IG.Num.NeuralApproximatorBase.TrainNetwork(), IG.Num.IBoundingBox.UpdateAll(), and IG.Num.NeuralApproximatorBase.VerificationIndices.

Member Data Documentation

object IG.Num.NeuralApproximatorBase._mainLock = new object()
private
int IG.Num.NeuralApproximatorBase._outputLevel = Util.OutputLevel
private
int IG.Num.NeuralApproximatorBase._inputLength
private
int IG.Num.NeuralApproximatorBase._outputLength
private
int [] IG.Num.NeuralApproximatorBase._numHiddenNeurons
private
bool IG.Num.NeuralApproximatorBase._multipleNetworks = true
private
bool IG.Num.NeuralApproximatorBase._networkPrepared = false
private
double IG.Num.NeuralApproximatorBase._sigmoidAlphaValue = NeuralTrainingParameters.DefaultSigmoidAlphaValue
private
double IG.Num.NeuralApproximatorBase._learningRate = NeuralTrainingParameters.DefaultLearningRate
private
double IG.Num.NeuralApproximatorBase._momentum = NeuralTrainingParameters.DefaultMomentum
private
int IG.Num.NeuralApproximatorBase._epochCount = 0
private
bool IG.Num.NeuralApproximatorBase._convergenceRmsEnabled = false
private
int IG.Num.NeuralApproximatorBase._maxEpochs = NeuralTrainingParameters.DefaultMaxEpochs
private
int IG.Num.NeuralApproximatorBase._epochsInBundle = NeuralTrainingParameters.DefaultEpochsInBundle
private
List<int> IG.Num.NeuralApproximatorBase._epochNumbers = null
private
List<IVector> IG.Num.NeuralApproximatorBase._convergenceErrorsTrainingRmsList = null
private
List<IVector> IG.Num.NeuralApproximatorBase._convergenceErrorsTrainingMaxList = null
private
List<IVector> IG.Num.NeuralApproximatorBase._convergenceErrorsVerificationRmsList = null
private
List<IVector> IG.Num.NeuralApproximatorBase._convergenceErrorsVerificationMaxList = null
private
IVector IG.Num.NeuralApproximatorBase._toleranceRms = null
private
IVector IG.Num.NeuralApproximatorBase._toleranceMax = null
private
IVector IG.Num.NeuralApproximatorBase._tolRmsRelative
private

Auxiliary properties for defining tolerances in a relative way:

double IG.Num.NeuralApproximatorBase._tolRmsRelativeScalar
private
IVector IG.Num.NeuralApproximatorBase._tolMaxRelative
private
double IG.Num.NeuralApproximatorBase._tolMaxRelativeScalar
private
const string IG.Num.NeuralApproximatorBase._defaultNetworkFilename = "network.dat"
protected
string IG.Num.NeuralApproximatorBase._networkFilePath = null
private
string IG.Num.NeuralApproximatorBase._networkRelativePath = null
private
SampledDataSet IG.Num.NeuralApproximatorBase._trainingData
private
IndexList IG.Num.NeuralApproximatorBase._verificationIndices
private
IBoundingBox IG.Num.NeuralApproximatorBase._inputDataBounds
private
IBoundingBox IG.Num.NeuralApproximatorBase._outputDataBounds
private
IBoundingBox IG.Num.NeuralApproximatorBase._inputNeuronRange
private
IBoundingBox IG.Num.NeuralApproximatorBase._outputNeuronsRange
private
double IG.Num.NeuralApproximatorBase._inputBoundsSafetyFactor = 1.5
private
double IG.Num.NeuralApproximatorBase._outputBoundsSafetyFactor = 2.0
private
double IG.Num.NeuralApproximatorBase._defaultNeuronMinInput = -2
protected
double IG.Num.NeuralApproximatorBase._defaultNeuronMaxInput = 2
protected
double IG.Num.NeuralApproximatorBase._defaultNeuronMinOutput = -1.0
protected
double IG.Num.NeuralApproximatorBase._defaultNeuronMaxOutput = 1.0
protected
bool IG.Num.NeuralApproximatorBase._internalTrainingDataPrepared = false
private
bool IG.Num.NeuralApproximatorBase._trainingOutputsCalculated = false
private
bool IG.Num.NeuralApproximatorBase._verificationOutputsCalculated = false
private
bool IG.Num.NeuralApproximatorBase._networkTrained
private
List<IVector> IG.Num.NeuralApproximatorBase._calculatedOutputs = null
protected

List of calculated outputs in points contained in (all) training data.

List<IVector> IG.Num.NeuralApproximatorBase._prescribed = null
private
List<IVector> IG.Num.NeuralApproximatorBase._calculated = null
private
bool IG.Num.NeuralApproximatorBase._breakTraining = false
private
bool IG.Num.NeuralApproximatorBase._calculateVerificationErrors = false
protected
Vector IG.Num.NeuralApproximatorBase._auxErrors = null
protected
IVector IG.Num.NeuralApproximatorBase._output = null
private
IVector IG.Num.NeuralApproximatorBase._outputFiltered1 = null
private

Property Documentation

object IG.Num.NeuralApproximatorBase.Lock
get

This object's central lock object to be used by other object. Do not use this object for locking in class' methods, for this you should use InternalLock.

Referenced by IG.Num.NeuralApproximatorBase.ExampleQuadratic().

int IG.Num.NeuralApproximatorBase.OutputLevel
getset

Level of output printed to console when performing actions.

Referenced by IG.Num.NeuralApproximatorBase.ExampleQuadratic(), and IG.Neural.NeuralTadej.ExampleStore().

virtual bool IG.Num.NeuralApproximatorBase.MultipleNetworks
getset

Flag indicating whether multiple neural networks are used to approximate multiple outputs (one network for each output)

Referenced by IG.Num.NeuralApproximatorBase.ExampleQuadratic(), and IG.Neural.NeuralTadej.ExampleStore().

override int IG.Num.NeuralApproximatorBase.InputLength
getset
override int IG.Num.NeuralApproximatorBase.OutputLength
getset
virtual int [] IG.Num.NeuralApproximatorBase.NumHiddenNeurons
getset

Gets or sets the numbers of neurons in each hidden layer. When setting, contents of array are copied, not only a reference. Numbers are set by an array of integers in which each element contains the number of neurons in the corresponding hidden layer (indexed from 0). Hidden layers are those not containing input or output neurons.

Getter is protected cecause we don't want users of the class to set number of neurons in individual layers.

Referenced by IG.Num.NeuralTrainingParameters.CopyFrom().

virtual int IG.Num.NeuralApproximatorBase.NumHiddenLayers
getset

Gets or sets the number of hidden layers of the neural network (these are layers that don't contain input or output neurons).

Referenced by IG.Num.NeuralTrainingParameters.CopyFrom(), IG.Num.NeuralTrainingParameters.CopyTo(), and IG.Neural.NeuralTadej.ExampleStore().

bool IG.Num.NeuralApproximatorBase.NetworkPrepared
getprotected set

Gets a flag telling whether the network is prepared for operation (training and calculation of output).

double IG.Num.NeuralApproximatorBase.SigmoidAlphaValue
getset
double IG.Num.NeuralApproximatorBase.LearningRate
getset
int IG.Num.NeuralApproximatorBase.EpochCount
getprotected set

Number of learning epochs performed up to the current moment.

int IG.Num.NeuralApproximatorBase.MaxEpochs
getset
int IG.Num.NeuralApproximatorBase.EpochsInBundle
getset

Number of epochs in a single training bundle. This number of epochs is performed at once when training, without checking convergence criteria between. Larger value means slightly more efficient training (because of less checks) but rougher criteria checks.

Referenced by IG.Num.NeuralTrainingParameters.CopyFrom(), IG.Num.NeuralTrainingParameters.CopyTo(), IG.Num.NeuralApproximatorBase.ExampleQuadratic(), and IG.Neural.NeuralTadej.ExampleStore().

IVector IG.Num.NeuralApproximatorBase.ToleranceRms
getset

Tolerances on RMS errors of outputs over training points. Training will continue until error becomes below tolerance or until maximal number of epochs is reached. If less or equal than 0 then this tolerance is not taken into account.

Referenced by IG.Num.NeuralTrainingParameters.CopyFrom(), IG.Num.NeuralTrainingParameters.CopyTo(), IG.Num.NeuralApproximatorBase.ExampleQuadratic(), and IG.Neural.NeuralTadej.ExampleStore().

IVector IG.Num.NeuralApproximatorBase.ToleranceMax
getset

Tolerances on maximal errors of outputs over training points. Training will continue until error becomes below tolerance or until maximal number of epochs is reached. If less or equal than 0 then this tolerance is not taken into account.

Referenced by IG.Num.NeuralTrainingParameters.CopyFrom(), and IG.Num.NeuralTrainingParameters.CopyTo().

IVector IG.Num.NeuralApproximatorBase.ToleranceRmsRelativeToRange
getset

Relative tolerances on RMS errors of outputs over training points, relative to the correspoinding ranges of output data.

When this vector is set to a non-null value, elements of RMS tolerances vector (property ToleranceRms) are set to the specified fractions of the ranges of the corresponding output values in training parameters (defined by the property OutputDataBounds) if these are defined (otherwise this may happen when the property gets defined).

Whenever this property is defined, re-setting the property OutputDataBounds will cause recalculation of ToleranceRms according to elements of this property and the ranges of corresponding output values.

Setting this property undefines the ToleranceRmsRelativeToRangeScalar property, even if it is set to null.

If the scalar relative tolerance is set (property ToleranceRmsRelativeToRangeScalar) and this property is not set yet, the getter of this property will evaluate to a vector whose elements are equal to the scalar relative tolerance.

Referenced by IG.Num.NeuralTrainingParameters.CopyFrom(), and IG.Num.NeuralTrainingParameters.CopyTo().

double IG.Num.NeuralApproximatorBase.ToleranceRmsRelativeToRangeScalar
getset

Scalar through which all components of the Relative tolerances on RMS errors of outputs can be set to the same value.

Getter returns a value greater than 0 only if the property has been previously set.

Setting a vector of relative tolerances (property ToleranceRmsRelativeToRange) sets this property to 0, even it it is set to null.

Setting the property to a value greater than 0 automatically sets the vector of relative tolerances (property ToleranceRmsRelativeToRange) in such a way that all elements are equal to this property.

Referenced by IG.Num.NeuralTrainingParameters.CopyFrom(), and IG.Num.NeuralTrainingParameters.CopyTo().

IVector IG.Num.NeuralApproximatorBase.ToleranceMaxRelativeToRange
getset

Relative tolerances on max. abs. errors of outputs over training points, relative to the correspoinding ranges of output data.

When this vector is set to a non-null value, elements of max. abs. tolerances vector (property ToleranceMax) are set to the specified fractions of the ranges of the corresponding output values in training parameters (defined by the property OutputDataBounds) if these are defined (otherwise this may happen when the property gets defined).

Whenever this property is defined, re-setting the property OutputDataBounds will cause recalculation of ToleranceMax according to elements of this property and the ranges of corresponding output values.

Setting this property undefines the ToleranceMaxRelativeToRangeScalar property, even if it is set to null.

If the scalar relative tolerance is set (property ToleranceMaxRelativeToRangeScalar) and this property is not set yet, the getter of this property will evaluate to a vector whose elements are equal to the scalar relative tolerance.

Referenced by IG.Num.NeuralTrainingParameters.CopyFrom(), and IG.Num.NeuralTrainingParameters.CopyTo().

double IG.Num.NeuralApproximatorBase.ToleranceMaxRelativeToRangeScalar
getset

Scalar through which all components of the Relative tolerances on max. abs. errors of outputs can be set to the same value.

Getter returns a value greater than 0 only if the property has been previously set.

Setting a vector of relative tolerances (property ToleranceMaxRelativeToRange) sets this property to 0, even it it is set to null.

Setting the property to a value greater than 0 automatically sets the vector of relative tolerances (property ToleranceMaxRelativeToRange) in such a way that all elements are equal to this property.

Referenced by IG.Num.NeuralTrainingParameters.CopyFrom(), and IG.Num.NeuralTrainingParameters.CopyTo().

List<int> IG.Num.NeuralApproximatorBase.EpochNumbers
getset

List of epoch numbers at which convergence data was sampled. Saved after every set of epochs.

$A Tako78 Sep12;

Referenced by IG.Num.NeuralTrainingParameters.CopyResultsFrom().

List<IVector> IG.Num.NeuralApproximatorBase.ConvergenceErrorsTrainingRmsList
getset

Convergence List of RMS errors calculated on training data. Saved after every set of epochs.

Referenced by IG.Num.NeuralTrainingParameters.CopyResultsFrom().

List<IVector> IG.Num.NeuralApproximatorBase.ConvergenceErrorsTrainingMaxList
getset

Convergence List of Maximum errors calculated on training data. Saved after every set of epochs.

Referenced by IG.Num.NeuralTrainingParameters.CopyResultsFrom().

List<IVector> IG.Num.NeuralApproximatorBase.ConvergenceErrorsVerificationRmsList
getset

Convergence List of Rms errors calculated on verification data. Saved after every set of epochs.

Referenced by IG.Num.NeuralTrainingParameters.CopyResultsFrom().

List<IVector> IG.Num.NeuralApproximatorBase.ConvergenceErrorsVerificationMaxList
getset

Convergence List of Maximum errors calculated on verification data. Saved after every set of epochs.

Referenced by IG.Num.NeuralTrainingParameters.CopyResultsFrom().

bool IG.Num.NeuralApproximatorBase.SaveConvergenceRms
getset

Flag to enable RMS error convergence colection.

Referenced by IG.Num.NeuralTrainingParameters.CopyResultsFrom(), and IG.Num.NeuralTrainingParameters.CopyTo().

string IG.Num.NeuralApproximatorBase.NeuralApproximatorType
get

Gets string representation of type of the current object. This is used e.g. in deserialization in order to prevent that wrong type of internal representation would be read in.

string IG.Num.NeuralApproximatorBase.NetworkStateFilePath
getset

Path where the curren network state has been saved, or null if the current state has not been saved yet. The SaveFile methods takes care that the file path is stored when network state is saved. InvalidateTrainingDependencies() takes care that this file path is set to null if network state has changed after last save.

string IG.Num.NeuralApproximatorBase.NetworkStateRelativePath
getset

Relative path where the curren network state has been saved. Auxiliary property used in deserialization. When the whole Neural network approximator is saved to a file, tis path is updated in such a way that it points to the fiele where the network state has been saved, but relative to the path where the whole approximator is saved. This enables restore of the saved network state at a later time, even if the containing directory has moved within the file system or has even been copied to another system.

SampledDataSet IG.Num.NeuralApproximatorBase.TrainingData
getset
virtual IndexList IG.Num.NeuralApproximatorBase.VerificationIndices
getset

Gets or sets indices of training data elements that are used for verification of how precise appeoximation is. These elements are excluded from training of neural network.

Object of type IndexList that contains indices of elements used for verification, always contains a sorted list of unique indices.

Referenced by IG.Num.NeuralApproximatorBase.ExampleQuadratic(), and IG.Neural.NeuralTadej.ExampleStore().

virtual IBoundingBox IG.Num.NeuralApproximatorBase.InputDataBounds
getset

Bounds on input data, used for scaling from actual input to input used by neural network. Scaling is performed because of the bound codomain and image of activation functions.

virtual IBoundingBox IG.Num.NeuralApproximatorBase.OutputDataBounds
getset

Bounds on output data, used for scaling from actual output to output produced by neural network. Scaling is performed because of the bound codomain and image of activation functions.

virtual double IG.Num.NeuralApproximatorBase.InputBoundsSafetyFactor
getset

Safety factor by which interval lenghts of input data bounds are enlarged after bounds are automatically determined from the range of input data in the training set. Setter re-calculated the input data bounds and therefore invalidates training data dependencies.

Referenced by IG.Num.NeuralTrainingParameters.CopyFrom(), IG.Num.NeuralTrainingParameters.CopyTo(), IG.Num.NeuralApproximatorBase.ExampleQuadratic(), and IG.Neural.NeuralTadej.ExampleStore().

virtual double IG.Num.NeuralApproximatorBase.OutputBoundsSafetyFactor
getset

Safety factor by which interval lenghts of output data bounds are enlarged after bounds are automatically determined from the range of output data in the training set. Setter re-calculated the output data bounds and therefore invalidates training data dependencies.

Referenced by IG.Num.NeuralTrainingParameters.CopyFrom(), IG.Num.NeuralTrainingParameters.CopyTo(), IG.Num.NeuralApproximatorBase.ExampleQuadratic(), and IG.Neural.NeuralTadej.ExampleStore().

virtual IBoundingBox IG.Num.NeuralApproximatorBase.InputNeuronsRange
getprotected set

Gets the range in which data should be for input neurons, used for scaling from actual input to input used by neural network. This depends on the activation function.

Setter is not public.

Referenced by IG.Num.NeuralApproximatorBase.ExampleQuadratic(), and IG.Neural.NeuralTadej.ExampleStore().

virtual IBoundingBox IG.Num.NeuralApproximatorBase.OutputNeuronsRange
getprotected set

Gets the range of the data output from output neurons, used for scaling from actual output to output produced by neural network. This will normally depend on the activation function.

Setter is not public.

Referenced by IG.Num.NeuralApproximatorBase.ExampleQuadratic(), and IG.Neural.NeuralTadej.ExampleStore().

int IG.Num.NeuralApproximatorBase.NumAllTrainingPoints
get

Gets number of all training points, including verification points.

virtual int IG.Num.NeuralApproximatorBase.NumTrainingPoints
get

Gets number of training points (this excludes verification points).

Referenced by IG.Neural.NeuralTadej.ExampleStore().

virtual int IG.Num.NeuralApproximatorBase.NumVerificationPoints
get

Gets number of verification points.

bool IG.Num.NeuralApproximatorBase.TrainingOutputsCalculated
getsetprotected

Whether outputs have been calculated, after last training, in the training points (excluding verification points).

bool IG.Num.NeuralApproximatorBase.VerificationOutputsCalculated
getsetprotected

Whether outputs have been calculated, after last training, in the training points (excluding verification points).

bool IG.Num.NeuralApproximatorBase.InternalTrainingDataPrepared
getsetprotected

Gets or sets a flag indicating whether internal training data is prepared. This flag is used internally for signalization between methods that deal with training data.

bool IG.Num.NeuralApproximatorBase.NetworkTrained
getprotected set

Whether network has been trained since the training data was set.

Referenced by IG.Num.NeuralTrainingParameters.CopyResultsFrom().

bool IG.Num.NeuralApproximatorBase.BreakTraining
getset

Flags that signalizes (if true) that training should be broken on external request.

bool IG.Num.NeuralApproximatorBase.CalculateVerificationErrors
getset

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