Reinforcement Learning in Scala


Reinforcement learning (RL) is a powerful machine learning paradigm that has been successfully applied to a wide class of problems, from steering helicopters to predicting stock prices.

During this talk you will find out what RL is all about and how to implement it in Scala. Chris will introduce RL, providing use cases and intuition about what kind of problems it can solve. He’ll also share some of its core concepts, including Markov Decision Processes, policies and action values, prediction and control, exploitation vs exploration and bootstrapping.

Next he’ll show how to implement some of these concepts in Scala, starting from scratch and working step by step towards an implementation of ‘Q-learning’ – a popular RL technique for learning policies. He will show how to structure the code using type classes to separate the generic Q-learning framework from the specifics of any particular problem we want to model.

You will also learn how to train an agent using your Q-learning implementation, and finally I will demonstrate the result of the training: the computer successfully learning to solve a complex task.

There will even be some homework in case you want to try implementing RL for yourself!

Chris Birchall

Chris Birchall


Chris is a Principal Engineer at OVO Energy in London, where “renewable is unstoppable”.

He has been using Scala for about 10 years. He is the author of the popular ScalaCache library, an experienced conference speaker and the organiser of LambdAle, a functional programming conference in a pub