diff options
Diffstat (limited to 'src/brain/neuron.cpp')
-rw-r--r-- | src/brain/neuron.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/brain/neuron.cpp b/src/brain/neuron.cpp index f4fa12f..d1dd338 100644 --- a/src/brain/neuron.cpp +++ b/src/brain/neuron.cpp @@ -3,24 +3,26 @@ double Neuron::sigmoid(double input) const { - double slope = 4.924273; + const double slope = 4.924273; return (1/(1+(std::exp(-(slope*input))))); } -void Neuron::calculateActivation() +bool Neuron::calculateActivation() { double newActivation = 0; for (auto const& link : _inputLinks) { - newActivation += link->weightedActivation(); + newActivation += link.weightedActivation(); } newActivation = sigmoid(newActivation); - _activationChanged = newActivation != _activation; + const double errorMargin = 0.000001; + bool activationChanged = std::abs(newActivation - _activation) > errorMargin; _activation = newActivation; + return activationChanged; } -void Neuron::addInput(std::unique_ptr<NeuralLink>&& link) +void Neuron::addInput(NeuralLink&& link) { _inputLinks.push_back(std::move(link)); } |