Introduction to the Project

In the Fall of 2019, I wanted to pursue research related to Computer Science. The field of Machine Learning always seemed magical to me. How can you get a computer agent to learn to make decicions? I got with Dr. Cotterell of the University of Georgia Department of Computer Science, and we started to create a plan for the research. My initial project proposal is below.

The goal of this project is to create an AI using the Q-Learning reinforcement learning algorithm that is capable of playing the game Snake. This consists of creating the snake game, and implementing the algorithm to play the game. However, instead of leaving it at that, I want to make more of a contribution with my research instead of doing work that has already been done. In this case, I will analyze how changing the Complexity of the Snake game will affect the Q-Learning agent. Will the agent be able to handle the increased ccomplexity in stride? Will certain roadblocks take longer to learn and overcome compared to others? These are the questions I plan to answer.

The original inspiration for this project came from the youtuber Code Bullet. His very first video is training an AI to play snake using a genetic algorithm. 6 months ago, he uploaded this video about teaching an AI to play snake using Q-Learning. While these videos are what inspired me, I plan to build upon the foundation that was laid and further analyze the strengths and weaknesses of Q-Learning.

Q-Learning and reinforcement learning in general has been widely discussed and researched. There have also been many many applications of reinforcement learning in games, ecommerce, and consumer products.

The most unique aspect of the project is the blog posts that I will be posting at each milestone of the project. This will give me the ability to reflect and allow me to explain more about the project. This feature allows anybody reading to follow along with my project and learn more about Q-Learning and reinforcement learning.