4.3 多步 TD目标

多步 TD 目标

首先回顾一下 SARSA 算法。给定五元组, SARSA 计算 TD 目标:

公式中只用到一个奖励,这样得到的叫做单步 TD 目标。多步 TD 目标用个奖励可以视作单步 TD 目标的推广。下面我们推导多步 TD 目标。

数学推导:

设一局游戏的长度为。根据定义,时刻的回报时刻之后的所有奖励的加权和:

同理,时刻的回报可以写成:

下面我们推导两个回报的关系。把写成:

因此,回报可以写成这种形式:

动作价值函数是回报的期望,而是回报的期望。利用公式,再按照贝尔曼方程的证明,不难得出下面的定理:

的函数,。那么

公式中的期望是关于随机变量求的。

注 回报的随机性来自于时刻的状态和动作:

定理中把看做是观测值,用期望消掉, 而则消掉了剩余的随机变量

多步 TD目标:

我们对定理中的期望做蒙特卡洛近似,然后再用价值网络近似动作价值函数。具体做法如下:

  • 时刻,价值网络做出预测, 它是对的估计。
  • 已知当前状态, 用策略控制智能体与环境交互次,得到轨迹.
  • 时刻,用观测到的轨迹对定理中的期望做蒙特卡洛近似,把近似的结果记作:

  • 进一步用近似, 得到:

称作步TD 目标。

分别是价值网络在时刻和时刻做出的预测,两者都是对的估计值。是纯粹的预测,而则基于组实际观测,因此更可靠。我们鼓励接近。设损失函数为:

做一步梯度下降更新价值网络参数:

训练流程

设当前价值网络的参数为, 当前策略为。执行以下步骤更新价值网络和策略。

  1. 用策略网络控制智能体与环境交互,完成一个回合,得到轨迹.
  2. 对于所有的, 计算.
    3.对于所有的,计算多步 TD 目标和 TD 误差:

  1. 对于所有的, 对价值网络做反向传播,计算关于的梯度:.
  2. 更新价值网络参数:

  1. 用某种算法更新策略函数。该算法与 SARSA 算法无关。

蒙特卡洛与自举

上一节介绍了多步 TD 目标。单步 TD 目标、回报是多步 TD 目标的两种特例。如下图所示,如果设,那么多步 TD 目标变成单步 TD 目标。如果设,那么多步 TD 目标变成实际观测的回报

蒙特卡洛

训练价值网络的时候,我们可以将一局游戏进行到底,观测到所有的奖励,然后计算回报。拿作为目标,鼓励价值网络接近。定义损失函数:

然后做一次梯度下降更新:

这样可以让价值网络的预测更接近。这种训练价值网络的方法不是 TD。

在强化学习中,训练价值网络的时候以作为目标,这种方式被称作“蒙特卡洛”。原因是这样的,动作价值函数可以写作, 而我们用实际观测去近似期望,这就是典型的蒙特卡洛近似。

蒙特卡洛的好处是无偏性:的无偏估计。由于的无偏性,拿作为目标训练价值网络,得到的价值网络也是无偏的。

蒙特卡洛的坏处是方差大。随机变量依赖于这些随机变量,其中不确定性很大。观测值虽然是的无偏估计,但可能实际上离很远。

因此,拿作为目标训练价值网络,收敛会很慢。

自举

在介绍价值学习的自举之前,先解释一下什么叫自举。大家可能经常在强化学习和统计学的文章里见到 bootstrapping 这个词。它的字面意思是“拔自己的鞋带,把自己举起来”。所以 bootstrapping 翻译成“自举”, 即自己把自己举起来。自举听起来很荒谬。即使你“力拔山兮气盖世”,你也没办法拔自己的鞋带,把自己举起来。虽然自举乍看起来不现实,但是在统计和 机器学习 是可以做到自举的;自举在统计和机器学习里面非常常用。

在强化学习中,“自举”的意思是“用一个估算去更新同类的估算”,类似于“自己把自己给举起来”。SARSA 使用的单步 TD 目标定义为:

SARSA 鼓励接近, 所以定义损失函数:

TD 目标的一部分是价值网络做出的估计, 然后 SARSA 让去拟合。这就是用价值网络自己做出的估计去更新价值网络自己,这属于“自举”。(严格地说,TD 目标中既有自举的成分,也有蒙特卡洛的成分。TD 目标中的是自举,因为它拿价值网络自己的估计作为目标。TD 目标中的是实际观测,它是对的蒙特卡洛。)

自举的好处是方差小。单步 TD 目标的随机性只来自于, 而回报的随机性来自于。很显然,单步 TD 目标的随机性较小,因此方差较小。用自举训练价值网络,收敛比较快。

自举的坏处是有偏差。价值网络是对动作价值的近似。最理想的情况下,。假如碰巧低估(或高估)真实价值,则会发生下面的情况:

也就是说,自举会让偏差从传播到。后面详细讨论自举造成的偏差以及解决方案。

蒙特卡洛和自举的对比

在价值学习中,用实际观测的回报作为目标的方法被称为蒙特卡洛,即图 5.5 中的蓝色的箱型图。

的无偏估计,即。但是它的方差很大,也就是说实际观测到的可能离很远。

用单步 TD 目标作为目标的方法被称为自举,即图5.5 中的红色的箱型图。自举的好处在于方差小,不会偏离期望太远。但是往往是有偏的, 它的期望往往不等于。用自举训练出的价值网络往往有系统性的偏差 (低估或者高估)。实践中,自举通常比蒙特卡洛收敛更快,这就是为什么训练 DQN 和价值网络通常用 TD 算法。

如图 5.4 所示,多步 TD 目标介于蒙特卡洛和自举之间。多步 TD 目标有很大的蒙特卡洛成分,其中的基于个实际观测到的奖励。多步 TD 目标也有自举的成分,其中的是用价值网络自己算出来的。如果把设置得比较好,可以在方差和偏差之间找到好的平衡,使得多步 TD 目标优于单步 TD 目标,也优于回报


4.3 多步 TD目标
http://binbo-zappy.github.io/2024/12/04/DRL-王树森/4-3-多步-TD目标/
作者
Binbo
发布于
2024年12月4日
许可协议