Advanced AI: Deep Reinforcement Learning in Python
 9 hours ondemand video
 Full lifetime access
 Access on mobile and TV
 Certificate of Completion
Get your team access to Udemy's top 3,000+ courses anytime, anywhere.
Try Udemy for Business Build various deep learning agents (including DQN and A3C)

Apply a variety of advanced reinforcement learning algorithms to any problem

QLearning with Deep Neural Networks
 Policy Gradient Methods with Neural Networks
 Reinforcement Learning with RBF Networks
 Use Convolutional Neural Networks with Deep QLearning
 Know reinforcement learning basics, MDPs, Dynamic Programming, Monte Carlo, TD Learning
 Calculus and probability at the undergraduate level
 Experience building machine learning models in Python and Numpy
 Know how to build a feedforward, convolutional, and recurrent neural network using Theano and Tensorflow
This course is all about the application of deep learning and neural networks to reinforcement learning.
If you’ve taken my first reinforcement learning class, then you know that reinforcement learning is on the bleeding edge of what we can do with AI.
Specifically, the combination of deep learning with reinforcement learning has led to AlphaGo beating a world champion in the strategy game Go, it has led to selfdriving cars, and it has led to machines that can play video games at a superhuman level.
Reinforcement learning has been around since the 70s but none of this has been possible until now.
The world is changing at a very fast pace. The state of California is changing their regulations so that selfdriving car companies can test their cars without a human in the car to supervise.
We’ve seen that reinforcement learning is an entirely different kind of machine learning than supervised and unsupervised learning.
Supervised and unsupervised machine learning algorithms are for analyzing and making predictions about data, whereas reinforcement learning is about training an agent to interact with an environment and maximize its reward.
Unlike supervised and unsupervised learning algorithms, reinforcement learning agents have an impetus  they want to reach a goal.
This is such a fascinating perspective, it can even make supervised / unsupervised machine learning and "data science" seem boring in hindsight. Why train a neural network to learn about the data in a database, when you can train a neural network to interact with the realworld?
While deep reinforcement learning and AI has a lot of potential, it also carries with it huge risk.
Bill Gates and Elon Musk have made public statements about some of the risks that AI poses to economic stability and even our existence.
As we learned in my first reinforcement learning course, one of the main principles of training reinforcement learning agents is that there are unintended consequences when training an AI.
AIs don’t think like humans, and so they come up with novel and nonintuitive solutions to reach their goals, often in ways that surprise domain experts  humans who are the best at what they do.
OpenAI is a nonprofit founded by Elon Musk, Sam Altman (Y Combinator), and others, in order to ensure that AI progresses in a way that is beneficial, rather than harmful.
Part of the motivation behind OpenAI is the existential risk that AI poses to humans. They believe that open collaboration is one of the keys to mitigating that risk.
One of the great things about OpenAI is that they have a platform called the OpenAI Gym, which we’ll be making heavy use of in this course.
It allows anyone, anywhere in the world, to train their reinforcement learning agents in standard environments.
In this course, we’ll build upon what we did in the last course by working with more complex environments, specifically, those provided by the OpenAI Gym:
CartPole
Mountain Car
Atari games
To train effective learning agents, we’ll need new techniques.
We’ll extend our knowledge of temporal difference learning by looking at the TD Lambda algorithm, we’ll look at a special type of neural network called the RBF network, we’ll look at the policy gradient method, and we’ll end the course by looking at Deep QLearning (DQN) and A3C (Asynchronous Advantage ActorCritic).
Thanks for reading, and I’ll see you in class!
HARD PREREQUISITES / KNOWLEDGE YOU ARE ASSUMED TO HAVE:
Calculus
Probability
Objectoriented programming
Python coding: if/else, loops, lists, dicts, sets
Numpy coding: matrix and vector operations
Linear regression
Gradient descent
Know how to build a feedforward, convolutional, and recurrent neural network in Theano and TensorFlow
Markov Decision Proccesses (MDPs)
Know how to implement Dynamic Programming, Monte Carlo, and Temporal Difference Learning to solve MDPs
TIPS (for getting through the course):
Watch it at 2x.
Take handwritten notes. This will drastically increase your ability to retain the information.
Write down the equations. If you don't, I guarantee it will just look like gibberish.
Ask lots of questions on the discussion board. The more the better!
Realize that most exercises will take you days or weeks to complete.
Write code yourself, don't just sit there and look at my code.
WHAT ORDER SHOULD I TAKE YOUR COURSES IN?:
Check out the lecture "What order should I take your courses in?" (available in the Appendix of any of my courses, including the free Numpy course)
 Professionals and students with strong technical backgrounds who wish to learn stateoftheart AI techniques