4.2 Q-learning算法
Q 学习与 SARSA 的对比:
Q学习不依赖于
Q学习的目标是学到表格
SARSA 算法的目标是学到表格
Q学习算法
Q学习算法上一节用 TD 算法训练
DQN(介绍DQN的笔记在这里:深度强化学习(王树森)笔记02),
更准确地说,我们用的 TD 算法叫做 Q 学习算法 (Q- learning)。TD
算法是一大类算法,常见的有 Q 学习和 SARSA。Q
学习的目的是学到最优动作价值函数
Q 学习是在 1989 年提出的,而 DQN 则是 2013 年才提出。从 DQN 的名字 (深度 Q 网络)就能看出 DQN 与 Q 学习的联系。最初的 Q 学习都是以表格形式出现的。虽然表格形式的 Q 学习在实践中不常用,但还是建议读者有所了解。
用表格表示 :
假设状态空间
该如何通过智能体的轨迹来学习这样一个表格呢?答案是用一个表格
首先初始化
算法推导:
首先复习一下最优贝尔曼方程:
我们对方程左右两边做近似:
- 方程左边的
可以近似成 。 - 方程右边的期望是关于下一时刻状态
求的。给定当前状态 , 智能体执行动作 ,环境会给出奖励 和新的状态 。用观测到的 和 对期望做蒙特卡洛近似,得到: . - 进一步把公式中的
近似成 , 得到
把它称作 TD 目标。它是表格在 t+1时刻对
这样可以使得
收集训练数据:
Q学习更新
事后用经验回放更新表格
经验回放更新表格
随机从经验回放数组中抽取一个四元组,记作
- 把表格
中第 位置上的元素记作: . - 查看表格
的第 行,把该行的最大值记作: . - 计算 TD 目标和 TD 误差:
. - 更新表格中
位置上的元素: .
收集经验与更新表格
同策略 (On-policy) 与异策略 (Off-policy)
在强化学习中经常会遇到两个专业术语:同策略(on-policy) 和异策略 (off-policy)。
为了解释同策略和异策略,我们要从行为策略 (behavior policy) 和目标策略 (target policy) 讲起。
在强化学习中,我们让智能体与环境交互,记录下观测到的状态、动作、奖励,用这些经验来学习一个策略函数。在这一过程中,控制智能体与环境交互的策略被称作行为策略。行为策略的作用是收集经验(experience),即观测的状态、动作、奖励。
强化学习的目的是得到一个策略函数,用这个策略函数来控制智能体。这个策略函数就叫做目标策略。在本章中,目标策略是一个确定性的策略,即用 DQN 控制智能体:
本章的 Q 学习算法用任意的行为策略收集
行为策略和目标策略可以相同,也可以不同。同策略是指用相同的行为策略和目标策略,后面章节会介绍同策略。异策略是指用不同的行为策略和目标策略,本章的 DQN 属于异策略。同策略和异策略如图 4.6、4.7 所示。
由于DQN
是异策略,行为策略可以不同于目标策略,可以用任意的行为策略收集经验,比如最常用的行为策略是
让行为策略带有随机性的好处在于能探索更多没见过的状态。在实验中,初始的时候让
异策略的好处是可以用行为策略收集经验,把
总结
DQN 是对最优动作价值函数
TD 算法的目的在于让预测更接近实际观测。以驾车问题为例,如果使用 TD 算法,无需完成整个旅途就能做梯度下降更新模型。请读者理解并记忆 TD 目标、TD 误差的定义,它们将出现在所有价值学习的章节中。
Q 学习算法是 TD 算法的一种,可以用于训练 DQN。Q 学习算法由最优贝尔曼方程推导出。Q 学习算法属于异策略,允许使用经验回放。由任意行为策略收集经验, 存入经验回放数组。事后做经验回放,用 TD 算法更新 DQN 参数。
如果状态空间