decomposition = new LUDecomposition(this.hessian.getHessianMatrix());
singular = decomposition.isNonsingular();
if (singular) {
this.deltas = decomposition.Solve(this.hessian.getGradients());
updateWeights();
currentError = calculateError();
}
if ( !singular || currentError >= startingError) {