二、马尔可夫决策过程
1.绪言
马尔可夫决策过程(Markov decision process,MDP)是强化学习问题在数学上的理想化形式
MDP中的环境是完全可观测的
几乎所有的强化学习问题都可以在数学上表示为马尔可夫决策过程
2.马尔可夫过程
马尔可夫性质
状态 S t S_t St具有马尔科夫性,当且仅当 P [ S t + 1 ∣ S t ] = P [ S t + 1 ∣ S 1 , . . . , S t ] \mathbb P[S_{t+1}|S_t]=P[S_{t+1}|S_1,...,S_t] P[St+1∣St]=P[St+1∣S1,...,St]
给定当前时刻的状态,将来与历史无关
状态是对过去的充分统计
状态转移矩阵
对于马尔可夫状态
s
s
s与其后继状态
s
′
s ^ \prime
s′,它们的状态转移概率定义为:
P
s
s
′
=
P
[
S
t
+
1
=
s
′
∣
S
t
=
s
]
\mathcal{P}_{s s^{\prime}}=\mathbb{P}\left[S_{t+1}=s^{\prime} \mid S_t=s \right]
Pss′=P[St+1=s′∣St=s]
状态转移矩阵
P
P
P定义了马尔科夫状态
s
s
s到其所有后继状态
s
′
s^\prime
s′的转移概率
P
=
[
P
11
⋯
P
1
n
⋮
⋮
P
n
1
⋯
P
n
n
]
\mathcal{P}=\left[\begin{array}{ccc} \mathcal{P}_{11} & \cdots & \mathcal{P}_{1 n} \\ \vdots & & \vdots \\ \mathcal{P}_{n 1} & \cdots & \mathcal{P}_{n n} \end{array}\right]
P=
P11⋮Pn1⋯⋯P1n⋮Pnn
矩阵的每一行总和为1
马尔可夫过程
马尔可夫过程是一种无记忆的随机过程
马尔可夫过程可以分为三类
- 时间、状态都离散的马尔可夫过程(马尔科夫链)
- 时间连续、状态离散的马尔可夫过程(连续时间的马尔可夫链)
- 时间、状态都连续的马尔可夫过程
马尔可夫过程由元组 ( S , P ) (\mathcal S, \mathcal P) (S,P)构成
S \mathcal S S是有限状态的集合
P \mathcal P P是状态转移矩阵 P s s ′ = P [ S t + 1 = s ′ ∣ S t = s ] \mathcal{P}_{s s^{\prime}}=\mathbb{P}\left[S_{t+1}=s^{\prime} \mid S_t=s \right] Pss′=P[St+1=s′∣St=s]
S
=
{
C
l
a
s
s
1
,
F
a
c
e
b
o
o
k
,
C
l
a
s
s
2
,
C
l
a
s
s
3
,
P
a
s
s
,
P
u
b
,
S
l
e
e
p
}
\mathcal S=\{Class1,Facebook,Class2,Class3,Pass,Pub,Sleep\}
S={Class1,Facebook,Class2,Class3,Pass,Pub,Sleep}
从初始状态 S 1 = C 1 S_1=C_1 S1=C1开始,我们可以从马尔科夫链中采样一些子序列,每个子序列又称为幕(Episodes),幕的终点得是一个终止状态,在这个例子中就是Sleep
C1 C2 C3 Pass Sleep
C1 FB FB C1 C2 Sleep
C1 C2 C3 Pub C2 C3 Pass Sleep
3.马尔可夫奖励过程
马尔可夫奖励过程(Markov Reward Process,MRP)由元组 ( S , P , R , γ ) (\mathcal S, \mathcal P, \mathcal R, \gamma) (S,P,R,γ)构成
S \mathcal S S是有限状态的集合
P \mathcal P P是状态转移矩阵 P s s ′ = P [ S t + 1 = s ′ ∣ S t = s ] \mathcal{P}_{s s^{\prime}}=\mathbb{P}\left[S_{t+1}=s^{\prime} \mid S_t=s \right] Pss′=P[St+1=s′∣St=s]
R s \mathcal R_s Rs是奖励函数, R s = E [ R t + 1 ∣ S t = s ] \mathcal R_s=\mathbb E[R_{t+1} \mid \mathcal S_t=s ] Rs=E[Rt+1∣St=s]
γ \gamma γ 是折扣因子, γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1]
数学期望是一种重要的数学特征,它反映随机变量平均取值的大小
回报Return
在一个马尔可夫奖励过程中,从
t
t
t时刻的状态
S
t
S_t
St开始,直至终止状态时,所有奖励的衰减之和
G
t
G_t
Gt称为回报Return
G
t
=
R
t
+
1
+
γ
R
t
+
2
+
γ
2
R
t
+
3
+
.
.
.
=
∑
k
=
0
∞
γ
k
R
t
+
k
+
1
G_t=R_{t+1}+\gamma R_{t+2}+\gamma ^2R_{t+3}+...=\sum_{k=0}^\infin \gamma^kR_{t+k+1}
Gt=Rt+1+γRt+2+γ2Rt+3+...=k=0∑∞γkRt+k+1
折扣因子的作用:
- 避免有环的马尔可夫过程计算收益时出现无限循环
- 从金融投资回报的角度讲,即时奖励(immediate rewards)比延时奖励(delayed rewards)更吸引人
- 动物/人类行为中都表现出对即时奖励的偏好
- 可以表达未来的不确定性
- γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1], γ = 0 \gamma = 0 γ=0只看眼前利益
价值函数Value Function
价值函数 v ( s ) v(s) v(s)给出状态 s s s的长期价值(long-term value)
价值函数输入为某个状态,输出为这个状态的价值
定义:在马尔可夫奖励过程中,一个状态的期望回报被称为这个状态的价值函数 v ( s ) = E [ G t ∣ S t = s ] v(s)=\mathbb E[G_t \mid S_t=s] v(s)=E[Gt∣St=s],相当于对这个状态所在的所有幕的回报求平均
这个 E \mathbb E E去除了两种随机性,分别是状态间跳转的随机性,以及每个状态给分的随机性
当考虑了未来收益时,Class3和Class1相比,虽然该状态的奖励相同,但是Class3更接近于Pass这个最优状态,所以Class3的期望回报就比Class1要高很多。
马尔可夫奖励过程的贝尔曼方程Bellman Equation
贝尔曼方程可以求解价值函数
贝尔曼方程 v ( s ) = E [ R t + 1 + γ v ( S t + 1 ) ∣ S t = s ] v(s)=\mathbb E[R_{t+1}+\gamma v(S_{t+1}) \mid S_t=s] v(s)=E[Rt+1+γv(St+1)∣St=s]
价值函数可以分解为两个部分:即时奖励 R t + 1 R_{t+1} Rt+1和后续状态的折扣值 γ v ( S t + 1 ) \gamma v(S_{t+1}) γv(St+1)
S t + 1 S_{t+1} St+1可能会是任何一种状态
贝尔曼方程还可以写为:
v
(
s
)
=
R
s
+
γ
∑
s
′
∈
S
P
s
s
′
v
(
s
′
)
v(s)=\mathcal R_s+\gamma \sum_{s ^ \prime \in \mathcal S} \mathcal P_{ss^\prime v(s^\prime)}
v(s)=Rs+γs′∈S∑Pss′v(s′)
其中
P
s
s
′
=
P
[
S
t
+
1
=
s
′
∣
S
t
=
s
]
\mathcal P_{ss^\prime} = \mathbb P[\mathcal S_{t+1} = s ^\prime \mid \mathcal S_t = s]
Pss′=P[St+1=s′∣St=s]
R s = E [ R t + 1 ∣ S t = s ] \mathcal R_s = \mathbb E[R_{t+1} \mid \mathcal S_t=s] Rs=E[Rt+1∣St=s]
示例:
4.3=当前价值-2 + 0.6 * 10 + 0.4 * 0.8
当各个状态的价值不满足贝尔曼方程时意味着:1. 这个价值函数不是这个系统的价值函数,2. 计算出错,3. 计算没有收敛
贝尔曼方程的矩阵形式
贝尔曼方程可使用矩阵简明表示
v
=
R
+
γ
P
v
v=\mathcal R + \gamma \mathcal Pv
v=R+γPv
其中
v
v
v是一个列向量,每个状态一个条目
[
v
(
1
)
⋮
v
(
n
)
]
=
[
R
1
⋮
R
n
]
+
γ
[
P
11
⋯
P
1
n
⋮
⋮
P
n
1
⋯
P
n
n
]
[
v
(
1
)
⋮
v
(
n
)
]
\left[\begin{array}{c} v(1) \\ \vdots \\ v(n) \end{array}\right]=\left[\begin{array}{c} \mathcal{R}_1 \\ \vdots \\ \mathcal{R}_n \end{array}\right]+\gamma\left[\begin{array}{ccc} \mathcal{P}_{11} & \cdots & \mathcal{P}_{1 n} \\ \vdots & & \vdots \\ \mathcal{P}_{n 1} & \cdots & \mathcal{P}_{n n} \end{array}\right]\left[\begin{array}{c} v(1) \\ \vdots \\ v(n) \end{array}\right]
v(1)⋮v(n)
=
R1⋮Rn
+γ
P11⋮Pn1⋯⋯P1n⋮Pnn
v(1)⋮v(n)
贝尔曼方程是线性方程,可以直接求解
v
=
R
+
γ
P
v
v=\mathcal R + \gamma \mathcal Pv
v=R+γPv
( I − γ P ) v = R (I-\gamma \mathcal P)v=\mathcal R (I−γP)v=R
v = ( I − γ P ) − 1 R v=(I-\gamma \mathcal P)^{-1} \mathcal R v=(I−γP)−1R
对于 ∣ S ∣ |S| ∣S∣个状态,计算复杂度为 O ( ∣ s ∣ 3 ) O(|s|^3) O(∣s∣3)
直接求解仅适用于小型马尔可夫奖励过程
对于大型MRP,有很多迭代方法,例如:
- 动态规划(Dynamic programming)
- 蒙特卡洛评估(Monte-Carlo evaluation)
- 时序差分学习(Temporal-Difference learning)
4.马尔可夫决策过程
马尔可夫决策过程(MDP)是具有决策的马尔可夫奖励过程(MRP),其所有状态满足马尔可夫性质
定义:马尔可夫决策过程由元组 ( S , A , P , R , γ ) (\mathcal S, \mathcal A, \mathcal P, \mathcal R, \gamma) (S,A,P,R,γ)构成
- S \mathcal S S是有限状态的集合
- A \mathcal A A是优先动作的集合
- P \mathcal P P是状态转移矩阵, P s s ′ a = P [ S t + 1 = s ′ ∣ S t = s , A t = a ] \mathcal P_{ss^\prime}^a = \mathbb P[\mathcal S_{t+1} = s ^\prime \mid \mathcal S_t = s,\mathcal A_t=a] Pss′a=P[St+1=s′∣St=s,At=a]
- R s \mathcal R_s Rs是奖励函数, R s = E [ R t + 1 ∣ S t = s , A t = a ] \mathcal R_s = \mathbb E[R_{t+1} \mid \mathcal S_t=s, \mathcal A_t=a] Rs=E[Rt+1∣St=s,At=a]
- γ \gamma γ是折扣因子, γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1]
策略
策略
π
\pi
π是一个函数,表示输入状态为
s
s
s的情况下采取动作
a
a
a的概率
π
(
a
∣
s
)
=
P
[
A
t
=
a
∣
S
t
=
s
]
\pi(a \mid s) = \mathbb P[\mathcal A_t=a \mid \mathcal S_t=s]
π(a∣s)=P[At=a∣St=s]
策略完全定义了智能体的行为,马尔科夫决策过程中,策略仅取决于当前状态(而不是历史记录)
给定一个马尔可夫决策过程: M = ( S , A , P , R , γ ) \mathcal M = (\mathcal S, \mathcal A, \mathcal P, \mathcal R, \gamma) M=(S,A,P,R,γ)和一个策略 π \pi π
状态序列 S 1 , S 2 . . . S_1,S_2... S1,S2...是一个马尔可夫随机过程 < S , P π > <\mathcal S, \mathcal P^\pi> <S,Pπ>
状态和奖励序列是一个马尔可夫奖励过程
<
S
,
P
π
,
R
π
,
γ
>
<\mathcal S, \mathcal P^\pi, \mathcal R^\pi, \gamma>
<S,Pπ,Rπ,γ>
P
s
s
′
π
=
∑
a
∈
A
π
(
a
∣
s
)
P
s
s
′
a
R
s
π
=
∑
a
∈
A
π
(
a
∣
s
)
R
s
a
\begin{aligned} \mathcal{P}_{\mathrm{ss^\prime}}^\pi & =\sum_{a \in \mathcal{A}} \pi(a \mid s) \mathcal{P}_{\mathrm{ss^\prime}}^a \\ \mathcal{R}_{\mathrm{s}}^\pi & =\sum_{a \in \mathcal{A}} \pi(a \mid s) \mathcal{R}_{\mathrm{s}}^a \end{aligned}
Pss′πRsπ=a∈A∑π(a∣s)Pss′a=a∈A∑π(a∣s)Rsa
MDP的价值函数
**状态价值函数:**在马尔可夫决策过程中,一个状态价值函数
v
π
(
s
)
v_\pi(s)
vπ(s)是从状态
s
s
s出发,遵循策略
π
\pi
π得到的期望回报。决定哪个策略更好
v
π
(
s
)
=
E
π
[
G
t
∣
S
t
=
s
]
v_\pi(s)=\mathbb E_\pi[G_t\mid S_t=s]
vπ(s)=Eπ[Gt∣St=s]
**动作价值函数:**在马尔可夫决策过程中,一个动作价值函数
q
π
(
s
,
a
)
q_\pi(s,a)
qπ(s,a)是从状态
s
s
s开始,遵循策略
π
\pi
π对当前状态
s
s
s执行动作
a
a
a得到的期望回报。决定该策略下哪个动作更好。
q
π
(
s
,
a
)
=
E
π
[
G
t
∣
S
t
=
s
,
A
t
=
a
]
q_\pi(s,a)=\mathbb E_\pi[G_t \mid S_t=s,A_t=a]
qπ(s,a)=Eπ[Gt∣St=s,At=a]
贝尔曼期望方程Bellman Expectation Equation
状态函数可以分解为:即时奖励+后继状态的折扣值
v
π
(
s
)
=
E
π
[
R
t
+
1
+
γ
v
π
(
S
t
+
1
)
∣
S
t
=
s
]
v_\pi(s)=\mathbb{E}_\pi\left[R_{t+1}+\gamma v_\pi\left(S_{t+1}\right) \mid S_t=s\right]
vπ(s)=Eπ[Rt+1+γvπ(St+1)∣St=s]
动作价值函数可进行类似分解
q
π
(
s
,
a
)
=
E
π
[
R
t
+
1
+
γ
q
π
(
S
t
+
1
,
A
t
+
1
)
∣
S
t
=
s
,
A
t
=
a
]
q_\pi(s, a)=\mathbb{E}_\pi\left[R_{t+1}+\gamma q_\pi\left(S_{t+1}, A_{t+1}\right) \mid S_t=s, A_t=a\right]
qπ(s,a)=Eπ[Rt+1+γqπ(St+1,At+1)∣St=s,At=a]
状态价值函数和动作价值函数的关系
v π ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) v_\pi(s)=\sum_{a \in \mathcal A} \pi(a \mid s)q_\pi(s,a) vπ(s)=a∈A∑π(a∣s)qπ(s,a)
q π ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a v π ( s ′ ) q_\pi(s, a)=\mathcal{R}_s^a+\gamma \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}}^a v_\pi\left(s^{\prime}\right) qπ(s,a)=Rsa+γs′∈S∑Pss′avπ(s′)
通过相互代入可以获得两种价值函数的递推式
最优价值函数Optimal Value Function
最优状态价值函数是所有策略产生的状态价值函数中,使状态
s
s
s价值最大的函数
v
∗
(
s
)
=
max
π
v
π
(
s
)
v_*(s)=\max _\pi v_\pi(s)
v∗(s)=πmaxvπ(s)
最优动作价值函数是指所有策略产生的动作价值函数中,使状态-行为<s,a>对价值最大的函数
q
∗
(
s
,
a
)
=
max
π
q
π
(
s
,
a
)
q_*(s,a)=\max _\pi q_\pi(s,a)
q∗(s,a)=πmaxqπ(s,a)
最优价值函数明确了MDP的最优可能表现
一旦最优价值函数知晓,则认为MDP已完成求解
最优策略Optimal Policy
策略之间的偏序:当且仅当对于任意的状态 s s s都有 v π ( s ) ≥ v π ′ ( s ) v_\pi(s)\geq v_{\pi^\prime}(s) vπ(s)≥vπ′(s)时,记作 π ≥ π ′ \pi \geq \pi^\prime π≥π′
最优策略:在有限状态和动作的MDP中,至少存在一个策略不劣于其他所有的策略,即 π ∗ ≥ π , ∀ π \pi_* \geq \pi, \forall \pi π∗≥π,∀π,这就是最优策略。
所有的最优策略具有相同的最优状态价值函数
所有的最优策略有相同的动作价值函数
寻找最优策略Optimal Policy
可以通过最大化
q
∗
(
s
,
a
)
q_*(s,a)
q∗(s,a)来找到最佳策略,
π
∗
(
a
∣
s
)
=
{
1
0
当
a
=
arg
max
a
∈
A
q
∗
(
s
,
a
)
\pi_*(a \mid s)=\left\{\begin{array}{l} 1 \\ 0 \end{array} \quad \text { 当 } a=\arg \max _{a \in A} q_*(s, a)\right.
π∗(a∣s)={10 当 a=arga∈Amaxq∗(s,a)
找到最优动作价值函数中让值最大的a,将其概率设置为1
任何MDP始终都有确定性的最佳策略
如果我们知道 q ∗ ( s , a ) q_*(s,a) q∗(s,a),我们将立即获得最优策略
贝尔曼最优方程Bellman Optimality Equation
v ∗ ( s ) = m a x a q ∗ ( s , a ) v_*(s)=max_aq_*(s,a) v∗(s)=maxaq∗(s,a)
贝尔曼期望方程
v
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
q
π
(
s
,
a
)
v_\pi(s)=\sum_{a \in \mathcal A} \pi(a \mid s)q_\pi(s,a)
vπ(s)=∑a∈Aπ(a∣s)qπ(s,a),将最优策略结果代入,就得到贝尔曼最优方程
v
∗
(
s
)
=
max
a
(
R
s
a
+
γ
∑
s
′
∈
S
P
s
s
′
a
v
∗
(
s
′
)
)
v_*(s)=\max _a\left(\mathcal{R}_s^a+\gamma \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}}^a v_*\left(s^{\prime}\right)\right)
v∗(s)=amax(Rsa+γs′∈S∑Pss′av∗(s′))
q ∗ ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a max a ′ q ∗ ( s ′ , a ′ ) q_*(s, a)=\mathcal{R}_s^a+\gamma \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}}^a \max _{a^{\prime}} q_*\left(s^{\prime}, a^{\prime}\right) q∗(s,a)=Rsa+γs′∈S∑Pss′aa′maxq∗(s′,a′)
求解贝尔曼最优方程
贝尔曼最优方程是非线性的
不能使用与策略优化相同的直接矩阵解决方案
通过一些迭代的方法来解决:
- 价值迭代Value Iteration
- 策略迭代Policy Iteration
- Q学习Q-learning
- Sarsa
5.参考资料
强化学习基础 北京邮电大学 鲁鹏 强化学习基础 (本科生课程) 北京邮电大学 鲁鹏_哔哩哔哩_bilibili
深度强化学习 台湾大学 李宏毅 DRL Lecture 1_ Policy Gradient (Review)_哔哩哔哩_bilibili