Learn to implement MinMax algorithm
Learn about Q-Learning by implementing games
Learn about Artificial Intelligence in games
Learn about gym module
Implement Deep Q-Learning
Implement Deep convolution Q-Learning
Learn about Tensorflow and Keras
Learn to build complex AI player player
Learn about Bellman equation and Dynamic Programming
Learn about Monte-Carlo simulation
Learn to implement Neural Network from Scratch
If youโre interested in learning how to make your own Artificially Intelligent games using Python, then this is the course for you!
This course is full of tutorial videos along with materials which one can run to get familiar with this discipline. You no longer need to read complex research papers and have a solid foundation in mathematics to get going. Just follow this course and materials and youโre on your way.
Let’s take a look at the structure of this course:
We are going to start with a simple game that implements popular board game algorithm:ย MinMax. In this game we are going to create TicTacToe and write an algorithm that plays against human player and tries to beat human player.
Next we are going to learn about gym module:ย a popular library which can be used to write and test our AI algorithms.
After that, we are going to learn about Bellman Equation and Dynamic Programming. We are going to learn how to find the optimal value of the states using Bellman equations through model dynamics. We are going to implement maze game to implement Q-learning algorithm.
Then, we are going to learn about Monte-Carlo Simulation. We are going to check how value function can be predicted using Monte Carlo simulation when model dynamics is unknown.
Similarly, we are going to implement following games throughout this course:
Get Instant Notification of New Courses on our
Telegram channel.
1. BlackJack game using Monte-Carlo and Q-Learning
2. Pacman using Deep Convolution Neural Network
3. Make unbeatable AI TicTacToe player using Tensorflow and Keras (Human Vs AI)
4. MinMax algorithm for Board game
General Q/A’s:
When most people hear the term artificial intelligence, the first thing they usually think of is robots. That’s because big-budget films and novels weave stories about human-like machines that wreak havoc on Earth. But nothing could be further from the truth.
Artificial intelligence is based on the principle that human intelligence can be defined in a way that a machine can easily mimic it and execute tasks, from the most simple to those that are even more complex. The goals of artificial intelligence include mimicking human cognitive activity. Researchers and developers in the field are making surprisingly rapid strides in mimicking activities such as learning, reasoning, and perception, to the extent that these can be concretely defined. Some believe that innovators may soon be able to develop systems that exceed the capacity of humans to learn or reason out any subject. But others remain skeptical because all cognitive activity is laced with value judgments that are subject to human experience.
Artificial intelligence (AI) refers to the simulation of human intelligence in machines that are programmed to think like humans and mimic their actions. The term may also be applied to any machine that exhibits traits associated with a human mind such as learning and problem-solving.
Introduction
Introduction
Setup Anaconda and Install Dependencies for Project
Install Anaconda
Create Virtual Environment
Install Dependencies/Libraries for the Course
Download Visual Studio Code
Python Essentials
What is Python?
Introduction to the data types
Basic Arithmetic in Python
Operations on Numbers
Introduction to Strings in Python
Access elements of String
Formatting strings
Introduction to the variables
Create Variables in Python
Introduction to Booleans in Python
Learn to create conditions
“is” operator in Python
Logical statements
Introduction to conditional statements
if else statements
Introduction to Data Structures
Checking type of Data Structures
How to access the items from the list?
Introduction to the loops in Python
Infinite while loop (Game Loop)
Finite Game Loop
For loop
Important: List Comprehension for Game Development
What is Function and Why we need it?
Learn to create Functions?
Learn about return statements
Introduction to the section
What is Object Oriented Programming?
Class and Objects
Class and Objects Continued
Constructor in Python
What is Inheritance?
Multiple Inheritance
Pygame Refresher
Introduction to the pygame
Pygame coordinate System
Introduction to Pygame shape
Draw shapes using Pygame
Color Picker
Fundamentals of Pygame — skeleton code
Render a rectangle in the Screen
Movement of the shapes
Smoothen the movement using FPS
Make movement within Boundary
Introduction to MinMax Algorithm
Introduction to Board Games
Tree representation of Game
Lookahead Problem
Solution of Lookahead problem
Heuristic Evaluation of Board
Example of Heuristic
Introduction to MinMax algorithm
Example of MinMax
MinMax Example for TicTacToe
MinMax Algorithm
Creating TicTacToe using MinMax algorithm
introduction to Game
Introduction to Project Files
Creating Indecisive Player (Random)
Implementing MinMax
Calculating Value/Heuristic for Min Max player
Implementing MinMax algorithm
Setting up Autoplayer (Artificial Intelligent Player)
Playing against AI player and Tuning algorithm
Introduction to Artificial Intelligence
Motivation for Artificial Intelligence
Reinforcement Learning
Environment
Rewards
Path
Typical RL scenario
Policy
Rewards
Value of the State
Model
Key Terms of Artificial Intelligence (Important)
Markov Property and Markov Chain
Markov Reward Process
Markov Decision Process
Bellman Equation and Dynamic Programming
Introduction
Tribute to Bellman
Value Function
Bellman Equation
Example
Plan
Non Deterministic Environment
Markov Decision Process + Bellman
Introduction to Q-Learning
Equation of Q-Learning
Q value for Non-Deterministic Environment
Temporal Difference
Implementation of Q-Learning to Find Optimal Path
Introduction to Project
Introduction to Project Files
Creating Environment
Briefing about Q-Table
Example of Q-Table
Q-Agent
Possible Actions
Iterations
Action Selection Policy (Returning max Q value)
Implementing Temporal Difference
Executing Game/q-Learning Algorithm
Introduction to “gym” module
The “gym” module
Example of Gym Environment
Creating Gym Environment
Getting started with Gym
State space and Action space
Transitional Probability
CartPole Example
Tennis Game with Random Policy
CartPole with Random Policy
Monte Carlo Simulation
Why Monte Carlo Simulation is important?
Monte Carlo Simulation
Monte Carlo Method (MC – method)
First Visit vs Every Visit MC
BlackJack Example
Implementing Monte Carlo Predictions
BlackJack Game and Rules of the Game
Creating BlackJack Environment
Defining Policy
Generating Episodes
Implementing MC simulation
Calculate Value of State using MC simulation
Creating BlackJack Game
Action Selection Policy (Epsilon-Greedy)
Introduction to Project Files
Q-Table
Implementing Epsilon Greedy Policy
(State, Action, Reward) of Episodes
Introduction to Discount Parameter
Implementing Temporal Difference (update Q-values)
AI Player steps
Making AI to play game
Training the Q-Learning model and Running Game
Neural Network Refresher
Introduction to Artificial Intelligence
Introduction to Neural Networks
Inspiration and representation for Neural Network
History and Application of Neural Network
Example of neural network
Updating the weights [partial differentiation]
Introduction to partial differentiation
Introduction to the Activation Function
Why do we need bias in the program
Why we use regularization in the Neural Network
Introduction to the gradient descent [review]
Introduction to Stochastic Gradient Descent and Adam Optimizer
Introduction to mini-batch SGD
Scratch Implementation of Neural Network
Setting up environment and coding single neuron
Coding neuron layer
Using dot product to code neuron layer
Coding dense layer [must know Object Oriented Programming]
Introduction to Activation Function
Implementation of activation function [step and sigmoid]
Implementation of activation function [tanh and ReLu]
Tensorflow and Keras
What is Tensorflow
Rank of Tensors
Program Elements of Tensorflow
Examples
Introduction to Keras
Keras models (Important)
Implementing Neural Network using Keras
TicTacToe Tensorflow
Introduction to Project Files
Creating model for the Game
Preprocess the state
Define Independent (input) and Dependent (output) Variable
Training the model
Predict from the model
TicTacToe Model
TicTacToe Neural Network
Creating Neural Network Player
Introduction to Deep Q-Learning and Deep Convolution Q-Learning
Introduction to Deep Q-Learning
Action Selection Policy
Exploration vs Exploitation
Deep Convolution Q-Learning
Convolution Neural Network
Introduction to convolution neural network
How ConvNet works?
Convolution Layer
RELU Layer
Pooling Layer
BackPropagation
Deep Convolution Q-Learning Practical: Pacman game
Introduction to Replay Buffer
Mean Squared Error
Main Network and Target Network
Creating Environment
Solving ROM error
Build Convolution Neural Network
Store Transition in Replay buffer
Build Main Network and Target Network
Epsilon Greedy (Action-Selection Policy)
Training the neural network
Fit the model
Preprocess the state
Training model for multiple iterations
Simulating the game and storing transitions
Testing the game
Any games you want to suggest?
Farewell