1 强化学习的基本定义
本文主要关注于理论和公式推导
强化学习是智能体在与环境进行交互的过程中通过获得的奖励的多少来学习的过程,目标是使智能体获得最大的奖励。
强化学习不同于连接主义学习中的监督学习,主要表现在强化信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号),而不是告诉智能体如何去产生正确的动作。
一般地,强化学习包含八个基本要素:
- 环境的状态 S S S,状态 S t ∈ S S_t\in\mathcal{S} St∈S是 t t t时刻环境状态集中的某一个状态。
- 个体的动作 A A A,动作 A t ∈ A ( s ) A_t\in\mathcal{A}(s) At∈A(s)是 t t t时刻动作集中的某一个动作。
- 环境的奖励 R R R,t时刻个体在状态 S t S_t St采取的动作 A t A_t At对应的奖励 R t + 1 R_{t+1} Rt+1会在 t + 1 t+1 t+1时刻得到。
- 个体的策略(policy),即个体会依据策略来选择动作,可以看作是一个函数。最常见的策略表达方式是一个条件概率分布 π ( a ∣ s ) = Pr ( A t = a ∣ S t = s ) \pi(a|s)=\text{Pr}(A_t=a|S_t=s) π(a∣s)=Pr(At=a∣St=s),即在状态 s s s选择动作 a a a的概率。此时概率大的动作被个体选择的概率较高。
- 价值函数,在策略 π \pi π和状态 s s s采取行动后的价值,用 V π ( s ) V_\pi(s) Vπ(s)表示。
- 奖励衰减因子 γ ∈ [ 0 , 1 ] \gamma\in[0,1] γ∈[0,1],即未来奖励所占的比重。
- 状态转移概率 P s s , a P^a_{ss^,} Pss,a,假设转化到下一个状态 s ′ s^′ s′的概率仅与上一个状态s有关,与之前的状态无关。用公式表示就是: P s s , a = p ( S t + 1 = s , ∣ S t = s , A t = a ) P^a_{ss^,}=p(S_{t+1}=s^,|S_t=s,A_t=a) Pss,a=p(St+1=s,∣St=s,At=a),也有使用四参数的形式来表示,如 p ( s , , r ∣ s , a ) p(s^,,r\vert s,a) p(s,,r∣s,a),本文中只使用 P s s , a P^a_{ss^,} Pss,a表示 p ( S t + 1 = s , ∣ S t = s , A t = a ) p(S_{t+1}=s^,|S_t=s,A_t=a) p(St+1=s,∣St=s,At=a)。
- 探索率 ϵ \epsilon ϵ
2 有限马尔可夫决策过程( Finite Markov Decision Processes)
2.1 基本假设和定义
2.1.1 马尔可夫性与状态转移概率
假设下一时刻的状态和奖励,只与前一时刻的状态与行为有关,与更早之前的状态与行为无关,这种状态就是具有马尔可夫性的。
在
t
t
t时刻,在环境状态
S
t
∈
S
S_t\in\mathcal{S}
St∈S下智能体选择一个动作
A
t
∈
A
(
s
)
A_t\in\mathcal{A}(s)
At∈A(s)。下一时刻,智能体收到一个标量奖励
R
t
∈
R
R_t\in\mathcal{R}
Rt∈R,状态转移到下一时刻的状态
S
t
+
1
S_{t+1}
St+1。所以,整个过程就变成了一个序列:
S
0
,
A
0
,
R
1
,
S
1
,
A
1
,
R
2
,
S
2
,
A
2
,
R
3
,
…
S_0,A_0,R_1,S_1,A_1,R_2,S_2,A_2,R_3,\dotsc
S0,A0,R1,S1,A1,R2,S2,A2,R3,…
定义,在
t
t
t时刻,状态
s
s
s时,采取动作
a
a
a之后,由状态
s
s
s转移到下一时刻状态
s
,
s^,
s,并且得到收益
r
r
r的概率为
p
(
s
,
,
r
∣
s
,
a
)
=
Pr
(
S
t
=
s
,
,
R
t
=
r
∣
S
t
−
1
=
s
,
A
t
−
1
=
a
)
p(s^,,r\vert s,a)=\text{Pr}(S_t=s^,,R_t=r\vert S_{t-1}=s,A_{t-1}=a)
p(s,,r∣s,a)=Pr(St=s,,Rt=r∣St−1=s,At−1=a)
值得一提地是:
∑
s
,
∈
S
∑
r
∈
R
p
(
s
,
,
r
∣
s
,
a
)
=
1
\sum_{s^,\in\mathcal{S}}\sum_{r\in\mathcal{R}}p(s^,,r\vert s,a)=1
s,∈S∑r∈R∑p(s,,r∣s,a)=1
这个定义来源于 Richard S. Sutton 的 Reinforcement Learning: An Introduction.
更常见的是,状态转移概率
P
s
s
,
a
=
p
(
s
,
∣
s
,
a
)
=
Pr
(
S
t
=
s
,
∣
S
t
1
=
s
,
A
t
−
1
=
a
)
P_{ss^,}^a=p(s^,\vert s,a)=\text{Pr}(S_t=s^,\vert S_{t_1}=s,A_{t-1}=a)
Pss,a=p(s,∣s,a)=Pr(St=s,∣St1=s,At−1=a)
其实这也很好理解,他们之间满足下面的关系:
P
s
s
,
a
=
∑
r
∈
R
p
(
s
,
,
r
∣
s
,
a
)
P_{ss^,}^a=\sum_{r\in\mathcal{R}}p(s^,,r\vert s,a)
Pss,a=r∈R∑p(s,,r∣s,a)
2.1.2 奖励与回报
定义期望奖励为
r
(
s
,
a
)
r(s,a)
r(s,a),这是一个和状态,动作有关的期望:
R
s
a
=
E
[
R
t
+
1
∣
S
t
=
s
,
A
t
=
a
]
=
∑
r
∈
R
r
∑
s
,
∈
S
p
(
s
,
,
r
∣
s
,
a
)
=
∑
s
,
∈
S
∑
r
∈
R
r
p
(
s
,
,
r
∣
s
,
a
)
\begin{aligned} R_{s}^a&=E[R_{t+1}\vert S_{t}=s,A_{t}=a]\\ &=\sum_{r\in\mathcal{R}}r\sum_{s^,\in\mathcal{S}}p(s^,,r\vert s,a)\\ &=\sum_{s^,\in\mathcal{S}}\sum_{r\in\mathcal{R}}rp(s^,,r\vert s,a) \end{aligned}
Rsa=E[Rt+1∣St=s,At=a]=r∈R∑rs,∈S∑p(s,,r∣s,a)=s,∈S∑r∈R∑rp(s,,r∣s,a)
同时也可以定义一个关于
(
s
,
a
,
s
,
)
(s,a,s^,)
(s,a,s,)的三元函数,如下所示
R
s
s
,
a
=
E
[
R
t
+
1
∣
S
t
=
s
,
A
t
=
a
,
S
t
+
1
=
s
,
]
=
∑
r
∈
R
r
p
(
s
,
,
r
∣
s
,
a
)
p
(
s
,
∣
s
,
a
)
\begin{aligned} R_{ss^,}^a&=E[R_{t+1}\vert S_{t}=s,A_{t}=a, S_{t+1}=s^,]\\ &=\sum_{r\in\mathcal{R}}r\frac{p(s^,,r\vert s,a)}{p(s^,\vert s,a)} \end{aligned}
Rss,a=E[Rt+1∣St=s,At=a,St+1=s,]=r∈R∑rp(s,∣s,a)p(s,,r∣s,a)
这两个定义之间还存在着如下的关系:
R
s
a
=
∑
s
,
∈
S
P
s
s
,
a
R
s
s
,
a
\begin{aligned} R_{s}^a=\sum_{s^,\in\mathcal{S}}P_{ss^,}^aR_{ss^,}^a \end{aligned}
Rsa=s,∈S∑Pss,aRss,a
定义智能体获得的奖励总和为回报,如下所示:
G
t
=
R
t
+
1
+
γ
R
t
+
2
+
γ
2
R
t
+
3
+
…
=
∑
k
=
0
∞
γ
k
R
t
+
k
+
1
\begin{aligned} G_t&=R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\dotsc\\ &=\sum^\infty_{k=0}\gamma^kR_{t+k+1} \end{aligned}
Gt=Rt+1+γRt+2+γ2Rt+3+…=k=0∑∞γkRt+k+1
在
t
t
t和
t
+
1
t+1
t+1时刻,有
G
t
=
R
t
+
1
+
γ
R
t
+
2
+
γ
2
R
t
+
3
+
…
=
R
t
+
1
+
γ
G
t
+
1
\begin{aligned} G_t&=R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\dotsc\\ &=R_{t+1}+\gamma G_{t+1} \end{aligned}
Gt=Rt+1+γRt+2+γ2Rt+3+…=Rt+1+γGt+1
2.2 价值函数
根据当前状态 S t S_t St选择动作 A t A_t At的规则称之为策略,定义为 π ( a ∣ s ) \pi(a\vert{s}) π(a∣s),即从状态到每个动作的选择概率之间的映射。 π ( a ∣ s ) \pi(a\vert{s}) π(a∣s)是指当前状态 S t = s S_t=s St=s选择动作 A t = a A_t=a At=a的概率。
2.2.1 状态价值函数和状态动作价值函数
将策略
π
(
a
∣
s
)
\pi(a\vert{s})
π(a∣s)下状态
S
t
=
s
S_t=s
St=s的价值函数记为
V
π
(
s
)
V_\pi(s)
Vπ(s),也就是从状态开始,智能体按照策略所获得的回报的概率期望值,定义状态价值函数如下
V
π
(
s
)
=
E
π
[
G
t
∣
S
t
=
s
]
=
E
π
[
R
t
+
1
+
γ
R
t
+
2
+
γ
2
R
t
+
3
+
…
∣
S
t
=
s
]
=
E
π
[
∑
k
=
0
∞
γ
k
R
t
+
k
+
1
∣
S
t
=
s
]
,
∀
s
∈
S
=
E
π
[
R
t
+
1
+
γ
G
t
+
1
∣
S
t
=
s
]
\begin{aligned} V_\pi(s)&=E_\pi[G_t\vert{S}_t=s]\\ &=E_\pi[R_{t+1}+\gamma{R}_{t+2}+\gamma^2{R}_{t+3}+\dotsc\vert{S}_t=s]\\ &=E_\pi[\sum_{k=0}^\infty\gamma^kR_{t+k+1}\vert{S}_t=s], \forall s\in\mathcal{S} \\ &=E_\pi[R_{t+1}+\gamma{G}_{t+1}\vert{S}_t=s]\\ \end{aligned}
Vπ(s)=Eπ[Gt∣St=s]=Eπ[Rt+1+γRt+2+γ2Rt+3+…∣St=s]=Eπ[k=0∑∞γkRt+k+1∣St=s],∀s∈S=Eπ[Rt+1+γGt+1∣St=s]
注:终止状态的价值始终为零。
将策略
π
(
a
∣
s
)
\pi(a\vert{s})
π(a∣s)下状态
S
t
=
s
S_t=s
St=s时采取动作
A
t
=
a
A_t=a
At=a的价值函数记为
Q
π
(
s
,
a
)
Q_\pi(s,a)
Qπ(s,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
]
=
E
π
[
R
t
+
1
+
γ
G
t
+
1
∣
S
t
=
s
,
A
t
=
a
]
\begin{aligned} Q_\pi(s,a)&=E_\pi[G_t\vert{S}_t=s,A_t=a]\\ &=E_\pi[\sum_{k=0}^\infty\gamma^kR_{t+k+1}\vert{S}_t=s,A_t=a]\\ &=E_\pi[R_{t+1}+\gamma{G}_{t+1}\vert{S}_t=s,A_t=a] \end{aligned}
Qπ(s,a)=Eπ[Gt∣St=s,At=a]=Eπ[k=0∑∞γkRt+k+1∣St=s,At=a]=Eπ[Rt+1+γGt+1∣St=s,At=a]
2.2.2 V π ( s ) V_\pi(s) Vπ(s)和 Q π ( s , a ) Q_\pi(s,a) Qπ(s,a)之间的关系
-
根据状态动作价值函数 Q π ( s , a ) Q_\pi(s,a) Qπ(s,a)和状态价值函数 V π ( s ) V_\pi(s) Vπ(s)的定义,可以得到二者之间的转换关系:
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) V_\pi(s)=\sum_{a\in{A}}\pi(a\vert s)Q_\pi(s,a) Vπ(s)=a∈A∑π(a∣s)Qπ(s,a)
也就是说,状态价值函数是所有动作价值函数基于策略 π \pi π的期望。通俗说就是某状态下所有状态动作价值乘以该动作出现的概率,最后求和,就得到了对应的状态价值。 -
接着用状态价值函数 V π ( s ) V_\pi(s) Vπ(s)来表示动作价值函数 Q π ( s , a ) Q_\pi(s,a) Qπ(s,a),详细推导过程如下所示:
Q π ( s , a ) = E π [ R t + 1 + γ G t + 1 ∣ S t = s , A t = a ] = E π [ R t + 1 ∣ S t = s , A t = a ] + E π [ γ G t + 1 ∣ S t = s , A t = a ] = E π [ R t + 1 ∣ S t = s , A t = a ] + γ E π [ G t + 1 ∣ S t = s , A t = a ] \begin{aligned} Q_\pi(s,a)&=E_\pi[R_{t+1}+\gamma{G}_{t+1}\vert{S}_t=s,A_t=a]\\ &=E_\pi[R_{t+1}\vert{S}_t=s,A_t=a]+E_\pi[\gamma{G}_{t+1}\vert{S}_t=s,A_t=a]\\ &=E_\pi[R_{t+1}\vert{S}_t=s,A_t=a]+\gamma E_\pi[G_{t+1}\vert{S}_t=s,A_t=a] \end{aligned} Qπ(s,a)=Eπ[Rt+1+γGt+1∣St=s,At=a]=Eπ[Rt+1∣St=s,At=a]+Eπ[γGt+1∣St=s,At=a]=Eπ[Rt+1∣St=s,At=a]+γEπ[Gt+1∣St=s,At=a]
接下来,我们分析一下第一项和第二项。
根据 R s a R^a_s Rsa的定义,第一项显然等于 R s a R^a_s Rsa。再看第二项 E π [ G t + 1 ∣ S t = s , A t = a ] E_\pi[G_{t+1}\vert{S}_t=s,A_t=a] Eπ[Gt+1∣St=s,At=a],这一项的含义是说在状态 s s s和动作 a a a下,下一时刻的回报。注意不是当前时刻的回报,所以也就是在状态 s s s下采取动作 a a a后所有可能的下一状态的回报的期望,即
E π [ G t + 1 ∣ S t = s , A t = a ] = ∑ s , ∈ S P s s , a V π ( s , ) , E_\pi[G_{t+1}\vert{S}_t=s,A_t=a]=\sum_{s^{,}\in{S}}P^a_{ss^,}V_\pi(s^,), Eπ[Gt+1∣St=s,At=a]=s,∈S∑Pss,aVπ(s,),
其中,为 P s s , a P^a_{ss^,} Pss,a状态转移概率。
所以根据以上的分析,用状态价值函数 V π ( S t ) V_\pi(S_t) Vπ(St)来表示动作状态价值函数 Q π ( S t , A t ) Q_\pi(S_t,A_t) Qπ(St,At)满足:
Q π ( s , a ) = R s a + γ ∑ s , ∈ S P s s , a V π ( s , ) \begin{aligned} Q_\pi(s,a)=R^a_s+\gamma\sum_{s^{,}\in{S}}P^a_{ss^,}V_\pi(s^,) \end{aligned} Qπ(s,a)=Rsa+γs,∈S∑Pss,aVπ(s,)
2.3 价值函数与贝尔曼方程
最简单的方式,就是我们可以根据上一节价值函数之间的关系直接带入到价值函数中,具体步骤如下所示:
V
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
Q
π
(
s
,
a
)
=
∑
a
∈
A
π
(
a
∣
s
)
[
R
s
a
+
γ
∑
s
,
∈
S
P
s
s
,
a
V
π
(
s
,
)
]
=
∑
a
∈
A
π
(
a
∣
s
)
[
∑
s
,
∈
S
P
s
s
,
a
R
s
s
,
a
+
γ
∑
s
,
∈
S
P
s
s
,
a
V
π
(
s
,
)
]
=
∑
a
∈
A
π
(
a
∣
s
)
∑
s
,
∈
S
P
s
s
,
a
[
R
s
s
,
a
+
γ
V
π
(
s
,
)
]
\begin{aligned} V_\pi(s)&=\sum_{a\in{A}}\pi(a\vert s)Q_\pi(s,a)\\ &=\sum_{a\in{A}}\pi(a\vert s)[R^a_s+\gamma\sum_{s^{,}\in{S}}P^a_{ss^,}V_\pi(s^,)]\\ &=\sum_{a\in{A}}\pi(a\vert s)[\sum_{s^,\in\mathcal{S}}P_{ss^,}^aR_{ss^,}^a+\gamma\sum_{s^{,}\in{S}}P^a_{ss^,}V_\pi(s^,)]\\ &=\sum_{a\in{A}}\pi(a\vert s)\sum_{s^,\in\mathcal{S}}P^a_{ss^,}[R_{ss^,}^a+\gamma V_\pi(s^,)] \end{aligned}
Vπ(s)=a∈A∑π(a∣s)Qπ(s,a)=a∈A∑π(a∣s)[Rsa+γs,∈S∑Pss,aVπ(s,)]=a∈A∑π(a∣s)[s,∈S∑Pss,aRss,a+γs,∈S∑Pss,aVπ(s,)]=a∈A∑π(a∣s)s,∈S∑Pss,a[Rss,a+γVπ(s,)]
Q
π
(
s
,
a
)
=
R
s
a
+
γ
∑
s
,
∈
S
P
s
s
,
a
V
π
(
s
,
)
=
R
s
a
+
γ
∑
s
,
∈
S
P
s
s
,
a
[
∑
a
,
∈
A
π
(
a
,
∣
s
,
)
Q
π
(
s
,
,
a
,
)
]
=
∑
s
,
∈
S
P
s
s
,
a
R
s
s
,
a
+
γ
∑
s
,
∈
S
P
s
s
,
a
[
∑
a
,
∈
A
π
(
a
,
∣
s
,
)
Q
π
(
s
,
,
a
,
)
]
=
∑
s
,
∈
S
P
s
s
,
a
[
R
s
s
,
a
+
γ
∑
a
,
∈
A
π
(
a
,
∣
s
,
)
Q
π
(
s
,
,
a
,
)
]
\begin{aligned} Q_\pi(s,a)&=R^a_s+\gamma\sum_{s^{,}\in{S}}P^a_{ss^,}V_\pi(s^,)\\ &=R^a_s+\gamma\sum_{s^{,}\in{S}}P^a_{ss^,}[\sum_{a^,\in{A}}\pi(a^,\vert s^,)Q_\pi(s^,,a^,)]\\ &=\sum_{s^,\in\mathcal{S}}P_{ss^,}^aR_{ss^,}^a+\gamma\sum_{s^{,}\in{S}}P^a_{ss^,}[\sum_{a^,\in{A}}\pi(a^,\vert s^,)Q_\pi(s^,,a^,)]\\ &=\sum_{s^,\in\mathcal{S}}P_{ss^,}^a[R_{ss^,}^a+\gamma \sum_{a^,\in{A}}\pi(a^,\vert s^,)Q_\pi(s^,,a^,)] \end{aligned}
Qπ(s,a)=Rsa+γs,∈S∑Pss,aVπ(s,)=Rsa+γs,∈S∑Pss,a[a,∈A∑π(a,∣s,)Qπ(s,,a,)]=s,∈S∑Pss,aRss,a+γs,∈S∑Pss,a[a,∈A∑π(a,∣s,)Qπ(s,,a,)]=s,∈S∑Pss,a[Rss,a+γa,∈A∑π(a,∣s,)Qπ(s,,a,)]
上面两个公式就是
V
π
(
s
)
V_\pi(s)
Vπ(s)和
Q
π
(
s
,
a
)
Q_\pi(s,a)
Qπ(s,a)的贝尔曼方程,可以从不同的书籍和参考资料中看到不同的表达形式,比如有给出第二个等号后的结果,也有给出最后等号后的结果,本节的推导给出了两种结果之间的关系。最根本的区别在于使用的期望奖励的形式的不同,但是这两种期望奖励之间是有关联的,已经在2.1.2节中给出。
2.4 最优策略和最优价值函数
最优策略:该策略
π
\pi
π的状态值函数
V
π
(
s
)
V_{\pi}(s)
Vπ(s)优于其他策略,用
π
∗
\pi^*
π∗表示,对应的状态价值函数叫做最优价值函数
V
∗
(
s
)
V^*(s)
V∗(s)。需要说明的是,最优策略可能不唯一。有如下定义:
V
∗
(
s
)
=
max
π
V
π
(
s
)
V^*(s)=\max_\pi V_\pi(s)
V∗(s)=πmaxVπ(s)
同样地,最优策略也能产生最优的状态动作价值函数,定义如下:
Q
∗
(
s
,
a
)
=
max
π
Q
π
(
s
,
a
)
Q^*(s,a)=\max_\pi Q_\pi(s,a)
Q∗(s,a)=πmaxQπ(s,a)
上式说明:在状态
s
s
s下,先采取动作
a
a
a,之后按照最优策略去决策的期望回报。
对于最优的策略,基于动作价值函数我们可以定义为:
π
∗
(
a
∣
s
)
=
{
1
a
=
arg
max
a
∈
A
Q
∗
(
s
,
a
)
0
a
≠
arg
max
a
∈
A
Q
∗
(
s
,
a
)
\pi^*(a|s)=\begin{cases} 1 & a=\arg\max_{a\in{A}}Q^*(s,a)\\ 0 & a\neq\arg\max_{a\in{A}}Q^*(s,a) \end{cases}
π∗(a∣s)={10a=argmaxa∈AQ∗(s,a)a=argmaxa∈AQ∗(s,a)
同时,利用
V
π
(
s
)
V_\pi(s)
Vπ(s)和
Q
π
(
s
,
a
)
Q_\pi(s,a)
Qπ(s,a)之间的关系,也可以得到:
V
∗
(
s
)
=
max
a
Q
∗
(
s
,
a
)
V^*(s)=\max_aQ^*(s,a)
V∗(s)=amaxQ∗(s,a)
Q ∗ ( s , a ) = R s a + γ ∑ s , ∈ S P s s , a V ∗ ( s , ) Q^*(s,a)=R^a_s+\gamma\sum_{s^{,}\in{S}}P^a_{ss^,}V^*(s^,) Q∗(s,a)=Rsa+γs,∈S∑Pss,aV∗(s,)
所以贝尔曼最优方程如下所示
V
∗
(
s
)
=
max
a
(
R
s
a
+
γ
∑
s
,
∈
S
P
s
s
,
a
V
∗
(
s
,
)
)
Q
∗
(
s
,
a
)
=
R
s
a
+
γ
∑
s
,
∈
S
P
s
s
,
a
max
a
,
Q
∗
(
s
,
,
a
,
)
V^*(s)=\max_a(R^a_s+\gamma\sum_{s^{,}\in{S}}P^a_{ss^,}V^*(s^,))\\ Q^*(s,a)=R^a_s+\gamma\sum_{s^{,}\in{S}}P^a_{ss^,}\max_{a^,}Q^*(s^,,a^,)
V∗(s)=amax(Rsa+γs,∈S∑Pss,aV∗(s,))Q∗(s,a)=Rsa+γs,∈S∑Pss,aa,maxQ∗(s,,a,)
贝尔曼最优方程表明:最优策略下,各个状态的价值一定等于这个状态下最优动作的期望回报。