Welcome to this repository dedicated to the exploration of Reinforcement Learning (RL). We'll journey through the fundamentals of RL, starting from the basic exploration/exploitation dilemma, all the way to employing deep neural networks to master complex games.
Reinforcement Learning is a type of machine learning where an agent learns by interacting with an environment, receiving feedback in the form of rewards or penalties. The main challenge is to find the best strategy, or policy, that will result in the maximum cumulative reward for the agent over time.
- Exploration vs. Exploitation
- Dynamic Programming & State Value Optimization
- Q-Learning & The Taxi Game
- Deep Q-Learning on Atari Games
The journey begins with the classical problem of Multi-Armed Bandits. This problem elegantly captures the trade-off between exploring new options and exploiting known ones. In this section:
- Understand the Exploration/Exploitation dilemma.
- Implement a naive solution to the Multi-Armed Bandits problem.
- Dive into advanced algorithms such as Upper Confidence Bound (UCB) and Thompson Sampling to optimize our choices.
Dynamic Programming offers powerful techniques to solve complex problems by breaking them down into simpler sub-problems. In the context of RL:
- Learn about optimizing the value of each state with the Bellman equation.
- Understand the idea of knowing the reward of each state and how it affects decision-making.
- Get hands-on with the
gymlibrary, a toolkit for developing and comparing reinforcement learning algorithms.
Q-Learning provides a way to estimate the value of actions, not just states. Using the Taxi Game as a hands-on example:
- Delve into the concept of Q-values and how they help agents make decisions.
- Learn the process to optimize these Q-values for better performance.
Taking Q-learning to the next level, we introduce neural networks to deal with high-dimensional input spaces, like images from video games.
- Explore the combination of Q-learning with Deep Learning, resulting in Deep Q-Learning.
- Implement Deep Q-Learning to master classic Atari games, showcasing the power of modern RL techniques.