summaryrefslogtreecommitdiff
path: root/src/brain/neuron.cpp
diff options
context:
space:
mode:
authorJustin Worthe <justin.worthe@gmail.com>2015-08-16 00:18:29 +0200
committerJustin Worthe <justin.worthe@gmail.com>2015-08-16 00:18:29 +0200
commit82a21657fb29ae8afba479fb821b47b5eeb608fb (patch)
tree5643cc274bd050b49ac94f83d347df0d7d2751d7 /src/brain/neuron.cpp
parent43e9f647533d239d68d06fe96867c033dd7504c5 (diff)
Made neural net recurrent
Diffstat (limited to 'src/brain/neuron.cpp')
-rw-r--r--src/brain/neuron.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/brain/neuron.cpp b/src/brain/neuron.cpp
index 527e7da..f4fa12f 100644
--- a/src/brain/neuron.cpp
+++ b/src/brain/neuron.cpp
@@ -1,25 +1,23 @@
#include "brain/neuron.h"
#include <cmath>
-Neuron::Neuron(int id)
- :NeuralNode('n', id)
-{
-}
-
double Neuron::sigmoid(double input) const
{
double slope = 4.924273;
return (1/(1+(std::exp(-(slope*input)))));
}
-double Neuron::activation() const
+void Neuron::calculateActivation()
{
- double activationSum = 0;
+ double newActivation = 0;
for (auto const& link : _inputLinks)
{
- activationSum += link->weightedActivation();
+ newActivation += link->weightedActivation();
}
- return sigmoid(activationSum);
+ newActivation = sigmoid(newActivation);
+
+ _activationChanged = newActivation != _activation;
+ _activation = newActivation;
}
void Neuron::addInput(std::unique_ptr<NeuralLink>&& link)