We return to the question of terminology that we started this post with. Our feeling is that the term "artificial intelligence" has been used in so many ways that it is now confusing. People use AI to refer to all three approaches described above, plus others, and therefore has become almost meaningless. The term "machine learning" is a more narrowly defined term for machines that learn from data, including simple neural models such as ANNs and Deep Learning. We use the term "machine intelligence" to refer to machines that learn but are aligned with the Biological Neural Network approach. Although there still is much work ahead of us, we believe the Biological Neural Network approach is the fastest and most direct path to truly intelligent machines. This blog entry was modified on Thu Mar 24 2016 to clarify the timing of neural network research.
Src: github There are dependencies like openCV and Apache Spark but they are optional. I used openCV to perform feature extraction by HOG which speeds up the learning process, apache spark to compare results. Utils classes support computing additional data like confusion matrix and add methods to play with some well known datasets like iris or mnist. As it doesn't require any external libraries maybe someone will find it helpful when studying basics of machine learning.