Deeplearning - Ai Deeplearning - Ai
Deeplearning - Ai Deeplearning - Ai
Deeplearning - Ai Deeplearning - Ai
DeepLearning.AI makes these slides available for educational purposes. You may not use or distribute
these slides for commercial purposes. You may make copies of these slides and use or distribute them for
educational purposes as long as you cite DeepLearning.AI as the source of the slides.
Welcome!
Beyond Supervised Learning
• Unsupervised Learning
• Clustering
• Anomaly detection
• Recommender Systems
• Reinforcement Learning
Andrew Ng
Clustering
What is clustering?
Supervised learning
𝑥!
𝑥"
Training set: ?
Andrew Ng
Unsupervised learning
Clustering
𝑥!
𝑥"
Training set: 𝑥 (") , 𝑥 ($) , 𝑥 (%) , … , 𝑥 (&)
Andrew Ng
Applications of clustering
• Growing skills
• Develop career
• Stay updated with AI,
Grouping similar news understand how it affects
your field of work Market segmentation
Andrew Ng
Clustering
K-means intuition
Step 1: 𝑥 (") , 𝑥 ($) , 𝑥 (%) , … , 𝑥 (%')
Assign
each point
to its
closest
centroid
Andrew Ng
Step 2: 𝑥 (") , 𝑥 ($) , 𝑥 (%) , … , 𝑥 (%')
Recompute
the
centroids
Andrew Ng
Step 1: 𝑥 (") , 𝑥 ($) , 𝑥 (%) , … , 𝑥 (%')
Assign
each point
to its
closest
centroid
Andrew Ng
Step 1: 𝑥 (") , 𝑥 ($) , 𝑥 (%) , … , 𝑥 (%')
Assign
each point
to its
closest
centroid
Andrew Ng
Step 2: 𝑥 (") , 𝑥 ($) , 𝑥 (%) , … , 𝑥 (%')
Recompute
the
centroids
Andrew Ng
Step 1: 𝑥 (") , 𝑥 ($) , 𝑥 (%) , … , 𝑥 (%')
Assign
each point
to its
closest
centroid
Andrew Ng
Step 2: 𝑥 (") , 𝑥 ($) , 𝑥 (%) , … , 𝑥 (%')
Recompute
the
centroids
Andrew Ng
Clustering
K-means algorithm
K-means algorithm
Randomly initialize cluster centroids
x2
x1
Andrew Ng
K-means algorithm
Randomly initialize cluster centroids
Repeat {
# Assign points to cluster centroids
for i = 1 to m
c(i):= index (from 1 to K ) of cluster x2
centroid closest to x(i)
x1
Andrew Ng
K-means algorithm
Randomly initialize cluster centroids
Repeat {
# Assign points to cluster centroids
for i = 1 to m
c(i):= index (from 1 to K ) of cluster x2
centroid closest to x(i)
# Move cluster centroids
x1
for k = 1 to K
μk := average (mean) of points assigned to cluster k
}
Andrew Ng
K-means algorithm
Randomly initialize 𝑘 cluster centroids, 𝜇!, 𝜇!, ... 𝜇"
Repeat {
# Assign points to cluster centroids
for i = 1 to m
c(i):= index (from 1 to K ) of cluster x2
centroid closest to x(i)
# Move cluster centroids
x1
for k = 1 to K
μk := average (mean) of points assigned to cluster k
}
Andrew Ng
K-means for clusters that are not well separated
T-shirt sizing
Weight
Height
Andrew Ng
Clustering
Optimization objective
K-means optimization objective
𝑐 (") = index of cluster (1, 2, … , 𝐾) to which example 𝑥 (") is currently
assigned
𝜇$ = cluster centroid 𝑘
𝜇% (") = cluster centroid of cluster to which example 𝑥 (") has been
assigned
Cost function
&
$ &
1 ,
𝐽 𝑐 ,…,𝑐 , 𝜇$ , . . , 𝜇% = . 𝑥 (') − 𝜇+ (&)
𝑚
𝑚𝑖𝑛 '($
$ &
𝐽(𝑐 ,…,𝑐 , 𝜇$ , . . , 𝜇% )
𝑐 $ ,…,𝑐 &
𝜇$ , … , 𝜇%
Andrew Ng
Andrew Ng
Cost function for K-means "
! "
1 )
𝐽 𝑐 ,…,𝑐 , 𝜇! , . . , 𝜇# = * 𝑥 ($) − 𝜇( (-)
𝑚
$%!
Repeat {
# Assign points to cluster centroids
for 𝑖 = 1 to 𝑚:
𝑐 (") = index of cluster
x2
centroid closest to 𝑥 (")
# Move cluster centroids
for 𝑖 = 1 to 𝐾:
𝜇$ = average of points in cluster 1 2 3 4 5 6 7 8 9
} x1
Andrew Ng
Moving the centroid
x2
1 2 3 4 5 6 7 8 9 11 12 13
x1
Andrew Ng
Clustering
Initializing K-means
K-means algorithm
Repeat {
Step 1: Assign points to cluster centroids
Step 2: Move cluster centroids
}
Andrew Ng
Random initialization
Choose 𝐾 < 𝑚
Andrew Ng
𝐽 𝑐 " ,…,𝑐 1 , 𝜇", . . , 𝜇2
Andrew Ng
Random initialization
For 𝑖 = 1 to 100 {
Randomly initialize K-means.
Run K-means. Get 𝑐 $ , … , 𝑐 & , 𝜇$ , 𝜇$ ,…, 𝜇.
Compute 𝐽(𝑐 $ , … , 𝑐 & , 𝜇$ , 𝜇$ ,…, 𝜇. )
}
Pick set of clusters that gave lowest cost 𝐽
Andrew Ng
Clustering
Andrew Ng
Choosing the value of K
Elbow method
Cost function
Cost function
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
(no. of clusters) (no. of clusters)
Andrew Ng
Choosing the value of K
Often, you want to get clusters for some later (downstream) purpose.
Evaluate K-means based on how well it performs on that later purpose.
XL
T-shirt sizing L T-shirt sizing
L
M M
Weight
Weight
S XS
𝑘=3 𝑘=5
Height Height
Andrew Ng
Anomaly Detection
𝑥+ (vibration)
𝑥' (heat)
Andrew Ng
Density estimation
Dataset: 𝑥 (') , 𝑥 (+) , … , 𝑥 (,)
Model 𝑝(𝑥)
Is 𝑥&'(& anomalous?
(vibration
𝑥' (heat)
Andrew Ng
Anomaly detection example
Fraud detection:
• 𝑥 (*) = features of user 𝑖’s activities
• Model 𝑝(𝑥) from data.
• Identify unusual users by checking which have 𝑝 𝑥 < 𝜀
Andrew Ng
Anomaly Detection
1 7(8 7 9)0
𝑝(𝑥) = 𝑒 !:0
2𝜋𝜎
𝑥
Andrew Ng
Gaussian distribution example
Andrew Ng
Parameter estimation
Dataset: 𝑥 (') , 𝑥 (+) , … , 𝑥 (,)
Andrew Ng
Anomaly Detection
Algorithm
Density estimation 𝑥"
𝑥, 𝑥!
Training set: x (') , x (+) , … , x (,)
Each example x (") has 𝑛 features x=
...
𝑥$
𝑥A
𝑝(x) = 𝑝(𝑥' ; 𝜇' , 𝜎'+ ) ∗ 𝑝(𝑥+ ; 𝜇+ , 𝜎++ ) ∗ 𝑝(𝑥- ; 𝜇- , 𝜎-+ ) ∗ ⋯ ∗ 𝑝(𝑥. ; 𝜇. , 𝜎.+)
Andrew Ng
Anomaly detection algorithm
1. Choose 𝑛 features 𝑥" that you think might be indicative of anomalous examples.
2. Fit parameters 𝜇$ , … , 𝜇+ , 𝜎$% , … , 𝜎+%
Vectorized formula
* *
1 (") 1 *
𝜇$
(")
𝜇( = 3 𝑥( 𝜎(% = 3(𝑥( −𝜇( )% 1 𝜇%
𝑚 𝑚 µ= 3 x (") µ=
")$ ")$ 𝑚 …
")$ 𝜇+
3. Given new example 𝑥, compute 𝑝(𝑥):
+ +
1 (𝑥( − 𝜇( )%
𝑝 𝑥 = :𝑝 𝑥( ; 𝜇( , 𝜎(% =: 𝑒𝑥𝑝(− )
2𝜋𝜎( 2𝜎(%
()$ ()$
Anomaly if 𝑝 𝑥 < 𝜀
Andrew Ng
Anomaly detection example
"
𝑥()*(
𝑥%
𝑥$ 𝑥%
$
𝑥()*( 𝜇" = 5, 𝜎" = 2 𝜇$ = 3, 𝜎$ = 1
𝑥$ 𝑝(𝑥" ; 𝜇" , 𝜎"$ ) 𝑝(𝑥$ ; 𝜇$ , 𝜎$$ )
𝜀 = 0.02
(')
𝑝 𝑥()*( = 0.0426
𝑥% (+)
𝑥$ 𝑝 𝑥()*( = 0.0021
Andrew Ng
Anomaly Detection
$ $ * *!"
Cross validation set: 𝑥,- , 𝑦,- , . . . , 𝑥,- !" , 𝑦,-
$ $ * *
Test set: 𝑥./0. , 𝑦./0. , . . . , 𝑥./0.#$%# , 𝑦./0.#$%#
Andrew Ng
Aircraft engines monitoring example
10000 good (normal) engines
20 flawed engines (anomalous)
Andrew Ng
Algorithm evaluation
Fit model 𝑝(𝑥) on training set 𝑥 (') , 𝑥 (+) , … , 𝑥 (,)
On a cross validation/test example 𝑥, predict
1 𝑖𝑓 𝑝 𝑥 < 𝜀 (𝑎𝑛𝑜𝑚𝑎𝑙𝑦)
𝑦= 8
0 𝑖𝑓 𝑝 𝑥 ≥ 𝜀 (𝑛𝑜𝑟𝑚𝑎𝑙)
Possible evaluation metrics:
- True positive, false positive, false negative, true negative
- Precision/Recall
- F1-score
Can also use cross validation set to choose parameter 𝜀
Andrew Ng
Anomaly Detection
Anomaly detection
vs. supervised learning
Anomaly detection vs. Supervised learning
Very small number (0 to 20) of Large number of positive
positive examples 𝑦 = 1; and negative examples.
large number of negative examples (𝑦 = 0);
Model 𝑝 𝑥 with just negative examples.
Use positive examples for cv and test sets
Enough positive examples
Many different “types” of anomalies. for algorithm to get a sense of
Hard for any algorithm to learn what positive examples are like.
(from just positive examples) Future positive examples likely to be
what the anomalies look like. similar to ones in training set.
Future anomalies may look
nothing like any of the anomalous
examples seen so far.
Andrew Ng
Anomaly detection vs. Supervised learning
• Fraud detection • Email spam classification
• Manufacturing: • Manufacturing:
Finding new previously unseen defects. Finding known, previously seen defects
(e.g. aircraft engines) (e.g. scratches on smartphones, 𝑦 = 1)
Andrew Ng
Anomaly Detection
np.log(x)
𝑥 𝑥
Andrew Ng
Error analysis for anomaly detection
Want 𝑝(𝑥) large for normal examples 𝑥.
𝑝(𝑥) small for anomalous examples 𝑥.
𝑥%
𝑥! 𝑥!
Andrew Ng
Monitoring computers in a data center
Choose features that might take on
unusually large or small values
in the event of an anomaly.
𝑥' = memory use of computer
𝑥+ = number of disk accesses/sec
𝑥- = CPU load
𝑥/ = network traffic
Andrew Ng
Copyright Notice
These slides are distributed under the Creative Commons License.
DeepLearning.AI makes these slides available for educational purposes. You may not use or distribute
these slides for commercial purposes. You may make copies of these slides and use or distribute them for
educational purposes as long as you cite DeepLearning.AI as the source of the slides.
Making recommendations
Predicting movie ratings Ratings
User rates movies using one to five stars
Love at last 5 5 0 0
Romance forever 5 ? ? 0
Cute puppies of love ? 4 0 ? nu = no. of users
Nonstop car chases 0 0 5 4 nm = no. of movies
Andrew Ng
Collaborative Filtering
For user j: Predict user j’s rating for movie i as w(j) $ x(i) + b(j)
Andrew Ng
Cost function
Notation:
r(i,j) = 1 if user j has rated movie i (0 otherwise)
y(i,j) = rating given by user j on movie i (if defined)
w(j), b(j) = parameters for user j
x(i) = feature vector for movie i
Andrew Ng
Cost function
To learn parameters 𝑤 (() , 𝑏 (() for user j :
)
( ( 1 * λ ($) *
J 𝑤 ,𝑏 = + 𝑤 ($) $ 𝑥 (+) + 𝑏 ($) − 𝑦 (+,$) + + 𝑤&
2 2
+:-(+,$) &'(
Andrew Ng
Collaborative Filtering
&
to learn 𝑥 : %
1 & λ + 𝑥 (&) $
J 𝑥 + = 5 𝑤 (() 6 𝑥 (+) + 𝑏 (() − 𝑦 (+,() + ,
2 2 ,'"
(:- +,( .)
Andrew Ng
j=1 j=2 j=3
𝑖=1 Movie1 5 5 ?
1' 1' 1
1 & λ (0) &
min 3 3 𝑤 (0) ! 𝑥 (2) +𝑏 (0) − 𝑦 (2,0) + 3 3 𝑤5
,(%),.(%), ⋯, , &' ,. &' 2 2
0%# 2:4 2,0 %# 0%# 5%#
"
Cost function to learn 𝑥 , ⋯ , 𝑥 (%%) :
1( 1( 1
1 & λ (2) &
min (& 3 3 𝑤 (0) ! 𝑥 (2) +𝑏 (0) − 𝑦 (2,0) + 3 3 𝑥5
6 , ⋯, 6 ()
(%) 2 2
2%# 0:4 2,0 %# 2%# 5%#
Andrew Ng
Gradient Descent
Linear regression (course 1)
repeat {
< (() (()
𝑤+ = 𝑤+ − 𝛼 <= 𝐽 𝑤, 𝑏 𝑤+ = 𝑤+ −𝛼 /
> (?) 𝐽 𝑤, 𝑏, 𝑥
/ /3>
𝑏=𝑏− 𝛼 /0 𝐽 𝑤, 𝑏
𝑏 (() = 𝑏 (() − 𝛼 / ? 𝐽(𝑤, 𝑏, 𝑥)
/0
(+) (+) /
𝑥1 = 𝑥1 − 𝛼 (>) J(w,b,x)
/2@
}
w, b, x
Andrew Ng
Collaborative Filtering
Binary labels:
favs,
likes and clicks
Binary labels
Andrew Ng
Example applications
1. Did user j purchase an item after being shown?
2. Did user j fav/like an item?
3. Did user j spend at least 30sec with an item?
4. Did user j click on an item?
Meaning of ratings:
1 - engaged after being shown item
0 - did not engage after being shown item
? - item not yet shown
Andrew Ng
From regression to binary classification
Previously:
Predict 𝒚 𝒊,𝒋 as 𝒘(𝒋) 6 𝒙(𝒊) + 𝒃(𝒋)
For binary labels:
Predict that the probability of 𝒚 𝒊,𝒋 =𝟏
is given by g 𝒘(𝒋) 6 𝒙(𝒊) + 𝒃(𝒋)
9
where g 𝑧 = 9:; "#
Andrew Ng
Cost function for binary application
Previous cost function:
1( 1 1' 1
1 & λ (2) & λ &
3 𝑤 (0) ! 𝑥 (2) + 𝑏 (0) − 𝑦 (2,0) + 3 3 𝑥5 + 3 3 𝑤5
0
2 2,0 :4 2,0 %#
2 2
2%# 5%# 0%# 5%#
( + (
Loss for binary labels 𝑦 (+,() : 𝑓(3,0,2) 𝑥 = 𝑔(𝑤 6𝑥 +𝑏 )
Loss for
𝐿 𝑓(,,.,6) 𝑥 , 𝑦 2,0 =−𝑦 2,0 log 𝑓(,,.,6) 𝑥 − 1−𝑦 2,0 log 1 − 𝑓(,,.,6) 𝑥 single
example
Andrew Ng
Recommender Systems
implementation
Mean normalization
Users who have not rated any movies
Movie Alice(1) Bob (2) Carol (3) Dave (4) Eve (5)
5 5 0 0 ?
Love at last 5 5 0 0 ? 5 ? ? 0 ?
? 4 0 ? ?
Romance forever 5 ? ? 0 ?
0 0 5 4 ?
Cute puppies of love ? 4 0 ? ?
0 0 5 0 ?
Nonstop car chases 0 0 5 4 ?
Swords vs. karate 0 0 5 ? ?
𝐦𝐢𝐧 1' 1 1( 1
𝒘(𝟏), ….𝒘 𝒏𝒖 1 & λ 0 & λ (2) &
𝒃(𝟏), ….𝒃 𝒏𝒖 3 𝑤 (0) ! 𝑥 (2) + 𝑏 (0) − 𝑦 (2,0) + 3 3 𝑤5 + 3 3 𝑥5
2 2 2
𝒙(𝟏), ….𝒙 𝒏𝒎 2,0 :4 2,0 %# 0%# 5%# 2%# 5%#
Mean Normalization
User 5 (Eve):
+𝜇
Recommender Systems
implementational detail
TensorFlow implementation
Derivatives in ML
Gradient descent algorithm 3
Repeat until convergence
Learning rate 2
Derivative
1
0
-0.5 0 0.5 1 1.5 2 2.5
Andrew Ng
y
𝑱 = (𝒘𝒙 − 𝟏)𝟐
w = tf.Variable(3.0)
x = 1.0
Tf.variables are the parameters we want
y = 1.0 # target value to optimize
alpha = 0.01 Auto Diff
iterations = 30 Auto Grad
for iter in range(iterations):
Fix b = 0 for this example # Use TensorFlow’s Gradient tape to record the steps
# used to compute the cost J, to enable auto differentiation.
with tf.GradientTape() as tape:
fwb = w*x f(x)
costJ = (fwb - y)**2
𝝏
# Use the gradient tape to calculate the gradients 𝑱(𝒘)
# of the cost with respect to the parameter w. 𝝏𝒘
[dJdw] = tape.gradient( costJ, [w] )
Andrew Ng
Implementation in TensorFlow
# Instantiate an optimizer.
Gradient descent algorithm optimizer = keras.optimizers.Adam(learning_rate=1e-1)
iterations = 200
Repeat until convergence for iter in range(iterations):
# Use TensorFlow’s GradientTape
# to record the operations used to compute the cost
with tf.GradientTape() as tape:
Dataset credit: Harper and Konstan. 2015. The MovieLens Datasets: History and Context
Andrew Ng
Collaborative Filtering
*
i.e. with smallest (1) (+) &
distance 5 𝑥8 − 𝑥8 𝒙(𝒌) x(i)
8.)
𝟐
𝒙(𝒌) − 𝒙(𝒊)
Andrew Ng
Limitations of Collaborative Filtering
Cold start problem. How to
Andrew Ng
Content-based Filtering
Collaborative filtering
vs
Content-based filtering
Collaborative filtering vs Content-based filtering
Collaborative filtering:
Recommend items to you based on rating of users who
gave similar ratings as you
Content-based filtering:
Recommend items to you based on features of user and item
to find good match
if user j has rated item i
rating given by user j on item i (if defined)
Andrew Ng
Examples of user and item features
User features:
• Age
• Gender
(𝐣)
• Country 𝐱 𝐮 𝐟𝐨𝐫 𝐮𝐬𝐞𝐫 𝐣
• Movies watched
• Average rating per genre Vector size
• … could be
different
Movie features:
• Year
• Genre/Genres (𝐢)
𝐱 𝐦 𝐟𝐨𝐫 𝐦𝐨𝐯𝐢𝐞 𝐢
• Reviews
• Average rating
• …
Andrew Ng
Content-based filtering: Learning to match
Predict rating of user j on movie i as
computed
computed (𝒊)
(𝒋) from 𝒙𝒎
from 𝒙𝒖
Andrew Ng
Content-based Filtering
⋮
xu ⋮ vu xm ⋮ vm
⋮ ⋮ ⋮
64 32 128 32
128 256
Prediction :
𝒈 𝒗𝒖 $ 𝒗𝒎 𝒕𝒐 𝒑𝒓𝒆𝒅𝒊𝒄𝒕 𝒕𝒉𝒆 𝒑𝒓𝒐𝒃𝒂𝒃𝒊𝒍𝒊𝒕𝒚 that 𝒚(𝒊,𝒋) 𝒊𝒔 𝟏
Andrew Ng
Neural network architecture
⋮
xu ⋮
⋮
vu
Prediction
vm
⋮ ⋮
xm ⋮
&
Cost 𝐽= 5 𝑣! (() 6 𝑣" (+) − 𝑦 (+,() + NN regularization term
function +,( :-(+,().)
Andrew Ng
Learned user and item vectors:
(𝒋) (𝒋)
𝒗𝒖 is a vector of length 32 that describes user j with features 𝒙𝒖
(𝒊) (𝒊)
𝒗𝒎 is a vector of length 32 that describes movie i with features 𝒙𝒎
Andrew Ng
Advanced implementation
Recommending from
a large catalogue
How to efficiently find recommendation from
a large set of items?
• Movies 1000+ xu ⋮
⋮ ⋮
• Ads 1m+ vu
• Songs 10m+ predictions
• Products 10m+ vm
xm ⋮ ⋮ ⋮
Andrew Ng
Two steps: Retrieval & Ranking
Retrieval:
• Generate large list of plausible item candidates
e.g.
1) For each of the last 10 movies watched by the user,
find 10 most similar movies
Ranking:
⋮
• Take list retrieved xu ⋮
⋮
vu
and rank using
learned model predictions
vm
⋮ ⋮
xm ⋮
Andrew Ng
Retrieval step
Andrew Ng
Advanced implementation
Ethical use of
recommender systems
What is the goal of the recommender system?
Recommend:
Andrew Ng
Ethical considerations with recommender systems
Andrew Ng
Other problematic cases:
Andrew Ng
Content-based Filtering
TensorFlow Implementation
user_NN = tf.keras.models.Sequential([
tf.keras.layers.Dense(256, activation='relu'),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(32)
])
item_NN = tf.keras.models.Sequential([
tf.keras.layers.Dense(256, activation='relu'),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(32 )
])
DeepLearning.AI makes these slides available for educational purposes. You may not use or distribute
these slides for commercial purposes. You may make copies of these slides and use or distribute them for
educational purposes as long as you cite DeepLearning.AI as the source of the slides.
What is Reinforcement
Learning?
Autonomous Helicopter
GPS
Accelerometers
Compass
Computer
Andrew Ng
Autonomous Helicopter
[Thanks to Pieter Abbeel, Adam Coates and Morgan Quigley] For more videos: http://heli.stanford.edu.
Andrew Ng
Reinforcement Learning
position of helicopter how to move control sticks
# $
reward function
Andrew Ng
Robotic Dog Example
Andrew Ng
Applications
• Controlling robots
• Factory optimization
• Financial (stock) trading
• Playing games (including video games)
Andrew Ng
Reinforcement
Learning formalism
state
left right
state
Andrew Ng
Reinforcement
Learning formalism
The Return in
reinforcement learning
Return
100 0 0 0 0 40
state 1 2 3 4 5 6
Return
Return (until terminal state)
Discount Factor
Return
Andrew Ng
Example of Return
return
! = 0.5
100 0 0 0 0 40 reward
1 2 3 4 5 6
100 0 0 0 0 40
1 2 3 4 5 6
100 0 0 0 0 40
1 2 3 4 5 6
Andrew Ng
Reinforcement
Learning formalism
policy
state action 100 40
100 40
100 40
A policy is a function 5 ! = " mapping from states to actions, that tells you
what action a to take in a given state s.
Andrew Ng
The goal of reinforcement learning
100 40
Find a policy 5 that tells you what action (a = 5(s)) to take in every state (s) so as to
maximize the return.
Andrew Ng
Reinforcement
Learning formalism
how to move
actions possible move
control stick
rewards
discount factor 7
Andrew Ng
Markov Decision Process (MDP)
Agent
Agent
&
state s
reward R action a
Environment /
World
Andrew Ng
State-action value
function
100 0 0 0 0 40
1 2 3 4 5 6
Andrew Ng
Picking actions
100 50 25 12.5 20 40 return
action
100 0 0 0 0 40 reward
100 0 0 0 0 40
1 2 3 4 5 6
! ", $ = Return if you
• start in state %.
• take action & (once).
• then behave optimally after that.
Andrew Ng
State-action value
function
Andrew Ng
State-action value
function
Bellman Equation
Bellman Equation
' (, * = Return if you
• start in state !.
1 2 3 4 5 6
• take action " (once).
• then behave optimally after that.
Andrew Ng
Bellman Equation
! ", $ = & " + ( max !(" ( , $( )
? '
100 0 0 0 0 40
1 2 3 4 5 6
Andrew Ng
Explanation of Bellman Equation
' (, * = Return if you
• start in state !.
• take action " (once).
• then behave optimally after that.
Andrew Ng
Explanation of Bellman Equation
! ", $ = & " + ( max !(" ( , $( )
? '
100 0 0 0 0 40
1 2 3 4 5 6
Andrew Ng
State-action value
function
Random (stochastic)
environment (Optional)
Stochastic Environment
1 2 3 4 5 6
Andrew Ng
Expected Return
100 0 0 0 0 40
1 2 3 4 5 6
Andrew Ng
Expected Return
Goal of Reinforcement Learning:
Choose a policy / ! = " that will tell us what action " to take in state ! so as
to maximize the expected return.
, ,
Bellman ! ", $ = & " + ( .[max
!
! " ,$ ]
+
Equation:
Andrew Ng
Jupyter Notebook
Andrew Ng
Continuous State
Spaces
Example of continuous
state applications
Discrete vs Continuous State
Discrete State:
1 2 3 4 5 6
Continuous State:
0 6 km
Andrew Ng
Autonomous Helicopter
Andrew Ng
Continuous State
Spaces
Lunar Lander
Lunar Lander
Andrew Ng
Lunar Lander
actions:
do nothing
left thruster
main thruster
right thruster
Andrew Ng
Reward Function
• Getting to landing pad: 100 – 140
• Additional reward for moving toward/away from pad.
• Crash: -100
• Soft landing: +100
• Leg grounded: +10
• Fire main engine: -0.3
• Fire side thruster: -0.03
Andrew Ng
Lunar Lander Problem
Learn a policy ! that, given #
$
#̇
$̇
!=
&
&̇
'
(
picks action " = ! $ so as to maximize the return.
) = 0.985
Andrew Ng
Continuous State
Spaces
Andrew Ng
Bellman Equation
! = # ,% &
(")
# (") , %(") , '(# (") ), # $
5 &
Andrew Ng
Learning Algorithm
Initialize neural network randomly as guess of %($, ").
Repeat {
Take actions in the lunar lander. Get ($, ", =($), $ ! ).
Store 10,000 most recent ($, ", =($), $ ! ) tuples.
Andrew Ng
Continuous State
Spaces
Algorithm refinement:
Improved neural network
architecture
Deep Reinforcement
5
Learning
6
5̇
6̇
! 8
8̇
x= 9 #(!, ")
" :
1
0
0
0
12 inputs 64 units 64 units 1 unit
In a state $, use neural network to compute
%($, nothing), %($, left), %($, main), %($, right)
Pick the action a that maximizes %($, ")
Andrew Ng
Deep Reinforcement Learning
#
$
& %($, nothing)
#̇ %($, left)
! = $̇ %($, main)
%($, right)
&̇
'
8 inputs ( 64 units 64 units 4 units
Andrew Ng
Continuous State
Spaces
Algorithm refinement:
!-greedy policy
Learning Algorithm
Initialize neural network randomly as guess of %($, ").
Repeat {
Take actions in the lunar lander. Get ($, ", =($), $ ! ).
Store 10,000 most recent ($, ", =($), $ ! ) tuples.
Train model:
Create training set of 10,000 examples using
Andrew Ng
How to choose actions while still learning?
In some state s
Option 1:
Pick the action " that maximizes %($, ").
Option 2:
With probability 0.95, pick the action a that maximizes %($, ").
With probability 0.05, pick an action " randomly.
(E = 0.05)
Andrew Ng
Continuous State
Spaces
Algorithm refinement:
Mini-batch and soft update
(optional)
How to choose actions while still learning?
$
1 ! ! (
! & 0 1, 3 = 7 8%,' # − $
26
!"#
2104 400
1416 232
1534 315
852 178 repeat { +
… … ' 1 ( ( -
# =#−& #, I
( 2H * D%,' 5 − 6
3210 870 '# ()*
+
' 1 ( ( -
#, I
* = * − & ( 2H * D%,' 5 − 6
'* ()*
}
Andrew Ng
V
V
Mini-batch
V
V price in $1000’s
V
500
! &
400
2104 400 300
1416 232
1534 315 200
batch
852 178
100
… …
3210 870 0
0 1000 2000 3000
size in feet2
Andrew Ng
Mini-batch
! & 0 w, 3
2104 400
1416 232
1534 315 K- K-
852 178 # bedrooms
… …
3210 870
K* K*
size in feet2
Andrew Ng
Learning Algorithm
Initialize neural network randomly as guess of %($, ").
Repeat {
Take actions in the lunar lander. Get ($, ", =($), $ ! ).
Store 10,000 most recent ($, ", =($), $ ! ) tuples.
Train model:
Create training set of 10,000 examples using
Andrew Ng
Soft Update
Set ! = !;<= .
Andrew Ng
Continuous State
Spaces
The state of
reinforcement learning
Limitations of Reinforcement Learning
• Much easier to get to work in a simulation than a real robot!
• Far fewer applications than supervised and unsupervised
learning.
• But … exciting research direction with potential for future
applications.
Andrew Ng
Conclusion
Summary and
Thank you
Courses
• Supervised Machine Learning: Regression and Classification
Linear regression, logistic regression, gradient descent
• Advanced Learning Algorithms
Neural networks, decision trees, advice for ML
• Unsupervised Learning, Recommenders, Reinforcement Learning
Clustering, anomaly detection, collaborative filtering, content-
based filtering, reinforcement learning
Andrew Ng
Andrew Ng