cc: refactor

This commit is contained in:
2016-05-09 22:44:35 +02:00
parent fb052d01b0
commit 544ef20afc

View File

@@ -2,7 +2,7 @@
using namespace NeuralNetwork::ConstructiveAlgorihtms;
float CascadeCorrelation::trainOutputs(Cascade::Network &network, const std::vector<CascadeCorrelation::TrainingPattern> &patterns) {
float CascadeCorrelation::trainOutputs(Cascade::Network &network, const std::vector <CascadeCorrelation::TrainingPattern> &patterns) {
std::size_t outputs = patterns[0].second.size();
FeedForward::Network p(network.getNeuronSize() - outputs - 1);
@@ -14,7 +14,7 @@ float CascadeCorrelation::trainOutputs(Cascade::Network &network, const std::vec
p[1][neuron + 1].setActivationFunction(network.getOutputNeurons()[neuron]->getActivationFunction());
}
std::vector<TrainingPattern> patternsForOutput;
std::vector <TrainingPattern> patternsForOutput;
for(auto &pattern:patterns) {
patternsForOutput.emplace_back(getInnerNeuronsOutput(network, pattern.first), pattern.second);
@@ -54,10 +54,10 @@ float CascadeCorrelation::trainOutputs(Cascade::Network &network, const std::vec
}
float CascadeCorrelation::trainOutputsRandom(std::size_t step, Cascade::Network &network, const std::vector<CascadeCorrelation::TrainingPattern> &patterns) {
float CascadeCorrelation::trainOutputsRandom(std::size_t step, Cascade::Network &network, const std::vector <CascadeCorrelation::TrainingPattern> &patterns) {
std::size_t outputs = patterns[0].second.size();
std::vector<FeedForward::Network *> possibleOutputs;
std::vector < FeedForward::Network * > possibleOutputs;
{ // first networks is special
possibleOutputs.emplace_back(new FeedForward::Network(network.getNeuronSize() - outputs - 1));
FeedForward::Network &p = (*possibleOutputs.back());
@@ -92,7 +92,7 @@ float CascadeCorrelation::trainOutputsRandom(std::size_t step, Cascade::Network
}
}
std::vector<TrainingPattern> patternsForOutput;
std::vector <TrainingPattern> patternsForOutput;
for(auto &pattern:patterns) {
patternsForOutput.emplace_back(getInnerNeuronsOutput(network, pattern.first), pattern.second);
@@ -148,22 +148,22 @@ float CascadeCorrelation::trainOutputsRandom(std::size_t step, Cascade::Network
return bestScore;
}
std::pair<std::shared_ptr<NeuralNetwork::Neuron>, std::vector<float>> CascadeCorrelation::trainCandidates(Cascade::Network &network,
std::vector<std::shared_ptr<Neuron>> &candidates,
const std::vector<TrainingPattern> &patterns) {
std::pair <std::shared_ptr<NeuralNetwork::Neuron>, std::vector<float>> CascadeCorrelation::trainCandidates(Cascade::Network &network,
std::vector <std::shared_ptr<Neuron>> &candidates,
const std::vector <TrainingPattern> &patterns) {
std::size_t outputs = patterns[0].second.size();
std::vector<TrainingPattern> patternsForOutput;
std::vector <TrainingPattern> patternsForOutput;
for(auto &pattern:patterns) {
patternsForOutput.emplace_back(getInnerNeuronsOutput(network, pattern.first), pattern.second);
}
std::vector<std::vector<float>> errors(patterns.size());
std::vector <std::vector<float>> errors(patterns.size());
std::vector<float> meanErrors(outputs);
float sumSquareError = 0;
std::vector<std::vector<float>> errorsReal(patterns.size());
std::vector <std::vector<float>> errorsReal(patterns.size());
for(std::size_t patternNumber = 0; patternNumber < patterns.size(); patternNumber++) {
auto &pattern = patterns[patternNumber];
errors[patternNumber].resize(network.outputs());
@@ -192,10 +192,10 @@ std::pair<std::shared_ptr<NeuralNetwork::Neuron>, std::vector<float>> CascadeCor
std::vector<float> lastCorrelations = {};
std::vector<float> slopes = {};
float sumVals = 0;
std::shared_ptr<Neuron> candidate = nullptr;
std::shared_ptr <Neuron> candidate = nullptr;
};
std::vector<CAND> candidatesRegister(candidates.size());
std::vector <CAND> candidatesRegister(candidates.size());
for(std::size_t i = 0; i < candidates.size(); i++) {
candidatesRegister[i].candidate = candidates[i];
@@ -208,7 +208,7 @@ std::pair<std::shared_ptr<NeuralNetwork::Neuron>, std::vector<float>> CascadeCor
std::size_t iterationsWithoutIprovement = 0;
float bestCorrelation = 0;
float lastCorrelation = 0;
std::shared_ptr<Neuron> bestCandidate = nullptr;
std::shared_ptr <Neuron> bestCandidate = nullptr;
std::vector<float> bestCorrelations(outputs);