(Only for educational purporse) C++ Project that can build a simple multi layer Neural Network able to handle XOR logic problem: an non linear classification problem. It uses a supervised learning, actually a Back Propagation training methods that tells where to seek the needle according to a set of training comparing Expected Outputs and Actual…
C++
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
include
src
LICENSE
README.md

README.md

Logo

Cpp - Open Neural Network v. alpha0.5

Educational purporse - for now. The purpose is only to keep growing an open source community on machine learning.

C++ Project that can build a simple multi layer Neural Network able to handle XOR logic problem: an non linear classification problem.

Input1 Input2 Output
0 0 0
0 1 1
1 0 1
1 1 0

It uses a supervised learning, actually a Back Propagation training methods that tells where to seek the "needle" according to a set of training. It compares a bunch of Expected Outputs and Actual Outputs to get a "Layer Error". It's the usual form of a Neural Network.

Need the implementation of a Genetic Algorithm to create a reinforcement training. It could be less efficient than a back propagation learning but would better handle others problems like solving sudoko, or optimizing space in a limited space backpack by example.

Libraries

No additional libraries used except from the std ones. I added a personal Randomize Class that computes a unique int or float between a given range.

What is a Neural Network?

The project is separated into 4 classes that create the Neural Network (network.h): a bunch of connected (connection.h) neurons (neuron.h) organized by a layer (layer.h). The Neural Network can handles differents layers: X neurons *literal asterisks* X connections; and communicates between these layers to train them (back propagation learnin).

Neural Network

If you want to learn more about Neural Network, you better read this great article of Sach Barber: AI : Neural Network for beginners

What to do next?

A bunch of articles to give ideas on how to optimize and improve this neural network:

Preview

Preview