• Post category:StudyBullet-7
  • Reading time:17 mins read


Learn to implement basic to advanced deep learning, artificial intelligence algorithms for real world games!

What you will learn

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

Description

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.

English
language

Content

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