12 #include "ActivationFunction.h"
13 #include "MultiLayerNeuralTopology.h"
14 #include "RandomWrapper.h"
25 enum class ErrorCostFunction : uint8_t {
43 ErrorCostFunction GetErrorCostFunction()
const;
50 ActivationFunctionType GetHiddenNeuronActivationFunctionType()
const;
57 ActivationFunctionType GetOutputNeuronActivationFunctionType()
const;
80 virtual void RunForward(
const std::vector<double>& input);
91 void RunBackward(
const std::vector<double>& output);
104 double GetError(
const std::vector<double>& output);
130 void SetWeights(
const std::vector<double>& weights);
136 void GetOutput(std::vector<double>* output)
const;
156 void DisableErrorShaping();
159 void AllocateWeights();
160 bool AreWeightsAllocated()
const;
174 void ComputeNeuronValue(
size_t neuron_index);
175 void ComputeNeuronValueRange(
size_t neuron_start_index,
size_t neuron_count);
176 void ComputeNeuronError(
size_t neuron_index);
178 void ResetOutputLayerError();
179 void CalculateOutputLayerError(
const std::vector<double>& output);
181 double GetError()
const;
185 size_t GetWeightCount()
const;
186 double& GetWeight(
size_t index);
189 std::vector<double> weights_;
192 double error_sum_ = 0;
193 double error_count_ = 0;
195 ErrorCostFunction error_cost_function_ = ErrorCostFunction::MeanSquareError;
196 ActivationFunctionType hidden_neuron_activation_function_type_ =
197 ActivationFunctionType::Sigmoid;
198 ActivationFunctionType output_neuron_activation_function_type_ =
199 ActivationFunctionType::Sigmoid;
201 bool should_shape_error_curve_ =
false;
202 bool is_constructed_ =
false;
203 bool is_allocated_ =
false;
208 #endif // PERCEPTRON_H__
void SetOutputNeuronActivationFunctionType(ActivationFunctionType type)
Definition: Perceptron.cc:338
double GetError(const std::vector< double > &output)
Definition: Perceptron.cc:237
void SetHiddenNeuronActivationFunctionType(ActivationFunctionType type)
Definition: Perceptron.cc:327
void EnableErrorShaping()
Definition: Perceptron.cc:391
Definition: TrainingData.h:30
bool IsConstructed() const
Definition: Perceptron.cc:366
void RunBackward(const std::vector< double > &output)
Definition: Perceptron.cc:186
Definition: Perceptron.h:23
virtual void RunForward(const std::vector< double > &input)
Definition: Perceptron.cc:169
virtual void Construct()
Definition: Perceptron.cc:349
Definition: RandomWrapper.h:22
void InitializeWeightsRandom(double min=-1.0, double max=1.0)
Definition: Perceptron.cc:201
void InitializeWeights(const TrainingData &training_data)
Definition: Perceptron.cc:209
Definition: MultiLayerNeuralTopology.h:26
void SetWeights(const std::vector< double > &weights)
Definition: Perceptron.cc:293
std::vector< double > & GetWeights()
Definition: Perceptron.cc:291
void InitializeNeurons()
Definition: Perceptron.cc:314
void GetOutput(std::vector< double > *output) const
Definition: Perceptron.cc:298
virtual void InitializeHiddenNeurons()
Definition: Perceptron.cc:306
void SetErrorCostFunction(ErrorCostFunction mode)
Definition: Perceptron.cc:112