Try   HackMD

Reinforcement Learning | Introduction and Model-Based Control

111學年第二學期選修交大資工所謝秉均老師開設之強化學習原理。

因為觀念複雜且不容易消化,所以決定在每次上完課之後,好好把課堂學到的東西整理成筆記,內化成自己的。
(希望我能堅持下去QQ)

另外我在上這堂課的同時,也有看 Stanford 的線上 RL 課程,所以筆記可能也會稍微整合一些些 Stanford 線上課的內容。

Reinforcement Learning | Stanford Online:
https://www.youtube.com/watch?v=FgzM3zpZ55o&list=PLoROMvodv4rOSOPzutgyCTapiGlY2Nd8u&index=1

Introduction

Overview

我們可以用一句話簡述強化學習 (Reinforcement Learning):
Learn to take a sequences of actions to achieve a specific goal in an unknown environment.

  • Learn: 表示我們事先不知道環境是如何活動的
  • Sequence of actions: 表示和環境多次的互動
  • Goal: 例如獲得高 reward

RL 的四個重點議題,也讓 RL 和其他機器學習方法有所分別:

  • Optimization: Agent 需要最佳化自己的 action 來獲得最大的 reward
  • Exploration: 透過與環境互動來嘗試不同的決定並學習,但可能會面臨 exploration 與 exploitation 兩者的 trade off
  • Delayed consequences: 某個決定可能之後才有影響
  • Generalization: Agent 是否能判斷某個 action 在之前沒經歷過的 state 下的好壞?

比較:
Supervised Learning: Optimization, Generalization
Imitation Learning: Optimization, Generalization, Delayed consequences

Sequential Decision Making

Agent 和 Environment 的互動可以用下圖來表示:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

另一種 trajectory 的註記方式為:

s0,a0,r0,s1,... ,兩個都可以

在 agent 和 environment 的交互之下,一個 agent 會採取一連串的 actions

{at},並觀察到一連串的 states
{st}
以及獲得一連串的 rewards
{rt}

一個 RL agent 常包含以下要素:

  1. Model: 描述環境會如何針對 agent 的行為而改變
    包含 transition model,是所有 states 的集合

    S 的機率分布:
    P(st+1=s|st=s,at=a)

    以及 reward model
    r(st=s,at=a)=E[rt|st=s,at=a]

  2. Policy: 從 states 映射到 actions 的函數,決定 agent 會如何採取的 action
    可以是 deterministic 的:

    π(s)=a
    也可以是 stochastic 的:
    π(a|s)=P(at=a|st=s)

  3. Value function: 當遵從某個 policy 時,在特定 state 或 action 之下可以獲得的 future rewards,定義為:

    Vπ(st=s)=Eπ[rt+1+γrt+2+γ2rt+3+...|st=s]

以上三點更詳細的概念會在後續陸續提到。

根據是否有明確的 model,RL algorithm 可以被分為以下兩種:

  • Model-based
  • Model-free

下圖分類了各種不同的 RL agents:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Markov Decision Process

建構環境 (Model the environment) 的方法有很多種,其中最基礎且重要的方法是 Markov Decision Process (MDP)。

Markov chain

Markov chain 是一種隨機過程,我們可以用經典的 Mars Rover Problem 作為例子:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

一個抽樣的 trajectory 記作

s0,s1,s2,...,st,st+1,...,例如
x3,x4,x5,x4,x5,...
,而箭頭上的數值代表 transition probability,例如
P(st+1=x2|st=x1)=0.5

Markov chain 符合 Markov property,意即給定當前的 state ,則未來和過去的狀態無關。

Markov Property
A state

st is Markov if and only if
P(st+1|st)=P(st+1|s1,...,st)

Markov Chain
A Markov chain

(S,P) is specified by:

  1. State space
    S
    : a (finite) set of possible states.
  2. Transition matrix
    P=[Pss]
    with elements
    Pss=P(st+1=s|st=s)

P 是一個
|S|×|S|
的矩陣,即
P=[P11P12...P1nP21P22...P2nPn1Pn2...Pnn]

其中
Pij=P(st+1=j|st=i)

P 具有兩個性質:

  1. 每個 entry 都是非負的
    這是因為每個 entry 都是一個機率值,不會出現負數
  2. Row sum = 1
    例如:
    P
    的第一行是由
    s1
    轉換到
    s1,...,sn
    的機率,故全部的值相加會等於
    1

Markov Reward Process

在 Markov chain 的基礎上,加上 reward function,則我們可以定義 Markov Reward Process:

Markov Reward Process
An MRP

(S,P,R,γ) is specified by
Underlying dynamics:

  1. State space
    S
  2. Transition matrix
    P=[Pss]
    with
    Pss=P(st+1=s|st=s)

Task:

  1. Reward function
    Rs=E[rt+1|st=s]
  2. Discount factor
    γ[0,1]

Markov Reward Process 用於描述一個在不同狀態之間轉換的系統,其中每個狀態都有一個與之相關聯的即時 reward,並且轉換的過程滿足 Markov Property。

Return

Gt is the cumulative discounted rewards over a single trajectory from
t
onward (random).
Gt=rt+1+γrt+2+γ2rt+3+...=k=0γkrt+k+1

State-value function

V(s) is the expected return if state
s
is the starting state.
V(s)=E[Gt|st=s]=E[rt+1+γrt+2+γ2rt+3+...|st=s]

Return 的計算十分簡單。同樣再以 Mars Rover Problem 作為例子,令在

x1 的 reward
R1=0.05
R6=1
,其他為
0
。令
γ=0.9
,對於 episode
x5,x6,x6,x5,x4
,return 為:
Gt=0+(1×0.9)+(1×0.92)+(0×0.93)+(0×0.94)

而 state-value function

V(s) 該如何計算呢?

因為

V(s)
Gt
的期望值,一個非常直觀的方法是使用暴力解,只要我們抽樣夠多的 trajectories,則它們
Gt
的平均即是
V(s)

另一種較常見的方法是使用 dynamic programming:

V(s)=E[Gt|st=s]=E[rt+1+γrt+2+γ2rt+3+...|st=s]=E[rt+1+γGt+1|st=s]=E[rt+1|st=s]+γE[Gt+1|st=s]=Rs+γsP(s|st=s)E[Gt+1|st=s,st+1=s]=Rs+γsP(s|st=s)E[Gt+1|st+1=s]=Rs+γsPssV(s)

E[Gt+1|st=s,st+1=s]=V(s) 是因為符合 Markov Property

由此我們導出在 MRP 使用的 Bellman Expectation Equation:

Bellman Expectation Equation for MRP

V(s)=Rs+γsPssV(s)

Bellman Expectation Equation 寫成矩陣型式:

V=R+γPV=>[V(s1)V(s2)V(sn)]=[R1R2Rn]+γ[P11P12...P1nP21P22...P2nPn1Pn2...Pnn][V(s1)V(s2)V(sn)]

因為

V=R+γPV,經由推導我們可得
V=(IγP)1R
,得到
V
之解。

然而若直接計算反矩陣來得到解,計算的時間複雜度為

O(n3),非常沒有效率,故我們需要其他的解法,這會在之後的內容中介紹。


在 MRP 中我們還使用到了 discount factor

γ。直觀而言,我們較不在乎離當前時間越遠的未來,故 future reward 會乘上
γ
;數學上,有了 discount factor,可以避免 return 無法收斂。

γ 的選擇:

  • Continuing environment: 固定的
    γ<1
  • Episodic environment:
    γ1

Markov Decision Process

在 Markov Reward Process 的基礎上,加上各種可能的 actions ,則我們可以定義 Markov Decision Process:

Markov Decision Process
An MDP

(S,A,P,R,γ) is specified by
Underlying dynamics:

  1. State space
    S
  2. Action space
    A
  3. Transition matrix
    P=[Pssa]
    with
    Pssa=P(st+1=s|st=s,at=a)

Task:

  1. Reward function
    Rsa=E[rt+1|st=s,at=a]
  2. Discount factor
    γ[0,1]

MDP 描述一個由狀態、行動、獎勵和轉移概率所構成的決策過程

有了 states 和 actions 後,我們便能夠定義 policy

A (randomized) policy

π is a conditional distribution over possible actions given state
s
, i.e., for any
sS
,
aA
,
π(a|s):=P(at=a|st=s)

因為我們已經假設整個過程符合 Markov Property,故這裡我們專注於討論 stationary policy,意指

π 和時間沒有關係。

對於一個 MDP,如果我們固定 policy

π(a|s),則:
Pssπ=aAπ(a|s)Pssa

此固定 policy 之下由

ss 的機率 =
aA
(此 policy 下在
s
下採取
a
的機率) X (採取
a
ss
的機率)

Rsπ=aAπ(a|s)Rsa

此固定 policy 之下

s 作為起點的 reward =
aA
(此 policy 下在
s
下採取
a
的機率) X (採取
a
s
作為起點的 reward)

綜合以上兩點,我們可以發現對於一個 MDP,如果我們固定 policy

π(a|s),則我們可以得到
π
-induced MRP
(S,Pπ,Rπ,γ)

多了 actions 之後,我們便可以定義 MDP 的 return 和 state-value function:

Return

Gt is the cumulative discounted rewards over a single trajectory from
t
onward (random).
Gt=rt+1+γrt+2+γ2rt+3+...=k=0γkr(st+k+1,at+k+1)

State-value function

Vπ(s) is the expected return if state
s
is the starting state.
Vπ(s)=E[Gt|st=s;π]

值得注意的是,

Vπ(s) 具有隨機性,來源包含:

  1. Reward
  2. State transition
  3. Policy

Model-Based Evaluation and Control

MDP Policy Evaluation

我們該如何評價一個 policy 的好壞呢?

在此需要先介紹新的定義:

Action-value function

Qπ(s,a) is the expected return if we start from state
s
and take action
a
, and then follow the original policy
π
.
Qπ(s,a)=E[Gt|st=s,at=a;π]

Vπ(s)
Qπ(s,a)
是具有關聯性的,可以互相以對方表示,也可以寫成遞迴式:

Bellman Expectation Equations:

  • V
    written in
    Q
    :
    Vπ(s)=aAπ(a|s)Qπ(s,a)
  • Q
    written in
    V
    :
    Qπ(s,a)=Rsa+γsSPssaVπ(s)
  • V
    written in
    V
    :
    Vπ(s)=aAπ(a|s)[Rsa+γsSPssaVπ(s)]
  • Q
    written in
    Q
    :
    Qπ(s,a)=Rsa+γsSPssa[aAπ(a|s)Qπ(s,a)]

因為

Vπ 可以寫成自己的遞迴式,因此給定一個 policy
π
,我們可以找出
Vπ
的值,此即為 policy evaluation。

兩種 policy evaluation 的方法:

  1. Non-iterative policy evaluation
    Matrx form:
    Vπ=Rπ+γPπVπ=> Vπ=(IγPπ)1Rπ
  2. Iterative policy evaluation

Iterative MDP Policy Evaluation (IPE)
For a fixed policy

π:
Initialize
V0π(s)=0
for all
s

For
k=1,2,...

 for all
s

  
Vkπ(s)=aAπ(a|s)[Rsa+γsSPssaVk1π(s)]

代入

V0π(s) 可以得到
V1π(s)
,代入
V1π(s)
可以得到
V2π(s)
,迭代直到 converge。

如果初始值

V0π(s)=Vπ(s),則一次迴圈就收斂啦


我們可能會好奇,利用 IPE 計算是否真的能夠使

Vkπ(s) 收斂至
Vπ(s)

考慮一個 matrix vector space

V0π(s),V1π(s),...,Vkπ(s)R|S|,我們可以透過證明以下兩步驟來證明 IPE 會使
Vkπ(s)
converge:

  1. IPE is an contraction operator.
  2. Under any contraction operator, the points converge to a fixed point.

定義 IPE Operator:

IPE Operator (also called Bellman Expectation Backup Operator)

Tπ(V):=Rπ+γPπV

我們使用

L-norm 來衡量兩個 value function
V,V
之間的距離:
||VV||:=maxsS|V(s)V(s)|

IPE is an contraction operator.
proof:

||Tπ(V)Tπ(V)||=||(Rπ+γPπV)(Rπ+γPπV)||=γ||Pπ(VV)||γ||VV||

第二行至第三行不等式成立是因為

Pπ 的每個 entry 都
1

我們稱

Tπ
γ
-contraction operator。

Under any contraction operator, the points converge to a fixed point.
上述可以根據 Banach Fixed-Point Theorem 得證:

Banach Fixed-Point Theorem
For any non-empty complete metric space, if

T is a
γ
-contraction operator, then
T
has a unique fixed point.

Complete: 表示極限 (limit) 是在 space 裡面

Summary:
Under IPE, the value function

Vkπ converges to the correct
Vπ
, for any initialization
V0π
.

Finding Optimal Policy

我們知道如何進行 policy evaluation 了,根據計算出來的評價,以下討論如何去找到最佳的 (optimal) policy。

定義:

Optimal State-Value Function

V(s)=maxπVπ(s)

對任意 state

s 遵循最佳 policy 所能得到的 expected return

Optimal Action-Value Function

Q(s,a)=maxπQπ(s,a)

對任意 state

s 執行
a
後再遵循最佳 policy 繼續執行所能得到的 expected return

什麼條件下才能說一個 policy 比另一個更好呢?

Partial Ordering of Policies

ππ if Vπ(s)Vπ(s),s

注意!一定要對每個狀態都成立

Optimal Policy
A policy

π is an optimal policy if it is better than or equal to all other policies, i.e.
ππ, for all π

π 無論如何都會存在嗎?

Theorem (Existence of Optimal Policy)
For any finite MDP, there always exists an optimal policy

π s.t.
ππ, for all π


Optimal policy 存在,但該如何找到?

當我們計算出了每個狀態下的最佳 action-value function

Q(s,a) 時,我們便可以依此找出最優策略:
π(a|s)=argmaxaAQ(s,a)

也就是說對於每一個狀態
s
,我們都能夠確定最佳的動作
a
(即最大化
Q(s,a)
的動作) ,從而找到對應的 optimal policy。

因此,計算出

Q(s,a) 等同於找到 optimal policy

接下來將討論如何找到

Q(s,a)

定義:

Bellman Optimality Equations:

  • V
    written in
    Q
    :
    V(s)=maxaQ(s,a)
  • Q
    written in
    V
    :
    Q(s,a)=Rsa+γsSPssaV(s)
  • V
    written in
    V
    :
    V(s)=maxa[Rsa+γsSPssaV(s)]
  • Q
    written in
    Q
    :
    Q(s,a)=Rsa+γsSPssa(maxaQ(s,a))

Bellman Optimality Equations 因為需要取最大值,無法像 Bellman Expectation Equations 一樣使用線性代數解得答案。以下為兩種 iterative 的求解方法:

  1. Value Iteration
  2. Policy Iteration

Value Iteration

我們知道 Bellman Optimality Equation:

V(s)=maxa[Rsa+γsSPssaV(s)]
因此我們可以透過 Bellman Optimality Equation 定義 Bellman Optimality Operator:

Bellman Optimality Operator

T(V)=maxaA(Ra+γPaV)

利用 Bellman Optimality Operator 進行 Value Iteration:

Value Iteration
Initialize

k=0 and set
V0(s)=0
for all
s

Repeat until convergence:
Vk+1T(Vk)

計算

Vk+1=T(Vk) 等同於計算:

for each

s
Vk+1(s)=maxa[Rsa+γsSPssaVk(s)]=maxaQk(s,a)

sSPssaV(s) 需花
O(|S|)
,找所有 action 中的 max 花
O(|A|)
,而每步驟要對所有 states 計算花
O(|S|)
,故 value iteration 的時間複雜度為
O(|S|2|A|)

值得注意的是,在未收斂之前,我們在迭代的過程中計算出的 intermediate value function

Vk 可能不能對應到任何特定的 policy。

當我們找到

V 之後,便可以透過 greedy policy 來找到最佳 policy。對於所有
s
,選擇一個 action
a
,使得
Q(s,a)=r+γV(s)
最大化,即
π(s)=argmaxaQ(s,a)=argmaxa(R(s,a)+γsP(s|s,a)V(s))

此 policy 即為 optimal policy。


Value Iteration 並不是很好理解,我們用馬力歐找寶藏的遊戲作為例子來解釋 Value Iteration 整個過程:

  • States: 馬力歐的位置,在九宮格上共 9 種可能
  • Actions: 上下左右,若有寶箱可拿寶箱
  • Reward:
    • 馬力歐拿到寶箱,
      Rsa=0
    • 馬力歐朝任一方向移動,
      Rsa=1
  • 假設
    γ=1
    ,且除非撞到牆壁,否則
    Pssa=1

假設座標由右至左、由上至下標註,寶箱在 (2, 3)。每一次迭代中,對於每個 state,我們都根據 Bellman optimality equation 計算它們的下一步 value,即計算

Vk+1(s)=maxa[Rsa+γsSPssaVk(s)]=maxaQk(s,a)
迭代過程如下:

  • 初始化:所有 states 的

    V0(S)=0

  • 第一次 iteration

    • V1((2,3))=0+0=0
    • 其他 states
      V1(s)
      之值皆為
      1
      ,例如:
      V1((1,1))=1+0=1
  • 第二次 iteration

    • V2((2,3))=0+0=0
    • 對於
      (1,1)
      ,往下或往右可以有最大的 value,故
      V2((1,1))=(1)+(1)=2
      (1,2),(2,1),(3,1),(3,2)
      同理
    • 對於
      (1,3)
      ,往右可以有最大的 value,故
      V2((1,3))=(1)+0=1
      ,其他位於寶箱附近的 states 同理
  • 第三次 iteration

    • V3((2,3))=0+0=0
    • 對於
      (1,1)
      ,往下或往右可以有最大的 value,故
      V3((1,1))=(1)+(2)=3
      ,其他距離寶箱 3 步的 states 同理
    • 對於
      (1,2)
      ,往下或往右可以有最大的 value,故
      V3((1,2))=(1)+(1)=2
      ,其他距離寶箱 2 步的 states 同理
    • 對於
      (1,3)
      ,往右可以有最大的 value,故
      V3((1,3))=(1)+0=1
      ,其他位於寶箱附近的 states 同理
  • 第四次 iteration
    所有

    V(s) 皆沒有變化,故已收斂

參考資料:
https://zhuanlan.zhihu.com/p/33229439


能夠用 Value Iteration 來找最佳 policy 的原因是 Value Iteration 收斂的性質:

Value iteration converges on

V
For any initial
V0
, value iteration achieves that
VkV
(in
L
-norm)

此性質可透過以下三步來證明:

1.

T is a contraction operator.
proof:
||T(V)T(V^)||=maxs|T(V(s))T(V(s)^)|=maxs|maxa(Rsa+γsPssaV(S))maxa(Rsa+γsPssaV(S))|maxsmaxa|(Rsa+γsPssaV(S))(Rsa+γsPssaV(S))|maxsmaxa|γsPssa(V(s)V^(s))|γ||(VV^)||

=>
T
is a
γ
-contraction operator.

2. Under a contraction operator,

Vk shall converge to the unique fixed point.
proof:
Since
T
is a
γ
-contraction operator in a complete metric space, by Banach Fixed Point Theorem,
T
converges to the unique fixed point.

3. Since

V is a fixed point,
VkV
due to uniqueness.

γ 很接近
1
,則 value iteration 可能會迭代無限次而不收斂。

Policy Iteration

Policy iteration 的目的是透過交替進行 policy evaluation 和 policy improvement,逐步優化 policy,直到找到最佳 policy。

  1. Policy evaluation:
    固定 policy,計算出對應的
    Vπ(s)
    ,可使用任意 policy evaluation 的演算法
  2. Policy improvement:
    找出 policy
    ππ
    ,可使用任意 policy improvement 的演算法

Policy Iteration
(註:這裡針對 deterministic policy)
Initialize

k=0 and set
π0(s)
arbitrarily for all
s

While
k=0
or
πkπk1
:
 Derive
Vπk
via policy evaluation for
πk

 Derive
πk+1
by greedy one-step policy improvement

One-Step Policy Improvement
Given

Vπk, compute
Qπk(s,a)
:
Qπk(s,a)=R(s,a)+γsP(s|s,a)Vπk(s)

Derive the new policy
πk+1
for all states
s
:
πk+1(s)=argmaxaQπk(s,a)

為何 One-step policy improvement 合理?
假設我們採取

πk+1 只進行一步動作,之後的動作維持遵循
πk
,會比從頭到尾都遵循
πk
來得更好。這是因為
πk+1
選擇的 action 是使得
Qπk(s,a)
最大的 action,因此
Vπk+1(s)=Qπk(s,πk+1(s))=maxaQπk(s,a)R(s,πk(s))+γsP(s|s,a)Vπk(s)=Vπk(s)

若從頭到尾都採取

πk+1,也會比遵循
πk
好:

Theorem (Monotonic Policy Improvement)
Under the one-step policy improvement step, we have

Vπk+1(s)Vπk(s),s, and hence
πk+1πk

proof:

Vπk(s)maxaQπk(s,a)=maxaR(s,a)+γsSP(s|s,a)Vπk(s)=R(s,πk+1(s))+γsSP(s|s,πk+1(s))Vπk(s)R(s,πk+1(s))+γsSP(s|s,πk+1(s))maxaQπk(s,a)=R(s,πk+1(s))+γsSP(s|s,πk+1(s))    ×(R(s,πk+1(s))+γsSP(s|s,πk+1(s))Vπk(s))...=Vπk+1(s)

這個證明的想法可以用 “Peeling off" 的概念來想像:

已知由

s 遵循
πk+1
s
後再遵循
πk
比從頭到尾遵循
πk
來得好,則同理,由
s
遵循
πk+1
s
後再遵循
πk
也會比從
s
到尾都遵循
πk
來得好,以此類推。


若我們得到

πk+1=πk,則代表 policy iteration 收斂了,且也表示 Bellman optimality equation 被
πk
滿足:
Vπk(s)=maxaQπk(s,a)

此時
πk
必為 optimal policy。

Policy Iteration 和 Value Iteration 共同證明了 optimal policy 存在

值得一提的是,在只討論 deterministic policy 的情況下,policy iteration 會在有限次數的迭代內停下來。這是因為 deterministic policy 的數量為

|A||S|,因此我們最多迭代
|A||S|
次一定會停下。

Quick Summary

Problem Bellman Equation Algorithm
Prediction Bellman Expectation Equation IPE
Control Bellman Expectation Equation
+ Greedy Policy Improvement
Policy Iteration
Control Bellman Optimality Equation Value Iteration

Next

Reinforcement Learning | Policy Gradient
https://hackmd.io/@tsen159/RLNote2