Getting up to speed with Python, data libraries, and fundamental ML algorithms before we dive into RL.
Before starting with a programming language, we'll set up an IDE. Basically, these are programming environments where you would write your code (looks cool :) ). We recommend VS Code, but feel free to use any IDE of your choice. We'll also set up Anaconda for managing Python packages, and optionally Google Colab if you prefer working in the cloud.
Official setup guide for the IDE
Managing packages and environments with Conda
Introduction to cloud-based Jupyter notebooks
Git is a version control system that lets you track changes in your code and collaborate with others. GitHub is where we'll host our project repositories. You'll be using these throughout the project to submit assignments and collaborate with your team.
Basic Git concepts and workflow
Practical guide for using the GitHub UI
Python is the language we'll use for everything in this project, from simple scripts to training RL agents. Make sure you're comfortable with the fundamentals: variables, loops, functions, and especially classes (OOPs), since most ML libraries are built around them. If you already know Python, skim through these as a refresher.
Interactive reference for Python syntax and concepts
Comprehensive beginner-friendly full course
Detailed article covering Python fundamentals
NumPy is the backbone of numerical computing in Python. You'll use it for everything from matrix operations to handling environment states. Matplotlib lets you visualize training curves, rewards, and agent behavior. Both are essential tools you'll use daily.
Interactive NumPy reference
Video walkthrough of NumPy array operations
Interactive Matplotlib reference
Quick introduction to data visualization in Python
Reinforcement Learning is built on probability theory. Understanding Bayes' theorem, probability distributions, and the law of large numbers will help you grasp why RL algorithms work the way they do. Don't worry, we only need the intuition, not rigorous proofs.
Beautiful visual explanation of Bayes' theorem
Focused playlist on probability distributions (Watch video 1, 3, 5, 6 from the playlist)
What is expected value of a distribution?
Understanding convergence and statistical foundations
Before jumping into RL, it helps to understand how machines learn from data. Linear and logistic regression are the simplest ML algorithms and introduce key concepts like cost functions, gradient descent, and overfitting that carry over directly to deep RL.
Intro to Machine Learning concepts
Analytics Vidhya deep-dive on linear regression
Clear visual explanation of logistic regression
Analytics Vidhya beginner-friendly article
Understanding evaluation metrics for classification
Neural networks are the function approximators that make deep RL possible. In this project, we'll use them as policy networks (PPO) and world models. Understanding how a basic neural net learns through backpropagation is essential, and the 3Blue1Brown series is a must-watch.
Deep Learning Demystified on Medium
Continuation: backpropagation and training
Convolutional Neural Networks overview
Official PyTorch quickstart for building neural networks
Official TensorFlow beginner tutorial
GeeksforGeeks guide to scikit-learn