Modern Reinforcement Learning: Deep Q Agents (PyTorch & TF2) (Udemy.com)
How to Turn Deep Reinforcement Learning Research Papers Into Agents That Beat Classic Atari Games
Created by: Phil Tabor
Last updated August 2023
Our take
Based on the ratings of 1,114 students, a sample of their written reviews and the syllabus, as the course stood in August 2023. No course pays to be reviewed.
This is a focused 6.8 hour course on Deep Q learning. Phil Tabor, a physics PhD turned freelance deep learning engineer, walks through the DQN, Double DQN and Dueling DQN papers and codes each one as an Atari agent for games like Pong and Breakout. There are short primers on reinforcement learning basics and PyTorch, plus TensorFlow 2 versions near the end. The requirements list calculus, deep learning exposure and comfortable Python, and reviewers newer to Python or the math found it hard going.
Praise centers on the paper-to-code method and the coding habits. One reviewer likes the pauses where students are expected to try the code first. Others call the voice calm and the explanations clear, and a GitHub repo helps students check their own work. The complaints are consistent too. Several want more intuition behind the math, such as why double networks fix overestimation, and one misses diagrams. The harshest reviews say the instructor mostly types code with little explanation of why, and one says the cartpole solution did not solve the environment.
The course was last updated in August 2023, and a recent reviewer had to swap gym for gymnasium to get things running, so some debugging is likely. About 6,800 students have enrolled, and the 4.3 rating from 1,114 reviews leans heavily on fours and fives. It suits someone who already trains networks and wants to learn by reading papers. Total beginners to Python or the math should build that base first.
Pros
- Teaches a repeatable way to read an RL paper and turn it into code
- Pauses let students attempt the implementation before seeing the answer
- Covers DQN, Double DQN and Dueling DQN on Pong, Breakout and Bankheist
- Companion GitHub repo lets students compare their code with the lessons
Cons
- Math behind experience replay and double networks gets thin explanation
- Last updated in 2023, so gym packages need swapping for gymnasium
- Few diagrams, and the early fundamentals feel rushed to beginners
Great material, especially the breaks where he expects you to attempt to code up the material on your own instead of spoon feeding it and the lessons on converting papers to code.
Listed as intermediate, and reviewers say a strong background helps: it expects some calculus, deep learning and comfortable Python.
What you will learn
- How to read and implement deep reinforcement learning papers
- How to code Deep Q learning agents
- How to Code Double Deep Q Learning Agents
- How to Code Dueling Deep Q and Dueling Double Deep Q Learning Agents
- How to write modular and extensible deep reinforcement learning software
- How to automate hyperparameter tuning with command line arguments
Course content
11 sections · 50 lectures · 6.8 hours of video
- 1Introduction 3 free previews3 lectures · 13 min
- 2Fundamentals of Reinforcement Learning6 lectures · 1 hour
- 3Deep Learning Crash Course 2 free previews7 lectures · 55 min
- 4Human Level Control Through Deep Reinforcement Learning: From Paper to Code14 lectures · 1.9 hours
- 5Deep Reinforcement Learning with Double Q Learning2 lectures · 24 min
- 6Dueling Network Architectures for Deep Reinforcement Learning4 lectures · 33 min
- 7Improving On Our Solutions3 lectures · 36 min
- 8Conclusion 1 free preview1 lecture · 5 min
- 9Bonus Lecture1 lecture · 1 min
- 10Tensorflow 2 Implementations7 lectures · 41 min
- 11Appendix2 lectures · 21 min
Who it is for
The instructor says it suits
- Python developers eager to learn about cutting edge deep reinforcement learning
What you need before you start
- Some College Calculus
- Exposure To Deep Learning
- Comfortable with Python
How it compares
Against the other 126 rated Udemy courses in Deep Learning on CourseDuck:
- Rating4.3 out of 5higher than 18% of them
- Reviews1,114#47 of 127 by number of reviews
- Length6.8 hoursshorter than 65% of them
- Last updatedAugust 2023earlier than 67% of them
Course Description
In this complete deep reinforcement learning course you will learn a repeatable framework for reading and implementing deep reinforcement learning research papers. You will read the original papers that introduced the Deep Q learning, Double Deep Q learning, and Dueling Deep Q learning algorithms. You will then learn how to implement these in pythonic and concise PyTorch and Tensorflow 2 code, that can be extended to include any future deep Q learning algorithms. These algorithms will be used to solve a variety of environments from the Open AI gym's Atari library, including Pong, Breakout, and Bankheist.
You will learn the key to making these Deep Q Learning algorithms work, which is how to modify the Open AI Gym's Atari library to meet the specifications of the original Deep Q Learning papers. You will learn how to:
Repeat actions to reduce computational overhead
Rescale the Atari screen images to increase efficiency
Stack frames to give the Deep Q agent a sense of motion
Evaluate the Deep Q agent's performance with random no-ops to deal with model over training
Clip rewards to enable the Deep Q learning agent to generalize across Atari games with different score scales
If you do not have prior experience in reinforcement or deep reinforcement learning, that's no problem. Included in the course is a complete and concise course on the fundamentals of reinforcement learning. The introductory course in reinforcement learning will be taught in the context of solving the Frozen Lake environment from the Open AI Gym.
We will cover:
Markov decision processes
Temporal difference learning
The original Q learning algorithm
How to solve the Bellman equation
Value functions and action value functions
Model free vs. model based reinforcement learning
Solutions to the explore-exploit dilemma, including optimistic initial values and epsilon-greedy action selection
Also included is a mini course in deep learning using the PyTorch framework. This is geared for students who are familiar with the basic concepts of deep learning, but not the specifics, or those who are comfortable with deep learning in another framework, such as Tensorflow or Keras. You will learn how to code a deep neural network in Pytorch as well as how convolutional neural networks function. This will be put to use in implementing a naive Deep Q learning agent to solve the Cartpole problem from the Open AI gym.
Instructor Details
- 4.3 Rating
1,114 Reviews
Phil Tabor
In 2012 I received my PhD in experimental condensed matter physics from West Virginia University. Following that I was a dry etch process engineer for Intel Corporation, where I leveraged big data to make essential process improvements for mission critical products. After leaving Intel in 2015, I have worked as a contract and freelance deep learning and artificial intelligence engineer.
More Deep Learning courses
A deep understanding of deep learning (with Python intro) (2026)
4.8 (6,559 Reviews)
Provider: Udemy
Time: 57.3h
$109.99
Deep Learning Prerequisites: Logistic Regression in Python (2026)
4.8 (4,922 Reviews)
Provider: Udemy
Time: 6.9h
$109.99
Data Science: Transformers for Natural Language Processing (2026)
4.8 (3,034 Reviews)
Provider: Udemy
Time: 19.1h
$79.99
Complete Tensorflow 2 and Keras Deep Learning Bootcamp (2022)
4.7 (8,938 Reviews)
Provider: Udemy
Time: 19.2h
$16.99
Deep Learning: Advanced Computer Vision (GANs, SSD, +More!) (2026)
4.7 (7,132 Reviews)
Provider: Udemy
Time: 17.2h
$124.99
Reviews
By János Áron Kiss on 8/4/2024
I do not have a strong mathematical background, so it was hard to follow this part of the course. A little more explanation here would be better. On the other hand, I could follow the coding part, and now I can understand the basic ideas of the course. With the new knowledge, I could achieve results in other environments. Thanks.
By Twan Wolthaus on 6/6/2024
I've never had this much fun with a Udemy course. Your voice is sooth and calming, but not to the point that it gets boring. Your ways of explaining things combined with the powerpoints is charming. Also, your ways of teaching feel so inviting and judgement free. It's been my dream to train an AI to play a videogame. Now the dream has become reality. Thank you.
By Fernando Jauregui on 9/30/2021
After a while, the complexity increases and the quality of "teaching" decreases... Very disappointing really, the distribution of the course leaves subjects pending so you have to keep watching videos. While you wait for the author to resume the subject, it is already late. What you were waiting for is not explained and you can't refund the course. Example: Section 3... 55 minutes explaining DQL for continuous state spaces and the code doesn't have the implementation of memory, he ends the sections showing bad performance in his code(even he says it). Then in Section 4... He rectifies his own code, saying that the ways implemented before were wrong..... Meanwhile he's coding, he does not explain how this code fit into the theory of the algorithm... Summary: all the explanation is superficial, it's much better if you just check the code of his github and google the subjects or parts of the code, because everything in this course you can get it for free somewhere else. I've seen a lot of videos on youtube with the same or even better quality content. If you are looking for a great explanatory step-by-step code with a nice gradually increase in complexity: go somewhere else, this is not the course. The idea of paying for a course is that the author MUST give you knowledge(quality or insides) that you can't get it for free somewhere else.
By PeterA. on 6/29/2021
Thank you Phil for the great work, really made a complex subject more accessible. I apricated the time and effort that you put to go over the papers and the code in detail. The course delivers on its title and goes over deep Q learning in pytorch with clean oop code. The math part was fast and furious but as Phil mentioned at the end, there is literature out there that goes in-depth if necessary. The only thing I would like to see added to this course is: how to deal with custom environments and how to model/use them and not just the Atari library.
By Tomer Sh on 2/2/2021
Stumbled upon this course by chance while browsing data science courses. Checked out the preview, and I've immediately recognized the fact that I've stumbled upon gold. Very few, and I repeat, very very few courses out there offer such pro material as this course. No watered down rehearsed silly Jupyter notebooks. No attempt to make it "friendly" and "accessible" to mass audience. This is a course by a pro, for aspiring pros. The length is perfect. The course is practical and right on point. The author doesn't explain the basics, which is perfect. Why should he? This is a course for advanced material. The code is written on Linux (Ubuntu I guess). OOP principles are strictly kept. Honestly, I could go on and on about how much I enjoyed the level of meticulously in this course. Definitely 5 stars. Would give it more if I could. Starting the 2nd course now :)
By Grant Anderson on 1/24/2021
First: My background as reference Mechanical Engineering Degree I have taken Andrew Ng's and Jeremy Howard's courses before this, and this is my first foray into reinforcement learning. I have been scripting (now getting more into the OOP features of python) in Python and MATLAB for a couple years now with lots of work in neural networks and libraries such as FastAI. However, I am left feeling there are significant gaps between the material covered (lack of explanation sort giving the reasons in human-ese) and the assignments. The prerequisite knowledge Phil covered at the beginning of the course (how well you need to know xyz for this course) is not consistent with the actual course material or assignments. I'm finding myself spending hours pouring over the paper (and others) to get an understanding of WHY we are buffer, memory counter, etc. I'm attempting to use the Feynman method, but at the end of the day I'm having a tough time understanding the fundamentals of the issues behind our Naive-DQN. Correlated sequences of observations being an issue is something I THINK I understand, but not quite the other two. This is just a long-winded way of saying the level Phil is teaching at when explaining these concepts is a bit too high, and the things that appear to be obvious to him are pretty far above the expectations laid out in the beginning of our level. I'm determined to learn this, but it will definitely have to be through re-attacking methods of deconstructing these concepts of the first paper so I can begin to digest them piece-by-piece at a deeper level.
By Geoffrey Payne on 5/14/2020
I am not yet familiar enough with python/pytorch to write the code in the exercises. So I am going through the course first and will probably repeat again in the future. The material is perfect for what I want to learn. I think the pseudo code should be put in a pdf resource to make it easier to access, rather than navigate back to find them.
By Frederick Reiss on 4/12/2020
I pushed myself to quickly go through the material, mainly to familiarize myself with the terminology, I have a lot more work to do along with learning Python. I know that it will take me awhile to learn how to go from paper to code but I know that it will be worth while. Thank you again for creating this class. Fred Reiss
By Matthew Schneider on 4/2/2020
The absolutely the deepest deep reinforcement learning course you find anywhere! Phil is a "Deep Learning Machine!" who leads you on an epic journey from the ground up. Phil gets to the point without wasting time, building from a basic blocks of reusable code to q_learning, to Deep_q_learning, to Double_Deep_Q_Learning, to Dueling_Double_Deep_Q_Learning! In addition to that he teaches you how to read scientific papers! The value of this course cannot be overstated. This is a Deep Dive into the Deep Reinforcement Learning!
By Andrés Morán Durán on 3/19/2020
El desarrollo del código es modular, lo que significa que puedes adaptarlo a tus proyectos solo modificando tu ambiente y tu tipo de red neuronal. Sin embargo, durante el desarrollo del código la explicación no mes muy útil. El curso esta enfocado a estudiantes de maestría y doctorado, con conocimiento previo en programación, redes neuronales y machine learning
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 86 / 100






