Artificial Neural Network is a powerful non-linear function approximation mechanism. I have implemented ANN based on stochastic gradient decent back-propagation , and RPROP (batch learning). I have used both version in different situations;  machine learning and reinforcement learning (especially with non-linear GTD2(lambda)).  The ANN back-propagation is implemented based on the pseudo-code available in [1], and the RPOROP is based on the technical report available though the Wiki link [2]. 

I have extensively tested ANN (bp and RPROP) on different data sets from UCI machine learning repository (pen based recognition,  letter recognition), and all the scenarios from the  book Machine Learning, Tom Mitchell, McGraw Hill, 1997 for Neural Networks for Face Recognition (Chapter 4). In addition to this I have also tested the 10-5-10 and 12-2-12 tight encoder scenarios [2].  

If anybody needs or interested in the C++ implementation of ANN with stochastic BP or RPROP, I have attached here with the source code, test code and the data sets. You just need the ANN.cpp and ANN.hpp. Usage is trivial. Just see couple of test methods in Main.cpp. 


[1]. ; AIMA - Chapter 18 -  Figure 18.24

Saminda Abeyruwan,
Jan 10, 2012, 9:21 PM