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.INeuralApproximator Interface Reference

Approximator of response by using neural networks. $A Igor Mar11; More...

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

Public Member Functions

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...
 
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...
 
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...
 
void PrepareNetwork ()
 Prepares neural network for use. If networks have not yet been created according to internal data, they are created. If networks are already prepared then this method does nothing. More...
 
void CreateNetwork ()
 Creates the neural network anew. If the network already exists on the current object, it is discarded. More...
 
void ResetNetwork ()
 Resets the neural network. More...
 
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 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...
 
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...
 
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...
 
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 TrainNetwork ()
 Trains neural network until stopping criteria are met (in terms of errors and number of epochs performed. More...
 
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...
 
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...
 
double CalculateOutput (IVector input, int whichElement)
 Calculates and returns the specified output by using the neural network. More...
 
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...
 

Properties

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...
 
- Properties inherited from IG.Lib.ILockable
object Lock [get]
 

Detailed Description

Approximator of response by using neural networks. $A Igor Mar11;

Member Function Documentation

int IG.Num.INeuralApproximator.GetNumNeuronsInHiddenLayer ( int  whichLayer)

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.

Implemented in IG.Num.NeuralApproximatorBase.

Referenced by IG.Num.NeuralApproximatorDtoBase< Type >.CopyFromPlain().

void IG.Num.INeuralApproximator.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.

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

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.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.

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

Implemented in IG.Num.NeuralApproximatorBase.

Referenced by IG.Neural.NeuralTadej.ExampleCasting(), and IG.Neural.NeuralTadej.ExampleQuadratic().

void IG.Num.INeuralApproximator.PrepareNetwork ( )

Prepares neural network for use. If networks have not yet been created according 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.

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

void IG.Num.INeuralApproximator.CreateNetwork ( )

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

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

void IG.Num.INeuralApproximator.ResetNetwork ( )
void IG.Num.INeuralApproximator.DestroyNetwork ( )
string IG.Num.INeuralApproximator.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).

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

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.SaveNetwork ( string  filePath)

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.Num.NeuralApproximatorBase.

Referenced by IG.Num.NeuralApproximatorBase.ExampleSaveNetwork(), IG.Num.NeuralApproximatorBase.SaveJson(), and IG.Neural.NeuralTadej.StoreNetwork().

void IG.Num.INeuralApproximator.LoadNetwork ( string  filePath)

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.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.SaveTrainingDataJson ( string  filePath)

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.

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.LoadTrainingDataJson ( string  filePath)

Restores training data from the specified file in JSON format.

Parameters
filePathFile from which training data is restored.

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.SetNeuronsInputRange ( double  min,
double  max 
)

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.

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.SetNeuronsOutputRange ( double  min,
double  max 
)

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.

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.RecalculateInputDataBounds ( )

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.

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.RecalculateOutputDataBounds ( )

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.

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.RecalculateDataBounds ( )

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.

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.RecalculateInputDataBounds ( SampledDataSet  trainingData)

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.

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.RecalculateOutputDataBounds ( SampledDataSet  trainingData)

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.

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.RecalculateDataBounds ( SampledDataSet  trainingData)

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.

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.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).

Parameters
errors

Implemented in IG.Num.NeuralApproximatorBase.

Referenced by IG.Num.NeuralApproximatorBase.ExampleSaveNetwork(), and IG.Neural.NeuralTadej.StoreNetwork().

void IG.Num.INeuralApproximator.GetErrorsVerificationRms ( ref IVector  errors)

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

Parameters
errors

Implemented in IG.Num.NeuralApproximatorBase.

Referenced by IG.Num.NeuralApproximatorBase.ExampleSaveNetwork(), and IG.Neural.NeuralTadej.StoreNetwork().

void IG.Num.INeuralApproximator.GetErrorsTrainingMax ( ref IVector  errors)

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

Parameters
errors

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.GetErrorsVerificationMax ( ref IVector  errors)

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

Parameters
errors

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.GetErrorsTrainingMeanAbs ( ref IVector  errors)

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

Parameters
errors

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.GetErrorsVerificationMeanAbs ( ref IVector  errors)

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

Parameters
errors

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.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.

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.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.

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.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.

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.TrainNetwork ( int  numEpochs)

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

Parameters
numEpochsNumber of epochs used in training of the network.

Implemented in IG.Num.NeuralApproximatorBase.

Referenced by IG.Neural.NeuralTadej.ExampleCasting(), IG.Neural.NeuralTadej.ExampleQuadratic(), IG.Num.NeuralApproximatorBase.ExampleSaveNetwork(), and IG.Neural.NeuralTadej.StoreNetwork().

void IG.Num.INeuralApproximator.TrainNetwork ( )

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

Implemented in IG.Num.NeuralApproximatorBase.

bool IG.Num.INeuralApproximator.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.

Implemented in IG.Num.NeuralApproximatorBase.

void IG.Num.INeuralApproximator.CalculateOutput ( IVector  input,
ref IVector  output 
)

Calculates and returns the approximated outputs corresponding to the specified inputs, by using the current neural network.

Parameters
inputInput parameters.
Returns
Vector of output values generated by the trained neural network.

Currently, only all outputs at once can be calculated. This makes no difference in the arrangement with a single network with multiple outputs, but does when several networks with single output each are used. If the implementation changes in the future then performance configuratins should be taken into account carefully, and tracking input for which input parameters the outputs have been calculated might be necessary.

Implements IG.Num.IVectorApproximator.

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

Referenced by IG.Neural.NeuralTadej.ExampleCasting(), IG.Neural.NeuralTadej.ExampleQuadratic(), and IG.Neural.Func2dFromApproximator.Value().

double IG.Num.INeuralApproximator.CalculateOutput ( IVector  input,
int  whichElement 
)

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

Implements IG.Num.IVectorApproximator.

Implemented in IG.Num.NeuralApproximatorBase, and IG.Num.NeuralApproximatorAforgeFake.

void IG.Num.INeuralApproximator.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).

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.IVectorApproximator.

Implemented in IG.Num.NeuralApproximatorBase, and IG.Num.NeuralApproximatorAforgeFake.

Property Documentation

int IG.Num.INeuralApproximator.OutputLevel
getset
bool IG.Num.INeuralApproximator.MultipleNetworks
getset

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

Referenced by IG.Neural.NeuralTadej.ExampleCasting(), and IG.Neural.NeuralTadej.ExampleQuadratic().

int IG.Num.INeuralApproximator.InputLength
getset
int [] IG.Num.INeuralApproximator.NumHiddenNeurons
getset

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.

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

int IG.Num.INeuralApproximator.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.NeuralApproximatorDtoBase< Type >.CopyFromPlain().

bool IG.Num.INeuralApproximator.NetworkPrepared
get

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

double IG.Num.INeuralApproximator.SigmoidAlphaValue
getset
double IG.Num.INeuralApproximator.LearningRate
getset
double IG.Num.INeuralApproximator.Momentum
getset
int IG.Num.INeuralApproximator.EpochCount
get

Number of learning epochs performed up to the current moment.

int IG.Num.INeuralApproximator.MaxEpochs
getset
int IG.Num.INeuralApproximator.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.NeuralApproximatorDtoBase< Type >.CopyFromPlain(), IG.Neural.NeuralTadej.ExampleCasting(), and IG.Neural.NeuralTadej.ExampleQuadratic().

IVector IG.Num.INeuralApproximator.ToleranceRms
getset

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.

Referenced by IG.Num.NeuralApproximatorDtoBase< Type >.CopyFromPlain(), IG.Neural.NeuralTadej.ExampleCasting(), and IG.Neural.NeuralTadej.ExampleQuadratic().

IVector IG.Num.INeuralApproximator.ToleranceMax
getset

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.

Referenced by IG.Num.NeuralApproximatorDtoBase< Type >.CopyFromPlain().

IVector IG.Num.INeuralApproximator.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.NeuralApproximatorDtoBase< Type >.CopyFromPlain().

double IG.Num.INeuralApproximator.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.NeuralApproximatorDtoBase< Type >.CopyFromPlain().

IVector IG.Num.INeuralApproximator.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.NeuralApproximatorDtoBase< Type >.CopyFromPlain().

double IG.Num.INeuralApproximator.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.NeuralApproximatorDtoBase< Type >.CopyFromPlain().

bool IG.Num.INeuralApproximator.SaveConvergenceRms
getset

Flag to enable Rms error convergence colection. Default is false.

Referenced by IG.Num.NeuralApproximatorDtoBase< Type >.CopyFromPlain().

List<int> IG.Num.INeuralApproximator.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.NeuralApproximatorDtoBase< Type >.CopyFromPlain().

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

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

Referenced by IG.Num.NeuralApproximatorDtoBase< Type >.CopyFromPlain().

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

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

Referenced by IG.Num.NeuralApproximatorDtoBase< Type >.CopyFromPlain().

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

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

Referenced by IG.Num.NeuralApproximatorDtoBase< Type >.CopyFromPlain().

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

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

Referenced by IG.Num.NeuralApproximatorDtoBase< Type >.CopyFromPlain().

string IG.Num.INeuralApproximator.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.

Referenced by IG.Num.NeuralApproximatorDtoBase< Type >.CopyFromPlain(), and IG.Num.NeuralApproximatorDtoBase< Type >.IsAppropriateType().

string IG.Num.INeuralApproximator.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.

Referenced by IG.Num.NeuralApproximatorDtoBase< Type >.CopyFromPlain(), IG.Num.NeuralApproximatorBase.ExampleSaveNetwork(), IG.Num.NeuralApproximatorBase.SaveJson(), and IG.Neural.NeuralTadej.StoreNetwork().

string IG.Num.INeuralApproximator.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.

Referenced by IG.Num.NeuralApproximatorDtoBase< Type >.CopyFromPlain(), and IG.Num.NeuralApproximatorBase.SaveJson().

SampledDataSet IG.Num.INeuralApproximator.TrainingData
getset
IndexList IG.Num.INeuralApproximator.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.NeuralApproximatorDtoBase< Type >.CopyFromPlain(), IG.Neural.NeuralTadej.ExampleCasting(), and IG.Neural.NeuralTadej.ExampleQuadratic().

IBoundingBox IG.Num.INeuralApproximator.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.

Referenced by IG.Num.NeuralApproximatorDtoBase< Type >.CopyFromPlain().

IBoundingBox IG.Num.INeuralApproximator.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.

Referenced by IG.Num.NeuralApproximatorDtoBase< Type >.CopyFromPlain().

double IG.Num.INeuralApproximator.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.NeuralApproximatorDtoBase< Type >.CopyFromPlain(), IG.Neural.NeuralTadej.ExampleCasting(), and IG.Neural.NeuralTadej.ExampleQuadratic().

double IG.Num.INeuralApproximator.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.NeuralApproximatorDtoBase< Type >.CopyFromPlain(), IG.Neural.NeuralTadej.ExampleCasting(), and IG.Neural.NeuralTadej.ExampleQuadratic().

IBoundingBox IG.Num.INeuralApproximator.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.

Setter is not public.

Referenced by IG.Num.NeuralApproximatorDtoBase< Type >.CopyFromPlain(), IG.Neural.NeuralTadej.ExampleCasting(), and IG.Neural.NeuralTadej.ExampleQuadratic().

IBoundingBox IG.Num.INeuralApproximator.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.

Setter is not public.

Referenced by IG.Num.NeuralApproximatorDtoBase< Type >.CopyFromPlain(), IG.Neural.NeuralTadej.ExampleCasting(), and IG.Neural.NeuralTadej.ExampleQuadratic().

int IG.Num.INeuralApproximator.NumAllTrainingPoints
get

Gets number of all training points, including verification points.

int IG.Num.INeuralApproximator.NumTrainingPoints
get

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

int IG.Num.INeuralApproximator.NumVerificationPoints
get

Gets number of verification points.

bool IG.Num.INeuralApproximator.NetworkTrained
get

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

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

bool IG.Num.INeuralApproximator.BreakTraining
getset

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


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