public void Adjustment(double learningrate, List <INeuron> neurons)
        {
            for (int i = 0; i < neurons.Count; i++)
            {
                Weights[i] = Weights[i] + (Error * ActivationFunctions.UseDX(topology.ActivationFunc, Output) * neurons[i].Output * learningrate);
            }

            if (NeuralNetwork.bias) // Корректировка веса для нейрона смещения
            {
                Weights[Weights.Count - 1] = Weights[Weights.Count - 1] + (Error * ActivationFunctions.UseDX(topology.ActivationFunc, Output) * 1 * Weights[Weights.Count - 1] * learningrate);
            }
        }
        public void FeedForward(params double[] inputs)
        {
            double sum = 0;

            if (NeuralNetwork.bias) // Опционально добавляет влияние нейрона смещения
            {
                sum = 1 * Weights[Weights.Count - 1];
            }

            for (int i = 0; i < inputs.Length; i++)
            {
                sum += inputs[i] * Weights[i];
            }

            Output = ActivationFunctions.Use(topology.ActivationFunc, sum);
        }