两个经常被混为一谈的词

“奖励就是期望的长期奖励”,这句话听起来几乎是对的,但其实是错的,而且值得仔细琢磨错在哪里。

奖励是一步的反馈:环境在一次转移之后返回的单独一个标量。回报是从某个时刻开始、往未来累积的奖励,是一个求和,而不是单独一个数字。这条链只有一个方向:奖励聚合成回报,回报的期望变成价值。本章就是把这条链从头走到尾,而这样走一遍的回报是:Bellman 方程,那个通常被当成一整块公式硬记的东西,会作为第一节里一条小引理的推论自然出现。

定义折扣回报

从时刻 tt 开始的折扣回报是

Gt=Rt+1+γRt+2+γ2Rt+3+G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots

对于在 TT 处结束的有限时域,

Gt=Rt+1+γRt+2++γTt1RT.G_t = R_{t+1} + \gamma R_{t+2} + \cdots + \gamma^{T-t-1}R_T.

如果 γ=0\gamma = 0,回报就退化成下一步的奖励,Gt=Rt+1G_t = R_{t+1}

折扣因子 γ[0,1]\gamma \in [0,1] 不是一个无关紧要的调参旋钮;在一般情形下,正是它让 GtG_t 得以良定义。一个不加权的无穷奖励求和没有理由收敛,而很多环境确实允许无限长或者带循环的轨迹存在。折扣还编码了一件比”保证收敛”更实质性的东西:它说明越靠后的奖励权重越小,而只要未来比现在更不确定,或者一个任务本来就更偏好早点拿到奖励,这就是一个合理的立场。当 γ\gamma 趋近于 00 时,智能体几乎完全变成”近视眼”,只在乎眼前的奖励;当 γ\gamma 趋近于 11 时,它对遥远未来的重视程度几乎和对当下的重视程度一样。

这也顺带了结了第一章结尾留下的那个悬案。“在一个可能无限长的未来上累积奖励”现在是一个收敛的量了,而且它有名字了。

回报 GtG_t 有一个结构性质,接下来的一切都建立在它之上:它可以被拆分成”紧接着下一步会发生什么”和”再往后会发生什么”两部分。

引理回报满足一步递归
Gt=Rt+1+γGt+1G_t = R_{t+1} + \gamma G_{t+1}
证明
Gt=Rt+1+γRt+2+γ2Rt+3+=Rt+1+γ(Rt+2+γRt+3+)=Rt+1+γGt+1.\begin{aligned} G_t &= R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots \\ &= R_{t+1} + \gamma\left(R_{t+2} + \gamma R_{t+3} + \cdots\right) \\ &= R_{t+1} + \gamma G_{t+1}. \end{aligned}

中间这一步只是把 γ\gamma 从除第一项之外的每一项里提出来;括号里剩下的部分,按定义就是 Gt+1G_{t+1}

在涉及任何期望或环境结构之前,这一行恒等式就是 Bellman 方程全部的数学内容。接下来整章都值得把它放在视野里:下面每一个方程,都只是这条引理穿上了越来越多的衣服。

两个价值函数

价值函数估计的是期望的长期累积奖励,而不只是即时奖励。马尔可夫阶梯已经点出了为什么一旦动作存在、一个这样的函数就不够用:同一个状态下不同的可选动作可能通向不同的未来。下面把这个说法做精确。

定义状态价值函数与动作价值函数

在固定策略 π\pi 下,状态价值函数是从状态 ss 出发、此后一直遵循 π\pi 的期望回报:

Vπ(s)=Eπ[GtSt=s]V^\pi(s) = \mathbb{E}_\pi[G_t \mid S_t = s]

动作价值函数是从状态 ss 出发、先采取动作 aa、之后遵循 π\pi 的期望回报:

Qπ(s,a)=Eπ[GtSt=s,At=a]Q^\pi(s,a) = \mathbb{E}_\pi[G_t \mid S_t = s, A_t = a]
函数评价对象是否包含第一个动作
Vπ(s)V^\pi(s)状态
Qπ(s,a)Q^\pi(s,a)状态-动作对

两者的区别恰好就在于:第一个动作是由策略决定的,还是由我们手动固定的,而正是这个区别,使得 QπQ^\pi 能够用来比较不同的候选动作,而 VπV^\pi 只能把一个状态作为整体来评价。

命题由动作价值得到状态价值
Vπ(s)=aπ(as)Qπ(s,a)V^\pi(s) = \sum_a \pi(a \mid s)\, Q^\pi(s,a)
证明

Vπ(s)V^\pi(s) 是对从 ss 出发、在 π\pi 下的所有轨迹的回报取平均;这样一条轨迹里的第一个动作 AtA_t,本身就服从 Atπ(s)A_t \sim \pi(\cdot \mid s) 这个分布。对第一个动作的取值条件化,再应用全期望公式:

Vπ(s)=Eπ[GtSt=s]=aπ(as)Eπ[GtSt=s,At=a]=aπ(as)Qπ(s,a).V^\pi(s) = \mathbb{E}_\pi[G_t \mid S_t=s] = \sum_a \pi(a\mid s)\, \mathbb{E}_\pi[G_t \mid S_t=s, A_t=a] = \sum_a \pi(a\mid s)\, Q^\pi(s,a).

这条命题请先拿在手里。再过几段,Bellman 期望方程就是由它和另一半拼起来的。

当下的价值,等于奖励加上之后的价值

现在把递归引理推过期望。先看 MRP 的情形,此时 V(s)=E[GtSt=s]V(s) = \mathbb{E}[G_t \mid S_t = s],不涉及动作。因为回报满足 Gt=Rt+1+γGt+1G_t = R_{t+1} + \gamma G_{t+1}VV 也满足同样的递归。

定理Bellman 方程(马尔可夫奖励过程)
V(s)=R(s)+γsP(ss)V(s)V(s) = R(s) + \gamma \sum_{s'}P(s' \mid s)V(s')
证明

从定义出发,应用一步递归引理:

V(s)=E[GtSt=s]=E[Rt+1+γGt+1St=s]=E[Rt+1St=s]+γE[Gt+1St=s].\begin{aligned} V(s) &= \mathbb{E}[G_t \mid S_t = s] \\ &= \mathbb{E}[R_{t+1} + \gamma G_{t+1} \mid S_t = s] \\ &= \mathbb{E}[R_{t+1} \mid S_t = s] + \gamma\,\mathbb{E}[G_{t+1} \mid S_t = s]. \end{aligned}

第一项按奖励函数的定义,恰好就是 R(s)R(s),也就是从 ss 出发的期望即时奖励。第二项还需要多走一步:E[Gt+1St=s]\mathbb{E}[G_{t+1} \mid S_t = s],是对下一个状态 ss' 取平均、平均的是”在给定该下一状态条件下 Gt+1G_{t+1} 的期望”,这就是全期望公式(tower property),在关于 StS_t 的外层期望内部,再对 St+1S_{t+1} 条件化:

E[Gt+1St=s]=sP(ss)E[Gt+1St+1=s]=sP(ss)V(s).\mathbb{E}[G_{t+1} \mid S_t = s] = \sum_{s'} P(s' \mid s)\, \mathbb{E}[G_{t+1} \mid S_{t+1} = s'] = \sum_{s'} P(s' \mid s)\, V(s').

最后一个等号成立,是因为 E[Gt+1St+1=s]\mathbb{E}[G_{t+1} \mid S_{t+1}=s'] 按定义就是 V(s)V(s'),由马尔可夫性质,这个过程除了当前状态之外没有任何记忆。这一步还悄悄用到了动态是时齐的(time-homogeneous):VV 本身不依赖于 tt,只依赖于状态,所以”往未来一步”的价值和”在任何其他时刻”的价值,用的是同一个函数 VV。这是本系列一直沿用的一个默认假设,并不是马尔可夫性质本身就能保证的。把两部分代回去,就得到了要证明的方程。

用文字来说:当下的价值,等于即时奖励,加上一步之后折扣后的期望价值。 这句话就是 Bellman 方程的全部内容;对 ss' 求和,只不过是把”一步之后的期望价值”这句话显式地写成期望的展开式而已。强化学习里的每一个 Bellman 方程(期望的、最优性的、MRP 的、MDP 的、表格型的还是函数近似的)都是同一个想法的变体,因为它们都是回报满足 Gt=Rt+1+γGt+1G_t = R_{t+1} + \gamma G_{t+1} 这一件事、再无其他的直接推论。

从 MRP 到 MDP:同一次回代的两半

上面那条命题已经证明了 Vπ(s)=aπ(as)Qπ(s,a)V^\pi(s) = \sum_a \pi(a\mid s)\,Q^\pi(s,a),这是 VπV^\piQπQ^\pi 之间关系的一半。另一半是刚推完的 MRP Bellman 方程在 MDP 下的直接类比,只不过第一个动作被固定住了。

命题由状态价值得到动作价值
Qπ(s,a)=R(s,a)+γsP(ss,a)Vπ(s)Q^\pi(s,a) = R(s,a) + \gamma \sum_{s'}P(s' \mid s,a)\,V^\pi(s')

这个论证和 MRP Bellman 方程的证明完全一样,只不过现在每一次转移和奖励都同时以状态 ss 和固定动作 aa 为条件。固定住 aa 之后,第一步又变回了一个普通的 MRP 式回代,所以这里就不重复证明了。

推论Bellman 期望方程

把这两半组合起来,把动作价值的回代公式代入状态价值的平均公式,就得到了 Bellman 期望方程:

Vπ(s)=aπ(as)[R(s,a)+γsP(ss,a)Vπ(s)]V^\pi(s) = \sum_a \pi(a \mid s) \left[ R(s,a) + \gamma \sum_{s'}P(s' \mid s,a)V^\pi(s') \right]

这个方程通常是作为一整块公式被直接要求记住的。按照上面这样搭建出来,它其实分解成了两个各自都很显然的事实:由动作价值得到状态价值,不过是对第一个动作求期望的定义;由状态价值得到动作价值,则不过是固定住动作之后的 MRP Bellman 方程。“Bellman 期望方程”里的”期望”,指的就是一件事:对从 π\pi 中采样出的动作取平均,叠加在同一套从 Gt=Rt+1+γGt+1G_t = R_{t+1} + \gamma G_{t+1} 推出来的递归结构之上。

从评估一个策略,到寻找最优策略

到目前为止,一切都是在评估一个固定的策略 π\pi,这是预测问题。控制问的是一个不同、也更难的问题:在所有策略中一起考虑,每个状态能够达到的最好价值是多少?

Bellman 最优性原理

Richard Bellman 在 1957 年对这整套想法背后原理的原始表述,值得直接引用,因为它正是”把对动作的平均替换成最大值”这一步的真正依据:一个最优策略具有这样的性质:无论初始状态和初始决策是什么,剩下的决策相对于第一个决策所导致的状态而言,必须构成一个最优策略。 最优性在时间上是自相似的:一个最优方案的”尾巴”,本身就是它所面对的那个子问题的最优方案。正是这一点,才使得用一个局部的、一步的递归方程去求解一个时域可以无限长的问题变得有道理,没有它,你没有任何理由相信,一步一步、目光短浅的回代最终能拼出一个全局最优的策略。

定义最优价值函数
V(s)=maxπVπ(s)Q(s,a)=maxπQπ(s,a)V^*(s) = \max_\pi V^\pi(s) \qquad\qquad Q^*(s,a) = \max_\pi Q^\pi(s,a)
定理Bellman 最优性方程
V(s)=maxa[R(s,a)+γsP(ss,a)V(s)]V^*(s) = \max_a \left[ R(s,a) + \gamma \sum_{s'}P(s' \mid s,a)V^*(s') \right]Q(s,a)=R(s,a)+γsP(ss,a)maxaQ(s,a)Q^*(s,a) = R(s,a) + \gamma \sum_{s'}P(s' \mid s,a)\max_{a'}Q^*(s',a')
为什么平均会变成最大值

这两个方程并不是相对于上面 Bellman 期望方程的一个独立推导,它们就是期望方程在要求 π\pi 必须最优之后变成的样子。根据最优性原理,一个最优策略必须把全部概率质量都放在每个状态下使 Q(s,a)Q^*(s,a) 最大化的那个动作上;对一个完全集中在自己最大值点上的分布取 Q(s,a)Q^*(s,a) 的平均,结果就等于直接取这个最大值。这个 max\max 是对 π\pi 本身做优化之后留下的痕迹,而不是叠加在前面那套递归上的一个新假设。

公式归属判断规则

现在桌面上摆着三类 Bellman 方程,一条简单的规则就能判断眼前这个属于哪一类:

方程中出现的模式属于哪一类 Bellman 方程
完全没有动作项马尔可夫奖励过程
有动作项,用固定的 π(as)\pi(a \mid s) 求平均策略评估 / 预测
有动作项,配合 max\maxargmax\arg\max控制 / 最优性

延伸阅读

本章推导出了这套递归结构,但还没有把它变成一个算法。Bellman 方程是一个恒等式,是价值函数必须满足的一个真命题,还不是计算它的程序。已知模型下的规划会补上这个缺口,方法是证明这些方程背后的算子都是压缩映射,从而反复应用它们必然收敛。

这里搭建起来的价值函数,也正是后面基于价值的方法和 actor-critic 方法反复复用的对象:策略梯度里 baseline 和 advantage 函数那一套机制,用的就是本章的 VπV^\piQπQ^\piAπA^\pi,只不过被用来降低另一种估计量的方差。

参考资料