Advanced AI: Deep Reinforcement Learning in Python

Advanced AI: Deep Reinforcement Learning in Python

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 8.5 Hours | 1.78 GB

The Complete Guide to Mastering Artificial Intelligence using Deep Learning and Neural Networks

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 self-driving 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 self-driving 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 real-world?

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 non-intuitive solutions to reach their goals, often in ways that surprise domain experts – humans who are the best at what they do.

OpenAI is a non-profit 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 Q-Learning (DQN) and A3C (Asynchronous Advantage Actor-Critic).

NOTES:

All the code for this course can be downloaded from my github:

/lazyprogrammer/machine_learning_examples

In the directory: rl2

Make sure you always “git pull” so you have the latest version!

HARD PREREQUISITES / KNOWLEDGE YOU ARE ASSUMED TO HAVE:

  • Calculus
  • Probability
  • Object-oriented 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 you’ll learn

  • Build various deep learning agents (including DQN and A3C)
  • Apply a variety of advanced reinforcement learning algorithms to any problem
  • Q-Learning with Deep Neural Networks
  • Policy Gradient Methods with Neural Networks
  • Reinforcement Learning with RBF Networks
  • Use Convolutional Neural Networks with Deep Q-Learning
Table of Contents

Introduction and Logistics
1 Introduction and Outline
2 Where to get the Code
3 How to Succeed in this Course
4 Tensorflow or Theano – Your Choice!

Background Review
5 Review Intro
6 Review of Markov Decision Processes
7 Review of Dynamic Programming
8 Review of Monte Carlo Methods
9 Review of Temporal Difference Learning
10 Review of Approximation Methods for Reinforcement Learning
11 Review of Deep Learning

OpenAI Gym and Basic Reinforcement Learning Techniques
12 OpenAI Gym Tutorial
13 Theano Warmup
14 Tensorflow Warmup
15 Plugging in a Neural Network
16 OpenAI Gym Section Summary
17 Random Search
18 Saving a Video
19 CartPole with Bins (Theory)
20 CartPole with Bins (Code)
21 RBF Neural Networks
22 RBF Networks with Mountain Car (Code)
23 RBF Networks with CartPole (Theory)
24 RBF Networks with CartPole (Code)

TD Lambda
25 N-Step Methods
26 N-Step in Code
27 TD Lambda
28 TD Lambda in Code
29 TD Lambda Summary

Policy Gradients
30 Policy Gradient Methods
31 Policy Gradient Section Summary
32 Policy Gradient in TensorFlow for CartPole
33 Policy Gradient in Theano for CartPole
34 Continuous Action Spaces
35 Mountain Car Continuous Specifics
36 Mountain Car Continuous Theano
37 Mountain Car Continuous Tensorflow
38 Mountain Car Continuous Tensorflow (v2)
39 Mountain Car Continuous Theano (v2)

Deep Q-Learning
40 Deep Q-Learning Intro
41 Deep Q-Learning Techniques
42 Deep Q-Learning in Tensorflow for CartPole
43 Deep Q-Learning in Theano for CartPole
44 Additional Implementation Details for Atari
45 Deep Q-Learning in Tensorflow for Breakout
46 Deep Q-Learning in Theano for Breakout
47 Partially Observable MDPs
48 Deep Q-Learning Section Summary

A3C
49 A3C – Theory and Outline
50 A3C – Code pt 1 (Warmup)
51 A3C – Code pt 2
52 A3C – Code pt 3
53 A3C – Code pt 4
54 A3C – Section Summary
55 Course Summary

Theano and Tensorflow Basics Review
56 (Review) Theano Basics
57 (Review) Theano Neural Network in Code
58 (Review) Tensorflow Basics
59 (Review) Tensorflow Neural Network in Code

Appendix
60 What is the Appendix
61 Python 2 vs Python 3
62 Is Theano Dead
63 What order should I take your courses in (part 1)
64 What order should I take your courses in (part 2)
65 Where to get Udemy coupons and FREE deep learning material
66 Windows-Focused Environment Setup 2018
67 How to install Numpy, Scipy, Matplotlib, Pandas, IPython, Theano, and TensorFlow
68 How to Code by Yourself (part 1)
69 How to Code by Yourself (part 2)
70 How to Succeed in this Course (Long Version)
71 Is this for Beginners or Experts Academic or Practical Fast or slow-paced
72 Proof that using Jupyter Notebook is the same as not using it