This repository contains materials for the workshop sessions of the DRL course, taught on Sharif University of Technology (SUT), fall 2024. Each week covers different aspects of reinforcement learning, from basic concepts to advanced topics.
- Chapter 1: Introduction
- Python fundamentals for reinforcement learning
- Basic programming concepts and tools needed for the course
- Part 1: Building a simple RL framework from scratch
- Part 2: Introduction to OpenAI Gym
- Understanding the interaction between agents and environments
- Chapter 2: Tabular-based Reinforcement Learning
- Part 1: Dynamic Programming
- Value Iteration
- Policy Iteration
- Implementation on FrozenLake environment
- Part 2: Monte Carlo Methods
- On-policy First-visit MC
- Off-policy MC with importance sampling
- Applications on FrozenLake environment
- Implementation of various TD algorithms on Cliff-world:
- SARSA
- Q-Learning
- Expected SARSA
- Chapter 3: Function Approximation Methods
- Linear approximation of action-value function
- Implementation on CartPole using RBFSampler from scikit-learn
- Part 1: Tile Coding
- Implementation on MountainCar environment
- Part 2: Artificial Neural Networks with Keras
- House price prediction
- Dropout techniques for overfitting prevention
- Convolutional Neural Networks (CNNs)
- Implementation with Keras on CIFAR dataset
- Long Short-Term Memory (LSTM)
- Tesla stock price prediction
- Chapter 4: Optimal Control
- Approximate Dynamic Programming (ADP)
- Continuous-time systems
- Case study: Quanser helicopter
- Linear Quadratic Regulator (LQR)
- Finding gains using ADP (on-policy and off-policy approaches)
- Part 1: ADP using weighted residuals method
- Chapter 5: Deep Value-based RL
- Part 2: Deep Q-Network (DQN) implementation
- Solving CartPole environment
- Basic Python programming knowledge
- Understanding of basic machine learning concepts
- Familiarity with neural networks
- Basic understanding of control theory
- Clone this repository
- Install required dependencies (requirements.txt will be provided)
- Follow the weekly materials in order
- Complete the TODO sections, exercises and assignments
- Python 3.x
- OpenAI Gym
- TensorFlow/Keras
- scikit-learn
- NumPy
- Matplotlib
- Other specific requirements will be listed in requirements.txt
If you find any issues or have suggestions for improvements, please feel free to open an issue or submit a pull request.
This repository is licensed under the MIT License.