Reinforcement Learning in Processing
In 1997, Michael Mozer with an incredible group of students converted a mundane farmhouse into an adaptive house. The house started with no knowledge of its inhabitants and did not perform as one would expect a ‘smart house’ to do. The users had to manually control the lights, heating etc, just like they would do with a normal house.
But the house learnt about its inhabitants over time. It observed improved its own behaviour every time a user made an action. It did so using something called the Q-learning algorithm, a type of reinforcement learning technique.
I have been fascinated with the idea of intelligent architecture for a while now, an architecture which can learn about its users and surroundings, and respond accordingly. But machine learning is a vast subject, and I could never really figure out where to start. Until now.
There are numerous tools for machine learning available for use today. Tensorflow, OpenAI Gym, Keras, and so on… And they are very powerful, but mostly designed for software implementations. I am more interested in hardware implementations. I did find an Arduino library called Q-behave, but it was too basic. And so I decided to get into the basics of reinforcement learning and use processing as the core platform to figure out how it works.
And this is my first attempt at it. A target seeking program built from scratch in Processing. I followed this tutorial to build this program, and it really did help me get a basic grasp on the basics of Reinforcement Learning.
Follow this link to view the code.