强化学习总结05 无模型方法之时间差分

611 阅读5分钟

时间差分方法简介

时间差分方法(Temporal-Difference,TD)是强化学习中最为「核心」的想法。

  • 结合了 DP 和 MC 的优点:

    • MC:从「历史经验」中学习
    • DP:使用后继状态的值函数更新当前状态的值函数
  • 属于无模型方法:

    • 未知 ,需要智能体与环境进行交互,样本备份,需要充分的探索
  • 同时利用了「采样」「贝尔曼方程」

  • 可以从不完整的片段中学习(通过「自举法」

    • 可同时应用于片段性任务和连续性任务
    • 「通过估计来更新估计」

「自举法」 (bootstrapping) 又名拔靴法、自助法。通过对样本进行「重采样」得到的估计总体的方法。 重采样:对样本里的数据再采样一次。 强化学习的 MC 中,一条轨迹是一个样本。TD 中,把一条轨迹采样成小片段,再对片段进行采样,所以属于自举法。

时间差分评价

「目的」:给定策略 ,求其对应的值函数

对比之前的蒙特卡洛算法。

  • 增量蒙特卡洛算法
    • 用实际回报值去更新值函数

时间差分评价算法

时间差分算法 (Temporal-difference, TD)中,「使用估计的回报值 去更新值函数 (TD(0))」

其中:

  • 称为 TD 目标
  • 称为 TD 误差
  • 在0~1之间

时间差分策略评价算法

时间差分策略评价算法
时间差分策略评价算法

策略评价算法对比: TD 和 DP

DP 中,利用了贝尔曼方程去解强化学习问题。由于**环境模型已知,**当前状态的下一个状态全部已知,「直接求期望即可」

而 TD 中,也利用了贝尔曼方程,但做了以下改动:

  • 全宽备份 样本备份: 并去掉了期望符号
  • 增加了学习率

为什么增加学习率? 因为TD目标值 是采样得到的,不是精确的。此处的学习率表示“大致往样本的方向更新一小步”

大量采样,收敛后,时间差分评价算法满足贝尔曼方程:

整体看来,在时间差分评价算法中,是利用「TD目标」(估计出来的值函数)和「当前值函数」的差来指导学习,所以称作时间差分。

策略评价算法对比: TD 和 MC

在 MC 中,考虑的是整条轨迹,利用整条轨迹来估计值函数V(s)。

  • TD 在每一步之后都能在线学习; MC 必须等待回报值得到之后才能学习
  • TD 利用了马尔科夫性; MC 没有利用马尔科夫性
  • MC 有高方差,零偏差; TD 有低方差,和一些偏差

TD 和 MC 的优缺点

  • MC 有高方差,零偏差

    • 收敛性较好 (即使采用函数逼近)
    • 对初始值不太敏感
    • 简单, 容易理解和使用
    • 随着样本数量的增加,「方差逐渐减少, 趋近于 0」
  • TD 有低方差,和一些偏差

    • 通常比 MC 效率更高
    • 表格法下 TD(0) 收敛到 (函数逼近时不一定)
    • 对初始值更敏感(由于用了贝尔曼方程,初始值会影响之后的迭代)
    • 随着样本数量的增加,「偏差逐渐减少,趋近于 0」
  • TD 利用了马尔可夫性

    • 一般来说 TD 在马尔可夫环境中更有效
  • MC 没有利用马尔可夫性

    • 一般对非马尔可夫环境更有效

其他对比维度

自举和采样

  • 「自举」: 使用随机变量的估计去更新

    • MC 没有自举
    • DP 和 TD 都有自举
  • 「采样」: 通过样本估计期望。这里是通过采样的样本来估计值函数。

    • MC 和 TD 用到了采样(环境模型未知,需要对环境交互进行采样,从而估计值函数)
    • DP 不采样(状态转移概率、奖励已知,直接计算值函数)

备份深度

ML 和 RL 中的偏差/方差权衡

ML 中的偏差和方差的trade-off

在监督学习中,偏差/方差有另外的理解——「欠拟合」「过拟合」

  • 偏差大 (欠拟合): 预测值和样本之间的差
  • 方差大 (过拟合): 样本值之间的方差, 学出的模型泛化能力差

方差大意味着样本的置信度较差

机器学习方法都会在偏差和方差之间做 trade-off

RL 中的偏差和方差的trade-off

  • 回报值 是值函数 的无偏估计
  • 真实的 TD 目标值 是值函数 的无偏估计
  • 使用的 TD 目标值 是值函数 的有偏估计
  • TD 目标值的方差要远小于回报值(蒙特卡洛)
    • 回报值依赖于很多随机变量 ,每一步都会引入一定的方差,所以方差很大
    • TD 目标值仅仅依赖于一个随机序列 ,只有一步随机,所以方差很小

时间差分优化

  • 广义策略迭代

    • 策略评价: 「TD 策略评价」
    • 策略提升: -贪婪策略提升
  • TD 优化相比 MC 优化有几点好处

    • 「低方差」
    • 「在线更新」 (online)。在线更新指的是,每进行一步就可以进行更新,而不需要整个episode做完才更新。
    • 「不完整序列」

「在策略」 TD 优化——Sarsa

在当前状态S,根据当前策略,选择动作A,收到奖励R,转移到状态S'。在状态S'下,再根据当前策略(同一个策略)选择动作A'。

注意: TD目标值中的动作 A' 其实并没有做

值迭代

为什么是「在策略」

  • 当前状态 S 下,执行的动作 A 是来自当前 Q 函数下的 -贪婪策略
  • 「TD 目标值」中,在下一个状态S'下,动作 A′ 也是来自当前 Q 函数下的 -贪婪策略
  • 这两者是同一个策略。

「离策略」 TD 优化——Q学习