#include #include #include int main() { { // XOR problem NeuralNetwork::FeedForward::Network n(2); NeuralNetwork::ActivationFunction::Sigmoid a(-1); NeuralNetwork::FeedForward::Layer &hidden=n.appendLayer(2,a); NeuralNetwork::FeedForward::Layer &out = n.appendLayer(1,a); hidden[1].weight(n[0][0])=7; hidden[1].weight(n[0][1])=-4.7; hidden[1].weight(n[0][2])=-4.7; hidden[2].weight(n[0][0])=2.6; hidden[2].weight(n[0][1])=-6.4; hidden[2].weight(n[0][2])=-6.4; out[1].weight(hidden[0])=-4.5; out[1].weight(hidden[1])=9.6; out[1].weight(hidden[2])=-6.8; { std::vector ret =n.computeOutput({1,1}); assert(ret[0] < 0.5); } { std::vector ret =n.computeOutput({0,1}); assert(ret[0] > 0.5); } { std::vector ret =n.computeOutput({1,0}); assert(ret[0] > 0.5); } { std::vector ret =n.computeOutput({0,0}); assert(ret[0] < 0.5); } } }