This is one of Simon’s most enchanting and challenging projects so far: working on his own little AIs. As I’ve mentioned before, when it comes to discussing AI, Simon is both mesmerized and frightened. He watches Daniel Shiffman’s neural networks tutorials twenty times in a row and practices his understanding of the mathematical concepts underlying the code (linear regression and gradient descent) for hours. Last week, Simon built a perceptron of his own. It was based on Daniel Shiffman’s code, but Simon added his own colors and physics, and played around with the numbers and the bias. You can see Simon working on this project step by step in the six videos below.
His original plan was to build two neural networks that would be connected to each other and communicate, he has only built one perceptron so far.
In the videos below, Simon is building a Codota demo in Java. Codota is an AI programming assistant that is looking for solutions on GitHub and other global resources and suggests them in real time, recognizing your code. At the moment, it’s only available for Java and only for three editors (here – Eclipse), so the use is very limited, but their website says that other languages will follow soon. Since Simon normally uses Processing for Java, he can’t really use Codota for most of his projects. It has been an interesting exercise though (and I was surprised at how skillful he is at writing Java in Eclipse, which is quite different from Processing), and a glimpse into the future. There’s no doubt assistants such as Codota will very soon become a common companion. Simon had Codota resolve one error for him and was very happy about that. He said Codota was his friend. He was reluctant to turn its speech functions on, however. Simon has this slight fear of full blown AI and a fascination, wanting to learn how it works, at the same time.
Simon explains how to use XOR in a simple neural network with multiple perceptrons. Based upon Daniel Shiffman’s live stream on neural networks number 98.
Simon completes the Neural Networks Coding Challenge (in Processing, Java) that he had followed in the Intelligence and Learning Livestream last Friday. In the videos below he also talks about what neural networks are and tries to add a line object (something he had suggested in the live chat).
The first of the videos below shows Simon talking about his translation of the Perceptron. In the second video, he is showing the Perception Steering project, a combination of steering behaviours and neural network (the autonomous agent in the program get a “brain” with one “neuron” that allows him to seek the target closest to the moving circle).