cc: refactor
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user