回报、价值与 Bellman 方程
一行式子干完了全部的活:回报满足 G_t = R_{t+1} + gamma*G_{t+1}。本章里的一切,两个价值函数、Bellman 期望方程、最优性方程,都是这一条递归被推过一层期望、再被优化一次的结果。附 Bellman 最优性原理,那才是平均可以换成最大值的真正依据。
Reinforcement LearningValue FunctionMarkov Decision Process
两个经常被混为一谈的词
“奖励就是期望的长期奖励”,这句话听起来几乎是对的,但其实是错的,而且值得仔细琢磨错在哪里。
奖励是一步的反馈:环境在一次转移之后返回的单独一个标量。回报是从某个时刻开始、往未来累积的奖励,是一个求和,而不是单独一个数字。这条链只有一个方向:奖励聚合成回报,回报的期望变成价值。本章就是把这条链从头走到尾,而这样走一遍的回报是:Bellman 方程,那个通常被当成一整块公式硬记的东西,会作为第一节里一条小引理的推论自然出现。
定义折扣回报
从时刻 t 开始的折扣回报是
Gt=Rt+1+γRt+2+γ2Rt+3+⋯对于在 T 处结束的有限时域,
Gt=Rt+1+γRt+2+⋯+γT−t−1RT.如果 γ=0,回报就退化成下一步的奖励,Gt=Rt+1。
折扣因子 γ∈[0,1] 不是一个无关紧要的调参旋钮;在一般情形下,正是它让 Gt 得以良定义。一个不加权的无穷奖励求和没有理由收敛,而很多环境确实允许无限长或者带循环的轨迹存在。折扣还编码了一件比”保证收敛”更实质性的东西:它说明越靠后的奖励权重越小,而只要未来比现在更不确定,或者一个任务本来就更偏好早点拿到奖励,这就是一个合理的立场。当 γ 趋近于 0 时,智能体几乎完全变成”近视眼”,只在乎眼前的奖励;当 γ 趋近于 1 时,它对遥远未来的重视程度几乎和对当下的重视程度一样。
这也顺带了结了第一章结尾留下的那个悬案。“在一个可能无限长的未来上累积奖励”现在是一个收敛的量了,而且它有名字了。
回报 Gt 有一个结构性质,接下来的一切都建立在它之上:它可以被拆分成”紧接着下一步会发生什么”和”再往后会发生什么”两部分。
引理回报满足一步递归
Gt=Rt+1+γGt+1
证明
Gt=Rt+1+γRt+2+γ2Rt+3+⋯=Rt+1+γ(Rt+2+γRt+3+⋯)=Rt+1+γGt+1.中间这一步只是把 γ 从除第一项之外的每一项里提出来;括号里剩下的部分,按定义就是 Gt+1。
在涉及任何期望或环境结构之前,这一行恒等式就是 Bellman 方程全部的数学内容。接下来整章都值得把它放在视野里:下面每一个方程,都只是这条引理穿上了越来越多的衣服。
两个价值函数
价值函数估计的是期望的长期累积奖励,而不只是即时奖励。马尔可夫阶梯已经点出了为什么一旦动作存在、一个这样的函数就不够用:同一个状态下不同的可选动作可能通向不同的未来。下面把这个说法做精确。
定义状态价值函数与动作价值函数
在固定策略 π 下,状态价值函数是从状态 s 出发、此后一直遵循 π 的期望回报:
Vπ(s)=Eπ[Gt∣St=s]动作价值函数是从状态 s 出发、先采取动作 a、之后遵循 π 的期望回报:
Qπ(s,a)=Eπ[Gt∣St=s,At=a]
| 函数 | 评价对象 | 是否包含第一个动作 |
|---|
| Vπ(s) | 状态 | 否 |
| Qπ(s,a) | 状态-动作对 | 是 |
两者的区别恰好就在于:第一个动作是由策略决定的,还是由我们手动固定的,而正是这个区别,使得 Qπ 能够用来比较不同的候选动作,而 Vπ 只能把一个状态作为整体来评价。
命题由动作价值得到状态价值
Vπ(s)=a∑π(a∣s)Qπ(s,a)
证明
Vπ(s) 是对从 s 出发、在 π 下的所有轨迹的回报取平均;这样一条轨迹里的第一个动作 At,本身就服从 At∼π(⋅∣s) 这个分布。对第一个动作的取值条件化,再应用全期望公式:
Vπ(s)=Eπ[Gt∣St=s]=a∑π(a∣s)Eπ[Gt∣St=s,At=a]=a∑π(a∣s)Qπ(s,a).
这条命题请先拿在手里。再过几段,Bellman 期望方程就是由它和另一半拼起来的。
当下的价值,等于奖励加上之后的价值
现在把递归引理推过期望。先看 MRP 的情形,此时 V(s)=E[Gt∣St=s],不涉及动作。因为回报满足 Gt=Rt+1+γGt+1,V 也满足同样的递归。
定理Bellman 方程(马尔可夫奖励过程)
V(s)=R(s)+γs′∑P(s′∣s)V(s′)
证明
从定义出发,应用一步递归引理:
V(s)=E[Gt∣St=s]=E[Rt+1+γGt+1∣St=s]=E[Rt+1∣St=s]+γE[Gt+1∣St=s].第一项按奖励函数的定义,恰好就是 R(s),也就是从 s 出发的期望即时奖励。第二项还需要多走一步:E[Gt+1∣St=s],是对下一个状态 s′ 取平均、平均的是”在给定该下一状态条件下 Gt+1 的期望”,这就是全期望公式(tower property),在关于 St 的外层期望内部,再对 St+1 条件化:
E[Gt+1∣St=s]=s′∑P(s′∣s)E[Gt+1∣St+1=s′]=s′∑P(s′∣s)V(s′).最后一个等号成立,是因为 E[Gt+1∣St+1=s′] 按定义就是 V(s′),由马尔可夫性质,这个过程除了当前状态之外没有任何记忆。这一步还悄悄用到了动态是时齐的(time-homogeneous):V 本身不依赖于 t,只依赖于状态,所以”往未来一步”的价值和”在任何其他时刻”的价值,用的是同一个函数 V。这是本系列一直沿用的一个默认假设,并不是马尔可夫性质本身就能保证的。把两部分代回去,就得到了要证明的方程。
用文字来说:当下的价值,等于即时奖励,加上一步之后折扣后的期望价值。 这句话就是 Bellman 方程的全部内容;对 s′ 求和,只不过是把”一步之后的期望价值”这句话显式地写成期望的展开式而已。强化学习里的每一个 Bellman 方程(期望的、最优性的、MRP 的、MDP 的、表格型的还是函数近似的)都是同一个想法的变体,因为它们都是回报满足 Gt=Rt+1+γGt+1 这一件事、再无其他的直接推论。
从 MRP 到 MDP:同一次回代的两半
上面那条命题已经证明了 Vπ(s)=∑aπ(a∣s)Qπ(s,a),这是 Vπ 与 Qπ 之间关系的一半。另一半是刚推完的 MRP Bellman 方程在 MDP 下的直接类比,只不过第一个动作被固定住了。
命题由状态价值得到动作价值
Qπ(s,a)=R(s,a)+γs′∑P(s′∣s,a)Vπ(s′)
这个论证和 MRP Bellman 方程的证明完全一样,只不过现在每一次转移和奖励都同时以状态 s 和固定动作 a 为条件。固定住 a 之后,第一步又变回了一个普通的 MRP 式回代,所以这里就不重复证明了。
推论Bellman 期望方程
把这两半组合起来,把动作价值的回代公式代入状态价值的平均公式,就得到了 Bellman 期望方程:
Vπ(s)=a∑π(a∣s)[R(s,a)+γs′∑P(s′∣s,a)Vπ(s′)]
这个方程通常是作为一整块公式被直接要求记住的。按照上面这样搭建出来,它其实分解成了两个各自都很显然的事实:由动作价值得到状态价值,不过是对第一个动作求期望的定义;由状态价值得到动作价值,则不过是固定住动作之后的 MRP Bellman 方程。“Bellman 期望方程”里的”期望”,指的就是一件事:对从 π 中采样出的动作取平均,叠加在同一套从 Gt=Rt+1+γGt+1 推出来的递归结构之上。
从评估一个策略,到寻找最优策略
到目前为止,一切都是在评估一个固定的策略 π,这是预测问题。控制问的是一个不同、也更难的问题:在所有策略中一起考虑,每个状态能够达到的最好价值是多少?
定义最优价值函数
V∗(s)=πmaxVπ(s)Q∗(s,a)=πmaxQπ(s,a)
定理Bellman 最优性方程
V∗(s)=amax[R(s,a)+γs′∑P(s′∣s,a)V∗(s′)]Q∗(s,a)=R(s,a)+γs′∑P(s′∣s,a)a′maxQ∗(s′,a′)
公式归属判断规则
现在桌面上摆着三类 Bellman 方程,一条简单的规则就能判断眼前这个属于哪一类:
| 方程中出现的模式 | 属于哪一类 Bellman 方程 |
|---|
| 完全没有动作项 | 马尔可夫奖励过程 |
| 有动作项,用固定的 π(a∣s) 求平均 | 策略评估 / 预测 |
| 有动作项,配合 max 或 argmax | 控制 / 最优性 |
延伸阅读
本章推导出了这套递归结构,但还没有把它变成一个算法。Bellman 方程是一个恒等式,是价值函数必须满足的一个真命题,还不是计算它的程序。已知模型下的规划会补上这个缺口,方法是证明这些方程背后的算子都是压缩映射,从而反复应用它们必然收敛。
这里搭建起来的价值函数,也正是后面基于价值的方法和 actor-critic 方法反复复用的对象:策略梯度里 baseline 和 advantage 函数那一套机制,用的就是本章的 Vπ、Qπ、Aπ,只不过被用来降低另一种估计量的方差。
参考资料
评论