Use self.parents instead of parents
Create Neuron.gradient
Use gradient in Neuron.calculate()
Use gradient in NeuronNetwork.run()
Create NeuronNetwork.mutate()