Hidden neuron gradients complete

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

View file

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