public void PropagateBack() { outputLayer.neurons[0].mistake = outputLayer.neurons[0].desiredValue - outputLayer.neurons[0].value; for (int i = 0; i < hiddenLayersCount; i++) { hiddenLayers[i].FindMistakesInNeurons(); } for (int i = 0; i < hiddenLayersCount; i++) { hiddenLayers[i].GradientDescent(); } outputLayer.GradientDescent(); }