写在前面
强化学习系列博客主要学习sutton的书,有些内容来自Google DeepMind的David Silver的PPT,再此声明。
一、马尔可夫过程
![](https://i-blog.csdnimg.cn/blog_migrate/6c4a27188ef968ecb64ffdc5c4e2ad46.png)
如上图所示,在强化学习的过程中,Agent与Environment一直交互。在时刻
t
t
t,Agent接收来自环境的状态
S
t
S_t
St,并基于
S
t
S_t
St采取行动
A
t
A_t
At,
A
t
A_t
At作用在环境上,Agent接收一个奖励
R
t
+
1
R_{t+1}
Rt+1和新的状态
S
t
+
1
S_{t+1}
St+1,…,由此产生一个序列:
S
0
,
A
0
,
R
1
,
S
1
,
A
1
,
R
2
,
.
.
.
S_0, A_0,R_1,S_1,A_1,R_2,...
S0,A0,R1,S1,A1,R2,...
马尔科夫性质是未来与过去无关,只和现在有关(The feature is independent of the past given the present)。马尔科夫决策过程把序列决策过程公式化,有了马尔科夫假设,此序列问题会变得更加简单。假设状态
S
t
S_t
St具有马尔科夫性质,则:
P
[
S
t
+
1
∣
S
t
]
=
P
[
S
t
+
1
∣
S
1
,
S
2
,
.
.
.
,
S
t
]
P[S_{t+1}|S_t] = P[S_{t+1}|S_1,S_2,...,S_t]
P[St+1∣St]=P[St+1∣S1,S2,...,St]
直观上讲,强化学习的下一个状态的产生跟所有历史状态是有关的。但是Markov假设当前状态信息包含了所有相关的历史,只要当前状态已知,所有的历史信息都可以扔掉,当前状态就可以决定未来。
具有Markov性质的RL序列过程,状态
s
s
s到下一个状态
s
′
s'
s′之间的状态转移概率定义为:
P
s
s
′
=
P
[
S
t
+
1
=
s
′
∣
S
t
=
s
]
P_{ss'} = P[S_{t+1}=s' | S_t =s]
Pss′=P[St+1=s′∣St=s]
状态转移矩阵
P
P
P:
P
=
[
P
11
.
.
.
P
1
n
.
.
.
.
.
.
.
.
.
P
n
1
.
.
.
P
n
n
]
P=\begin{bmatrix} P_{11} & ... & P_{1n} \\ ... & ... & ... \\ P_{n1} & ... & P_{nn} \end{bmatrix}
P=⎣⎡P11...Pn1.........P1n...Pnn⎦⎤
马尔可夫过程:
若随机过程满足马尔科夫性,则称为马尔可夫过程,可以用一个二元组 < S , P > <S,P> <S,P>,其中 S S S是有限数量的状态集, P P P是状态转移概率矩阵。
二、马尔可夫决策过程
现在我们首先来看一下之前讲的强化学习的相关知识,强化学习基于奖励假设,即强化学习的目标是最大化期望累积奖励。
下面先回顾几个定义:
回报(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}^{\infty} \gamma^k R_{t+k+1} Gt=Rt+1+γRt+2+γ2Rt+3+...=∑k=0∞γkRt+k+1,其中 γ \gamma γ是衰减因子,具体这个公式的解释详见blog:[强化学习] 概念、举例、分类
策略(Policy)公式:
π
(
a
∣
s
)
=
P
[
A
t
=
a
∣
S
t
=
s
]
\pi(a|s)=P[A_t=a | S_t=s]
π(a∣s)=P[At=a∣St=s]
确定性策略:
a
=
π
(
s
)
a = \pi(s)
a=π(s)
随机策略:
π
(
a
∣
s
)
=
P
[
A
t
=
a
∣
S
t
=
s
]
\pi(a|s)=P[A_t=a | S_t=s]
π(a∣s)=P[At=a∣St=s]
关于策略的具体解释,详见上述blog。
因此,强化学习的马尔科夫决策过程是一个五元组 < S , A , P , R , γ > <S, A, P, R, \gamma> <S,A,P,R,γ>,其中 A A A表示动作集, R R R表示奖励集, γ \gamma γ表示折扣因子。
![](https://i-blog.csdnimg.cn/blog_migrate/fc0d8e0fbe591ed09931c61e3ebb21ef.png)
如上图,强化学习的马尔可夫指的是:在 t t t时刻下,状态 S t S_t St只和 t − 1 t-1 t−1时刻的状态 S t − 1 S_{t-1} St−1以及动作 A t − 1 A_{t-1} At−1有关,而和历史状态和动作无关。
下面看下马尔可夫过程的一些概念:
p
(
s
′
,
r
∣
s
,
a
)
=
P
r
{
S
t
=
s
′
,
R
t
=
r
∣
S
t
=
1
=
s
,
A
t
−
1
=
a
}
p
(
s
′
∣
s
,
a
)
=
P
r
{
S
t
=
s
′
∣
S
t
=
1
=
s
,
A
t
−
1
=
a
}
=
∑
r
∈
R
p
(
s
′
,
r
∣
s
,
a
)
r
(
s
,
a
)
=
E
[
R
t
∣
S
t
−
1
=
s
,
A
t
−
1
=
a
]
=
∑
r
∈
R
r
∑
s
′
∈
S
p
(
s
′
,
r
∣
s
,
a
)
r
(
s
,
a
,
s
′
)
=
E
[
R
t
∣
S
t
−
1
=
s
,
A
t
−
1
=
a
,
S
t
=
s
′
]
=
∑
r
∈
R
r
p
(
s
′
,
r
∣
s
,
a
)
p
(
s
′
∣
s
,
a
)
\begin{aligned} &p(s',r|s,a) = Pr\{S_t=s',R_t=r|S_{t=1}=s, A_{t-1}=a\} \\ &p(s'|s,a) = Pr\{S_t=s'|S_{t=1}=s, A_{t-1}=a\} = \sum_{r \in \mathcal{R}} p(s',r|s,a) \\ &r(s,a)=\mathbb{E}[R_t|S_{t-1}=s, A_{t-1}=a] = \sum_{r \in \mathcal{R}} r \sum_{s' \in \mathcal{S}} p(s',r|s,a) \\ &r(s,a,s')=\mathbb{E}[R_t|S_{t-1}=s, A_{t-1}=a,S_t=s'] = \sum_{r \in \mathcal{R}}r \frac{p(s',r|s,a)}{p(s'|s,a)} \end{aligned}
p(s′,r∣s,a)=Pr{St=s′,Rt=r∣St=1=s,At−1=a}p(s′∣s,a)=Pr{St=s′∣St=1=s,At−1=a}=r∈R∑p(s′,r∣s,a)r(s,a)=E[Rt∣St−1=s,At−1=a]=r∈R∑rs′∈S∑p(s′,r∣s,a)r(s,a,s′)=E[Rt∣St−1=s,At−1=a,St=s′]=r∈R∑rp(s′∣s,a)p(s′,r∣s,a)
其中, p p p表示概率, r r r表示回报。所以基于马尔科夫过程的强化学习的流程为:在 t t t时刻,Agent基于状态 S t S_t St,根据策略 π ( a ∣ s ) \pi(a|s) π(a∣s)采样出动作 A t A_t At,然后根据状态转移概率 p ( s ′ ∣ s , a ) p(s'|s,a) p(s′∣s,a),产生新的状态 S t + 1 S_{t+1} St+1,Agent可以接收到一个奖励 R t + 1 R_{t+1} Rt+1,…,以此不断运行直到终止。
三、价值函数
1、价值函数
状态价值函数: 定义
v
π
(
s
)
v_\pi(s)
vπ(s)是基于策略
π
\pi
π的状态价值函数,表示从当前的状态开始,遵循当前策略所获得的期望累积奖励,其在执行策略
π
\pi
π时,用来衡量Agent处在状态
s
s
s时的价值,则对于所有的
s
∈
S
s \in \mathcal{S}
s∈S:
v
π
(
s
)
≐
E
[
G
t
∣
S
t
=
s
]
=
E
π
[
∑
k
=
0
∞
γ
k
R
t
+
k
+
1
∣
S
t
=
s
]
v_\pi(s) \doteq \mathbb{E}[G_t | S_t =s] = \mathbb{E}_\pi [\sum_{k=0}^{\infty}\gamma^k R_{t+k+1} | S_t =s]
vπ(s)≐E[Gt∣St=s]=Eπ[k=0∑∞γkRt+k+1∣St=s]
行为价值函数: 定义
q
π
(
s
,
a
)
q_\pi(s,a)
qπ(s,a)为行为价值函数,表示在执行策略
π
\pi
π时,在状态
s
s
s条件下执行Action为
a
a
a的期望累积奖励,衡量状态
s
s
s时采取Action
a
a
a的价值:
q
π
(
s
,
a
)
≐
E
[
G
t
∣
S
t
=
s
,
A
t
=
a
]
=
E
π
[
∑
k
=
0
∞
γ
k
R
t
+
k
+
1
∣
S
t
=
s
,
A
t
=
a
]
q_\pi(s,a) \doteq \mathbb{E}[G_t | S_t =s, A_t =a] =\mathbb{E}_\pi [\sum_{k=0}^{\infty}\gamma^k R_{t+k+1} | S_t =s, A_t =a]
qπ(s,a)≐E[Gt∣St=s,At=a]=Eπ[k=0∑∞γkRt+k+1∣St=s,At=a]
2、贝尔曼方程
(1)在策略 π \pi π下,状态 s s s的价值为在该状态下遵循某一策略而采取所有可能行为的价值按行为发生概率的乘积求和。
![](https://i-blog.csdnimg.cn/blog_migrate/4f9fea27d56f9ac6728f1e7328c9e830.png)
v π ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) v_\pi(s) = \sum_{a \in \mathcal{A}} \pi(a|s)q_\pi(s,a) vπ(s)=a∈A∑π(a∣s)qπ(s,a)
(2)在策略 π \pi π下,一个状态采取一个行动的价值可以分为两部分:i)离开这个状态得到的奖励。ii)所有进入新的状态的价值和其状态转移概率乘积之和。
![](https://i-blog.csdnimg.cn/blog_migrate/f65ee586f0ddd6e0f4bdeba5c48c002f.png)
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' \in \mathcal{S}} \mathcal{P}_{ss'}^a v_\pi(s') qπ(s,a)=Rsa+γs′∈S∑Pss′avπ(s′)
(3)状态价值:
![](https://i-blog.csdnimg.cn/blog_migrate/824633944fbcf426f9e0d64b053f6215.png)
v π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ′ ∈ S P s s ′ a v π ( s ′ ) ) v_\pi(s) = \sum_{a \in \mathcal{A}} \pi(a|s) (\mathcal{R}_s^a + \gamma \sum_{s' \in \mathcal{S}} \mathcal{P}_{ss'}^a v_\pi(s')) vπ(s)=a∈A∑π(a∣s)(Rsa+γs′∈S∑Pss′avπ(s′))
(4)状态-行为价值:
![](https://i-blog.csdnimg.cn/blog_migrate/779a74a8dbffbf0c1f7a81716652bb48.png)
q π ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) q π ( s ′ , a ′ ) q_\pi(s,a) = \mathcal{R}_s^a + \gamma \sum_{s' \in \mathcal{S}} \mathcal{P}_{ss'}^a \sum_{a' \in \mathcal{A}} \pi(a' | s' ) q_\pi(s', a') qπ(s,a)=Rsa+γs′∈S∑Pss′aa′∈A∑π(a′∣s′)qπ(s′,a′)
3、示例
示例来自sutton的书,下图所示是一个简单的有限MDP,网络中的每个格子代表的是环境中的状态。在每个格子中,有四个可选的动作:东、南、西和北,每个动作都会使得智能体在对应的方向上前进一格。如果采取的动作使得其不在网格内,则智能体会在原位置上不移动,并且得到一个值为-1的收益。除了将智能体从特定的状态A和B移走的动作外,其他动作的收益都是0。在状态A中,四种动作都会得到一个+10的收益,并且把智能体移动到A’。在状态B中,四种动作都会得到一个+5的收益,并且把智能体移动到B’。
![](https://i-blog.csdnimg.cn/blog_migrate/bd57e9f0bc3fdb9f247c32ee712345d4.png)
假设个体在所有状态中以相等的概率选择所有四个动作。右显示了该策略的值函数 v π v_\pi vπ, 对于这个策略,衰减因子 γ = 0.9 \gamma=0.9 γ=0.9。右图价值由公式 v π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ′ ∈ S P s s ′ a v π ( s ′ ) ) v_\pi(s) = \sum_{a \in \mathcal{A}} \pi(a|s) (\mathcal{R}_s^a + \gamma \sum_{s' \in \mathcal{S}} \mathcal{P}_{ss'}^a v_\pi(s')) vπ(s)=∑a∈Aπ(a∣s)(Rsa+γ∑s′∈SPss′avπ(s′))得到。
这里以第三行第三列数字0.7为例,其计算方式为: 0.7 ≈ 0.25 ∗ ( 0 + 0.9 ∗ 1 ∗ 2.3 ) + 0.25 ∗ ( 0 + 0.9 ∗ 1 ∗ 0.7 ) + 0.25 ∗ ( 0 + 0.9 ∗ 1 ∗ 0.4 ) + 0.25 ∗ ( 0 + 0.9 ∗ 1 ∗ ( − 0.4 ) ) 0.7\approx 0.25*(0+0.9*1*2.3)+0.25*(0+0.9*1*0.7) + 0.25 * (0+0.9*1*0.4) + 0.25 * (0+0.9*1*(-0.4)) 0.7≈0.25∗(0+0.9∗1∗2.3)+0.25∗(0+0.9∗1∗0.7)+0.25∗(0+0.9∗1∗0.4)+0.25∗(0+0.9∗1∗(−0.4))
注意这里有前提条件是:假设个体在所有状态中以相等的概率选择所有四个动作。因此,对于所有的 a a a, π ( a ∣ s ) = 0.25 \pi(a|s)=0.25 π(a∣s)=0.25。在选择某个动作之后, P s s ′ a = 1 \mathcal{P}_{ss'}^a=1 Pss′a=1,比如当选择向上的动作时,其状态只有唯一的选择。
四、最优策略
1、最优策略
对于任意马尔科夫过程来说:
(1)存在最优的策略 π ∗ \pi_{*} π∗, π ∗ \pi_{*} π∗优于其他所有的策略,即 π ∗ ≥ π , ∀ π \pi_{*} \geq \pi ,\forall \pi π∗≥π,∀π
(2)所有最优策略会得到最优的价值函数,即 v π ∗ ( s ) = v π ( s ) v_{\pi_{*}}(s)=v_\pi(s) vπ∗(s)=vπ(s)
(3)所有最优策略会得到最优的行为-价值函数,即 q π ∗ ( s , a ) = q π ( s , a ) q_{\pi_{*}}(s,a)=q_\pi(s,a) qπ∗(s,a)=qπ(s,a)
最优的策略 π ∗ \pi_{*} π∗的状态价值函数叫做最优状态价值函数,记作 v ∗ ( s ) v_{*}(s) v∗(s): v ∗ ( s ) ≐ m a x π v π ( s ) v_{*}(s)\doteq max_{\pi}v_\pi(s) v∗(s)≐maxπvπ(s)
最优的策略 π ∗ \pi_{*} π∗的行为-状态价值函数叫做最优行为-状态价值函数,记作 q ∗ ( s , a ) q_{*}(s,a) q∗(s,a): q ∗ ( s , a ) ≐ m a x π q π ( s , a ) q_{*}(s,a)\doteq max_{\pi}q_\pi(s,a) q∗(s,a)≐maxπqπ(s,a)
因此,我们可以根据
q
∗
(
s
,
a
)
q_{*}(s,a)
q∗(s,a)得到最优的策略:
π
∗
(
a
∣
s
)
=
{
1
i
f
a
=
a
g
r
m
a
x
a
∈
A
q
∗
(
s
,
a
)
0
o
t
h
e
r
w
i
s
e
\pi_{*}(a|s) = \left\{\begin{matrix} 1 & if \ \ a = agrmax_{a \in \mathcal{A}}q_{*}(s,a)\\ 0 & otherwise \end{matrix}\right.
π∗(a∣s)={10if a=agrmaxa∈Aq∗(s,a)otherwise
任何MDP都有一个最优的policy。
2、贝尔曼最优方程
(1)最优策略:
![](https://i-blog.csdnimg.cn/blog_migrate/652b124b072a05e5fee4c286bbb07528.png)
v ∗ ( s ) = m a x a q ∗ ( s , a ) v_{*}(s)=max_{a}q_{*}(s,a) v∗(s)=maxaq∗(s,a)
(2)最优行动-价值函数:
![](https://i-blog.csdnimg.cn/blog_migrate/a7e61c13f05788918c8ef60fbf5e2c0f.png)
q ∗ ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a v ∗ ( s ′ ) q_{*}(s,a) = \mathcal{R}_s^a + \gamma \sum_{s' \in \mathcal{S}} \mathcal{P}_{ss'}^a v_{*}(s') q∗(s,a)=Rsa+γs′∈S∑Pss′av∗(s′)
(3)最优策略:
![](https://i-blog.csdnimg.cn/blog_migrate/0cf51c01e7b2c5f5c5263b74742ee7fd.png)
v ∗ ( s ) = m a x a R s a + γ ∑ s ′ ∈ S P s s ′ a v ∗ ( s ′ ) v_{*}(s)=max_{a}\mathcal{R}_s^a + \gamma \sum_{s' \in \mathcal{S}} \mathcal{P}_{ss'}^a v_{*}(s') v∗(s)=maxaRsa+γs′∈S∑Pss′av∗(s′)
(4)最优行动-价值函数:
![](https://i-blog.csdnimg.cn/blog_migrate/22961b2efa22c3b1a4fd1d33d216e13a.png)
q ∗ ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a m a x a ′ q ∗ ( s ′ , a ′ ) q_{*}(s,a) = \mathcal{R}_s^a + \gamma \sum_{s' \in \mathcal{S}} \mathcal{P}_{ss'}^a max_{a'}q_{*}(s',a') q∗(s,a)=Rsa+γs′∈S∑Pss′amaxa′q∗(s′,a′)
3、示例
在最后看下上面例子对应的最优策略,我们可以看到因为从 A → A ′ A \rightarrow A' A→A′可以得到10个奖励,从 B → B ′ B \rightarrow B' B→B′可以得到5个奖励,且如果当前状态在A或B,则一定会调到A’和B’。因此最优策略是走向A和B状态。
![](https://i-blog.csdnimg.cn/blog_migrate/29985b2cacaa85798d998b4cdb7c56ad.png)