强化学习笔记(一)
强化学习笔记(一)
- 回报与价值函数
- 贝尔曼方程
- 全期望公式
- 自举
- 策略
- 马尔可夫决策过程和马尔可夫过程/马尔可夫奖励过程的区别
- 马尔可夫决策过程中的价值函数
- 贝尔曼期望方程
- 备份图
参考书目:蘑菇书,链接蘑菇书
本系列笔记仅为个人学习所用,不涉及商业价值
回报与价值函数
范围是指一个回合的长度,即每个回合最大的时间步数,是由有限个步数决定的。
回报指奖励的逐步叠加。假设时间
t
t
t后奖励序列为
r
t
+
1
,
r
t
+
2
,
⋯
,
r
t
+
3
r_{t+1},r_{t+2},\cdots,r_{t+3}
rt+1,rt+2,⋯,rt+3,那么回报为
G
t
=
r
t
+
1
+
γ
r
t
+
2
+
γ
2
r
t
+
3
+
γ
3
r
t
+
4
+
⋯
+
γ
T
−
t
−
1
r
T
G_t = r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+3} + \gamma^3 r_{t+4} + \cdots + \gamma^{T-t-1} r_T
Gt=rt+1+γrt+2+γ2rt+3+γ3rt+4+⋯+γT−t−1rT
其中
γ
\gamma
γ为折扣因子,越往后得到的奖励,折扣越多,即希望得到现有的奖励,对未来的奖励打折扣。
γ
=
0
\gamma=0
γ=0则只关注当前的奖励。
状态价值函数:定义为回报的期望,即
V
t
(
s
)
=
E
[
G
t
∣
s
t
=
s
]
=
E
[
r
t
+
1
+
γ
r
t
+
2
+
γ
2
r
t
+
3
+
γ
3
r
t
+
4
+
⋯
+
γ
T
−
t
−
1
r
T
∣
s
t
=
s
]
\begin{aligned} V^t(s) &= \mathbb{E} \left[ G_t \vert s_t = s \right] \\ &= \mathbb{E} \left[ r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+3} + \gamma^3 r_{t+4} + \cdots + \gamma^{T-t-1} r_T \Big\vert s_t = s \right] \end{aligned}
Vt(s)=E[Gt∣st=s]=E[rt+1+γrt+2+γ2rt+3+γ3rt+4+⋯+γT−t−1rT
st=s]其中
G
t
G_t
Gt是折扣回报。对
G
t
G_t
Gt取期望,可以看成是对未来可能获得奖励的当前价值的表现,即进入某一个状态后,现在有多大的价值。
贝尔曼方程
从价值函数里推导出贝尔曼方程
V
(
s
)
=
R
(
s
)
⏟
即时奖励
+
γ
∑
s
′
∈
S
p
(
s
′
∣
s
)
V
(
s
′
)
⏟
未来奖励的折扣总和
V(s) = \underbrace{ R(s) }_{即时奖励} + \underbrace{ \gamma \sum_{s' \in S} p \left( s' \vert s \right) V (s') }_{未来奖励的折扣总和}
V(s)=即时奖励
R(s)+未来奖励的折扣总和
γs′∈S∑p(s′∣s)V(s′)
全期望公式
全期望公式也被称为叠期望公式(LIE)。如果
A
i
A_i
Ai是样本空间的有限或可数的划分,则全期望公式为
E
[
X
]
=
∑
i
E
[
X
∣
A
i
]
p
(
A
i
)
\mathbb{E} [X] = \sum_i \mathbb{E} [ X \vert A_i ] p (A_i )
E[X]=i∑E[X∣Ai]p(Ai)即是一种加权求和。
同样地有
E
[
G
t
+
1
∣
s
t
+
1
]
=
E
[
g
′
∣
s
′
]
=
∑
g
′
g
′
p
(
g
′
∣
s
′
)
(2.9)
\begin{aligned} \mathbb{E} \left[ G_{t+1} \big\vert s_{t+1} \right] &= \mathbb{E} [g' \vert s'] \\ &= \sum_{g'} g' p \left( g' \vert s' \right) \end{aligned} \tag{2.9}
E[Gt+1
st+1]=E[g′∣s′]=g′∑g′p(g′∣s′)(2.9)如果
X
,
Y
X,Y
X,Y都是离散型随机变量,则条件期望
E
[
X
∣
Y
=
y
]
\mathbb{E} [ X \vert Y=y ]
E[X∣Y=y]定义为
E
[
X
∣
Y
=
y
]
=
∑
x
x
p
(
X
=
x
∣
Y
=
y
)
\mathbb{E} [X \vert Y = y] = \sum_x x p ( X = x \vert Y = y )
E[X∣Y=y]=x∑xp(X=x∣Y=y)对式(2.9)求期望有
E
[
E
[
G
t
+
1
∣
s
t
+
1
]
∣
s
t
]
=
E
[
g
′
∣
s
]
=
E
[
G
t
+
1
∣
s
t
]
\mathbb{E} \left[ \mathbb{E} \left[ G_{t+1} \vert s_{t+1} \right] \vert s_t \right] = \mathbb{E} [ g' \vert s ] = \mathbb{E} [ G_{t+1} \vert s_t ]
E[E[Gt+1∣st+1]∣st]=E[g′∣s]=E[Gt+1∣st]
贝尔曼方程推导:
V
(
s
)
=
E
[
G
t
∣
s
t
=
s
]
=
E
[
r
t
+
1
+
γ
r
t
+
2
+
γ
2
r
t
+
3
+
γ
3
r
t
+
4
+
⋯
∣
s
t
=
s
]
=
R
(
s
)
+
γ
E
[
G
t
+
1
∣
s
t
=
s
]
=
R
(
s
)
+
γ
E
[
V
(
s
t
+
1
)
∣
s
t
=
s
]
=
R
(
s
)
+
γ
∑
s
′
∈
S
p
(
s
′
∣
s
)
V
(
s
′
)
(2.11)
\begin{aligned} V(s) &= \mathbb{E} [ G_t \vert s_t = s ] \\ &= \mathbb{E} \left[ r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+3} + \gamma^3 r_{t+4} + \cdots \vert s_t = s \right] \\ &= R(s) + \gamma \mathbb{E} [ G_{t+1} \vert s_t = s ] \\ &= R(s) + \gamma \mathbb{E} [ V(s_{t+1}) \vert s_t = s ] \\ &= R(s) + \gamma \sum_{s' \in S} p (s' \vert s) V(s') \end{aligned} \tag{2.11}
V(s)=E[Gt∣st=s]=E[rt+1+γrt+2+γ2rt+3+γ3rt+4+⋯∣st=s]=R(s)+γE[Gt+1∣st=s]=R(s)+γE[V(st+1)∣st=s]=R(s)+γs′∈S∑p(s′∣s)V(s′)(2.11)上式也叫动态规划方程。表明当前状态的价值函数可以通过下个状态的价值函数来计算。它表明的是
V
(
s
)
V(s)
V(s)和
V
(
s
′
)
V(s')
V(s′)之间的关系。
向量形式的解析解:
V
=
(
I
−
γ
P
)
−
1
R
\textbf{\textit{V}} = \left( \textbf{\textit{I}} - \gamma \textbf{\textit{P}} \right) ^{-1} \textbf{\textit{R}}
V=(I−γP)−1R
自举
根据其他估算值来更新估算值的思想,称为自举。当最后更新的状态与我们上一个状态的区别不大时,更新就可以停止,可以输出最新的 V ′ ( s ) V'(s) V′(s)作为当前状态的价值。此时贝尔曼方程变成了一个贝尔曼更新。
策略
策略定义了在某一个状态应该采取什么样的动作。知道当前状态后,可以把当前状态代入策略函数,得到一个概率
π
(
a
∣
s
)
=
p
(
a
t
=
a
∣
s
t
=
s
)
\pi (a \vert s) = p (a_t = a \vert s_t = s )
π(a∣s)=p(at=a∣st=s)即在状态
s
s
s下采取
a
a
a动作的概率。bf本质上是一个概率的表示。
当已经知道每个状态下可能采取的动作的概率后,可以直接把动作进行加和,去掉
a
a
a,得到对于马尔可夫奖励过程的转移,其中没有动作
P
π
(
s
′
∣
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
p
(
s
′
∣
s
,
a
)
(2.18)
P_\pi (s' \vert s) = \sum_{a \in A} \pi (a \vert s) p( s' \vert s,a ) \tag{2.18}
Pπ(s′∣s)=a∈A∑π(a∣s)p(s′∣s,a)(2.18)理解为:从
s
→
s
′
s\rightarrow s'
s→s′的概率=采取
a
a
a时从
s
→
s
′
s\rightarrow s'
s→s′的概率
p
p
p
×
\times
× 在
s
s
s下采取
a
a
a的概率
π
\pi
π。
对于奖励函数,亦可以把动作去掉,得到奖励函数
r
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
R
(
s
,
a
)
(2.19)
r_\pi (s) = \sum_{a \in A} \pi (a \vert s) R(s,a) \tag{2.19}
rπ(s)=a∈A∑π(a∣s)R(s,a)(2.19)
马尔可夫决策过程和马尔可夫过程/马尔可夫奖励过程的区别
马尔可夫过程/马尔可夫奖励过程的状态转移是直接决定的,从当前
s
s
s直接通过转移概率决定下一个状态。
马尔可夫决策过程中间多了一层动作
a
a
a,智能体在当前
s
s
s首先要决定采取一种动作,到达下图的黑色节点。到达黑色节点后,由于具有不确定性,智能体进入未来的状态也是一个概率分布。在当前状态与未来状态转移过程中多了一层决策性,这是主要区别。在马尔可夫决策过程中,动作是由智能体决定的,智能体会采取动作来决定未来的状态转移。
马尔可夫决策过程中的价值函数
V π ( s ) = E π [ G t ∣ s t = s ] (2.20) V_\pi (s) = \mathbb{E}_\pi [ G_t \vert s_t = s ] \tag{2.20} Vπ(s)=Eπ[Gt∣st=s](2.20)当策略决定后,对策略进行采样,得到一个期望,从而得出价值函数。
Q函数,也被称为动作价值函数,定义是在某一状态采取某一动作,可能得到的回报的期望
Q
π
(
s
,
a
)
=
E
π
[
G
t
∣
s
t
=
s
,
a
t
=
a
]
Q_\pi (s, a) = \mathbb{E}_\pi [G_t \vert s_t = s, a_t = a ]
Qπ(s,a)=Eπ[Gt∣st=s,at=a]这里的期望也是基于策略函数的。Q是采取单个
a
a
a得到的价值,即单一动作
a
a
a的动作价值。
由于可能采取不同的策略,因此需要对策略函数进行加和,得到策略的价值。对Q函数中的动作进行加和(即遍历所有可能取到的动作),就可以得到价值函数
V
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
Q
π
(
s
,
a
)
(2.22)
V_\pi (s) = \sum_{a \in A} \pi(a \vert s) Q_\pi (s, a) \tag{2.22}
Vπ(s)=a∈A∑π(a∣s)Qπ(s,a)(2.22)V是单一状态
s
s
s下所有动作带来的价值的期望,总体来说是单一状态
s
s
s的状态价值。
对Q函数的贝尔曼方程进行推导
Q
(
s
,
a
)
=
E
[
G
t
∣
s
t
=
s
,
a
t
=
a
]
=
[
r
t
+
1
+
γ
r
t
+
2
+
γ
2
r
t
+
3
+
⋯
∣
s
t
=
s
,
a
t
=
a
]
=
E
[
r
t
+
1
∣
s
t
=
s
,
a
t
=
a
]
+
γ
E
[
r
t
+
2
+
γ
r
t
+
3
+
γ
2
r
t
+
4
+
⋯
∣
s
t
=
s
,
a
t
=
a
]
=
R
(
s
,
a
)
+
γ
E
[
G
t
+
1
∣
s
t
=
s
,
a
t
=
a
]
=
R
(
s
,
a
)
+
γ
E
[
V
(
s
t
+
1
)
∣
s
t
=
s
,
a
t
=
a
]
=
R
(
s
,
a
)
+
γ
∑
s
′
∈
S
p
(
s
′
∣
s
,
a
)
V
(
s
′
)
(2.23)
\begin{aligned} Q(s, a) &= \mathbb{E} [ G_t \vert s_t = s, a_t = a] \\ &= \mathbb[ r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+3} + \cdots \vert s_t = s, a_t = a] \\ &= \mathbb{E} [r_{t+1} \vert s_t = s, a_t = a] + \gamma \mathbb{E} [r_{t+2} + \gamma r_{t+3} + \gamma^2 r_{t+4} + \cdots \vert s_t = s, a_t = a] \\ &= R(s, a) + \gamma \mathbb{E} [G_{t+1} \vert s_t = s, a_t = a] \\ &= R(s, a) + \gamma \mathbb{E} [V(s_{t+1}) \vert s_t = s, a_t = a] \\ &= R(s, a) + \gamma \sum_{s' \in S} p(s' \vert s, a) V(s') \end{aligned} \tag{2.23}
Q(s,a)=E[Gt∣st=s,at=a]=[rt+1+γrt+2+γ2rt+3+⋯∣st=s,at=a]=E[rt+1∣st=s,at=a]+γE[rt+2+γrt+3+γ2rt+4+⋯∣st=s,at=a]=R(s,a)+γE[Gt+1∣st=s,at=a]=R(s,a)+γE[V(st+1)∣st=s,at=a]=R(s,a)+γs′∈S∑p(s′∣s,a)V(s′)(2.23)
{
状态价值
V
(
s
)
,某状态
s
的价值
动作价值
Q
(
s
,
a
)
,采取某动作
a
的价值
\begin{cases} 状态价值V(s),某状态s的价值 \\ 动作价值Q(s,a),采取某动作a的价值 \end{cases}
{状态价值V(s),某状态s的价值动作价值Q(s,a),采取某动作a的价值
贝尔曼期望方程
可以把状态价值函数V和动作价值函数Q进行拆分,拆分成即时奖励和后续状态的折扣价值,进而由式(2.20)得到贝尔曼期望方程
V
π
(
s
)
=
E
π
[
G
t
∣
s
t
=
s
]
=
E
π
[
r
t
+
1
+
γ
V
π
(
s
t
+
1
)
∣
s
t
=
s
]
V_\pi (s) = \mathbb{E}_\pi [ G_t \vert s_t = s ] = \mathbb{E}_\pi [ r_{t+1} + \gamma V_\pi (s_{t+1}) \vert s_t = s]
Vπ(s)=Eπ[Gt∣st=s]=Eπ[rt+1+γVπ(st+1)∣st=s]对于Q函数亦然
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 [ r_{t+1} + \gamma Q_\pi (s_{t+1}, a_{t+1} ) \vert s_t = s, a_t = a]
Qπ(s,a)=Eπ[rt+1+γQπ(st+1,at+1)∣st=s,at=a]根据式(2.22)
V
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
Q
π
(
s
,
a
)
(2.22)
V_\pi (s) = \sum_{a \in A} \pi(a \vert s) Q_\pi (s, a) \tag{2.22}
Vπ(s)=a∈A∑π(a∣s)Qπ(s,a)(2.22)与式(2.23)
Q
π
(
s
,
a
)
=
R
(
s
,
a
)
+
γ
∑
s
′
∈
S
p
(
s
′
∣
s
,
a
)
V
π
(
s
′
)
(2.23)
Q_\pi(s, a) = R(s, a) + \gamma \sum_{s' \in S} p(s' \vert s, a) V_\pi(s') \tag{2.23}
Qπ(s,a)=R(s,a)+γs′∈S∑p(s′∣s,a)Vπ(s′)(2.23)可以看出,式(2.22)为V和Q的关系(由Q推V),式(2.23)为Q和V的关系(由V推Q)。把式(2.23)代入(2.22)有
V
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
(
R
(
s
,
a
)
+
γ
∑
s
′
∈
S
p
(
s
′
∣
s
,
a
)
V
π
(
s
′
)
)
(2.28)
V_\pi (s) = \sum_{a \in A} \pi(a \vert s) \left( R(s, a) + \gamma \sum_{s' \in S} p(s' \vert s, a) V_\pi(s') \right) \tag{2.28}
Vπ(s)=a∈A∑π(a∣s)(R(s,a)+γs′∈S∑p(s′∣s,a)Vπ(s′))(2.28)该式表明当前状态的V与未来状态的V之间的关系。
同样地,把(2.22)代入(2.23)有
Q
π
(
s
,
a
)
=
R
(
s
,
a
)
+
γ
∑
s
′
∈
S
p
(
s
′
∣
s
,
a
)
∑
a
∈
A
π
(
a
′
∣
s
′
)
Q
π
(
s
′
,
a
′
)
(2.29)
Q_\pi(s, a) = R(s, a) + \gamma \sum_{s' \in S} p(s' \vert s, a) \sum_{a \in A} \pi(a' \vert s') Q_\pi (s', a') \tag{2.29}
Qπ(s,a)=R(s,a)+γs′∈S∑p(s′∣s,a)a∈A∑π(a′∣s′)Qπ(s′,a′)(2.29)该式表明当前时刻的Q与未来时刻的Q的关系。
(2.28)和(2.29)都是贝尔曼方程的形式。
(2.28)和(2.11)关系:
这里列出两式:
V
(
s
)
=
R
(
s
)
+
γ
∑
s
′
∈
S
p
(
s
′
∣
s
)
V
(
s
′
)
(2.11)
V(s) = R(s) + \gamma \sum_{s' \in S} p (s' \vert s) V(s') \tag{2.11}
V(s)=R(s)+γs′∈S∑p(s′∣s)V(s′)(2.11)
V
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
(
R
(
s
,
a
)
+
γ
∑
s
′
∈
S
p
(
s
′
∣
s
,
a
)
V
π
(
s
′
)
)
(2.28)
V_\pi (s) = \sum_{a \in A} \pi(a \vert s) \left( R(s, a) + \gamma \sum_{s' \in S} p(s' \vert s, a) V_\pi(s') \right) \tag{2.28}
Vπ(s)=a∈A∑π(a∣s)(R(s,a)+γs′∈S∑p(s′∣s,a)Vπ(s′))(2.28)两式是开括号的关系。如果我们使用(2.18)和(2.19):
P
π
(
s
′
∣
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
p
(
s
′
∣
s
,
a
)
(2.18)
P_\pi (s' \vert s) = \sum_{a \in A} \pi (a \vert s) p( s' \vert s,a ) \tag{2.18}
Pπ(s′∣s)=a∈A∑π(a∣s)p(s′∣s,a)(2.18)
r
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
R
(
s
,
a
)
(2.19)
r_\pi (s) = \sum_{a \in A} \pi (a \vert s) R(s,a) \tag{2.19}
rπ(s)=a∈A∑π(a∣s)R(s,a)(2.19)把(2.18)和(2.19)代入(2.11)有
V
(
s
)
=
R
(
s
)
+
γ
∑
s
′
∈
S
p
(
s
′
∣
s
)
V
(
s
′
)
=
R
(
s
)
+
γ
∑
s
′
∈
S
[
∑
a
∈
A
π
(
a
∣
s
)
p
(
s
′
∣
s
,
a
)
]
V
(
s
′
)
=
∑
a
∈
A
π
(
a
∣
s
)
R
(
s
,
a
)
+
γ
∑
s
′
∈
S
[
∑
a
∈
A
π
(
a
∣
s
)
p
(
s
′
∣
s
,
a
)
]
V
(
s
′
)
=
∑
a
∈
A
π
(
a
∣
s
)
[
R
(
s
,
a
)
+
γ
∑
s
′
∈
S
p
(
s
′
∣
s
,
a
)
V
π
(
s
′
)
]
\begin{aligned} V(s) &= R(s) + \gamma \sum_{s' \in S} p (s' \vert s) V(s') \\ &= R(s) + \gamma \sum_{s' \in S} \left[ \sum_{a \in A} \pi (a \vert s) p( s' \vert s,a ) \right] V(s') \\ &= \sum_{a \in A} \pi (a \vert s) R(s,a) + \gamma \sum_{s' \in S} \left[ \sum_{a \in A} \pi (a \vert s) p( s' \vert s,a ) \right] V(s') \\ &= \sum_{a \in A} \pi (a \vert s) \left[ R(s, a) + \gamma \sum_{s' \in S} p(s' \vert s, a) V_\pi(s') \right] \end{aligned}
V(s)=R(s)+γs′∈S∑p(s′∣s)V(s′)=R(s)+γs′∈S∑[a∈A∑π(a∣s)p(s′∣s,a)]V(s′)=a∈A∑π(a∣s)R(s,a)+γs′∈S∑[a∈A∑π(a∣s)p(s′∣s,a)]V(s′)=a∈A∑π(a∣s)[R(s,a)+γs′∈S∑p(s′∣s,a)Vπ(s′)]即为式(2.28)。
式(2.28)的理解:
V
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
(
R
(
s
,
a
)
+
γ
∑
s
′
∈
S
p
(
s
′
∣
s
,
a
)
V
π
(
s
′
)
)
(2.28)
V_\pi (s) = \sum_{a \in A} \pi(a \vert s) \left( R(s, a) + \gamma \sum_{s' \in S} p(s' \vert s, a) V_\pi(s') \right) \tag{2.28}
Vπ(s)=a∈A∑π(a∣s)(R(s,a)+γs′∈S∑p(s′∣s,a)Vπ(s′))(2.28)式右边
γ
∑
p
V
\gamma \sum pV
γ∑pV表示:
s
′
s'
s′为从
s
s
s出发,能够到达的那些状态。这些
s
′
s'
s′对应的状态价值函数
V
(
s
′
)
V(s')
V(s′),乘以从
s
s
s采取动作
a
a
a到达
s
′
s'
s′的概率
p
p
p,再对所有
s
′
s'
s′求和,得到
∑
p
V
\sum pV
∑pV。折扣
γ
\gamma
γ后,加上
s
s
s本身离开自己的奖励
R
R
R,整理再乘以采取该动作
a
a
a的概率
π
\pi
π,再把所有可能的
a
a
a加和,就能得到
V
V
V了。
{
π
(
a
∣
s
)
−
从
s
出发,采取
a
的概率
p
(
s
′
∣
s
,
a
)
−
s
状态下,从
a
出发,发展为
s
′
的概率
\begin{cases} \pi(a \vert s) - 从s出发,采取a的概率 \\ p (s' \vert s, a ) - s状态下,从a出发,发展为s'的概率 \end{cases}
{π(a∣s)−从s出发,采取a的概率p(s′∣s,a)−s状态下,从a出发,发展为s′的概率
备份图
备份图中,每一个实心圆圈代表一个状态-动作对,每一个空心圆圈代表一个状态。
在上图中:
- 奖励 r r r只出现在实心圆到空心圈的过程中( ∙ → ∘ \bullet \rightarrow \circ ∙→∘),因为必须先采取了动作 a a a(即 ∙ \bullet ∙)才能有奖励 r r r!
在式样书(2.28)中有2层加和:1)第一层对叶子节点
s
′
s'
s′进行加和,往上备份一层,这样就能把未来的价值
s
′
s'
s′备份到黑色节点。2)第二层是对动作进行加和,得到黑色节点(
a
a
a)的价值后,再往上备份一层,得到根节点的价值,即当前状态
s
s
s的价值。
在上图中,(b)为第一层,对应为式(2.22),即从Q计算出V;( c )为第二层,对应式(2.23),即从V计算出Q。二式合并即得式(2.28)。