4.3 多步 TD目标
多步 TD 目标
首先回顾一下 SARSA 算法。给定五元组, SARSA 计算 TD 目标:
公式中只用到一个奖励,这样得到的叫做单步 TD 目标。多步 TD 目标用个奖励可以视作单步 TD 目标的推广。下面我们推导多步 TD 目标。
数学推导:
设一局游戏的长度为。根据定义,时刻的回报是时刻之后的所有奖励的加权和:
同理,时刻的回报可以写成:
下面我们推导两个回报的关系。把写成:
因此,回报可以写成这种形式:
动作价值函数是回报的期望,而是回报的期望。利用公式,再按照贝尔曼方程的证明,不难得出下面的定理:
设
公式中的期望是关于随机变量
注 回报
定理中把
多步 TD目标:
我们对定理中的期望做蒙特卡洛近似,然后再用价值网络
- 在
时刻,价值网络做出预测 , 它是对 的估计。 - 已知当前状态
, 用策略 控制智能体与环境交互 次,得到轨迹 . - 在
时刻,用观测到的轨迹对定理中的期望做蒙特卡洛近似,把近似的结果记作:
- 进一步用
近似 , 得到:
把
做一步梯度下降更新价值网络参数
训练流程:
设当前价值网络的参数为
- 用策略网络
控制智能体与环境交互,完成一个回合,得到轨迹 . - 对于所有的
, 计算 .
3.对于所有的 ,计算多步 TD 目标和 TD 误差:
- 对于所有的
, 对价值网络 做反向传播,计算 关于 的梯度: . - 更新价值网络参数:
- 用某种算法更新策略函数
。该算法与 SARSA 算法无关。
蒙特卡洛与自举
上一节介绍了多步 TD 目标。单步 TD 目标、回报是多步 TD
目标的两种特例。如下图所示,如果设
蒙特卡洛
训练价值网络
然后做一次梯度下降更新
这样可以让价值网络的预测
在强化学习中,训练价值网络的时候以
蒙特卡洛的好处是无偏性:
蒙特卡洛的坏处是方差大。随机变量
因此,拿
自举
在介绍价值学习的自举之前,先解释一下什么叫自举。大家可能经常在强化学习和统计学的文章里见到 bootstrapping 这个词。它的字面意思是“拔自己的鞋带,把自己举起来”。所以 bootstrapping 翻译成“自举”, 即自己把自己举起来。自举听起来很荒谬。即使你“力拔山兮气盖世”,你也没办法拔自己的鞋带,把自己举起来。虽然自举乍看起来不现实,但是在统计和 机器学习 是可以做到自举的;自举在统计和机器学习里面非常常用。
在强化学习中,“自举”的意思是“用一个估算去更新同类的估算”,类似于“自己把自己给举起来”。SARSA 使用的单步 TD 目标定义为:
SARSA 鼓励
TD 目标
自举的好处是方差小。单步 TD 目标的随机性只来自于
自举的坏处是有偏差。价值网络
也就是说,自举会让偏差从
蒙特卡洛和自举的对比
在价值学习中,用实际观测的回报
用单步 TD 目标
如图 5.4 所示,多步 TD 目标