public void Train(NeuralNetwork.NeuralNetwork neuralNetwork, Matrix <double> inputs, Matrix <double> outputs, HyperParameters hyperParamters = null)
        {
            if (TrainingAlgorithm is LevenbergAlgorithm)
            {
                _isLeven = true;
            }
            else
            {
                _isLeven = false;
            }
            TrainingAlgorithm.Subscribe(this);
            var temp = Divider.Divide(inputs, outputs);

            Console.WriteLine(temp.Item1);
            Console.WriteLine(temp.Item2);
            _train(neuralNetwork, temp.Item1, temp.Item3, temp.Item2, temp.Item4, hyperParamters);
        }