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

CalculateHessian() public method

Calculate the Hessian matrix.
public CalculateHessian ( double jacobian, double errors ) : void
jacobian double The Jacobian matrix.
errors double The errors.
return void
        public void CalculateHessian(double[][] jacobian,
                                     double[] errors)
        {
            for (int i = 0; i < _parametersLength; i++)
            {
                // Compute Jacobian Matrix Errors
                double s = 0.0d;
                for (int j = 0; j < _trainingLength; j++)
                {
                    s += jacobian[j][i]*errors[j];
                }
                _gradient[i] = s;

                // Compute Quasi-Hessian Matrix using Jacobian (H = J'J)
                for (int j = 0; j < _parametersLength; j++)
                {
                    double c = 0.0d;
                    for (int k = 0; k < _trainingLength; k++)
                    {
                        c += jacobian[k][i]*jacobian[k][j];
                    }
                    _hessian[i][j] = _beta*c;
                }
            }

            for (int i = 0; i < _parametersLength; i++)
            {
                _diagonal[i] = _hessian[i][i];
            }
        }