/Teaching-Computers-to-Play-Games

This repository serves as a tutorial to take the learner from knowing nothing about how computers learn, to having an in-depth understanding of deep reinforcement learning.

Primary LanguageJupyter Notebook

Teaching computers to play games

We've all seen the headlines of "AI beats professional Go player" or something similar. Many of us have looked at this and wondered how does this even work? Some went a step further and started looking into how exactly computers learn, but found themselves confused by terms like deep learning, CNNs, policy gradients, Qlearning and reinforcement learning.

This tutorial is designed to cut straight through the confusion and show you the ways in which computers learn is simultaneously much simpler, elegant, and harder than you thought.

We will take you from being a complete novice in the field to (near) state of the art understanding, and we'll dive into all of the mathematical details while placing them in the context of a bigger picture.

If you're as excited to get started as I am, then join me in Q Learning/Taxi Problem/, where we'll get you writing your first intelligent program in no time!

Prerequisites

Throughout this tutorial series, we'll be assuming a basic understanding of python, including, but not limited to:

  • Standard syntax
  • Object Oriented Programming
  • Some familiarity with numpy
  • A basic understanding of datatypes

Since people with vastly different mathematical backgrounds are interested in machine learning, we've made every attempt to link appropriate resources for the mathematics needed in each tutorial.