该书由清华大学李升波教授撰写的,主要面向工业控制领域的研究者和工程师,曾获得2024年度Springer中国新发展奖(China New Development Awards)。全书按照原理剖析、主流算法、典型示例的架构,系统地介绍了用于动态系统决策与控制的强化学习方法。全书共分为11章,内容涵盖了强化学习的基本概念、蒙特卡洛法、时序差分法、动态规划法、函数近似法、策略梯度法、近似动态规划、状态约束的处理和深度强化学习等知识点。书籍及源代码下载网站:书籍及代码链接点这里。
文章目录
书籍链接:Reinforcement Learning for Sequential Decision and Optimal Control
这篇博客主要介绍一种Model-free的Indirect RL方法——Monte Carlo Learning。这里的Model-free指的是Monte Carlo Learning不需要环境的模型,而是通过和环境的交互来学习。Indirect RL指的是Monte Carlo Learning不直接优化策略,而是通过求解Bellman方程来学习策略。更具体地来说,Monte Carlo Learning采用的是策略迭代(Policy Iteration)的方法。注意到上一篇博客讲到策略迭代是并没有具体说Policy Evaluation和Policy Improvement是如何实现的,这篇博客将会详细介绍在Monte Carlo Learning中如何实现Policy Evaluation和Policy Improvement。在下文中Monte Carlo将简称为MC。
Monte Carlo Learning的核心思想是通过采样的方法来估计状态值函数和动作值函数。通过与环境的交互可以获得很多轨迹(Trajectory),根据这些轨迹我们可以计算出值函数的平均值。随着采样数目的增加,值函数的估计值逐渐收敛到其真实值。这就是MC的基本思想。
本系列之前博客的链接见系列博客地址。
3.1 MC Policy Evaluation
MC Policy Evaluation最适合那些有明确的终止时间或易于终止的任务。在下面的讨论中,我们来关注上述的那种任务——episodic task,且这些任务的状态和动作空间都是离散且有限的。
下面我们来看看如何估计两种值函数
-
State Value Function: 估计某个状态s的值函数 V ( s ) V(s) V(s)的方法是收集多次从状态s开始得到的return,然后求这些return的平均值。
V π ( s ) = A v g { G t : T ∣ s t = s } , G t : T = ∑ i = 0 T − t γ i r t + i . V^{\pi}(s)=\mathrm{Avg}\{G_{t:T}|s_{t}=s\},\\G_{t:T}=\sum_{i=0}^{T-t}\gamma^{i}r_{t+i}. Vπ(s)=Avg{Gt:T∣st=s},Gt:T=i=0∑T−tγirt+i.
这里的 G t : T G_{t:T} Gt:T是从时刻t开始,在T时刻终止的return, γ \gamma γ是折扣因子, r t + i r_{t+i} rt+i是时刻t+i的reward。注意对于episodic task, T T T是终止时刻,且不同轨迹的终止时刻可能不同。 V π ( s ) V^{\pi}(s) Vπ(s)是从状态s的状态值函数的估计值,而 v π ( s ) v_{\pi}(s) vπ(s)是其真实值。随着采样数目N的增加, V π ( s ) V^{\pi}(s) Vπ(s)逐渐收敛到 v π ( s ) v_{\pi}(s) vπ(s),即:
lim N → ∞ V π ( s ) = v π ( s ) . \lim_{N\to\infty}V^{\pi}(s)=v_{\pi}(s). N→∞limVπ(s)=vπ(s).
-
Action Value Function: 估计某个状态s下某个动作a的值函数 Q ( s , a ) Q(s,a) Q(s,a)的方法是收集多次从状态s执行动作a得到的return(即从状态-动作对(s, a)出发得到的return),然后求这些return的平均值:
Q π ( s , a ) = A v g { G t : T ∣ s t = s , a t = a } . Q^{\pi}(s,a)=\mathrm{Avg}\{G_{t:T}|s_{t}=s,a_{t}=a\}. Qπ(s,a)=Avg{Gt:T∣st=s,at=a}.
当环境模型已知时,估计状态值函数和动作值函数均可;当环境模型未知时,只能估计动作值函数。因为仅仅只通过采样,我们无法得到状态转移概率 p ( s ′ ∣ s , a ) p(s'|s,a) p(s′∣s,a),自然也就无法仅根据状态值函数来选择最佳策略。
MC估计的一个重要property是每个状态或状态-动作对的估计值是独立的。这个property使得MC方法可以并行化,并且当我们只需要估计一个整个状态或状态-动作对集合的一个子集时很有效。
当使用Mc来估计动作值函数时,一个严重的问题是很多状态-动作对可能永远不会被访问到。这个问题被称为Exploration Problem。为了解决这个问题,我们可以采用 ϵ \epsilon ϵ-greedy策略,即以 1 − ϵ 1-\epsilon 1−ϵ的概率选择当前最优的动作,以 ϵ \epsilon ϵ的概率随机选择动作。这样可以保证所有的状态-动作对最终都会被访问到。另一种方法是随机以所有动作-状态对为起点来采样一个episode。
最后还要讨论一个MC中的重要问题——Multiple Visits。在MC中,一个状态或状态-动作对可能被访问多次。为了解决这个问题,我们可以采用First-Visit MC或Every-Visit MC。First-Visit MC只对每个状态或状态-动作对的第一次访问进行估计(即只把从第一次访问得到的return纳入计算),而Every-Visit MC对每次访问都进行估计(对于每次访问得到的return都纳入计算)。例如上图中,对于状态s(6),First-Visit MC只把从左边那个s(6)开始,到T终止的return加到状态s(6)的return和中,最后再平均;而Every-Visit MC则把从左边那个s(6)开始,到T终止的return和从右边那个s(6)开始,到T终止的return都加到状态s(6)的return和中,最后再平均。
3.2 MC Policy Improvement
当环境模型已知时,采用状态值函数即可来改进策略;否则,只能采用动作值函数来改进策略。
3.2.1 Greedy Policy
在MC中,我们采取的策略主要是greedy策略及其变式
ϵ
\epsilon
ϵ-greedy策略。Greedy策略是指在某个状态s下,一定选择使得动作值函数最大的动作a*,而绝不会选择其他策略。
a
∗
=
arg
max
a
q
π
(
s
,
a
)
.
a^*=\arg\max_aq^\pi(s,a).
a∗=argamaxqπ(s,a).但是这种策略会使得算法完全失去随机性。为了更好地平衡Exploration和Exploitation,我们可以采用
ϵ
\epsilon
ϵ-greedy策略。
ϵ
\epsilon
ϵ-greedy策略是指以
1
−
ϵ
+
ϵ
∣
A
(
s
)
∣
1-\epsilon+\frac{\epsilon}{|A(s)|}
1−ϵ+∣A(s)∣ϵ的概率选择当前最优的动作a*,以
ϵ
∣
A
(
s
)
∣
\frac{\epsilon}{|A(s)|}
∣A(s)∣ϵ的概率随机选择动作。
π
ϵ
(
a
∣
s
)
=
{
1
−
ϵ
+
ϵ
∣
A
∣
,
i
f
a
=
a
∗
ϵ
∣
A
∣
,
i
f
a
≠
a
∗
\pi^\epsilon(a|s)=\begin{cases}1-\epsilon+\frac\epsilon{|\mathcal{A}|},&\mathrm{if~}a=a^*\\[2ex]\frac\epsilon{|\mathcal{A}|},&\mathrm{if~}a\neq a^*&\end{cases}
πϵ(a∣s)=⎩
⎨
⎧1−ϵ+∣A∣ϵ,∣A∣ϵ,if a=a∗if a=a∗注意,这里为什么要除以动作集
A
\mathcal{A}
A的大小呢?因为这样可以保证
π
ϵ
(
a
∣
s
)
\pi^\epsilon(a|s)
πϵ(a∣s)是一个概率分布。即所有动作的概率之和为1。可能这里还令人有点疑惑,通常我们看到的
ϵ
\epsilon
ϵ-greedy策略是以
1
−
ϵ
1-\epsilon
1−ϵ的概率选择当前最优的动作,以
ϵ
\epsilon
ϵ的概率随机选择动作,为什么这里的最优策略的概率除了
1
−
ϵ
1-\epsilon
1−ϵ之外还要再加上
ϵ
∣
A
∣
\frac{\epsilon}{|\mathcal{A}|}
∣A∣ϵ呢?其实这里没错,只是一般的描述
ϵ
\epsilon
ϵ-greedy策略的表述有些不准确,其实一般的表述的意思是,最优动作本身独占
1
−
ϵ
1-\epsilon
1−ϵ的概率,而剩下的
ϵ
\epsilon
ϵ的概率平均分配给所有动作(包含)最优动作。
在实际的应用中,我们以估计的动作值函数来替代动作值函数的真实值
q
π
(
s
,
a
)
q^{\pi}(s,a)
qπ(s,a),即:
a
∗
=
arg
max
a
Q
π
(
s
,
a
)
.
a^*=\arg\max_aQ^\pi(s,a).
a∗=argamaxQπ(s,a).也可根据状态值函数和动作值函数的关系来使用状态值函数来选择最优动作:
a
∗
=
arg
max
a
∑
s
′
∈
S
P
s
s
′
a
(
r
s
s
′
a
+
γ
V
π
(
s
′
)
)
.
a^*=\arg\max_a\sum_{s^{\prime}\in\mathcal{S}}\mathcal{P}_{ss^{\prime}}^a\Big(r_{ss^{\prime}}^a+\gamma V^\pi(s^{\prime})\Big).
a∗=argamaxs′∈S∑Pss′a(rss′a+γVπ(s′)).注意,使用状态值函数来选择最优动作时,我们需要知道状态转移概率
P
s
s
′
a
\mathcal{P}_{ss^{\prime}}^a
Pss′a和奖励函数
r
s
s
′
a
r_{ss^{\prime}}^a
rss′a,即要求环境模型已知。而使用动作值函数来选择最优动作时,我们只需要知道动作值函数即可,即不需要环境模型。注意,计算动作值函数远比计算状态值函数要更加消耗计算资源。
3.2.2 策略改进定理(Policy Improvement Theorem)
直观上说,我们说一个策略
π
‾
\overline{\pi}
π优于另一个策略
π
\pi
π,是指对于所有的状态s,
π
‾
\overline{\pi}
π在状态s下的状态值函数要大于等于
π
\pi
π在状态s下的状态值函数,即:
π
≤
π
ˉ
⟺
v
π
(
s
)
≤
v
π
ˉ
(
s
)
,
∀
s
∈
S
\pi\leq\bar{\pi}\iff v^\pi(s)\leq v^{\bar{\pi}}(s),\forall s\in\mathcal{S}
π≤πˉ⟺vπ(s)≤vπˉ(s),∀s∈S
上式也可等价的用策略改进定理来表述:
π
≤
π
ˉ
⟺
v
π
(
s
)
≤
∑
a
∈
A
π
ˉ
(
a
∣
s
)
q
π
(
s
,
a
)
,
∀
s
∈
S
.
\pi\leq\bar{\pi}\iff v^{\pi}(s)\leq\sum_{a\in\mathcal{A}}\bar{\pi}(a|s)q^{\pi}(s,a) ,\forall s\in\mathcal{S}.
π≤πˉ⟺vπ(s)≤a∈A∑πˉ(a∣s)qπ(s,a),∀s∈S.
这个式子可以这样理解:右端表示动作值函数
q
π
(
s
,
a
)
q^{\pi}(s,a)
qπ(s,a)仍使用原策略
π
\pi
π下的值,但是在状态s下采取动作条件概率值却是在新的策略
π
ˉ
\bar{\pi}
πˉ下的值。或者可以看成对于原来状态s下每个动作值函数的值采用新策略下的条件概率作为权重加权平均。这个式子的证明可以参考原书的45到46页(级联的证明还是很有意思的)。由以上证明以及上一篇博客中我们学过的状态值函数和动作值函数之间的关系,可以得到如下不等式:
v
π
(
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
q
π
(
s
,
a
)
≤
∑
a
∈
A
π
ˉ
(
a
∣
s
)
q
π
(
s
,
a
)
≤
v
π
ˉ
(
s
)
=
∑
a
∈
A
π
ˉ
(
a
∣
s
)
q
π
ˉ
(
s
,
a
)
.
v^{\pi}(s)=\sum_{a\in\mathcal{A}}\pi(a|s)q^\pi(s,a)\leq\sum_{a\in\mathcal{A}}\bar{\pi}(a|s)q^\pi(s,a)\leq v^{\bar{\pi}}(s)=\sum_{a\in\mathcal{A}}\bar{\pi}(a|s)q^{\bar{\pi}}(s,a).
vπ(s)=a∈A∑π(a∣s)qπ(s,a)≤a∈A∑πˉ(a∣s)qπ(s,a)≤vπˉ(s)=a∈A∑πˉ(a∣s)qπˉ(s,a).
当状态值函数的值不能能再改进时,策略即达到最优。
3.2.3 策略选择
策略选择实际上就是按照策略改进定理,找到一个策略
π
ˉ
\bar{\pi}
πˉ使得:
V
π
(
s
)
≤
∑
a
∈
A
π
ˉ
(
a
∣
s
)
Q
π
(
s
,
a
)
,
∀
s
∈
S
.
V^\pi(s)\leq\sum_{a\in\mathcal{A}}\bar{\pi}(a|s)Q^\pi(s,a) ,\forall s\in\mathcal{S}.
Vπ(s)≤a∈A∑πˉ(a∣s)Qπ(s,a),∀s∈S.注意这里把真实状态值函数
v
π
(
s
)
v^\pi(s)
vπ(s)替换成了估计的状态值函数
V
π
(
s
)
V^\pi(s)
Vπ(s)。
3.3 On-Policy v.s. Off-Policy Strategy
在Model-Free的RL中,我们面临exploration-exploitation dilemma。即模型需要得到最优(optimal)策略,但是却需要做出non-optimal的动作来尽可能地探索环境。在on-policy策略中,使用的策略是当前正在学习的策略,即正在学习的策略和指导智能体做出动作的策略是同一个策略。On-policy策略解决上述困境的方式是采用soft-greedy策略来代替纯粹的greedy策略。Soft-greedy策略中最著名的就是之前说过的 ϵ \epsilon ϵ-greedy策略。Off-policy策略则是指学习的策略和指导智能体做出动作的策略是不同的:target policy和behavior policy。其中target policy是我们想要学习的策略,而behavior policy是我们用来采样的策略(指导智能体做出动作与环境交互的策略)。
3.3.1 On-Policy Strategy
首先证明两个定理。
第一,证明greedy policy满足之前讲过的Policy Improvement Theorem:
v
π
g
(
s
)
≤
∑
a
∈
A
π
n
e
w
g
(
a
∣
s
)
q
π
g
(
s
,
a
)
,
∀
s
∈
S
,
v^{\pi^g}(s)\leq\sum_{a\in\mathcal{A}}\pi_{\mathrm{new}}^g(a|s)q^{\pi^g}(s,a) ,\forall s\in\mathcal{S},
vπg(s)≤a∈A∑πnewg(a∣s)qπg(s,a),∀s∈S, 证明如下:
v
π
g
(
s
)
=
q
π
g
(
s
,
π
g
(
s
)
)
≤
max
a
q
π
g
(
s
,
a
)
=
q
π
g
(
s
,
arg
max
a
q
π
g
(
s
,
a
)
)
=
q
π
g
(
s
,
π
n
e
w
g
(
a
∣
s
)
)
.
\begin{aligned}v^{\pi^{g}}(s)&=q^{\pi^g}\left(s,\pi^g(s)\right)\leq\max_aq^{\pi^g}(s,a)=q^{\pi^g}\left(s,\arg\max_aq^{\pi^g}(s,a)\right)\\&=q^{\pi^g}\left(s,\pi_{\mathrm{new}}^g(a|s)\right).\end{aligned}
vπg(s)=qπg(s,πg(s))≤amaxqπg(s,a)=qπg(s,argamaxqπg(s,a))=qπg(s,πnewg(a∣s)).第一个等号成立是因为
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),而greedy策略的分布规律标明了除了对于一个最优策略a*,其他的动作的概率都是0,因此
∑
a
∈
A
π
g
(
a
∣
s
)
q
π
g
(
s
,
a
)
=
q
π
g
(
s
,
a
∗
)
=
q
π
g
(
s
,
π
g
(
s
)
)
\sum_{a\in\mathcal{A}}\pi^g(a|s)q^{\pi^g}(s,a)=q^{\pi^g}\left(s,a^*\right)=q^{\pi^g}\left(s,\pi^g(s)\right)
a∈A∑πg(a∣s)qπg(s,a)=qπg(s,a∗)=qπg(s,πg(s))证明里最后一个等号成立是因为新策略
π
n
e
w
g
(
a
∣
s
)
\pi_{\mathrm{new}}^g(a|s)
πnewg(a∣s)是根据选择当前动作值函数的最大值来确定的(正如策略
π
g
(
a
∣
s
)
\pi^g(a|s)
πg(a∣s)是根据它之前的策略对应的动作值函数来确定的)。
其二,证明
ϵ
\epsilon
ϵ-greedy策略满足Policy Improvement Theorem:
v
π
ϵ
(
s
)
≤
∑
a
∈
A
π
n
e
w
ϵ
(
a
∣
s
)
q
π
ϵ
(
s
,
a
)
,
∀
s
∈
S
,
v^{\pi^{\epsilon}}(s)\leq\sum_{a\in\mathcal{A}}\pi_{\mathrm{new}}^{\epsilon}(a|s)q^{\pi^{\epsilon}}(s,a) ,\forall s\in\mathcal{S},
vπϵ(s)≤a∈A∑πnewϵ(a∣s)qπϵ(s,a),∀s∈S,证明如下:
v
π
ϵ
(
s
)
=
∑
a
π
ε
(
a
∣
s
)
q
π
ε
(
s
,
a
)
=
ϵ
∣
A
∣
∑
a
q
π
ϵ
(
s
,
a
)
+
∑
a
(
π
ϵ
(
a
∣
s
)
−
ϵ
∣
A
∣
)
q
π
ϵ
(
s
,
a
)
≤
ϵ
∣
A
∣
∑
a
q
π
ϵ
(
s
,
a
)
+
∑
a
(
π
ϵ
(
a
∣
s
)
−
ϵ
∣
A
∣
)
max
a
q
π
ϵ
(
s
,
a
)
=
ϵ
∣
A
∣
∑
a
q
π
ϵ
(
s
,
a
)
+
(
1
−
ϵ
)
max
a
q
π
ϵ
(
s
,
a
)
=
∑
a
π
n
e
w
ϵ
(
s
,
a
)
q
π
ϵ
(
s
,
a
)
.
\begin{aligned} v^{\pi^{\epsilon}}(s)& =\sum_{a}\pi^{\varepsilon}(a|s)q^{\pi^{\varepsilon}}(s,a) \\ &=\frac{\epsilon}{|\mathcal{A}|}\sum_{a}q^{\pi^{\epsilon}}(s,a)+\sum_{a}\left(\pi^{\epsilon}(a|s)-\frac{\epsilon}{|\mathcal{A}|}\right)q^{\pi^{\epsilon}}(s,a)\\ &\leq\frac{\epsilon}{|\mathcal{A}|}\sum_{a}q^{\pi^{\epsilon}}(s,a)+\sum_{a}\left(\pi^{\epsilon}(a|s)-\frac{\epsilon}{|\mathcal{A}|}\right)\max_{a}q^{\pi^{\epsilon}}(s,a) \\ &=\frac{\epsilon}{|\mathcal{A}|}\sum_{a}q^{\pi^{\epsilon}}(s,a)+(1-\epsilon)\max_{a}q^{\pi^{\epsilon}}(s,a) \\ &=\sum_{a}\pi_{\mathrm{new}}^{\epsilon}(s,a)q^{\pi^{\epsilon}}(s,a). \end{aligned}
vπϵ(s)=a∑πε(a∣s)qπε(s,a)=∣A∣ϵa∑qπϵ(s,a)+a∑(πϵ(a∣s)−∣A∣ϵ)qπϵ(s,a)≤∣A∣ϵa∑qπϵ(s,a)+a∑(πϵ(a∣s)−∣A∣ϵ)amaxqπϵ(s,a)=∣A∣ϵa∑qπϵ(s,a)+(1−ϵ)amaxqπϵ(s,a)=a∑πnewϵ(s,a)qπϵ(s,a).上述等号右边第一式到第二式的意思是把每个动作的概率里面
ϵ
∣
A
∣
\frac{\epsilon}{|\mathcal{A}|}
∣A∣ϵ拆出来(第二式第一部分)。第二式第二部分里面
(
π
ϵ
(
a
∣
s
)
−
ϵ
∣
A
∣
)
\left(\pi^{\epsilon}(a|s)-\frac{\epsilon}{|\mathcal{A}|}\right)
(πϵ(a∣s)−∣A∣ϵ)对于最优动作等于
1
−
ϵ
1-\epsilon
1−ϵ,对于非最优动作等于0。第三式第二部分到第四式第二部分正如上面所说的,因为
a
∗
=
a
r
g
max
a
q
π
ϵ
(
s
,
a
)
a^*=arg\max_aq^{\pi^{\epsilon}}(s,a)
a∗=argmaxaqπϵ(s,a),因此其
(
π
ϵ
(
a
∣
s
)
−
ϵ
∣
A
∣
)
\left(\pi^{\epsilon}(a|s)-\frac{\epsilon}{|\mathcal{A}|}\right)
(πϵ(a∣s)−∣A∣ϵ)等于1-
ϵ
\epsilon
ϵ。第四式到第五式的理由与第二式到第三式的理由相同。由上述证明可以看出,
ϵ
\epsilon
ϵ-greedy策略由随机部分(第四式第一部分)和贪婪部分(第四式第二部分)组成。这样的策略可以保证探索和利用的平衡。
ϵ
\epsilon
ϵ-greedy策略的一个缺陷在于它的随机部分(证明的第四式第一部分)对于所有的动作都是相同的,而没有考虑一些动作可能比另一些动作更“好”。为了解决这个问题,可以采用Boltzmann策略:
π
B
(
a
∣
s
)
=
exp
(
τ
−
1
Q
(
s
,
a
)
)
∑
a
∈
c
exp
(
τ
−
1
Q
(
s
,
a
)
)
,
∀
a
∈
A
,
s
∈
S
,
\pi^B(a|s)=\frac{\exp\left(\tau^{-1}Q(s,a)\right)}{\sum_{a\in c}\exp\left(\tau^{-1}Q(s,a)\right)},\forall a\in\mathcal{A},s\in\mathcal{S},
πB(a∣s)=∑a∈cexp(τ−1Q(s,a))exp(τ−1Q(s,a)),∀a∈A,s∈S,
这里的
τ
\tau
τ是一个温度参数,控制了策略的随机性。当
τ
→
0
\tau\to0
τ→0时,Boltzmann策略退化为“exploit-only”地greedy策略;当
τ
→
∞
\tau\to\infty
τ→∞时,Boltzmann策略退化为“explore-only”均匀随机策略。Boltzmann策略的一个优点是它可以根据动作值函数的大小来调整随机性,即动作值函数越大的动作被选中的概率越大。触类旁通一下,这里地Boltzmann策略其实是一个Softmax策略,大语言模型中的解码策略也是采用了这个函数(比如调用GPT的API时会看到一个温度系数的参数选项)。由此也可看出,人工智能的各个领域使用的数学工具有很多是相通的。
为了更好的平衡Exploration和Exploitation(前期侧重于Exploration,后期侧重于Exploitation),我们可以动态的调整
ϵ
−
g
r
e
e
d
y
\epsilon-greedy
ϵ−greedy策略中的
ϵ
\epsilon
ϵ或Boltzmann策略中的
τ
\tau
τ。这种方法被称为Decaying
ϵ
\epsilon
ϵ-greedy策略或Decaying Boltzmann策略。
3.3.2 Off-Policy Strategy
Off-Policy策略通常需要在full-convergence的情况下工作,这样才能保证target policy的所有可能动作都被采样到(至少偶尔会被behavior policy采样到)。Target policy可以是随机策略or确定性策略,而behavior policy必须是随机策略,这样才可保证覆盖到所有可能的动作。下文中我们称target policy为 π \pi π,behavior policy为 b b b。
3.3.2.1 Importance Sampling(重要性采样,IS)
在off-policy策略中,samples通过behavior policy产生,但是计算值函数却要在target policy下进行。因此,我们不能直接使用从behavior policy采样得到的return来估计值函数。为此,我们引入重要性采样(IS)的概念。重要性采样是一种用来估计一个分布下某个随机变量的期望值的方法。在估计时,我们只知道从另一个分布下采样得到的样本(这是自然的,如果我们都有了想求期望的的那个分布下的样本,就不用那么麻烦了,采用简单地估计方法即可得到期望)。
让我们回顾一下概率论里面数学期望的计算方法,对于一个服从分布
d
λ
(
x
)
d_\lambda(x)
dλ(x)的随机变量
x
x
x,其数学期望为:
E
x
∼
d
λ
(
x
)
[
x
]
=
∫
x
d
λ
(
x
)
d
x
\mathbb{E}_{x\sim d_\lambda(x)}[x]=\int x d_\lambda(x)dx
Ex∼dλ(x)[x]=∫xdλ(x)dx对于随机变量x的函数g(x),其期望为:
E
x
∼
d
λ
(
x
)
[
g
(
x
)
]
=
∫
g
(
x
)
d
λ
(
x
)
d
x
\mathbb{E}_{x\sim d_\lambda(x)}[g(x)]=\int g(x) d_\lambda(x)dx
Ex∼dλ(x)[g(x)]=∫g(x)dλ(x)dx现在回到这里off-policy RL的语境,假设target policy的sample服从的分布为
d
π
(
x
)
d_{\pi}(x)
dπ(x),behavior policy的sample服从的分布为
d
b
(
x
)
d_{b}(x)
db(x)。现在对于一个服从target分布的随机变量x,我们想求其函数h(x)的数学期望,则有:
E
π
{
h
(
x
)
}
=
∫
d
π
(
x
)
h
(
x
)
d
x
\mathbb{E}_{\pi}\{h(x)\} =\int d_{\pi}(x)h(x)\mathrm{d}x
Eπ{h(x)}=∫dπ(x)h(x)dx现在为了把这个式子和behavior分布
d
b
(
x
)
d_{b}(x)
db(x)联系起来,我们引入一个重要性采样比率(IS Ratio)
ρ
(
x
)
\rho(x)
ρ(x),定义为:
ρ
(
x
)
=
d
π
(
x
)
d
b
(
x
)
\rho(x)=\frac{d_{\pi}(x)}{d_{b}(x)}
ρ(x)=db(x)dπ(x)这个比率的物理意义是,target policy下的采样概率和behavior policy下的采样概率的比值。这个比率的引入是为了把target policy下的期望转化为behavior policy下的期望。注意,尽管在理论上
ρ
(
x
)
\rho(x)
ρ(x)是无偏的和恒定的,但是在后续实际根据IS Ratio和从behavior分布得到的samples来更新值函数时,会引入高方差,这可能是由于IS Ratio的商的形式导致的。
这样我们就可以把上面的期望写成:
E
π
{
h
(
x
)
}
=
∫
d
π
(
x
)
h
(
x
)
d
x
=
∫
d
b
(
x
)
d
π
(
x
)
d
b
(
x
)
h
(
x
)
d
x
=
∫
d
b
(
x
)
ρ
(
x
)
h
(
x
)
d
x
=
E
b
{
ρ
(
x
)
h
(
x
)
}
,
\begin{aligned} \mathbb{E}_{\pi}\{h(x)\}& =\int d_{\pi}(x)h(x)\mathrm{d}x \\ &=\int d_{b}(x)\frac{d_{\pi}(x)}{d_{b}(x)}h(x)\mathrm{d}x \\ &=\int d_{b}(x)\rho(x)h(x)\mathrm{d}x \\ &=\mathbb{E}_{b}\{\rho(x)h(x)\}, \end{aligned}
Eπ{h(x)}=∫dπ(x)h(x)dx=∫db(x)db(x)dπ(x)h(x)dx=∫db(x)ρ(x)h(x)dx=Eb{ρ(x)h(x)},这样就成功把target分布下x的函数h(x)的期望转化为behavior分布下x的函数
ρ
(
x
)
h
(
x
)
\rho(x)h(x)
ρ(x)h(x)的期望。这就是重要性采样的核心思想:维持从不同的分布采样得到的样本有相同的期望(这里即
E
π
{
h
(
x
)
}
=
E
b
{
ρ
(
x
)
h
(
x
)
}
\mathbb{E}_{\pi}\{h(x)\}=\mathbb{E}_{b}\{\rho(x)h(x)\}
Eπ{h(x)}=Eb{ρ(x)h(x)})。这样我们就可以使用一个分布下的样本来估计另一个分布下的期望。但是,注意,这里只是说明两个分布下的两个随机变量函数的期望相等,它们的方差不一定相等。事实上,我们就是要找到一个合适的behavior分布
d
b
(
x
)
d_{b}(x)
db(x),使得target分布的方差尽可能小。总结一下,IS有如下性质:
- 期望相等: μ π = μ b , w h e r e μ π = E π { h ( x ) } a n d μ b = E b { ρ ( x ) h ( x ) } . \mu_{\pi}=\mu_{b},\mathrm{where~}\mu_{\pi}=\mathbb{E}_{\pi}\{h(x)\}\mathrm{~and~}\mu_{b}=\mathbb{E}_{b}\{\rho(x)h(x)\}. μπ=μb,where μπ=Eπ{h(x)} and μb=Eb{ρ(x)h(x)}.
- 方差不相等:
σ
b
2
≠
σ
π
2
\sigma_{b}^{2}\neq\sigma_{\pi}^{2}
σb2=σπ2
关于方差不等的证明如下:
σ π 2 ≡ d e f D π { h ( x ) } = E π { ( h ( x ) − μ π ) 2 } = E b { ρ ( x ) ( h ( x ) − μ π ) 2 } = E b { ρ ( x ) h 2 ( x ) } − μ π 2 , \begin{aligned} \sigma_\pi^{2}& \stackrel{\mathrm{def}}{\equiv}\mathbb{D}_{\pi}\{h(x)\} \\ &=\mathbb{E}_\pi\{(h(x)-\mu_\pi)^2\} \\ &=\mathbb{E}_b\{\rho(x)(h(x)-\mu_\pi)^2\} \\ &=\mathbb{E}_b\{\rho(x)h^2(x)\}-\mu_{\pi}^2, \end{aligned} σπ2≡defDπ{h(x)}=Eπ{(h(x)−μπ)2}=Eb{ρ(x)(h(x)−μπ)2}=Eb{ρ(x)h2(x)}−μπ2, 这里第二个等号到第三个等号是因为要在两个分布的期望之间转换需要
乘上 ρ ( x ) \rho(x) ρ(x)。
σ b 2 ≡ d e f D b { ρ ( x ) h ( x ) } = E b { ( ρ ( x ) h ( x ) − μ b ) 2 } = E b { ρ 2 ( x ) h 2 ( x ) } − μ b 2 . \begin{aligned} \sigma_{b}^{2}& \stackrel{\mathrm{def}}{\equiv}\mathbb{D}_{b}\{\rho(x)h(x)\} \\ &=\mathbb{E}_{b}\{(\rho(x)h(x)-\mu_{b})^{2}\} \\ &=\mathbb{E}_{b}\{\rho^{2}(x)h^{2}(x)\}-\mu_{b}^{2}. \end{aligned} σb2≡defDb{ρ(x)h(x)}=Eb{(ρ(x)h(x)−μb)2}=Eb{ρ2(x)h2(x)}−μb2. 这里的第二个等号到第三个等号是因为方差的计算性质:
D λ { X } = E λ { ( X − μ λ ) 2 } = E λ { X 2 } − μ λ 2 . \begin{aligned} \mathbb{D}_{\lambda}\{X\}&=\mathbb{E}_{\lambda}\{(X-\mu_{\lambda})^{2}\} \\ &=\mathbb{E}_{\lambda}\{X^{2}\}-\mu_{\lambda}^{2}. \end{aligned} Dλ{X}=Eλ{(X−μλ)2}=Eλ{X2}−μλ2.
接下来我们关注如何从抽样得到的sample中来估计随机变量的数字特征。现在我们有T个从分布 d b ( x ) d_b(x) db(x)数据 x 0 , x 1 , ⋯ , x T − 1 x_0,x_1,\cdots,x_{T-1} x0,x1,⋯,xT−1,那么 μ b \mu_{b} μb的估计值 μ ^ b \hat{\mu}_{b} μ^b为: μ ^ b = 1 T ∑ t = 0 T − 1 h ( x t ) ρ ( x t ) , x t ∼ d b ( x ) . \hat{\mu}_{b}=\frac{1}{T}\sum_{t=0}^{T-1}h(x_{t})\rho(x_{t}) ,x_{t}\sim d_{b}(x). μ^b=T1t=0∑T−1h(xt)ρ(xt),xt∼db(x). 注意,这里 μ b \mu_b μb的估计值也等于 μ π \mu_{\pi} μπ的估计值 μ ^ π \hat{\mu}_{\pi} μ^π,即: μ ^ π = μ ^ b \hat{\mu}_{\pi}=\hat{\mu}_{b} μ^π=μ^b σ b 2 \sigma_{b}^{2} σb2的估计值 σ ^ b 2 \hat{\sigma}_{b}^{2} σ^b2为: σ ^ b 2 = 1 T − 1 ∑ t = 0 T − 1 ( h ( x t ) ρ ( x t ) − μ ^ b ) 2 . \hat{\sigma}_b^2=\frac{1}{T-1}\sum_{t=0}^{T-1}(h(x_t)\rho(x_t)-\hat{\mu}_b)^2. σ^b2=T−11t=0∑T−1(h(xt)ρ(xt)−μ^b)2. 我们现在希望的是最小方差估计,那么如此选择behavior分布可以使得估计的方差在所有合法(legitimate)的选择中最小: d b ~ ( x ) = ∣ h ( x ) ∣ d π ( x ) ∫ ∣ h ( x ) ∣ d π ( x ) d x . \widetilde{d_b}(x)=\frac{|h(x)|d_\pi(x)}{\int|h(x)|d_\pi(x)\mathrm{d}x}. db (x)=∫∣h(x)∣dπ(x)dx∣h(x)∣dπ(x).如此选择后可证 σ b 2 \sigma_{b}^{2} σb2的估计值 σ ~ b 2 \tilde{\sigma}_b^2 σ~b2的上届为 σ b 2 \sigma_{b}^{2} σb2,证明如下: σ ~ b 2 = ∫ h ( x ) 2 ρ ( x ) 2 d b ~ ( x ) d x − μ b 2 = ∫ h ( x ) 2 d π ( x ) 2 d b ~ ( x ) 2 d b ~ ( x ) d x − μ b 2 = ∫ h ( x ) 2 d π ( x ) 2 ∫ ∣ h ( x ) ∣ d π ( x ) d x ∣ h ( x ) ∣ d π ( x ) d x − μ b 2 = ∫ ∣ h ( x ) ∣ d π ( x ) ( ∫ ∣ h ( x ) ∣ d π ( x ) d x ) d x = ( ∫ ∣ h ( x ) ∣ d π ( x ) d x ) 2 − μ b 2 = ( ∫ ∣ h ( x ) ∣ ρ ( x ) d b ( x ) d x ) 2 − μ b 2 ≤ ∫ h ( x ) 2 ρ ( x ) 2 d b ( x ) d x ∫ d b ( x ) d x − μ b 2 = ∫ h ( x ) 2 ρ ( x ) 2 d b ( x ) d x − μ b 2 = σ b 2 . \begin{aligned} \tilde{\sigma}_{b}^{2}& =\int h(x)^{2}\rho(x)^{2}\widetilde{d_{b}}(x)\mathrm{d}x-\mu_{b}^{2} \\ &=\int\frac{h(x)^{2}d_{\pi}(x)^{2}}{\widetilde{d_{b}}(x)^{2}}\widetilde{d_{b}}(x)\mathrm{d}x-\mu_{b}^{2} \\ & =\int h(x)^{2}d_{\pi}(x)^{2}\frac{\int|h(x)|d_\pi(x)\mathrm{d}x}{|h(x)|d_\pi(x)}\mathrm{d}x-\mu_{b}^{2} \\ &= \int|h(x)|d_\pi(x)(\int|h(x)|d_\pi(x)\mathrm{d}x)\mathrm{d}x\\ &=\left(\int|h(x)|d_{\pi}(x)\mathrm{d}x\right)^{2}-\mu_{b}^{2} \\ &=\left(\int|h(x)|\rho(x)d_{b}(x)\mathrm{d}x\right)^{2}-\mu_{b}^{2}\\ &\leq\int h(x)^{2}\rho(x)^{2}d_{b}(x)\mathrm{d}x\int d_{b}(x)\mathrm{d}x-\mu_{b}^{2} \\ &=\int h(x)^{2}\rho(x)^{2}d_{b}(x)\mathrm{d}x-\mu_{b}^{2} \\ &=\sigma_b^2. \end{aligned} σ~b2=∫h(x)2ρ(x)2db (x)dx−μb2=∫db (x)2h(x)2dπ(x)2db (x)dx−μb2=∫h(x)2dπ(x)2∣h(x)∣dπ(x)∫∣h(x)∣dπ(x)dxdx−μb2=∫∣h(x)∣dπ(x)(∫∣h(x)∣dπ(x)dx)dx=(∫∣h(x)∣dπ(x)dx)2−μb2=(∫∣h(x)∣ρ(x)db(x)dx)2−μb2≤∫h(x)2ρ(x)2db(x)dx∫db(x)dx−μb2=∫h(x)2ρ(x)2db(x)dx−μb2=σb2.为了理解从第六式到第七式的变化,需要先了解柯西-施瓦茨不等式: ∫ [ α • β ] d μ ≤ ∫ α d μ × ∫ β d μ \int[\alpha•\beta] \mathrm{d\mu}\leq\int\alpha \mathrm{d\mu}\times\int\beta \mathrm{d\mu} ∫[α•β]dμ≤∫αdμ×∫βdμ有了这个积分不等式之后第六式到第七式的变化就容易理解了。然后第七式到第八式是因为 ∫ d b ( x ) d x = 1 \int d_{b}(x)\mathrm{d}x=1 ∫db(x)dx=1(概率密度函数的性质)。
最后来简单谈一谈为什么IS可以降低估计的方差?这是因为随机变量的某些取值对于估计的贡献是不一样的,如果通过对于这些更“重要”的样本更频繁地采样,就可以有效地降低估计的方差。这也是为什么IS的名字叫做“重要性采样”的原因。
3.3.2.2 状态值函数的IS Ratio
IS Ratio定义为两个策略下的动作值函数的概率密度的比值,但是实际上我们很难直接计算这个比值。需要根据采样得到的samples来估计。下面就来讲讲如何估计状态值函数的IS Ratio。
假设我们有一个episode,从时刻t开始,到时刻T终止:
a
t
,
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
a_{t},s_{t+1},\cdots,a_{T-1},s_{T}
at,st+1,⋯,aT−1,sT。那么要估计的状态值函数为:
h
(
X
)
=
d
e
f
G
t
:
T
(
a
t
,
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
.
h(X)\stackrel{\mathrm{def}}{=}G_{t:T}(a_{t},s_{t+1},\cdots,a_{T-1},s_{T}).
h(X)=defGt:T(at,st+1,⋯,aT−1,sT).现在我们要估计的是多元随机变量
X
=
{
a
t
,
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
}
X=\{a_{t},s_{t+1},\cdots,a_{T-1},s_{T}\}
X={at,st+1,⋯,aT−1,sT}的一个概率分布
G
t
:
T
(
X
)
G_{t:T}(X)
Gt:T(X)。生成上述episode的概率(这里因为是离散型,所以不是概率密度而是概率)为:
d
π
(
a
t
,
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
=
Pr
{
a
t
,
s
t
+
1
,
⋯
,
s
T
∣
π
,
s
t
}
=
∏
i
=
t
T
−
1
π
(
a
i
∣
s
i
)
p
(
s
i
+
1
∣
s
i
,
a
i
)
,
d_\pi(a_t,s_{t+1},\cdots,a_{T-1},s_T)=\Pr\{a_t,s_{t+1},\cdots,s_T|\pi,s_t\}=\prod_{i=t}^{T-1}\pi(a_i|s_i)p(s_{i+1}|s_i,a_i),
dπ(at,st+1,⋯,aT−1,sT)=Pr{at,st+1,⋯,sT∣π,st}=i=t∏T−1π(ai∣si)p(si+1∣si,ai),这里前面的
π
(
a
i
∣
s
i
)
\pi(a_i|s_i)
π(ai∣si)是policy,而后面的
p
(
s
i
+
1
∣
s
i
,
a
i
)
p(s_{i+1}|s_i,a_i)
p(si+1∣si,ai)是环境模型。对于behavior policy,生成上述episode的概率为:
d
b
(
a
t
,
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
=
Pr
{
a
t
,
s
t
+
1
,
⋯
,
s
T
∣
b
,
s
t
}
=
∏
i
=
t
T
−
1
b
(
a
i
∣
s
i
)
p
(
s
i
+
1
∣
s
i
,
a
i
)
.
d_b(a_t,s_{t+1},\cdots,a_{T-1},s_T)=\Pr\{a_t,s_{t+1},\cdots,s_T|b,s_t\}=\prod^{T-1}_{i=t}b(a_i|s_i)p(s_{i+1}|s_i,a_i).
db(at,st+1,⋯,aT−1,sT)=Pr{at,st+1,⋯,sT∣b,st}=i=t∏T−1b(ai∣si)p(si+1∣si,ai).则此时我们可以得到一个多步的IS Ratio:
ρ
t
:
T
−
1
=
d
π
(
a
t
,
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
d
b
(
a
t
,
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
=
∏
i
=
t
T
−
1
π
(
a
i
∣
s
i
)
b
(
a
i
∣
s
i
)
.
\rho_{t:T-1}=\frac{d_\pi(a_t,s_{t+1},\cdots,a_{T-1},s_T)}{d_b(a_t,s_{t+1},\cdots,a_{T-1},s_T)}=\prod^{T-1}_{i=t}\frac{\pi(a_i|s_i)}{b(a_i|s_i)}.
ρt:T−1=db(at,st+1,⋯,aT−1,sT)dπ(at,st+1,⋯,aT−1,sT)=i=t∏T−1b(ai∣si)π(ai∣si).观察上述IS Ratio的形式,可以发现有关环境模型的部分被约掉了,这个ratio只和两个policy有关。
有了IS Ratio之后,我们就可以估计状态值函数的期望了。对于一个episode,我们可以得到:
v
π
(
s
)
=
E
π
{
G
t
:
T
∣
s
}
=
∑
(
a
t
,
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
d
π
(
a
t
,
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
G
t
:
T
(
a
t
,
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
∣
s
t
=
s
=
∑
(
a
t
,
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
d
π
(
∗
)
d
b
(
∗
)
d
b
(
∗
)
G
t
:
T
(
∗
)
∣
s
t
=
s
=
∑
(
a
t
,
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
d
b
(
∗
)
ρ
t
:
T
−
1
G
t
:
T
(
∗
)
∣
s
t
=
s
=
E
b
{
ρ
t
:
T
−
1
G
t
:
T
∣
s
}
,
\begin{aligned} &v^{\pi}(s) \\ &=\mathbb{E}_{\pi}\{G_{t:T}|s\} \\ &=\sum_{(a_t,s_{t+1},\cdots,a_{T-1},s_T)}d_\pi(a_t,s_{t+1},\cdots,a_{T-1},s_T)G_{t:T}(a_t,s_{t+1},\cdots,a_{T-1},s_T)|_{s_t=s} \\ &=\sum_{(a_{t},s_{t+1},\cdots,a_{T-1},s_{T})}\frac{d_{\pi}(*)}{d_{b}(*)}d_{b}(*)G_{t:T}(*)|_{s_{t}=s} \\ &=\sum_{(a_t,s_{t+1},\cdots,a_{T-1},s_T)}d_b(*)\rho_{t:T-1}G_{t:T}(*)|_{s_t=s} \\ &=\mathbb{E}_{b}\{\rho_{t:T-1}G_{t:T}|s\}, \end{aligned}
vπ(s)=Eπ{Gt:T∣s}=(at,st+1,⋯,aT−1,sT)∑dπ(at,st+1,⋯,aT−1,sT)Gt:T(at,st+1,⋯,aT−1,sT)∣st=s=(at,st+1,⋯,aT−1,sT)∑db(∗)dπ(∗)db(∗)Gt:T(∗)∣st=s=(at,st+1,⋯,aT−1,sT)∑db(∗)ρt:T−1Gt:T(∗)∣st=s=Eb{ρt:T−1Gt:T∣s},其中,
∗
=
a
t
,
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
*=a_t,s_{t+1},\cdots,a_{T-1},s_T
∗=at,st+1,⋯,aT−1,sT。特别的,若T=t+1,即episode从时刻t开始,到时刻t+1终止,则有单步IS Ratio:
ρ
t
=
def
ρ
t
:
t
=
π
(
a
t
∣
s
t
)
b
(
a
t
∣
s
t
)
.
\rho_t\stackrel{\text{def}}{=}\rho_{t:t}=\frac{\pi(a_t|s_t)}{b(a_t|s_t)}.
ρt=defρt:t=b(at∣st)π(at∣st).与后文的动作值函数的单步IS Ratio相比,这里比值不是一个常数,因此是非平凡的(non-trivial)的。当两个policy相远离时,IS Ratio的方差会变得非常大,尤其是有一些发生概率很小的动作时。
3.3.2.3 动作值函数的IS Ratio
动作值函数与状态值函数在计算时的唯一区别就是初始时是知道(
s
t
,
a
t
s_t,a_t
st,at)还是只知道
s
t
s_t
st。因此,这里视
x
=
{
s
T
+
1
,
a
T
+
1
,
s
T
+
2
,
a
T
+
2
,
⋯
,
s
T
′
,
a
T
′
}
x=\{s_{T+1},a_{T+1},s_{T+2},a_{T+2},\cdots,s_{T^{\prime}},a_{T^{\prime}}\}
x={sT+1,aT+1,sT+2,aT+2,⋯,sT′,aT′}为一个多元随机变量。这里先给出
d
π
(
x
)
d_\pi(x)
dπ(x)和
d
b
(
x
)
d_b(x)
db(x):
d
π
(
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
=
Pr
{
s
t
+
1
,
⋯
,
s
T
∣
π
,
s
t
}
=
p
(
s
t
+
1
∣
s
t
,
a
t
)
∏
i
=
t
+
1
T
−
1
π
(
a
i
∣
s
i
)
p
(
s
i
+
1
∣
s
i
,
a
i
)
,
d_\pi(s_{t+1},\cdots,a_{T-1},s_T)=\Pr\{s_{t+1},\cdots,s_T|\pi,s_t\}\\=p(s_{t+1}|s_t,a_t)\prod_{i=t+1}^{T-1}\pi(a_i|s_i)p(s_{i+1}|s_i,a_i),
dπ(st+1,⋯,aT−1,sT)=Pr{st+1,⋯,sT∣π,st}=p(st+1∣st,at)i=t+1∏T−1π(ai∣si)p(si+1∣si,ai),
d
b
(
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
=
Pr
{
s
t
+
1
,
⋯
,
s
T
∣
b
,
s
t
}
=
p
(
s
t
+
1
∣
s
t
,
a
t
)
∏
i
=
t
+
1
T
−
1
b
(
a
i
∣
s
i
)
p
(
s
i
+
1
∣
s
i
,
a
i
)
.
d_b(s_{t+1},\cdots,a_{T-1},s_T)=\Pr\{s_{t+1},\cdots,s_T|b,s_t\}\\=p(s_{t+1}|s_t,a_t)\prod^{T-1}_{i=t+1}b(a_i|s_i)p(s_{i+1}|s_i,a_i).
db(st+1,⋯,aT−1,sT)=Pr{st+1,⋯,sT∣b,st}=p(st+1∣st,at)i=t+1∏T−1b(ai∣si)p(si+1∣si,ai).
因此,我们可以得到动作值函数的IS Ratio:
ρ
t
+
1
:
T
−
1
=
d
π
(
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
d
b
(
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
=
p
(
s
t
+
1
∣
s
t
,
a
t
)
p
(
s
t
+
1
∣
s
t
,
a
t
)
∏
i
=
t
+
1
T
−
1
π
(
a
i
∣
s
i
)
b
(
a
i
∣
s
i
)
=
∏
i
=
t
+
1
T
−
1
π
(
a
i
∣
s
i
)
b
(
a
i
∣
s
i
)
.
\rho_{t+1:T-1}=\frac{d_\pi(s_{t+1},\cdots,a_{T-1},s_T)}{d_b(s_{t+1},\cdots,a_{T-1},s_T)}=\frac{p(s_{t+1}|s_t,a_t)}{p(s_{t+1}|s_t,a_t)}\prod_{i=t+1}^{T-1}\frac{\pi(a_i|s_i)}{b(a_i|s_i)}=\prod_{i=t+1}^{T-1}\frac{\pi(a_i|s_i)}{b(a_i|s_i)}.
ρt+1:T−1=db(st+1,⋯,aT−1,sT)dπ(st+1,⋯,aT−1,sT)=p(st+1∣st,at)p(st+1∣st,at)i=t+1∏T−1b(ai∣si)π(ai∣si)=i=t+1∏T−1b(ai∣si)π(ai∣si).现在我们可以给出动作值函数的估计值:
q
π
(
s
,
a
)
=
E
π
{
G
t
:
T
∣
s
,
a
}
=
∑
(
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
d
π
(
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
G
t
:
T
(
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
∣
s
t
=
s
,
a
t
=
a
=
∑
(
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
d
π
(
#
)
d
b
(
#
)
d
b
(
#
)
G
t
:
T
(
#
)
∣
s
t
=
s
,
a
t
=
a
=
∑
(
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
)
d
b
(
#
)
ρ
t
+
1
:
T
−
1
G
t
:
T
(
#
)
∣
s
t
=
s
,
a
t
=
a
=
E
b
{
ρ
t
+
1
:
T
−
1
G
t
:
T
∣
s
,
a
}
,
\begin{aligned} &q^\pi(s,a) \\ &=\mathbb{E}_{\pi}\{G_{t:T}|s,a\} \\ &=\sum_{(s_{t+1},\cdots,a_{T-1},s_T)}d_\pi(s_{t+1},\cdots,a_{T-1},s_T)G_{t:T}(s_{t+1},\cdots,a_{T-1},s_T)|_{s_t=s,a_t=a} \\ &=\sum_{(s_{t+1},\cdots,a_{T-1},s_{T})}\frac{d_{\pi}(\#)}{d_{b}(\#)}d_{b}(\#)G_{t:T}(\#)|_{s_{t}=s,a_{t}=a} \\ &=\sum_{(s_{t+1},\cdots,a_{T-1},s_{T})}d_{b}(\#)\rho_{t+1:T-1}G_{t:T}(\#)|_{s_{t}=s,a_{t}=a} \\ &=\mathbb{E}_{b}\{\rho_{t+1:T-1}G_{t:T}|s,a\}, \end{aligned}
qπ(s,a)=Eπ{Gt:T∣s,a}=(st+1,⋯,aT−1,sT)∑dπ(st+1,⋯,aT−1,sT)Gt:T(st+1,⋯,aT−1,sT)∣st=s,at=a=(st+1,⋯,aT−1,sT)∑db(#)dπ(#)db(#)Gt:T(#)∣st=s,at=a=(st+1,⋯,aT−1,sT)∑db(#)ρt+1:T−1Gt:T(#)∣st=s,at=a=Eb{ρt+1:T−1Gt:T∣s,a},其中,
#
=
s
t
+
1
,
⋯
,
a
T
−
1
,
s
T
\#=s_{t+1},\cdots,a_{T-1},s_T
#=st+1,⋯,aT−1,sT。特别的,若T=t+1,即episode从时刻t开始,到时刻t+1终止,则有单步IS Ratio:
ρ
t
+
1
:
t
=
d
π
(
s
t
+
1
)
d
b
(
s
t
+
1
)
=
Pr
{
s
t
+
1
∣
π
,
s
t
,
a
t
}
Pr
{
s
t
+
1
∣
b
,
s
t
,
a
t
}
=
p
(
s
t
+
1
∣
s
t
,
a
t
)
p
(
s
t
+
1
∣
s
t
,
a
t
)
=
1.
\rho_{t+1:t}=\frac{d_\pi(s_{t+1})}{d_b(s_{t+1})}=\frac{\Pr\{s_{t+1}|\pi,s_t,a_t\}}{\Pr\{s_{t+1}|b,s_t,a_t\}}=\frac{p(s_{t+1}|s_t,a_t)}{p(s_{t+1}|s_t,a_t)}=1.
ρt+1:t=db(st+1)dπ(st+1)=Pr{st+1∣b,st,at}Pr{st+1∣π,st,at}=p(st+1∣st,at)p(st+1∣st,at)=1.单步IS Ratio的终止时刻T=t+1,则可得上式。至于为什么此时的比值是两个转移概率p的比值而非策略概率的比值,观察求IS Ratio的过程即可。
这里的单步IS Ratio带来了一个极为有趣的性质:当执行单步的bootstrapping来估计动作值函数时,IS Ratio不显含target和behavior的信息,因此采用从任意的behavior分布中采样得到的sample都可以用来估计动作值函数。 这个性质是Q-learning的核心,也是后续的DRL中experience replay的基础,如DQN、DDQN、DDPG等!!!
3.4 Monte Carlo学习算法
Monte Carlo方法是一种采取策略迭代(Policy Iteration)的indirect RL方法。一般来说,MC类算法估计的都是动作值函数,因为环境模型通常是未知的。学习过程通常是一个episode一个episode地学习的,迭代时策略评估(Policy Evaluation)和策略改进(Policy Improvement)是交替进行的。
3.4.1 On-Policy MC学习算法
On-Policy MC学习算法由两个部分构成:on-policy sampler以及Monte Carlo trainer。
- On-policy sampler:On-policy sampler是用来和环境交互的,它根据当前的策略(记得on-policy的算法里面只有一个策略)来与环境交互生成一个episode的batch。首先,它随机选取一个初始的状态-动作对(s, a),然后生成N个episode: G t 1 : T ( 1 ) , G t 2 : T ( 2 ) , ⋯ , G t i : T ( i ) , ⋯ G t N : T ( N ) , G_{t_1:T}^{(1)},G_{t_2:T}^{(2)},\cdots,G_{t_i:T}^{(i)},\cdots G_{t_N:T}^{(N)}, Gt1:T(1),Gt2:T(2),⋯,Gti:T(i),⋯GtN:T(N),注意,这N个episode都是从同一个初始状态开始且各个episode的长度不一定一样(终止时间不一定一样)。
- Policy Evaluation:,每次采样得到从(s, a)开始的N个episode后,进行PEV来更新动作值函数的值: Q π ( s , a ) = 1 N ∑ i = 1 N G t i : T ( i ) , ∀ s t i = s , a t i = a . Q^{\pi}(s,a)=\frac{1}{N}\sum_{i=1}^{N}G_{t_{i}:T}^{(i)},\\\forall s_{t_{i}}=s,a_{t_{i}}=a. Qπ(s,a)=N1i=1∑NGti:T(i),∀sti=s,ati=a.
- Policy Improvement:在PEV之后,动作值函数的值发生了变化,从而策略也可能发生变化,需要进行更新。可以采用greedy或者 ϵ \epsilon ϵ-greedy等策略来更新策略。具体选择参前。因为on-policy算法总共只有一个policy,为了在探索和利用之间达到平衡,通常使用 ϵ \epsilon ϵ-greedy策略。也可采取更复杂的如decay ϵ \epsilon ϵ-greedy策略。
3.4.2 Off-Policy MC学习算法
Off-Policy MC学习算法由两个部分构成:off-policy sampler以及Monte Carlo trainer。
-
Off-policy sampler:使用behavior policy来与环境交互。这里的策略常常采用 ϵ \epsilon ϵ-greedy策略,以便对环境进行较好的探索。交互后可得到一个batch: G t 1 : T ( 1 ) , G t 2 : T ( 2 ) , ⋯ , G t i : T ( i ) , ⋯ G t N : T ( N ) , G_{t_{1}:T}^{(1)},G_{t_{2}:T}^{(2)},\cdots,G_{t_{i}:T}^{(i)},\cdots G_{t_{N}:T}^{(N)}, Gt1:T(1),Gt2:T(2),⋯,Gti:T(i),⋯GtN:T(N),Off-policy sampler的一个重要性质是它可以从不同的behavior policy中采样得到的样本来估计动作值函数,可以重复利用历史的样本来提高data efficiency。只需要为每个样本使用不同的IS Ratio:
ρ t 1 + 1 : T − 1 ( 1 ) , ρ t 2 + 1 : T − 1 ( 2 ) , ⋯ , ρ t i + 1 : T − 1 ( i ) , ⋯ ρ t N + 1 : T − 1 ( N ) . \rho_{t_1+1:T-1}^{(1)},\rho_{t_2+1:T-1}^{(2)},\cdots,\rho_{t_i+1:T-1}^{(i)},\cdots\rho_{t_N+1:T-1}^{(N)}. ρt1+1:T−1(1),ρt2+1:T−1(2),⋯,ρti+1:T−1(i),⋯ρtN+1:T−1(N).之后按照这些IS Ratio加权可以得到动作值函数的估计值。 -
Policy Evaluation:得到值函数的估计值有两种方法:
- ordinary batch average(除以batch size): Q π ( s , a ) = 1 N ∑ i = 1 N ρ t i + 1 : T − 1 ( i ) G t i : T ( i ) , ∀ s t i = s , a t i = a . Q^{\pi}(s,a)=\frac{1}{N}\sum_{i=1}^{N}\rho_{t_{i}+1:T-1}^{(i)}G_{t_{i}:T}^{(i)},\\\forall s_{t_{i}}=s,a_{t_{i}}=a. Qπ(s,a)=N1i=1∑Nρti+1:T−1(i)Gti:T(i),∀sti=s,ati=a.
- weighted batch average(除以ISRatio的和): Q π ( s , a ) = 1 ∑ i = 1 N ρ t i + 1 : T − 1 ( i ) ∑ i = 1 N ρ t i + 1 : T − 1 ( i ) G t i ; T ( i ) , ∀ s t i = s , a t i = a . Q^{\pi}(s,a)=\frac{1}{\sum_{i=1}^{N}\rho_{t_{i}+1:T-1}^{(i)}}\sum_{i=1}^{N}\rho_{t_{i}+1:T-1}^{(i)}G_{t_{i};T}^{(i)},\\\forall s_{t_{i}}=s,a_{t_{i}}=a. Qπ(s,a)=∑i=1Nρti+1:T−1(i)1i=1∑Nρti+1:T−1(i)Gti;T(i),∀sti=s,ati=a.
这两种方法的区别在于ordinary batch average是无偏的,而weighted batch average是有偏的(尽管bias可以渐进的收敛到0)。另一点区别在于ordinary batch average的方差较大,而weighted batch average的方差较小。这是因为IS Ratio可能有较大的error,而在weighted batch average中做了归一化。
另外,当episode足够长,weighted batch average的公式可以简化为: Q π ( s , a ) = 1 N ∑ i = 1 N G t i : T ( i ) , ∀ s t i = s , a t i = a . Q^{\pi}(s,a)=\frac{1}{N}\sum_{i=1}^{N}G_{t_{i}:T}^{(i)},\\\forall s_{t_{i}}=s,a_{t_{i}}=a. Qπ(s,a)=N1i=1∑NGti:T(i),∀sti=s,ati=a.
-
Policy Improvement:同前。
3.4.3 Incremental Monte Carlo学习算法
不知道大家有没有发现,上面每个batch更新(s, a)对应的动作值函数
Q
π
(
s
,
a
)
Q^{\pi}(s,a)
Qπ(s,a)时,都是直接把这个batch的return加起来然后除以batch size。这样做有一个问题,就是忽视了之前的估计值。换句话说,之前的学习等于白学了,这自然会减缓收敛速度。为了解决这个问题,就引入了Incremental Monte Carlo学习算法。这种算法的核心思想是每次更新动作值函数的估计值时,都要考虑之前的估计值。这样可以加速收敛速度。具体来说,Incremental Monte Carlo学习算法的更新公式为:
Q
π
k
+
1
(
s
,
a
)
=
(
1
−
λ
)
Q
π
k
(
s
,
a
)
+
λ
⋅
A
v
g
{
G
∣
s
,
a
;
π
k
+
1
}
Q^{\pi_{k+1}}(s,a)=(1-\lambda)Q^{\pi_{k}}(s,a)+\lambda\cdot\mathrm{Avg}\{G|s,a;\pi_{k+1}\}
Qπk+1(s,a)=(1−λ)Qπk(s,a)+λ⋅Avg{G∣s,a;πk+1}这里的
λ
∈
(
0
,
1
]
\lambda\in(0,1]
λ∈(0,1]。调节
λ
\lambda
λ的大小可以控制之前学到的和本次新学的对于整体值函数更新的贡献。结合了incremental的Monte Carlo学习算法如下图所示:
下面来看看一个具体的Monte Carlo学习算法的伪代码的例子。这个伪代码中具体使用了之前讲过的first-visit MC、incremental MC以及on-policy MC。
注意,上述算法里的M就是之前讲解中的N(因为这里的N被用作计数器的意义了)。在原书的第60到65页有一个对于上述伪代码的implementation。里面详细讲了算法的实现以及三个关键参数Ep/PEV(每轮迭代的episode数目,即上文的N或M)、 λ \lambda λ(incremental rate)和 ϵ \epsilon ϵ( ϵ \epsilon ϵ-greedy策略的参数)的选择对于算法效果的影响。可以参看原书的对应部分。那里写的很明白易懂。
本文为博主原创文章,未经博主允许禁止转载。私自转载将追究相关责任。如有问题,欢迎指正。