Hidden neuron gradients complete

main
mandlm 2015-10-16 23:23:27 +02:00
parent 370451c2e6
commit 26a51ce476
2 changed files with 12 additions and 1 deletions

View File

@ -1,6 +1,7 @@
#pragma once
#include "Neuron.h"
#include "Layer.h"
Neuron::Neuron(double value)
: outputValue(value)
@ -64,7 +65,10 @@ double Neuron::sumDOW(const Layer & nextLayer) const
{
double sum = 0;
// sum it up
for (size_t i = 0; i < nextLayer.size() - 1; ++i)
{
sum += outputWeights[i] * nextLayer[i].getGradient();
}
return sum;
}
@ -75,3 +79,8 @@ void Neuron::calcHiddenGradients(const Layer &nextLayer)
gradient = dow * transferFunctionDerivative(outputValue);
}
double Neuron::getGradient() const
{
return gradient;
}

View File

@ -23,6 +23,8 @@ public:
void calcOutputGradients(double targetValue);
void calcHiddenGradients(const Layer &nextLayer);
double getGradient() const;
private:
static double transferFunction(double inputValue);
static double transferFunctionDerivative(double inputValue);