Street Fighter II - Reinforcement Learning


  • Machine Learning

  • Deep Learning


Mentors :

  • Vijay Balsubramaniam

Mentees :

  • 5-10


Machine Learning is the buzzword! New to the world of ML? Here's a perfect place to begin! Reinforcement learning (RL) is a powerful machine learning technique that has gained significant attention in recent years due to its ability to solve complex decision-making problems. In RL, the goal is to build Intelligent Autonomous Agents (with no prior knowledge of their environment except the possible set of actions they could take) which interact with their environment to figure out the best way to gain rewards from the environment, much like humans!
The theoretical concepts we will cover will more or less follow: https://www.deepmind.com/learning-resources/introduction-to-reinforcement-learning-with-david-silver I'd recommend watching the first lecture to get an idea; and yes, the endeavor is to focus on theory + programming.
In theory we will explore: Markov Decision Processes, The (holy) Bellman Equation, Simple Q-Learning and its improvisations, Monte Carlo Methods and Temporal Difference Learning.
Here's a python tutorial reference (must read before applying!): https://www.w3schools.com/python/default.asp
In coding we will explore: Python libraries which facilitate Reinforcement Learning: Open AI Gym, retro-gym, numpy, tensorflow and pytorch and of course, Street Fighter.
A similar project: https://pytorch.org/tutorials/intermediate/mario_rl_tutorial.html
The central goal of this SoC project is to teach an autonomous agent to play Street Fighter!

Who should TAKE this project?
-- Someone who has a background in python. You just need to be familiar with classes, functions and conditionals. Refer to the link in the general description of the project. If you are new to python, get yourself comfortable with python before we start the actual project. -- Someone who isn't afraid of math, matrices and all that magic! -- Someone who is willing to devote time to appreciate the beauty of Machine Learning algorithms and the power of python. -- Someone who is determined to finish what they start (Yes, at times you might feel fed up, but the sheer of joy of an agent that trained for 10 straight hours acing the game is the epitome of satisfaction!)
Who should NOT TAKE this project? -- Someone who is not familiar with python and has never coded before at all. -- Someone who has no enthu for ML and no energy for hours of debugging the merciless errors thrown by their programs. -- Someone who has no interest in going through texts and reading published papers.

Tentative Timeline :

Week Work
Week 0 Introduction to RL and review of Python background
Week 1 Review of MDPs and introducing Q-Learning Theory, playing with OpenAIGym
Week 2-3 Review of RL MC and TD Methods. More OpenAIGym
Week 4-5 Implementing a published paper from scratch. You can choose the paper from a set of papers I will share.(This will give you a glimpse of research spaces in RL)
Week 6-7 Street Fighter II (This will give you a glimpse of the applied spaces in RL)