C++ Back Propagation Neural Network Code v2
There was a lot of feedback on my neural network implementation, mostly regarding architectural suggestion so i sat down and rewrote my neural network implementation, its pretty elegant now. I seperated the training of the network from the actual network itself and so i have a basic feed forward network, a data set reader and a neural network trainer. I also renamed several data structures to make things more understandable, also i wasnt lazy and used proper header files and includes
Below is an updated class diagram of the new version:
here’s the updated implementation (with a VS2k8 solution):



i cannot download the source code
Hey Bobby,
I just wanted to say good work on your neural net code and articles/tutorials. I study Theoretical Neuroscience and Artificial Intelligence as a PhD in England and I found I have very many similar interests to you (I used to run a CS 1.5/1.6 league in the UK called CSGN).
I come to the field of neural networks from a biological and psychological background, so the coding is my main obstacle. I mainly work with competitive networks (and Spatial Orientated Maps) for my modelling, so familiarising myself with the code for a back-prop net here was very useful!
Keep up the good work
I’m really glad you found it useful! As long as at least one person found it useful, then I’ve succeeded at what I wanted to do.
haha, a bit off topic, man i miss playing competitive CS!
Same, although it is only as good as the people you are playing with. I used to have shed loads of fun with the other 4/5 members of my team when I played. Without them it was enjoyable, but no where near as much!
I have managed to get to grips with much of your code, mainly thanks to all your helpful comments. I have a couple of questions regarding the training set-up – is it possible to read in a separate .csv files for training/testing/validation rather than using the % set-up currently in place? Feel free to shoot me an email
Hey, your project looks fantastic. I need a neural net for my final year project, to interpret shapes read in through a wiimote to enable gesture control.
Is there any chance of getting a VS 2005 version?
Thank you,
Scott Higgins
Much clearer. One question do perform gradient descent on
Ep = 1/2 * S(Tp – Op)2
or
E = SEp
Where “S” means sum
Thank you
Jermaine
gradient descent is the name of the weight update technique, the errors calculated are used in the update of the weights. As such i dont understand your question, also what dooe Tp and Op signify.
hi,
i can’t figure out how to use the outputted weights with the actual nn. how can i instatiate the nn with my trained weights to get my nn output?