Encog.Neural.Networks.Training.Lma.LevenbergMarquardtTraining.LevenbergMarquardtTraining C# (CSharp) Method

LevenbergMarquardtTraining() public method

Construct the LMA object.
public LevenbergMarquardtTraining ( BasicNetwork network, IMLDataSet training ) : System
network BasicNetwork The network to train. Must have a single output neuron.
training IMLDataSet The training data to use. Must be indexable.
return System
        public LevenbergMarquardtTraining(BasicNetwork network,
                                          IMLDataSet training) : base(TrainingImplementationType.Iterative)
        {
            ValidateNetwork.ValidateMethodToData(network, training);
            if (network.OutputCount != 1)
            {
                throw new TrainingError(
                    "Levenberg Marquardt requires an output layer with a single neuron.");
            }

            Training = training;
            _indexableTraining = Training;
            _network = network;
            _trainingLength = (int) _indexableTraining.Count;
            _parametersLength = _network.Structure.CalculateSize();
            _hessianMatrix = new Matrix(_parametersLength,
                                       _parametersLength);
            _hessian = _hessianMatrix.Data;
            _alpha = 0.0d;
            _beta = 1.0d;
            _lambda = 0.1d;
            _deltas = new double[_parametersLength];
            _gradient = new double[_parametersLength];
            _diagonal = new double[_parametersLength];

            var input = new BasicMLData(
                _indexableTraining.InputSize);
            var ideal = new BasicMLData(
                _indexableTraining.IdealSize);
            _pair = new BasicMLDataPair(input, ideal);
        }