强化学习导论

本项目为《Reinforcement Learning: An Introduction》(第二版)中文翻译, 旨在帮助喜欢强化学习(Reinforcement Learning)的各位能更好的学习交流。

本书正在翻译中,请查看具体 进度

目前第二版原版已完成,大家可以前往 下载

深度强化学习

OpenAI 推出了 深度强化学习 Spinning Up 项目, 旨在让深度强化学习的学习变得更加简单,可以作为后续强化深度学习入门。

版权声明

本书的著作权归作者(Richard S. Sutton 和 Andrew G. Barto)所有。你可以:

  • 下载、保存以及打印本书
  • 网络链接、转载本书的部分或者全部内容,但是必须在明显处提供读者访问本书发布网站的链接
  • 在你的程序中任意使用本书所附的程序代码,但是由本书的程序所引起的任何问题,作者不承担任何责任

你不可以:

  • 以任何形式出售本书的电子版或者打印版
  • 擅自印刷、出版本书
  • 以纸媒出版为目的,改写、改编以及摘抄本书的内容
  • 在课程设计、毕业设计以及作业中大段摘抄本书文字,或直接使用本书的程序代码

目录

第二版前言

第一版前言

符号一览

大写字母用于随机变量,而小写字母用于随机变量的具体值或标量函数。 小写、粗体的字母用于实数向量(即使是随机变量)。大写的粗体字母用于矩阵。

\(\doteq\) 由定义得到的等于关系
\(\approx\) 约等于
\(\propto\) 正比于
\(\Pr \{X=x\}\) 随机变量 \(X\) 取值为 \(x\) 的概率
\(X \sim p\) 随机变量 \(X\) 满足分布 \(p(x) \doteq \Pr\{X = x\}\)
\(\mathbb{E}[X]\) 随机变量 \(X\) 的期望值, 也就是说 \(\mathbb{E}[X] = \sum_x p(x)x\)
\(\arg \max_a f(a)\) \(f(a)\) 取最大值时 \(a\) 的取值
\(\ln (x)\) \(x\) 的自然对数
\(e^x, exp(x)\) 自然对数 \(e \approx 2.71828\)\(x\) 次方;\(e^{\ln x}=x\)
\(\mathbb{R}\) 实数集
\(f: \mathcal{X} \rightarrow \mathcal{y}\) 函数 \(f\) 表示从集合 \(\mathcal X\) 中元素到集合 \(\mathcal{y}\) 中元素的映射
\(\leftarrow\) 赋值
\((a, b]\) 左开右闭的实数区间
 
\(\varepsilon\) \(\varepsilon\) -贪婪策略中采取随机动作的概率
\(\alpha, \beta\) 步长参数
\(\gamma\) 折扣率参数
\(\lambda\) 资格迹中的衰减率
\(\mathbb{1}_{predicate}\) 指示函数(当 谓词 \(predicate\) 为真时 \(\mathbb{1}_{predicate} \doteq 1\), 反之为0)
 

在多摇臂赌博机问题中:

\(k\) 动作(摇臂)的数量
\(t\) 离散的时间步或玩的次数
\(q_*(a)\) 动作 \(a\) 的真实值(预期奖励)
\(Q_t(a)\) \(q_*(a)\) 在时步 \(t\) 的估计值
\(N_t(a)\) 在时步 \(t\) 前动作 \(a\) 被选中的概率
\(H_t(a)\) 由学习得到的、在时步 \(t\) 时选择动作 \(a\) 的偏好值
\(\pi_t(a)\) 在时步 \(t\) 选择动作 \(a\) 的概率
\(\overline{R}_t\) 在给定策略 \(\pi_t\) 的情况下, 预期奖励在时步 \(t\) 时的估计值
 

在马尔科夫决策过程中:

\(s, s^{\prime}\) 状态
\(a\) 动作
\(r\) 奖励
\(\mathcal{S}\) 所有非末状态的集合
\(\mathcal{S}^+\) 所有状态的集合, 包括末状态
\(\mathcal{A}(s)\) 在状态 \(s\) 下所有可行的动作的集合
\(\mathcal{R}\) 所有可能奖励的集合, 为 \(\mathbb{R}\) 的有限子集
\(\subset\) 含于, 例如 \(\mathcal{R} \subset \mathbb{R}\)
\(\in\) 属于, 例如 \(s \in \mathcal{S}\), \(r \in \mathcal{R}\)
\(\lvert \mathcal{S} \rvert\) 集合 \(\mathcal{S}\) 中元素的个数
 
\(t\) 离散的时步
\(T, T(t)\) 回合的最后一个时步, 或包含了时步 \(t\) 的回合的最后一步
\(A_t\) 在时步 \(t\) 中所选择的动作
\(S_t\) 时步 \(t\) 时的状态, 通常由 \(S_{t-1}\)\(A_{t-1}\) 概率性地决定
\(R_t\) 在时步 \(t\) 中的奖励, 通常由 \(S_{t-1}\)\(A_{t-1}\) 概率性地决定
\(\pi\) 策略(决策准则)
\(\pi(s)\) 确定性 策略 \(\pi\) 下, 在状态 \(s\) 中所采取的动作
\(\pi(a | s)\) 概率性 策略 \(\pi\) 下, 在状态 \(s\) 中采取动作 \(a\) 的概率
 
\(G_t\) 在时步 \(t\) 后的回报
\(h\) 水平,在前瞻多看的时步(horizon, the time step one looks up to in a forward view)
\(G_{t:t+n}, G_{t:h}\) \(t+1\)\(t+n\) 或到 \(h\) (折扣的且校正的) 的n步回报
\(overline{G}_{t:h}\) \(t+1\)\(h\) 的平坦回报(未折扣且未校正的)(5.8节)
\(G_{t}^{\lambda}\) \(\lambda\) -回报(12.1节)
\(G_{t:h}^{\lambda}\) 截断的,校正的:math:lambda -回报(12.3节)
\(G_t^{\lambda s}, G_t^{\lambda a}\) 估计状态或动作,价值校正的:math:lambda -回报(12.8节)
 
\(p(s^{\prime}, r | s, a)\) 从状态 \(s\) 与动作 \(a\) 起, 以 \(r\) 的奖励转移到状态 \(s^{\prime}\) 的概率
\(p(s^{\prime} | s, a)\) 从状态 \(s\) 起采取动作 \(a\), 转移到状态 \(s^{\prime}\) 的概率
\(r(s, a)\) 动作 \(a\) 后状态 \(s\) 的预期即时奖励
\(r(s, a, s^{\prime})\) 动作 \(a\) 下从状态 \(s\) 到状态 \(s^{\prime}\) 的转移的预期即时奖励
 
\(v_\pi(s)\) 在策略 \(\pi\) 下状态 \(s\) 的价值(预期回报)
\(v_*(s)\) 在最优策略下状态 \(s\) 的价值
\(q_\pi(s, a)\) 在策略 \(\pi\) 下, 在状态 \(s\) 中采取动作 \(a\) 的价值
\(q_*(s, a)\) 在最优策略下, 在状态 \(s\) 中采取动作 \(a\) 的价值
 
\(V, V_t\) 状态价值函数 \(v_\pi\)\(v_*\) 的表格估计值
\(Q, Q_t\) 动作价值函数 \(q_\pi\)\(q_*\) 的表格估计值
\(\overline{V}_t(s)\) 预期的近似动作价值, 如 \(\overline{V}_{t}(s) \doteq \sum_{a} \pi(a | s) Q_{t}(s, a)\)
\(U_t\) 在时步 \(t\) 估计的目标
\(\delta_t\) 在时步 \(t\) (随机变量)的时序差分(TD)误差(6.1节)
\(\delta_t^s, \delta_t^a\) TD误差的状态和行动特定形式(第12.9节)
\(n\) 在n步方法中,\(n\) 是自举的步骤数
 
\(d\) 维度── \(\mathbf{w}\) 的分量数量
\(d^{\prime}\) 备用维度── \(\mathrm{\theta}\) 的分量数量
\(\mathbf{w}, \mathbf{w}_{t}\) 近似价值函数的权重 \(d\) 维向量
\(w_{i}, w_{t, i}\) \(i\) 个可学习的权重向量的组成部分
\(\hat{v}(s, \mathbf{w})\) 给定权重向量 mathbf{w} 的状态 \(s\) 的近似价值
\(v_{\mathbf{w}}(s)\) \(\hat{v}(s, \mathbf{w})\) 的备用表示
\(\hat{q}(s, a, \mathbf{w})\) 状态-动作对 \(s,a\) 的近似价值,给定权重向量 \(\mathbf{w}\)
\(\hat{\nabla} \hat{v}(s, \mathbf{w})\) 关于 \(\mathbf{w}\)\(\hat{v}(s, \mathbf{w})\) 的偏导数的列向量
\(\nabla \hat{q}(s, a, \mathbf{w})\) 关于 \(\mathbf{w}\)\(\hat{q}(s, a, \mathbf{w})\) 的偏导数的列向量
 
\(\mathbf{x}(s)\) 在状态 \(s\) 可见的特征向量
\(\mathbf{x}(s, a)\) 在状态 \(s\) 采取动作 \(a\) 时可见的特征向量
\(x_{i}(s), x_{i}(s, a)\) 向量 \(\mathbf{x}(s)\)\(\mathbf{x}(s, a)\) 的分量
\(\mathbf{x}_{t}\) \(\mathbf{x}(S_t)\)\(\mathbf{x}(S_t, A_t)\) 的简写
\(\mathbf{W}^{\top} \mathbf{x}\) 向量的内积,\(\mathbf{w}^{\top} \mathbf{x} \doteq \sum_{i} w_{i} x_{i}\);比如 \(\hat{v}(s, \mathbf{w}) \doteq \mathbf{w}^{\top} \mathbf{x}(s)\)
\(\mathbf{V}, \mathbf{V}_{t}\) 用于学习 \(\mathbf{w}\) 的权重的次要 \(d\) 维向量(第11章)
\(\mathbf{Z}_{t}\) 时步 \(t\) 的资格迹 \(d\) 维向量(第12章)
 
\(\mathbf{\theta}, \mathbf{\theta}_{t}\) 目标策略的参数向量(第13章)
\(\pi(a | s, \mathbf{\theta})\) 在给定参数向量 \(\mathbf{\theta}\) 的状态 \(s\) 下采取动作 \(a\) 的概率
\(\pi_{\mathbf{\theta}}\) 与参数 \(\mathbf{\theta}\) 对应的策略
\(\nabla \pi(a | s, \mathbf{\theta})\) 关于 \(\mathbf{\theta}\)\(\pi(a|s,\mathbf{\theta})\) 的偏导数的列向量
\(\mathbf{J}(\mathbf{\theta})\) 策略的性能衡量指标
\(\nabla \mathbf{J}(\mathbf{\theta})\) 关于 \(\mathbf{\theta}\)\(\mathbf{J}(\mathbf{\theta})\) 的偏导数的列向量
\(h(s, a, \mathbf{\theta})\) 选择基于 \(\mathbf{\theta}\) 的状态 \(s\) 中的动作 \(a\) 的优先指标
 
\(b(a|s)\) 用于在了解目标策略 ;math:pi 时选择动作的行为策略
\(b(s)\) 基线函数 \(b : \mathcal{S} \mapsto \mathbb{R}\) 用于策略梯度方法
\(b\) MDP或搜索树的分支因子
\(\rho_{t : h}\) 时步 \(t\) 到时步 \(h\) 的重要采样比率(第5.5节)
\(\rho_{t}\) 时间 \(t\) 的重要采样比率,\(\rho_{t} \doteq \rho_{t:t}\)
\(r(\pi)\) 策略 \(\pi\) 的平均回报(奖励率)(第10.3节)
\(\overline{R}_{t}\) 在时间 \(t\) 估计 \(r(\pi)\)
 
\(\mu(s)\) 各状态的在策略分布(第9.2节)
\(\mathbf{\mu}\) 所有 \(s\in\mathcal{S}\)\(\mu(s)\)\(|\mathcal{S}|\) 维向量
\(\|v\|_{\mu}^{2}\) 价值函数 \(v\)\(\mu\) 加权平方范数,即 \(\|v\|_{\mu}^{2} \doteq \sum_{s \in \mathcal{S}} \mu(s) v(s)^{2}\)
\(\eta(s)\) 每回合到状态 \(s\) 的预期访问次数(第199页)
\(\Pi\) 价值函数的投影算子(第268页)
\(B_{\pi}\) 价值函数的Bellman算子(第11.4节)
 
\(\mathbf{A}\) \(d \times d\) 矩阵 \(\mathbf{A} \doteq \mathbb{E}\left[\mathbf{x}_{t}\left(\mathbf{x}_{t}-\gamma \mathbf{x}_{t+1}\right)^{\top}\right]\)
\(\mathbf{b}\) \(d\) 维向量 \(\mathbf{b} \doteq \mathbb{E}\left[R_{t+1} \mathbf{x}_{t}\right]\)
\(\mathbf{w}_{TD}\) TD不动点 \(\mathbf{w}_{\mathrm{TD}} \doteq \mathbf{A}^{-1} \mathbf{b}\) 维向量,第9.4节)
\(\mathbf{I}\) 单位矩阵
\(\mathbf{P}\) \(\pi\) 下的 \(|\mathcal{S}|\times||mathcal{S}|\) 状态转移概率矩阵
\(\mathbf{D}\) 在对角线上具有 \(\mathbf{\mu}\)\(|\mathcal{S}|\times||mathcal{S}|\) 对角矩阵
\(\mathbf{X}\) \(\mathbf{x}(s)\) 为行的 \(|\mathcal{S}| \times d\) 矩阵
 
\(\overline{\delta}_{\mathbf{w}}(s)\) 状态 \(s\)\(v_{\mathbf{w}}\) 的Bellman误差(预期TD误差)(第11.4节)
\(\overline{\delta}_{\mathbf{w}},\mathrm{BE}\) Bellman误差向量,包含分量 \(\overline{\delta}_{\mathbf{w}}(s)\)
\(\overline{\mathrm{VE}}(\mathbf{w})\) 均方值误差 \(\overline{\mathrm{VE}}(\mathbf{w}) \doteq\left\|v_{\mathbf{w}}-v_{\pi}\right\|_{\mu}^{2}\) (第9.2节)
\(\overline{\mathrm{BE}}(\mathbf{w})\) 均方Bellman误差 \(\overline{\mathrm{BE}}(\mathbf{w}) \doteq\|\overline{\delta}_{\mathbf{w}}\|_{\mu}^{2}\)
\(\overline{\mathrm{PBE}}(\mathbf{w})\) 均方投影Bellman误差 \(\overline{\mathrm{PBE}}(\mathbf{w}) \doteq\left\|\Pi \overline{\delta}_{\mathbf{w}}\right\|_{\mu}^{2}\)
\(\overline{\mathrm{TDE}}(\mathbf{w})\) 均方时序差分误差 \(\overline{\operatorname{TDE}}(\mathbf{w}) \doteq \mathbb{E}_{b}\left[\rho_{t} \delta_{t}^{2}\right]\) (第11.5节)
\(\overline{\mathrm{RE}}(\mathbf{w})\) 均方回报误差(第11.6节)

第1章 简介

当我们思考学习的本质时,我们首先想到的是通过与环境交互来学习。 当一个婴儿玩耍,挥动手臂或环顾四周时,他没有明确的老师,但他确实通过直接的感觉与环境联系。 他可以通过这种联系获得大量关于因果关系、动作的结果以及如何实现目标的信息。 在我们的生活中,这种交互无疑是环境和自身知识的主要来源。 无论我们是学习驾驶汽车还是进行交谈,我们都敏锐地意识到我们的环境如何响应我们的行为,并且我们试图通过我们的行为来影响所发生的事情。 从交互中学习是几乎所有学习和智能理论的基本思想。

在本书中,我们探索了一种从交互中学习的 计算 方法。 我们主要探索理想化的学习情境并评估各种学习方法的有效性,而不是直接理解人或动物的学习方式 [1] 。 也就是说,我们采用人工智能研究员或工程师的观点。 我们探索在解决科学或经济效益的学习问题方面有效的机器设计,通过数学分析或计算实验评估设计。 我们探索的方法称为 强化学习,更侧重于从交互中进行目标导向的学习,而不是其他机器学习方法。

[1]第14章和第15章总结了心理学和神经科学的关系。

1.1 强化学习

强化学习是一种学习如何将状态映射到动作,以获得最大奖励的学习机制。 学习者不会被告知要采取哪些动作,而是必须通过尝试来发现哪些动作会产生最大的回报。 在最有趣和最具挑战性的案例中,动作不仅可以影响直接奖励,还可以影响下一个状态,并通过下一个状态,影响到随后而来的奖励。 这两个特征 - 试错法和延迟奖励 - 是强化学习的两个最重要的可区别特征。

强化学习,就像许多名称以“ing”结尾的主题一样,例如机器学习和登山,同时也是一个问题,一类能够很好地解决问题的解决方法,以及研究这个问题及其解决方法的领域。 为所有三件事情使用单一名称是方便的,但同时必须保持三者(问题,方法,领域)在概念上分离。 特别的,在强化学习中,区分问题和解决问题的方法是非常重要的;没有做出这种区分是许多混乱的根源。

我们使用动态规划理论的思想来规范化强化学习的问题,具体地说,是不完全已知的马尔可夫决策过程的最优控制。 这种规范化的详细描述将在第3章,但是最基本的思想是:采样实际问题最重要的方面,训练一个个体多次与环境交互去达成一个目标。 个体必须能够在某种程度上感知其环境状态,并且能够采取动作影响环境的状态。 个体还必须具有与环境状态相关的一个或多个目标。 马尔科夫决策过程基本概念无差别地包含感知,动作和目标三个方面。 我们认为任何非常适合解决此类问题的方法都是一种强化学习方法。

强化学习不同于 监督学习。 监督学习是目前机器学习领域中研究最多的一种学习方式,它从知识渊博的教练所提供的有标记的训练集中学习。 每一个样例都是一种情况的描述,都带有标签,标签描述的是系统在该情况下的应该采取的正确动作,每一个样例用来识别这种情况应该属于哪一类。 这种学习的目的是让系统推断概括它应有的反馈机制,使它可以对未知样本作出正确回应。 这是一种重要的学习方式,但单凭它并不足以从交互中学习。 在交互问题中,找到期待的既正确又典型的样例通常都是不切实际的。 在一个未知的领域,若要使收益最大化,个体必须能够从自己的经验中学习。

强化学习也与机器学习研究人员所谓的 无监督学习 不同,后者通常是用于寻找隐藏在未标记数据集合中的结构。 监督学习和无监督学习这两个术语似乎对机器学习范式进行了详尽的分类,但事实却并非如此。 尽管人们可能会试图将强化学习视为一种无监督学习,因为它不依赖于正确行为的样例,但强化学习试图最大化奖励信号而不是试图找到隐藏的结构。 在个体的经验数据中揭示结构确实对强化学习特别有用,但是它本身并没有解决最大化奖励信号的强化学习问题。 因此,我们认为强化学习是除监督学习和无监督学习之外的第三种机器学习范式,也许还有其他范式。

在强化学习中出现而在其他类型学习中未出现的挑战之一,是如何权衡探索(Exploration)与利用(Exploitation)之间的关系。 为了获得大量奖励,强化学习个体必须倾向于过去已经尝试过并且能够有效获益的行动。 但是要发现这样的行为,它必须尝试以前没有选择过的行为。 个体必须充分 利用 它既有经验以获得收益,但它也必须 探索,以便在未来做出更好的动作选择。 困境在于,任何探索和利用都难以避免失败。 个体必须尝试各种动作,逐步地选择那些看起来最好的动作。 在随机任务中,每一个动作必须经过多次尝试才能得到可靠的预期收益。 几十年来,数学家一直在深入研究探索利用困境,但仍未得到解决。 就目前而言,在监督和无监督的学习中,至少在这些范式的最纯粹的形式中,完全平衡探索和利用的项目尚未出现。

强化学习的另一个关键特征是它明确地考虑了目标导向的个体与不确定环境相互作用的 整个 问题。 这与许多考虑子问题但没有解决它们如何融入更大的图景的方法形成对比。 例如,我们已经提到很多机器学习研究都关注监督学习而没有明确说明这种能力最终如何有用。 其他研究人员已经发展了具有总体目标的规划理论,但没有考虑规划在实时决策中的作用,也没有考虑规划所需的预测模型来自何处。 尽管这些方法已经产生了许多有用的结果,但它们一个重要的限制在于过多关注孤立子问题。

强化学习采取相反的策略,它具有一个完整的、交互式的、寻求目标(goal-seeking)的个体。 所有强化学习个体都有明确的目标,可以感知环境的各个方面,并可以选择影响其环境的动作。 此外,尽管个体面临的环境有很大的不确定性,通常从一开始就假设个体必须采取动作。 当强化学习涉及规划时,它必须解决规划和实时动作选择之间的相互作用,以及如何获取和改进环境模型的问题。 当强化学习涉及监督学习时,它要确定决定哪些能力是关键的,哪些是不重要。 为了学习研究以取得进步,必须隔离和研究重要的子问题,即使不能体现所有完整的细节,它们也应该是在完整的、交互式的、寻求目标的个体中有明确功能的子问题。

一个完整的、交互式的、寻求目标的个体,并不总是意味着像是一个完整的有机体或机器人。 这里有许多明显的例子,但是一个完整的、交互式的、寻求目标的个体也可以是更大行为系统的一个组成部分。 在这种情况下,个体直接与较大系统的其余部分交互,并间接与较大系统的环境交互。 一个简单的例子是一个监控机器人电池的充电水平并向机器人的控制架构发送命令的个体。 这个个体的环境是机器人的其余部分以及机器人的环境。 人们的眼光应超越最明显的个体及其环境的例子,才能理解强化学习框架的普遍性。

现代强化学习最激动人心的一个方面是与其他工程和科学学科的实质性和富有成效的交互。 强化学习是人工智能和机器学习领域长达数十年的一个趋势,它与统计学、最优化和其他数学学科更紧密地结合在一起。 例如,某些强化学习方法学习参数的能力解决了运筹学与控制论中的经典“维数灾难”问题。 更有特色的是,强化学习也与心理学和神经科学有着紧密的联系,双方均有获益。 在所有形式的机器学习中,强化学习最接近人类和其他动物所做的学习,而强化学习的许多核心算法最初都受到生物学习系统的启发。 通过动物学习的心理模型返回更符合经验数据的结果,以及通过一部分大脑奖励系统的有影响力的模型,强化学习也得到了反馈。 本书正文介绍了与工程和人工智能相关的强化学习的思想,并在第14章和第15章中总结了与心理学和神经科学的联系。

最后,强化学习也在某种程度上符合人工智能回归简单的一般性原则的大趋势。 自20世纪60年代后期以来,许多人工智能研究人员认为普遍性的原则是不存在的,而智能则归因于拥有大量特殊用途的技巧,过程和启发式方法。 有人说,如果我们能够将相关的事实充分地提供给一台机器,比如一百万或十亿,那么它就会变得聪明起来。 基于一般性原则(如搜索或学习)的方法被定性为“弱方法”,而基于特定知识的方法被称为“强方法”。 这种观点在今天仍然很普遍,但并不占优势。 从我们的观点来看,这只是一个不成熟的过程:寻找一般性原则的努力太少,以至于没有结论。 现代人工智能现在包括许多寻找在学习,搜索和决策方面的一般性原则的研究。 目前还不清楚钟摆会摆动多远,但强化学习研究肯定是摆向更简单和更少的人工智能一般原则的钟摆的一部分。

1.2 例子

理解强化学习的一个好方法是思考指导其发展的一些例子和可能的应用。

  • 国际象棋大师落子。落子决定既通过规划 - 期待的回复和逆向回复 (anticipating possible replies and counterreplies),也出于对特定位置和移动及时直觉的判断。
  • 自适应控制器实时调节炼油厂操作的参数。控制器在指定的边际成本的基础上优化产量/成本/质量交易,而不严格遵守工程师最初建议的设定。
  • 一头瞪羚在出生后几分钟挣扎着站起来。半小时后,它能以每小时20英里的速度奔跑。
  • 移动机器人决定是否应该进入新房间以寻找和收集更多垃圾来,或尝试回到充电站充电。 它根据电池的当前电池的充电水平,以及过去能够快速轻松地找到充电站的程度做出决定。
  • 菲尔准备他的早餐。仔细检查,即使是这个看似平凡的行动,也会发现一个复杂的条件行为网和互锁的目标-子目标关系: 走到橱柜,打开它,选择一个麦片盒,然后伸手去拿,抓住并取回盒子。 拿到碗,勺子和牛奶盒也需要其他复杂的,调整的,交互的行为序列来完成。每个步骤都涉及一系列眼球运动,以获取信息并指导到达和移动。 它们需要对于如何拿住物品或者在拿其他物品之前将它们中的一些运送到餐桌上做出快速判断。 每个步骤都以目标为指导并为其他目标服务,例如抓起勺子或走到冰箱,比如一旦麦片准备好就拿勺子吃以最终获得营养。 无论他是否意识到这一点,菲尔都在获取有关他身体状况的信息,这些信息决定了他的营养需求,饥饿程度和食物偏好。

这些例子共同的特征非常基础,以至于很容易被忽略。 所有这些都涉及积极的决策个体与其环境之间的 交互,个体于存在不确定性的环境中寻求实现 目标。 个体的行为能影响未来的环境状态(例如,下一个国际象棋位置,炼油厂的水库水位,机器人的下一个位置以及其电池的未来充电水平),从而影响个体之后可以采取的动作和机会。 正确的选择需要考虑到动作的间接延迟后效应,因此可能需要预见或规划。

同时,在所有这些例子中,动作的效果都无法被完全预测;因此,个体必须经常监控其环境并做出适当的反应。 例如,菲尔必须观察他倒入麦片的碗中的牛奶以防止溢出。 所有这些例子都涉及明确的目标,即个体可以根据其直接感知的内容判断完成目标的进度。 国际象棋选手知道他是否获胜,炼油厂控制员知道生产了多少石油,瞪羚小牛知道它何时倒下,移动机器人知道它的电池何时耗尽,菲尔知道他是否正在享用他的早餐。

在所有这些例子中,个体可以使用其经验来改善其性能。 国际象棋选手改进了他用来评估位置的直觉,从而改善了他的发挥;瞪羚提高了它的活力;菲尔学会精简他的早餐。 个体在任务开始时所具有的知识 - 无论是之前的相关任务经验还是通过设计或演变带来的 - 都会影响有用或易于学习的内容, 但与环境的交互对于调整行为以利用任务的特性至关重要。

1.3 强化学习的要素

在个体和环境之外,强化学习系统一般有四个要素:策略奖励信号价值函数,和可选的环境 模型

策略 定义了学习个体在给定时间内的行为方式。 简单来说,策略是从感知的环境状态到在这些状态下要采取的行动的映射。 它对应于心理学中所谓的一组刺激-反应规则或关联。 在某些情况下,策略可以是简单的函数或查找表格,而在其他情况下,它可能涉及广泛的计算,例如搜索过程。 策略是强化学习个体的核心,因为它本身就足以确定行为。一般来说,策略对指定每个动作的概率而言可以是随机的。

奖励信号 定义了强化学习问题的目标。 在每个时间步骤,环境向强化学习个体发送的单个数字称为 奖励。 个体的唯一目标是最大化其长期收到的总奖励。 因此,奖励信号定义了相对个体而言的好和坏。 在生物系统中,我们可能会认为奖励类似于快乐或痛苦的经历。 它们是个体所面临的问题的直接和明确的特征。 奖励信号是改变策略的主要依据,如果策略选择的动作之后是低奖励,则可以更改策略以在将来选择该情况下的某些其他动作。 通常,奖励信号可以是环境状态和所采取的动作的随机函数。

虽然奖励信号表明了直接意义上的好处,但 价值函数 指定了长期收益。 粗略地说,一个状态的价值是个体从该状态开始在未来可以预期累积的收益总额。 虽然奖励决定了环境状态的直接,内在的价值,但价值表明了在考虑了可能遵循的状态和这些状态下可获得的奖励之后各状态的 长期 价值。 例如,一个状态可能总是会产生较低的即时奖励,但仍然具有较高的价值,因为其后的状态经常会产生高回报。 或者与此相反。 以人类作类比,奖励有点像快乐(如果是高的奖励)和痛苦(如果是低的奖励),而价值则对应于我们对环境处于特定状态的高兴或不满的更精确和更有远见的判断。

奖励在某种意义上是主要的,而作为奖励预测的价值是次要的。 没有奖励就没有价值,估算价值的唯一目的就是获得更多回报。 然而,在制定和评估决策时,我们最关心的是价值。 行动选择基于价值判断。 我们寻求带来最高价值状态的行动,而不是最高奖励状态的行动,因为从长远来看,这些行动会为我们带来最大的回报。 不幸的是,确定价值要比确定奖励要困难得多。 奖励基本上由环境直接给出,但必须根据个体在其整个生命周期中所做的观察序列来估计和重新估计价值。 事实上,我们考虑的几乎所有强化学习算法中最重要的组成部分是一种有效估计价值的方法。 价值估计的核心作用可以说是过去六十年中有关强化学习的最重要的事情。

一些强化学习系统具有第四个也是最后一个要素,即环境 模型。 这是对环境的模拟,或者更一般地说,它对环境的行为做出推断。 例如,给定状态和动作,模型可以预测结果的下一状态和下一个奖励。 模型用于 规划,我们指的是在实行动前对未来进行预判。 使用模型和规划解决强化学习问题的方法被称为 基于模型 的方法,而不是更简单的 不基于模型 方法, 不基于模型方法几乎被看作是规划的 反面,它通过试错进行学习。 在第8章中,我们将探索强化学习系统,它们通过试错来学习,学习环境模型,并使用模型进行规划。 现代强化学习已经从低级的、试错学习跨越到高层次的、有计划的学习。

1.4 局限性和范围

强化学习在很大程度上依赖于状态的概念 - 作为策略和价值函数的输入,以及模型的输入和输出。 非正式地,我们可以将状态视为向个体传达某种特定时间“环境如何”的信号。 我们在这里使用的状态的正式定义由第3章中提出的马尔可夫决策过程的框架给出。 然而,更一般地,我们鼓励读者遵循非正式意义并将状态视为个体对其环境所能获得的任何信息。 实际上,我们假设状态信号是由某些预处理系统产生的,而预处理系统是个体环境的一部分。 在本书中,我们没有讨论构造、改变或学习状态信号的问题(除了第17.3节中的简要说明)。 我们采用这种方法并不是因为我们认为状态不重要,而是为了完全关注决策问题。 换句话说,我们在本书中的关注不是设计状态信号,而是设计行为函数以应对各种状态。

我们在本书中所考虑的大部分强化学习方法都是围绕估计价值函数构建的,但它对于解决强化学习问题而言并不是必须的。 例如,诸如遗传算法,遗传规划,模拟退火和其他优化方法的解决方法已被用于研究强化学习问题,而不必求助于价值函数。 这些方法应用多个静态策略,每个策略在较长时间内与单独的环境实例进行交互。 获得最多奖励的策略及其随机变化将延续到下一代策略,并重复该过程。 我们称这些方法为进化方法是因为它们的行为类似于生物进化方式,这种方式产生具有熟练行为的生物,即使它们在个体生命期间内不学习。 如果策略空间足够小,或者容易被构造,或者如果有大量的时间可用于搜索,那么进化方法可能是有效的。 此外,进化方法在学习个体不能感知环境的完整状态的问题上具有优势。

我们的重点是强化学习方法,这些方法在与环境交互时学习,而进化方法则不然。 在许多情况下,能够利用个体行为交互细节的方法比进化方法更有效。 进化方法忽略了对大量的强化学习问题有用的结构:他们没有利用策略是从状态到行动的映射这一事实;他们并没有注意到个体生命周期中所经历的状态和采取的行动。 在某些情况下,这些信息可能会产生误导(例如,当状态不确定的时候),但更经常的是它能使搜索更有效率。 虽然进化和学习有许多共同的特性并且自然地协同工作,但我们并不认为进化方法本身特别适合强化学习问题,因此,我们不在本书中讨论它们。

1.5 拓展例子:井字棋

为了说明强化学习的一般概念并将其与其他方法进行对比,我们接下来将详细地考虑一个简单的例子。

考虑熟悉的孩子玩的井字棋游戏。两名玩家轮流在一个三乘三的棋盘上比赛。 一个玩家画叉,另一个画圈,若叉或圈的连续三个棋子落于一行或一列或同一斜线上则获胜;若棋盘被填满了也不能决出胜负则为平局。 因为熟练的玩家可以从不丢棋,让我们假设我们正在与一个不完美的玩家对战,他的战术有时是不正确的,并且允许我们获胜。 而且,让我们考虑平局和输棋对我们同样不利。 我们如何构建一个能够在比赛中发现对手的漏洞并且学会最大化获胜机率的玩家呢?

_images/tic-tac-toe.png

虽然这是一个简单的问题,但是通过传统方法不能以令人满意的方式解决。 例如,来自博弈论的经典的“极小极大(minimax)”解决方案在这里是不正确的,因为它假定了对手使用特定的玩法。 例如,“极小极大”玩家永远不会达到可能失棋子的游戏状态,即使事实上它总是因为对手的错误游戏而从该状态获胜。 经典的连续决策问题的最优方法,例如动态规划,可以为任何对手 计算 最优解,但需要输入该对手的完整信息,包括对手在每个棋盘状态下进行每次移动的概率。 让我们假设在这个问题中无法获得这些先验信息,因为它不适用于大多数实际问题。 另一方面,可以根据经验来估计这样的信息,在这个例子上就是和对手下许多盘棋。 关于在这个问题上可以做的最好的过程是首先学习对手的行为模型,达到某种程度的置信度,然后应用动态规划来计算近似对手模型的最优解。 最后,这与我们在本书后面讨论的一些强化学习方法没有什么不同。

应用于该问题的进化方法将直接搜索可能策略的空间,以找到取胜对手的高概率。 在这里,策略是一个规则,告诉玩家为每个游戏状态做出什么样的动作,即在三乘三的棋盘上所有可能的叉和圈的摆放位置。 对于所考虑的每个策略,通过与对手进行一些比赛来获得其获胜概率的估计。然后,该评估将指导接下来考虑的策略。 一种典型的进化方法是将在策略空间中进行爬坡,然后在尝试进步的过程中依次生成和评估策略。 或者,也许可以使用遗传式算法来维护和评估一系列策略。 实际上,我们有上百种不同的优化方法。

以下是使用价值函数的方法来解决井字棋问题的方法。 首先,我们将建立一个数字表,每个数字对应一个可能的游戏状态。 每个数字都是我们从该状态获胜概率的最新估计。 我们将此估计视为状态 价值,整个表是学习的价值函数。 如果我们从A获胜的概率的当前估计值高于从B开始的概率的估计值,我们就认为状态A的价值高于状态B的,或认为状态A比状态B“更好”。 假设我们总是画叉,那么对于所有三个叉处于一行的状态的获胜概率是1,因为我们已经赢了。 类似地,对于连续三个圈处于一行或棋盘全部填满的所有状态,获胜的概率为0,因为我们无法获胜。 我们将所有其他状态的初始值设置为0.5,表示我们有50%的获胜机会。

我们和对手进行了许多场比赛。 为了选择我们的动作,我们检查每个动作可能产生的状态(在棋盘上的每个空格中有一个),并在表格中查找它们当前的值。 大多数时候,我们 贪婪地 选择具有最大价值的动作,也就是说,有最高的获胜概率。然而,偶尔我们会从其他动作中随机选择。 这些被称为 探索性 动作,因为它们使我们体验到我们可能永远不会看到的状态。 在游戏中移动和考虑的一系列动作可以如图1.1所示。

_images/figure-1.1.png

图1.1:一系列井字棋移动。黑色实线代表游戏中所采取的动作;虚线表示我们(我们的强化学习者)考虑但未做出的动作。 我们的第二步移动 \(e^{*}\) 是一次探索性的移动,这意味着 \(e^{*}\) 所表示的移动甚至优于当前移动。 探索性移动不会导致任何学习,但是我们的其他每个移动都会导致更新,如红色箭头弧线所示, 其估计价值自下而上移动到树的早期节点,如文中详述。

在我们比赛期间,我们按游戏中的发现不断改变状态的值。 我们试图让他们更准确地估计获胜的可能性。 为此,在贪婪移动后,我们重写前一状态的值,如图1.1中的箭头所示。 更准确地说,前一状态的当前值被更新为更接近后续状态的值。 这可以通过将先前状态的值移动到稍后状态的值的一小部分来完成。 如果我们让 \(S_t\) 表示贪婪移动之前的状态,而 \(S_{t+1}\) 表示移动之后的状态, 那么将 \(S_t\) 的估计值的更新表示为 \(V(S_t)\),可以写为

\[V(S_t) \leftarrow V(S_t) + \alpha \left[ V(S_{t+1}) - V(S_t) \right],\]

其中 \(\alpha\) 是小正分数,称为 步长,它影响学习速度。 此更新规则是 时序差分 学习方法的一个例子,之所以称为时序差分, 是因为其变化基于两个连续时间的估计之间的差,即 \(V(S_{t+1}) - V(S_t)\)

上述方法在此任务上表现良好。例如,如果步长参数随着时间的推移而适当减小,那么对于任何固定的对手, 该方法会收敛于在给定玩家最佳游戏的情况下从每个状态获胜的真实概率。 此外,采取的动作(探索性动作除外)实际上是针对这个(不完美的)对手的最佳动作。 换句话说,该方法收敛于针对该对手玩游戏的最佳策略。 如果步长参数没有随着时间的推移一直减小到零,那么这个玩家也可以很好地对抗那些慢慢改变他们比赛方式的对手。

这个例子说明了进化方法和学习价值函数的方法之间的差异。 为了评估策略,进化方法保持策略固定并且针对对手进行多场游戏,或者使用对手的模型模拟多场游戏。 胜利的频率给出了对该策略获胜的概率的无偏估计,并且可用于指导下一个策略选择。 但是每次策略进化都需要多场游戏来计算概率,而且计算概率只关心最终结果,每场游戏内 的信息被忽略掉了。 例如,如果玩家获胜,那么游戏中的 所有 行为都会被认为是正确的,而不管具体移动可能对获胜至关重要。 甚至从未发生过的动作也会被认为是正确的! 相反,值函数方法允许评估各个状态。 最后,进化和价值函数方法都在搜索策略空间,但价值函数学习会利用游戏过程中可用的信息。

这个简单的例子说明了强化学习方法的一些关键特征。 首先,强调在与环境交互时学习,在这里就是与对手玩家下棋。 其次,有一个明确的目标,考虑到选择的延迟效果,正确的行为需要计划或前瞻。 例如,简单的强化学习玩家将学习如何为短视的对手设置多个行动陷阱。 强化学习解决方案的一个显着特征是它可以在不使用对手模型的情况下实现规划和前瞻的效果, 并且无需对未来状态和动作的可能序列进行精确搜索。

虽然这个例子说明了强化学习的一些关键特征,但它很简单,它可能给人的印象是强化学习比实际上更受限。 虽然井字棋游戏是一个双人游戏,但强化学习也适用于没有外部对手的情况,即在“对自然的游戏”的情况下。 强化学习也不仅限于行为分解为单独步骤的问题,例如井字棋游戏,仅在每步结束时获得奖励。 当行为无限持续并且可以随时接收各种大小的奖励时,它也是适用的。 强化学习也适用于甚至不能分解为像井字棋游戏这样的离散时间步骤的问题。 一般原则也适用于连续时间问题,虽然理论变得更加复杂,我们在这份简介中将不会介绍。

井字棋游戏具有相对较小的有限状态集,而当状态集非常大或甚至无限时,也可以使用强化学习。 例如,Gerry Tesauro(1992,1995)将上述算法与人工神经网络相结合,学习玩西洋双子棋,其具有大约 \(10^20\) 个状态。 在这么多状态中,只能经历一小部分。Tesauro的规划学得比以前的任何规划都要好得多,最终比世界上最好的人类棋手更好(第16.1节)。 人工神经网络为程序提供了从其经验中泛化的能力,以便在新状态下,它能根据其网络确定的过去面临的类似状态保存下来的信息来选择移动。 强化学习系统在如此大型状态集的问题中如何运作,与它从过去的经验中泛化的程度密切相关。 正是在这种情况中,我们最需要有强化学习的监督学习方法。 人工神经网络和深度学习(第9.6节)并不是唯一或最好的方法。

在这个井字棋游戏的例子中,学习开始时没有超出游戏规则的先验知识,但强化学习绝不是需要学习和智能的白板(a tabula rasa view)。 相反,先验信息可以以各种方式结合到强化学习中,这对于有效学习是至关重要的(例如,参见第9.5,17.4和13.1节)。 我们也可以在井字棋游戏例子中访问真实状态,而强化学习也可以在隐藏部分状态时应用,或者当学习者看到不同状态相同时也可以应用强化学习。

最后,井字棋游戏玩家能够向前看并知道每个可能移动所产生的状态。 要做到这一点,它必须拥有一个游戏模型,使其能够预见其环境如何随着它可能永远不会发生的动作变化而变化。 许多问题都是这样的,但在其他问题上,甚至可能缺乏行动效果的短期模型。 这些情况下都可以应用强化学习。模型不是必须的,但如果模型可用或可以学习,则模型可以很轻松使用(第8章)。

另一方面,也有根本不需要任何环境模型的强化学习方法。 无模型系统甚至无法预测其环境如何响应单一操作而发生变化。 对于对手来说,如果井字棋游戏玩家没有任何类型的对手的模型,则他也是无模型的。 因为模型必须合理准确才有用,所以当解决问题的真正瓶颈是构建足够精确的环境模型时,无模型方法可以优于更复杂的方法。 无模型方法同时也是基于模型方法的重要组成模块。 在我们讨论如何将它们用作更复杂的基于模型方法的组件之前,我们在本书中将用几个章节专门介绍无模型方法。

强化学习可以在系统的高级和低级层次中使用。 虽然井字棋游戏玩家只学习游戏的基本动作,但没有什么可以阻止强化学习在更高层次上工作, 其中每个“动作”本身可能是一个复杂的问题解决方法的应用。 在分层学习系统中,强化学习可以在几个层面上同时工作。

练习1.1: 自我对弈 假设上面描述的强化学习算法不是与随机对手对抗,而是双方都在学习。在这种情况下你认为会发生什么?是否会学习选择不同的行动策略?

练习1.2: 对称性 由于对称性,许多井字位置看起来不同但实际上是相同的。我们如何修改上述学习过程以利用这一点? 这种变化会以何种方式改善学习过程?现在再想一想。假设对手没有利用对称性,在这种情况下,我们应该利用吗?那么,对称等价位置是否必须具有相同的价值?

练习1.3: 贪婪地游戏 假设强化学习玩家是 贪婪的,也就是说,它总是选择使其达到最佳奖励的位置。 它可能会比一个不贪婪的玩家学得更好或更差吗?可能会出现什么问题?

练习1.4: 从探索中学习 假设在 所有 动作之后发生了学习更新,包括探索性动作。 如果步长参数随时间适当减小(但不是探索倾向),则状态值将收敛到不同的概率集。 从探索性动作中的学习,我们行动和不行动两组的计算的概率(概念上)是什么? 假设我们继续做出探索性的动作,哪一组概率可能学习得更好?哪一个会赢得更多?

练习1.5: 其他改进 你能想到其他改善强化学习者的方法吗?你能想出更好的方法来解决所提出的井字棋游戏问题吗?

1.6 小结

强化学习是一种理解和自动化目标导向学习和决策的计算方法。 它与其他计算方法的区别在于它强调个体通过与环境的直接交互来学习,而不需要示范监督或完整的环境模型。 我们认为,强化学习是第一个认真解决从与环境交互中学习以实现长期目标时出现的计算问题的领域。

强化学习使用马尔可夫决策过程的正式框架来定义学习个体与其环境之间在状态,行为和奖励方面的交互。 该框架旨在表示人工智能问题的基本特征。 这些特征包括因果性,不确定感和不确定性(a sense of uncertainty and nondeterminism),以及明确目标的存在。

价值和价值函数的概念是我们在本书中考虑的大多数强化学习方法的关键。 我们认为价值函数对于在策略空间中高效搜索非常重要。 价值函数的使用将强化学习方法与在整个策略评估指导下直接搜索策略空间的进化方法区分开来。

1.7 强化学习早期历史

强化学习的早期历史有两个主线,悠久和丰富,都是在现代强化学习交织之前独立进行的。 一个主线涉及通过试错试验来学习,并且起源于动物学习的心理学。这个主线贯穿了人工智能领域的一些最早的工作,并导致了20世纪80年代早期强化学习的复兴。 第二个主线涉及使用值函数和动态规划的最优控制问题及其解决方案。在大多数情况下,这个主线不涉及学习。 这两个主线大多是独立的,但在某种程度上相互关联,围绕着时序差分方法的第三个不那么明显的线索,例如本章中的井字棋示例中使用的那些。 所有这三个主线在20世纪80年代后期汇集在一起,产生了们在本书中提到的现代强化学习领域。

专注于试错学习的主线是我们最熟悉的,也是我们在这个简短的历史中最可以说的。然而,在此之前,我们将简要讨论最优控制主线。

术语“最优控制”在20世纪50年代后期开始使用,用于描述设计控制器以最小化或最大化动态系统随时间变化的行为的问题。 解决这个问题的方法之一是由理查德·贝尔曼(Richard Bellman)和其他人在20世纪50年代中期 通过扩展19世纪汉密尔顿(Hamilton)和雅可比(Jacobi)理论而发展起来的。 该方法使用动态系统的状态和值函数或“最优返回函数”的概念来定义函数方程,现在通常称为Bellman方程。 通过求解该方程来解决最优控制问题的方法被称为动态规划(Bellman,1957a)。 Bellman(1957b)还引入了称为马尔可夫决策过程(MDPs)的最优控制问题的离散随机版本。 罗纳德霍华德(Ronald Howard,1960)设计了MDP的策略迭代方法。所有这些都是现代强化学习理论和算法的基本要素。

动态规划被广泛认为是解决一般随机最优控制问题的唯一可行方法。它取决于贝尔曼所说的“维度的诅咒”, 意味着它的计算需求随着状态变量的数量呈指数增长,但它仍然比任何其他通用方法更有效,更广泛适用。 动态规划自20世纪50年代后期以来得到了广泛的发展,包括对部分可观察的MDP的扩展(Lovejoy,1991年调查), 许多应用(White,1985,1988,1993),近似方法(由Rust调查,1996)和异步方法(Bertsekas,1982,1983)。 有许多可行的优秀的动态编程现代处理方法 (例如,Bertsekas,2005年,2012年;Puterman,1994; Ross,1983;以及Whittle,1982,1983)。 Bryson(1996)提供了最优控制的权威历史。

最优控制和动态规划之间的联系,以及另一方面的学习,很难被认识到。 我们无法确定这种分离的原因,但其主要原因可能是所涉及的学科与其不同目标之间的分离。 作为一种离线计算,动态规划的普遍观点也可能主要取决于准确的系统模型和Bellman方程的解析解。 此外,最简单的动态规划形式是一种在时间上倒退的计算,使得很难看到它如何参与必须在前进方向上进行的学习过程。 动态规划中的一些最早的工作,例如Bellman和Dreyfus(1959)的工作,现在可能被归类为遵循学习方法。 Witten(1977)的工作(下面讨论)当然有资格作为学习和动态规划思想的组合。 Werbos(1987)明确提出动态规划和学习方法的相互关系,以及动态规划与理解神经和认知机制的相关性。 对于我们来说,动态规划方法与在线学习的完全整合直到1989年Chris Watkins的工作才出现,他们使用MDP形式主义对强化学习的处理已被广泛采用。 从那以后,这些关系得到了许多研究人员的广泛发展,特别是Dimitri Bertsekas和John Tsitsiklis(1996), 他们创造了术语“神经动力学规划”来指代动态规划和人工神经网络的结合。 目前使用的另一个术语是“近似动态规划”。这些不同的方法强调了主题的不同方面,但它们都与强化学习有共同的兴趣来规避动态规划的经典缺点。

从某种意义上说,我们认为所有最优控制工作都应用于强化学习。 我们将强化学习方法定义为解决强化学习问题的任何有效方法,现在很清楚这些问题与最优控制问题密切相关,尤其是随机最优控制问题,例如那些被称为MDP的问题。 因此,我们必须考虑最优控制的解决方法,如动态规划,也是强化学习方法。 因为几乎所有传统方法都需要完全掌握要控制的系统,所以说它们是强化学习的一部分感觉有点不自然。 另一方面,许多动态规划算法是递增的和迭代的。与学习方法一样,他们通过连续的近似逐渐达到正确的答案。 正如我们在本书其余部分所展示的那样,这些相似之处远非肤浅。 完整和不完整知识案例的理论和解决方法是如此密切相关,以至于我们认为必须将它们视为同一主题的一部分。

现在让我们回到导向现代强化学习领域的另一个主要思路,该思路的核心是试错学习的思想。 我们只涉及这里的主要联系点,在第14.3节中更详细地讨论了这个主题。 根据美国心理学家R. S. Woodworth(1938)的说法,试验和错误学习的概念可以追溯到19世纪50年代, 亚历山大·贝恩(Alexander Bain)通过“摸索和实验”讨论学习, 更明确地和英国伦理学家和心理学家Conway Lloyd Morgan的1894年使用该术语来描述他对动物行为的观察进行讨论。 也许第一个简洁地表达试错学习作为学习原则的本质是Edward Thorndike:

在对同一情况作出的若干回应中,那些伴随或密切关注对动物满意的东西,在其他条件相同的情况下,与情况更紧密地联系在一起, 因此,当它再次发生时,它们将更有可能复发; 那些伴随或紧随动物不适的人,在其他条件相同的情况下,会与这种情况的关系减弱, 因此,当它再次出现时,它们不太可能发生。满意度或不适感越大,粘合剂的强化或弱化程度越大。(Thorndike,1911年,第244页)

Thorndike称之为“效果定律(Law of Effect)”,因为它描述了强化事件对选择行为倾向的影响。 Thorndike后来对定律进行了修改,以更好地考虑后续的动物学习数据(例如奖励和惩罚的影响之间的差异), 各种形式的定律在学习理论家中产生了相当大的争议 (例如,见Gallistel,2005;Herrnstein ,1970;Kimble,1961,1967;Mazur,1994)。 尽管如此,效果定律以某种形式被广泛认为是基本原则的基本原则 (例如,Hilgard和Bower,1975;Dennett,1978; Campbell,1960;Cziko,1995)。 它是Clark Hull(1943年,1952年)有影响力的学习理论和B. F. Skinner(1938)的有影响力的实验方法的基础。

在动物学习背景下,“强化”这个术语在Thorndike表达效力定律后得到了很好的应用, 在1927年巴甫洛夫关于条件反射的专着的英文译本中,首先出现在这种背景下(据我们所知)。 巴甫洛夫将强化描述为由于动物接受刺激 - 一种强化剂 - 与另一种刺激或反应有适当的时间关系而加强行为模式。 一些心理学家将强化的观点扩展到包括削弱和加强行为,并扩展强化者的想法,包括可能忽略或终止刺激。 要被认为是增强剂,强化或弱化必须在强化剂被撤回后持续存在;仅仅吸引动物注意力或刺激其行为而不产生持久变化的刺激物不会被视为强化物。

在计算机中实现试错试验的想法似乎是关于人工智能可能性的最早想法。 在1948年的一份报告中,艾伦·图灵(Alan Turing)描述了一种“快乐 - 痛苦系统”的设计,该系统符合效果法则:

当达到未确定动作的配置时,对缺失数据进行随机选择,并暂时在该描述中进行适当的输入并应用。 当疼痛刺激发生时,所有暂定条目都被取消,当快乐刺激发生时,它们都是永久性的。(图灵,1948年)

我们构建了许多巧妙的机电机器以演示试错试验。最早的可能是由托马斯罗斯(Thomas Ross,1933)建造的机器, 它能够通过一个简单的迷宫找到它的路,并记住通过开关设置的路径。 1951年,W. Gray Walter建立了他的“机械乌龟”(Walter,1950)的一个版本,能够进行简单的学习。 1952年,Claude Shannon展示了一只名为Theseus的迷宫老鼠,它使用试错试验通过迷宫找到解决方式, 迷宫本身通过在其地板下的磁铁和继电器记住了成功方向(参见Shannon,1951)。 J. A. Deutsch(1954)描述了一种基于他的行为理论的迷宫解决机器(Deutsch,1953), 它具有与基于模型的强化学习相同的一些性质(第8章)。 在他的博士学位博士论文Marvin Minsky(1954)讨论了强化学习的计算模型,并描述了他的模拟机器的构造, 该模拟机器由他称为SNARC(随机神经 - 模拟增强计算器)的组件组成,其意图类似于大脑中可修改的突触连接(第15章)。 网站 cyberneticzoo.com 包含有关这些和许多其他机电学习机器的大量信息。

建立机电学习机器让位于编程数字计算机以执行各种类型的学习,其中一些学习实现了试错试验。 Farley和Clark(1954)描述了通过试错试验学习的神经网络学习机的数字模拟。 但他们的兴趣很快就从试错学习转向泛化和模式识别,即从强化学习到监督学习(Clark and Farley,1955)。 这开始了对这些类型学习之间关系的混淆模式。许多研究人员似乎相信他们正在研究强化学习,实际他们却在学习监督学习。 例如,Rosenblatt(1962)和Widrow和Hoff(1960)等人工神经网络先驱显然受到强化学习的驱使, 他们使用了奖励和惩罚的语言,但他们研究的系统是适用于模式识别和感知学习(perceptual learning)的监督学习系统。 即便在今天,一些研究人员和教科书也最大限度地减少或模糊了这些学习类型之间的区别, 例如,一些人工神经网络教科书使用术语“试错试验”来描述从训练样本中学习的网络。 这是一个可以理解的混淆,因为这些网络使用错误信息来更新连接权重,但这忽略了试错学习的基本特征, 即在评估反馈的基础上选择行动,而不依赖于知道什么是正确行动。

部分因为这些混淆,对真正的试错学习的研究在20世纪60年代和70年代变得罕见,尽管有明显的例外。 在20世纪60年代,工程文献中首次使用术语“强化”和“强化学习”来描述试错学习的工程用途 (例如,Waltz和Fu,1965; Mendel,1966; Fu,1970;Mendel and McClaren,1970年)。 特别有影响力的是明斯基的论文“迈向人工智能的步骤”(Minsky,1961),该论文讨论了与试错学习相关的几个问题, 包括预测,期望以及他称之为 复杂加强的基本信用分配问题学习系统:你如何在许多可能参与制定它的决策中分配成功的信用? 在某种意义上,我们在本书中讨论的所有方法都是针对解决这个问题的。Minsky的论文今天非常值得一读。

在接下来的几段中,我们将讨论在20世纪60年代和70年代相对忽略对真正的试错学习的计算和理论研究的一些例外和部分例外。

新西兰研究员John Andreae的工作是一个例外,他开发了一种名为STeLLA的系统,该系统通过与环境交互的试错试验来学习。 这个系统包括一个世界的内部模型,后来是一个处理隐藏状态问题的“内部独白”(Andreae,1963,1969a,b)。 Andreae后来的工作(1977)更加强调从老师那里学习,但仍然包括通过试错试验来学习,新一代事件的产生是系统的目标之一。 这项工作的一个特点是“泄漏过程”,在Andreae(1998)中进行了更全面的阐述,实现了类似于我们描述的更新操作的信用分配机制。 不幸的是,他的开创性研究并不为人所熟知,并且对随后的强化学习研究没有太大影响。最近的摘要是可用的(Andreae,2017a,b)。

更有影响力的是Donald Michie的作品。在1961年和1963年,他描述了一个简单的试错学习系统, 用于学习如何玩叫做MENACE(Matchbox Educable Naughts和Crosses Engine)的井字棋(或者naughts和十字架)。 它由每个可能的游戏位置的火柴盒组成,每个火柴盒包含许多彩色珠子,每个可能的移动位置都有不同的颜色。 通过从对应于当前游戏位置的火柴盒中随机抽取珠子,可以确定MENACE的移动。 当游戏结束时,在游戏过程中使用的盒子中添加或删除珠子以奖励或惩罚MENACE的决定。 Michie和Chambers(1968)描述了另一种名为GLEE(游戏学习预测引擎)的强大的井字棋强化学习器和一种名为BOXES的强化学习控制器。 他们将BOXES应用于学习根据仅在杆下落或推车到达轨道末端时发生的故障信号来平衡铰接到可移动推车的杆。 这项任务改编自Widrow和Smith(1964)的早期工作,他使用监督学习方法,假设教师的指导已经能够平衡极点。 Michie和Chambers的杆极平衡版本是在不完全知识条件下强化学习任务的最佳早期例子之一。 它影响了后来的强化学习工作,从我们自己的一些研究开始(Barto,Sutton和Anderson,1983;Sutton,1984)。 Michie一直强调试验和错误以及学习作为人工智能的重要方面的作用(Michie,1974)。

Widrow,Gupta和Maitra(1973)修改了Widrow和Hoff(1960)的最小均方(LMS)算法,以产生一个强化学习规则, 可以从成功和失败信号中学习而不是从训练样例中学习。他们将这种形式称为“选择性自适应适应”, 并将其描述为“与评论家一起学习”,而不是“与老师一起学习”。他们分析了这一规则并展示了它如何学习玩二十一点。 这是Widrow对强化学习的孤立尝试,他对监督学习的贡献更具影响力。 我们对“评论家”一词的使用来源于Widrow,Gupta和Maitra的论文。 Buchanan, Mitchell, Smith, and Johnson(1978)在机器学习的背景下独立使用了术语评论家( 参见Dietterich和Buchanan,1984),但对于他们来说,评论家是一个专家系统,能够做的不仅仅是评估绩效。

学习自动机 的研究对导致现代强化学习研究的试错主线有更直接的影响。 这些是解决非联想性,纯粹选择性学习问题的方法,称为 k型武装强盗,类似于赌博机,或有k杠杆的“单臂强盗”(见第2章)。 学习自动机是简单的低内存机器,用于提高这些问题的奖励概率。 学习自动机起源于20世纪60年代俄罗斯数学家和物理学家M. L. Tsetlin及其同事(于1973年在Tsetlin出版,后期出版)的工作, 并从那时起在工程中得到了广泛的发展(见Narendra和Thathachar,1974,1989)。 这些发展包括随机学习自动机的研究,这是基于奖励信号更新动作概率的方法。 虽然没有在随机学习自动机的传统中发展,但Harth和Tzanakou(1974)的Alopex算法(用于模式提取算法)是一种用于检测行为和强化之间相关性的随机方法, 这些方法影响了我们早期的一些研究(Barto,Sutton和Brouwer,1981)。 早期的心理学研究预示着随机学习自动机,首先是威廉·埃斯特斯(William Estes)(1950)对统计学习理论的研究, 并由其他人进一步发展(例如,Bush和Mosteller,1955;Sternberg,1963)。

经济学研究人员采用了心理学中发展起来的统计学习理论,从而在该领域致力于强化学习。 这项工作始于1973年,将Bush and Mosteller的学习理论应用于一系列经典经济模型(Cross,1973)。 这项研究的一个目标是研究人工个体,其行为更像真实的人,而不是传统的理想经济个体(Arthur,1991)。 这种方法扩展到了博弈论背景下强化学习的研究。 经济学中的强化学习在很大程度上独立于人工智能强化学习的早期工作, 尽管博弈论仍然是这两个领域的一个主题(超出了本书的范围)。 Camerer(2011)讨论了经济学中的强化学习传统, Now ́e,Vrancx和De Hauwere(2012)从我们在本书中介绍的方法的多个体扩展的角度提供了该主题的概述。 在游戏理论的背景下强化是一个非常不同的主题,而不是强化学习在程序中用于玩井字棋,跳棋和其他娱乐游戏。 例如,参见Szita(2012)对强化学习和游戏这一方面的概述。

John Holland(1975)概述了基于选择原则的自适应系统的一般理论。 他的早期工作主要以非关联形式进行试验和错误,如进化方法和k个武装强盗。 1976年,更完全地在1986年,他引入了 分类器系统,这是真正的强化学习系统,包括关联和价值功能。 Holland分类器系统的一个关键组成部分是用于信用分配的“桶 - 旅算法”, 它与我们的井字游戏示例中使用的时序差分算法密切相关,并在第6章中讨论过。 另一个关键组成部分是遗传算法,一种进化方法,其作用是发展有用的表征。 许多研究人员已经广泛开发了分类器系统,以形成强化学习研究的一个主要分支(Urbanowicz和Moore评论,2009), 虽然我们不认为遗传算法本身就是强化学习系统,但它与进化计算的其他方法一样(例如,Fogel,Owens和Walsh,1966,和Koza,1992)受到了更多的关注。

哈利·克洛普夫(Harry Klopf,1972,1975,1982)是负责恢复人工智能中强化学习的试错线索的最负责人。 Klopf认识到,随着学习研究人员几乎专注于监督学习,适应行为的基本方面正在丧失。 根据Klopf的说法,缺少的是行为的享乐方面,从环境中获得某些结果的驱动力,控制环境朝向期望的目的并远离不希望的目的(见第15.9节)。 这是试错学习的基本思想。 Klopf的思想对作者特别有影响,因为我们对它们的评估(Barto和Sutton,1981a)使我们对监督和强化学习之间的区别以及我们最终关注强化学习的理解有所了解。 我们和他的同事完成的大部分早期工作都是为了表明强化学习和监督学习确实是不同的 (Barto,Sutton和Brouwer,1981;Barto和Sutton,1981b;Barto和Anandan,1985)。 其他研究表明,强化学习如何解决人工神经网络学习中的重要问题, 特别是它如何为多层网络提供学习算法(Barto,Anderson和Sutton,1982;Barto和Anderson,1985;Barto,1985,1986;巴托和约旦,1987年;见第15.10节)。

我们现在转向强化学习历史的第三个主线,即关于时序差分学习的历史。 时序差分学习方法的独特之处在于由相同数量的时间连续估计之间的差异驱动 - 例如,在井字棋子示例中获胜的概率。 这个主线比其他两个主线更小,更不明显,但它在该领域发挥了特别重要的作用,部分原因是时序差分方法似乎是强化学习的新特性。

时序差分学习的起源部分在于动物学习心理学,特别是在辅助强化学的概念中。 辅助强化剂是与主要强化物(例如食物或疼痛)配对的刺激物,因此已经具有类似的增强特性。 Minsky(1954)可能是第一个意识到这种心理学原理对人工学习系统很重要的人。 Arthur Samuel(1959)是第一个提出并实施包含时序差分思想的学习方法的人,这是他着名的跳棋游戏计划的一部分(第16.2节)。

Samuel没有提到明斯基的工作或可能与动物学习有关。他的灵感显然来自Claude Shannon(1950)的建议, 即计算机可以编程使用评估功能下棋,并且可以通过在线修改此功能来改进其游戏 (香农的这些观点也有可能影响Bellman,但我们知道没有证据证明这一点)。 Minsky(1961)在他的“步骤”论文中广泛讨论了塞缪尔的作品,暗示了与二级强化理论的联系,包括自然和人工。

正如我们所讨论的那样,在Minsky和Samuel的工作之后的十年中,在试错法学习方面的计算工作很少,显然在时序差分学习上根本没有计算工作。 1972年,Klopf将试错学习与时序差分学习的重要组成部分结合起来 Klopf对可扩展到大型系统学习的原理感兴趣,因此对局部强化的概念很感兴趣,因此整个学习系统的子组件可以相互加强。 他提出了“广义强化”的概念,即每个组成部分(名义上,每个神经元)都以强化术语来看待所有输入:作为奖励的兴奋性输入和作为惩罚的抑制性输入。 这与我们现在所知的时序差分学习并不是同一个想法,回想起它比Samuel的工作更远。 另一方面,Klopf将这一想法与试错学习联系起来,并将其与动物学习心理学的大量经验数据库联系起来。

Sutton(1978a,b,c)进一步发展了Klopf的思想,特别是与动物学习理论的联系,描述了由时间连续预测的变化驱动的学习规则。 他和Barto改进了这些观点,并开发了一种基于时差学习的经典条件心理模型(Sutton和Barto,1981a;Barto和Sutton,1982)。 接下来是基于时序差分学习的几种其他有影响的经典条件心理模型(例如,Klopf,1988;Moore等,1986;Sutton和Barto,1987,1990)。 此时开发的一些神经科学模型在时序差分学习方面得到了很好的解释 (Hawkins和Kandel,1984;Byrne,Gingrich和Baxter,1990; Gelperin,Hopfield和Tank,1985;Tesauro,1986; Friston等,1994), 尽管在大多数情况下没有历史联系。

我们在时序差分学习方面的早期工作受到动物学习理论和Klopf工作的强烈影响。 Minsky的“步骤”论文和Samuel的跳棋运动员的关系后来才得到认可。 然而,到1981年,我们完全了解上面提到的所有先前工作,作为时序差分和试错法主线的一部分。 这时我们开发了一种使用时间差的方法学习与试错学习相结合,被称为 演员 - 评论家架构, 并将这种方法应用于Michie和Chambers的极点平衡问题(Barto,Sutton和Anderson,1983)。 这种方法在Sutton(1984)的博士论文中得到了广泛的研究。论文并扩展到Anderson(1986)博士论文中使用反向传播神经网络。 大约在这个时候,Holland(1986)以他的戽式(bucket-brigade)算法的形式将时序差分思想明确地纳入他的分类器系统。 Sutton(1988)采取了一个关键步骤,将时序差分学习与控制分开,将其作为一般预测方法。 该论文还介绍了TD(\(\lambda\))算法并证明了它的一些收敛性。

当我们在1981年完成关于演员 - 评论家架构的工作时,我们发现了Ian Witten(1977,1976a)的一篇论文, 该论文似乎是时序差分学习规则的最早出版物。 他提出了我们现在称为表格TD(0)的方法,用作解决MDP的自适应控制器的一部分。 这项工作于1974年首次提交期刊出版,并出现在Witten 1976年的博士论文中。 Witten的工作是Andreae早期使用STeLLA和其他试错学习系统进行实验的后代。 因此,Witten的1977年论文涵盖了强化学习研究的主要思路 - 试错法学习和最优控制 - 同时对时序差分学习做出了明显的早期贡献。

1989年,Chris Watkins开发了Q-learning,将时序差分和最优控制线完全结合在一起。 这项工作扩展并整合了强化学习研究的所有三个主线的先前工作。 Paul Werbos(1987)通过争论自1977年以来试错学习和动态规划的融合,为这种整合做出了贡献。 到Watkins的工作时期,强化学习研究已经有了巨大的增长,主要是在人工智能的机器学习子领域, 而且在人工神经网络和人工智能方面也更广泛。1992年,Gerry Tesauro的十五子棋游戏项目TD-Gammon的成功引起了人们对该领域的更多关注。

自本书第一版出版以来,专注于强化学习算法与神经系统强化学习之间的关系的一个神经科学子领域蓬勃发展的。 正如许多研究人员所指出的那样,对此负责的是时间差算法的行为与大脑中多巴胺产生神经元的活动之间的不可思议的相似性 (Friston等,1994;Barto,1995a; Houk,Adams和Barto,1995; Montague,Dayan和Sejnowski,1996;Schultz,Dayan和Montague,1997)。 第15章介绍了强化学习这一激动人心的方面。在最近的强化学习历史中做出的其他重要贡献在这个简短的叙述中无法提及; 我们在其出现的各个章节的最后引用了更多这些内容。

书目备注

关于强化学习的其他一般性报道,我们建议读者参考阅读Szepesv ari(2010),Bertsekas和Tsitsiklis(1996), Kaelbling(1993a)以及Sugiyama,Hachiya和Morimura(2013)的书籍。 从控制或操作研究角度出发的书籍包括Si,Barto,Powell和Wunsch(2004),Powell(2011),Lewis和Liu(2012)以及Bertsekas(2012)。 Cao(2009)的综述将强化学习置于其他学习和优化随机动力系统的背景下。 机器学习期刊的三个特刊专注于强化学习:Sutton(1992a),Kaelbling(1996)和Singh(2002)。 Barto(1995b);Kaelbling,Littman和Moore(1996)以及Keerthi和Ravindran(1997)分别提供了有用的调查。 Weiring和van Otterlo(2012)编辑的卷提供了对最近发展的精彩概述。

1.2 本章菲尔早餐的例子灵感来自Agre(1988)。

1.5 第6章介绍了在井字棋示例中使用的时间差分方法。

第一部分 表格解决方法

在本书的这一部分中,我们以最简单的形式描述了强化学习算法的几乎所有核心​​思想:状态和动作空间足够小,可以将近似值函数表示为数组或者 表格。 在这种情况下,这些方法通常可以找到精确的解决方案,也就是说,它们通常可以找到最佳的价值函数和最优策略。 这与本书下一部分中描述的近似方法形成对比,后者只能找到近似解,但它可以有效地应用于更大的问题。

本书这一部分的第一章描述了强化学习问题特殊情况的解决方法,其中只有一个状态,称为赌博机问题。 第二章描述了我们在本书的其余部分 - 有限马尔可夫决策过程 - 中处理的一般问题公式及其主要思想,包括贝尔曼方程和价值函数。

接下来的三章描述了解决有限马尔可夫决策问题的三种基本方法:动态规划,蒙特卡洛方法和时序差分学习。 每类方法都有其优点和缺点。动态规划方法在数学上得到了很好的发展,但需要一个完整而准确的环境模型。 蒙特卡洛方法不需要模型,并且在概念上很简单,但不适合逐步增量计算。 最后,时差方法不需要模型,完全是增量的,但分析起来更复杂。这些方法在效率和收敛速度方面也有不同的几种方式。

剩下的两章描述了如何将这三类方法结合起来以获得每种方法的最佳特征。 在一章中,我们描述了蒙特卡洛方法的优势如何通过多步自举方法与时间方法的优势相结合。 在本书这一部分的最后一章中,我们将展示如何将时序差分学习方法与模型学习和规划方法(如动态规划)相结合,以获得表格强化学习问题的完整统一解决方案。

第2章 多臂赌博机问题

区分强化学习与其他类型学习的最重要特征是,它使用训练信息来 评估 所采取的行动,而不是通过给予正确的行动来 指导。 这就是为了明确寻找良好行为而产生积极探索的需要。 纯粹的评价反馈表明所采取的行动有多好,但不表明它是最好还是最坏的行动。 另一方面,纯粹的指导性反馈表明采取的正确行动,与实际采取的行动无关。 这种反馈是监督学习的基础,包括模式分类,人工神经网络和系统识别的大部分。 在它们的纯粹形式中,这两种反馈是截然不同的:评价反馈完全取决于所采取的行动,而指导性反馈则与所采取的行动无关。

在本章中,我们在简化的环境中研究强化学习的评价方面,该方法不涉及学习如何在多种情况下行动。 这种 非关联性 设置是大多数先前涉及评估反馈的工作已经完成的,并且它避免了完整强化学习问题的大部分复杂性。 研究这个案例使我们能够最清楚地看到评价性反馈如何与指导性反馈的不同,但可以与之相结合。

我们探索的特定非关联评价性反馈问题是k臂赌博机问题的简单版本。 我们使用这个问题来介绍一些基本的学习方法,我们将在后面的章节中对其进行扩展,以应用于完全强化学习问题。 在本章的最后,我们通过讨论当赌博机问题变为关联时会发生什么,即在不止一种情况下采取行动,这种情况更接近完整的强化学习问题。

2.1 一个 \(k\) 臂赌博机问题

考虑以下学习问题。你可以反复面对 \(k\) 种不同的选择或行动。在每次选择之后,你会收到一个数值奖励,该奖励取决于你选择的行动的固定概率分布。 你的目标是在一段时间内最大化预期的总奖励,例如,超过1000个操作选择或 时间步骤

这是 \(k\) 臂赌博机问题的原始形式,通过类比于赌博机或“单臂强盗”命名,除了它有k个拉杆而不是一个。 每个动作选择就像一个赌博机的拉杆游戏,奖励是击中累积奖金的奖金。 通过反复的行动选择,你可以通过将你的行动集中在最佳杠杆上来最大化你的奖金。 另一个类比是医生在一系列重病患者的实验治疗之间进行选择。每个动作都是治疗的选择,每个奖励都是患者的生存或幸福。 今天,“赌博机问题”一词有时用于上述问题的概括,但在本书中我们用它来指代这个简单的情况。

在我们的 \(k\) 臂赌博机中,只要选择了该动作,\(k\) 个动作的每一个都有预期的或平均的奖励,让我们称之为该行动的 价值。 我们将在时间步 \(t\) 选择的动作表示为 \(A_t\),并将相应的奖励表示为 \(R_t\)。 然后,对于任意动作 \(a\) 的价值,定义 \(q_{*}(a)\) 是给定 \(a\) 选择的预期奖励:

\[q_{*}(a) \doteq \mathbb{E}[R_t|A_t=a]\]

如果你知道每个动作的价值,那么解决 \(k\) 臂赌博机问题将是轻而易举的:你总是选择具有最高价值的动作。 我们假设你不确定地知道动作价值,尽管你可能有估计值。 我们将在时间步骤 \(t\) 的动作 \(a\) 的估计值表示为 \(Q_t(a)\)。 我们希望 \(Q_t(a)\) 接近 \(q_{*}(a)\)

如果你保持对动作价值的估计,那么在任何时间步骤中至少有一个其估计值最大的动作。我们把这些称为 贪婪 行为。 当你选择其中一个动作时,我们会说你正在 利用 你当前对动作价值的了解。 相反,如果你选择了一个非常规动作,那么我们就说你正在 探索,因为这可以让你提高你对非行动动作价值的估计。 利用是在一步中最大化预期的奖励的最好的方法,但从长远来看,探索可能会产生更大的总回报。 例如,假设贪婪行为的价值是确定的,而其他一些动作估计几乎同样好,但具有很大的不确定性。 不确定性使得这些其他行动中的至少一个实际上可能比贪婪行动更好,但你不知道哪一个。 如果你有很多时间步骤可以选择行动,那么探索非贪婪行动并发现哪些行动比贪婪行动可能会更好。 在短期内,奖励在探索期间较低,但从长远来看更高,因为在你发现更好的行动之后,你可以多次利用 它们。 因为无法探索和利用任何单一行动选择,人们通常会提到探索和利用之间的“冲突”。

在任何特定情况下,探索或利用是否更好在某种复杂方式上取决于估计的精确值,不确定性和剩余步骤的数量。 有许多复杂的方法可以平衡探索和利用 \(k\) 臂赌博机的特定数学公式和相关问题。 然而,这些方法中的大多数都对关于平稳性和先验知识做出了强有力的假设,这些假设在应用程序中被违反或无法验证, 在随后的章节中我们会考虑完整的强化学习问题。当这些方法的假设不适用时,对这些方法的最优性或有限损失的保证并不太好。

在本书中,我们不担心以复杂的方式平衡探索和利用;我们只担心平衡它们。 在本章中,我们为 \(k\) 臂赌博机提出了几种简单的平衡方法,并表明它们比总是利用的方法更好。 平衡探索和利用的需要是强化学习中出现的一个独特挑战;我们的 \(k\) 臂赌博机问题的简单性使我们能够以一种特别清晰的形式展示这一点。

2.2 行动价值方法

我们首先仔细研究估算行动价值,并使用估算来做出行动选择决策的方法,我们统称为 行动价值方法。 回想一下,当选择该动作时,动作的真实价值就是平均奖励。估计这一点的一种自然方法是平均实际收到的奖励:

(1)\[Q_t(a) \doteq \frac{在t之前采取a动作的奖励总和}{在t之前采取a动作的次数} = \frac{\sum_{i=1}^{t-1}R_i \cdot \mathbb{1}_{A_i=a}}{\sum_{i=1}^{t-1}\mathbb{1}_{A_i=a}}\]

其中 \(\mathbb{1}_{谓词}\) 表示随机变量,如果谓词为真,则为1,如果不是则为0。 如果分母为零,那么我们将 \(Q_t(a)\) 定义为某个默认值,例如0。 当分母变为无穷大时,根据大数定律,\(Q_t(a)\) 收敛于 \(q_*(a)\)。 我们将其称为用于估计行动值的 样本平均 方法,因为每个估计值是相关奖励样本的平均值。 当然,这只是估算行动价值的一种方式,而不一定是最佳方法。 然而,现在让我们继续使用这种简单的估算方法,并转向如何使用估算来选择行动的问题。

最简单的动作选择规则是选择具有最高估计值的动作之一,即上一节中定义的贪婪动作之一。 如果存在多个贪婪动作,则可以以任意方式(可能是随机的)在它们之间进行选择。 我们把这个贪婪的动作选择方法写成

(2)\[A_t = \mathop{argmax} \limits_{a} Q_t(a)\]

其中 \(argmax_a\) 表示随后的表达式最大时的动作a(再次,任意地断开关系)。 贪婪行动选择总是利用当前的知识来最大化立即奖励;它没有花时间采取明显劣质的行动来看看它们是否真的会更好。 一个简单的替代方案是在大多数情况下贪婪地行动,但每隔一段时间,以较小的概率 \(\varepsilon\), 从动作价值估计中独立地从具有相同概率的所有动作中随机选择。 我们称使用此近乎贪婪的行动选择规则的方法为 \(\varepsilon\) 贪婪 方法。 这些方法的一个优点是,在步数增加的限度内,每个动作将被无限次采样,从而确保所有 \(Q_t(a)\) 收敛于 \(q_*(a)\)。 这当然意味着选择最优动作的概率收敛于大于 \(1-\varepsilon\) 的数,即接近确定。 然而,这些只是渐近保证,并且对方法的实际有效性几乎没有说明。

练习2.1\(\varepsilon\) 贪婪动作选择中,对于两个动作的情况和 \(\varepsilon=0.5\), 选择贪婪动作的概率是多少?

2.3 10臂赌博机试验

为了粗略评估贪婪和 \(\varepsilon\) 贪婪行动价值方法的相对有效性, 我们在一系列测试问题上对它们进行了数值比较。这是一组2000个随机生成的 \(k\) 臂赌博机问题,\(k = 10\)。 对于每个赌博机问题,如图2.1所示,动作价值 \(q_*(a), a = 1, \dots, 10\), 根据具有均值为0和方差为1的正态(高斯)分布来选择。

_images/figure-2.1.png

图2.1 一个10臂的赌博机问题例子。根据具有均值和方差为0的正态分布选择十个动作的每一个的真值 \(q_*(a)\), 然后根据平均 \(q_*(a)\) 单位方差正态分布选择实际奖励,如这些灰色分布显示。

然后,当应用于该问题的学习方法选择动作 \(A_t\) 时, 从具有均值 \(q_*(A_t)\) 和方差1的正态分布中选择实际奖励 \(R_t\)。 这些分布在图2.1中以灰色显示。我们将这套测试任务称为 10臂赌博机试验。 对于任何学习方法,我们可以测量其性能和行为,因为它在应用于其中一个赌博机问题时经历了超过1000个时间步骤。 这组成了一次 运行。重复这样的独立运行2000次,每次运行都有不同的赌博机问题,我们便获得了学习算法的平均行为的度量。

如上所述,图2.2比较了10臂赌博机试验上的贪婪方法和两个 \(\varepsilon\) 贪婪方法 (\(\varepsilon=0.01\)\(\varepsilon=0.1\))。 所有方法都使用样本平均技术形成了它们的动作值估计。上图显示了带有经验的预期奖励的增加。 贪婪方法在开始时比其他方法改善略快,但随后在较低水平上稳定下来。 它只获得了大约1的每步奖励,在这个测试平台上,最好的约为1.55。 从长远来看,贪婪的方法表现得更糟,因为它经常被卡在执行欠佳的动作。 下图显示贪婪的方法只在大约三分之一的任务中找到了最佳动作,其他三分之二的最佳动作的初始样本令人失望,而且它从未回归过它。 \(\varepsilon\) 贪婪方法最终表现得更好,因为他们会继续探索并提高他们识别最佳动作的机会。 \(\varepsilon=0.1\) 的方法探索得更多,并且通常更早地发现了最佳动作,但它从未在91%的时间内选择该动作。 \(\varepsilon=0.01\) 的方法改进得更慢,但最终, 在关于图中所示的两种性能指标上会比 \(\varepsilon=0.1\) 的方法更好。 同时间,他还可以随着时间的推移减少 \(\varepsilon\) 以试图获得最佳的高值和低值。

_images/figure-2.2.png

图2.2 10臂赌博机试验中的 \(\varepsilon\) 贪婪行动价值方法的平均表现。 这些数据是2000轮以上不同赌博机问题的平均值。所有方法都使用样本平均值作为其行动价值估计。

\(\varepsilon\) 贪婪方法优于贪婪方法的优势取决于任务。例如,假设奖励方差较大,比如说10而不是1。 有了更嘈杂的奖励,需要更多的探索才能找到最佳动作,并且 \(\varepsilon\) 贪婪相对于贪婪的方法,使用方法应该更好。 另一方面,如果奖励方差为零,则贪婪方法在尝试一次后就会知道每个动作的真实价值。 在这种情况下,贪婪方法实际上可能表现最佳,因为它很快就能找到最佳动作,然后再也不会探索。 但即使在确定性案例如果我们削弱其他一些假设,那么探索将是一个很大的优势。 例如,假设赌博机任务是非平稳的,即行动的真实价值随着时间而变化。 在这种情况下,即使在确定性案例中也需要进行探索,以确保其中一个非贪婪动作没有变得比贪婪动作更好。 正如我们将在接下来的几章中看到的那样,非平稳性是在强化学习中最常遇到的情况。 即使基础任务是固定的和确定的,学习者也面临着一系列类似赌博机的决策任务,随着学习的进行和个体的决策制定策略的变化,这些决策随着时间的推移而变化。 强化学习需要在探索和利用之间取得平衡。

练习2.2 赌博机示例 考虑具有 \(k=4\) 动作的 \(k\) 臂赌博机问题,表示为1,2,3和4。 对于此问题,考虑使用 \(\varepsilon\) 贪婪动作选择,样本平均动作值估计的赌博机算法, 对于所有a,初始估计为 \(Q_1(a)=0\)。 假设动作和奖励的初始序列是 \(A_1 = 1\)\(R_1 = 1\)\(A_2 = 2\)\(R_2 = 1\)\(A_3 = 2\)\(R_3 = 2\)\(A_4 = 2\)\(R_4 = 2\)\(A_5 = 3\)\(R_5 = 0\)。 在某些时间步骤中,\(\varepsilon\) 情况可能已经发生,导致随机选择动作。 在哪个时间步骤确实发生了?在哪些时间步骤可能发生?

练习2.3 在图2.2所示的比较中,从累积奖励和选择最佳动作的概率来看,哪种方法在长期运行中表现最佳?会有多好?定量地表达你的答案。

2.4 增量实现

到目前为止我们讨论过的行动价值方法都将行动值估计为观察到的奖励的样本平均值。 我们现在转向如何以计算上有效的方式计算这些平均值的问题,特别是具有恒定内存和恒定的时间步长计算。

为了简化表示法,我们专注于单一动作。让 \(R_i\) 现在表示在第i次选择 此动作 之后收到的奖励, 并且让 \(Q_n\) 次之后其动作价值的估计,我们现在可以简单地将其写为

\[Q_n \doteq \frac{R_1 + R_2 + \dots + R_{n-1}}{n-1}\]

显而易见的实现是维护所有奖励的记录,然后在需要估计价值时执行该计算。 但是,如果这样做,那么随着时间的推移,内存和计算要求会随着更多的奖励而增长。 每个额外的奖励都需要额外的内存来存储它,并需要额外的计算来计算分子中的总和。

您可能怀疑,这不是必需的。通过处理每个新奖励所需的小的,恒定的计算,很容易设计用于更新平均值的增量公式。 给定 \(Q_n\) 和第n个奖励 \(R_n\),所有n个奖励的新平均值可以通过以下计算得出

(3)\[\begin{split}\begin{aligned} Q_{n+1} &= \frac{1}{n}\sum_{i=1}^{n}R_i \\ &= \frac{1}{n}(R_n + \sum_{i=1}^{n-1}R_i) \\ &= \frac{1}{n}(R_n + (n-1)\frac{1}{n-1} \sum_{i=1}^{n-1}R_i) \\ &= \frac{1}{n}(R_n + (n-1)Q_n) \\ &= \frac{1}{n}(R_n + nQ_n-Q_n) \\ &= Q_n + \frac{1}{n}(R_n - Q_n) \end{aligned}\end{split}\]

即使对于 \(n=1\) 也保持,对于任意 \(Q_1\),获得 \(Q_2 = R_1\)。 该实现仅需要 \(Q_n\) 和 n 的存储器,并且每个新的奖励仅需要小的计算(2.3)。 此更新规则(2.3)是本书中经常出现的一种形式。 一般形式是

(4)\[新估计 \leftarrow 旧估计 + 步长 [目标 - 旧估计]\]

表达式 \([目标 - 旧估计]\) 是估计中的误差。通过向“目标”迈出一步来减少它。 目标被假定为指示移动的理想方向,尽管它可能是嘈杂的。例如,在上述情况下,目标是第n个奖励。

请注意,增量方法(2.3)中使用的步长参数(StepSize)会从时间步长到时间步长变化。 在处理动作a的第n个奖励时,该方法使用步长参数 \(\frac{1}{n}\)。 在本书中,我们使用 \(\alpha\) 或者更一般地使用 \(\alpha_t(a)\) 表示步长参数。

使用递增计算的样本平均值的完整赌博机算法的伪代码和 \(\varepsilon\) 贪婪动作选择在下面的框中显示。 假设函数 \(bandit(a)\) 采取行动并返回相应的奖励。

简单的赌博机算法

初始化,a 从 1 到 k:

\[\begin{split}\begin{aligned} &Q(a) \leftarrow 0 \\ &N(a) \leftarrow 0 \end{aligned}\end{split}\]

循环:

\[\begin{split}\begin{aligned} &A \leftarrow \begin{cases} argmax_aQ(a) & 以 1-\varepsilon 概率 (随意打破关系)\\ 随机动作 & 以 \varepsilon 概率 \end{cases} \\ &R \leftarrow bandit(a) \\ &N(A) \leftarrow N(A) + 1 \\ &Q(A) \leftarrow Q(A) + \frac{1}{N(A)}\left[R-Q(A)\right] \end{aligned}\end{split}\]
2.5 追踪非平稳问题

到目前为止讨论的平均方法适用于固定赌博机问题,即对于其中奖励概率不随时间变化的赌博机问题。 如前所述,我们经常会遇到非常不稳定的强化学习问题。 在这种情况下,给予最近的奖励比给长期的奖励更重要。 最常用的方法之一是使用常量步长参数。例如,用于更新 \(n-1\) 过去奖励的平均 \(Q_n\) 的增量更新规则(2.3)被修改为

(5)\[Q_{n+1} \doteq Q_n + \alpha(R_n - Q_n)\]

步长参数 \(\alpha \in (0, 1]\) 是常数。 这导致 \(Q_{n+1}\) 是过去奖励和初始估计 \(Q_1\) 的加权平均值:

(6)\[\begin{split}\begin{aligned} Q_{n+1} &= Q_n + \alpha(R_n - Q_n) \\ &= \alpha R_n + (1-\alpha)Q_n \\ &= \alpha R_n + (1-\alpha)[\alpha R_{n-1} + (1-\alpha)Q_{n-1}] \\ &= \alpha R_n + (1-\alpha)\alpha R_{n-1} + (1-\alpha)^2 \alpha R_{n-2} + \\ & \qquad \qquad \dots + (1-\alpha)^{n-1}\alpha R_1 + (1-\alpha)^nQ_1 \\ &= (1-\alpha)^nQ_1 + \sum_{i=1}^{n}\alpha(1-\alpha)^{n-i}R_i \end{aligned}\end{split}\]

我们称之为加权平均值, 因为权重之和为 \((1-\alpha)^n + \sum_{i=1}^{n}\alpha(1-\alpha)^{n-i} = 1\), 你可以自行验证。注意,给予奖励 \(R_i\) 的权重 \(\alpha(1-\alpha)^{n-i}\) 取决于之前有多少奖励,可以观察到为 \(n-i\)\(1-\alpha\) 小于1,因此给予 \(R_i\) 的权重随着介入奖励数量的增加而减少。 实际上,权重根据 \(1-\alpha\) 的指数呈指数衰减。 (如果 \(1-\alpha=0\),则所有权重都在最后一个奖励 \(R_n\) 上,因为我们预订 \(0^0 = 1\)。) 因此,这有时被称为 指数新近加权平均值

有时,逐步改变步长参数是很方便的。 让 \(\alpha_n(a)\) 表示用于处理在第n次动作选择a之后收到的奖励的步长参数。 正如我们已经注意到的,选择 \(\alpha_n(a)=\frac{1}{n}\) 导致样本平均方法, 保证通过大数定律收敛到真实的行动价值。但当然,对序列 \(\{\alpha_n(a)\}\) 的所有选择都不能保证收敛。 随机逼近理论中的一个众所周知的结果为我们提供了确保收敛概率为1所需的条件:

(7)\[\sum_{n=1}^{\infty}\alpha_n(a) = \infty 和 \sum_{n=1}^{\infty}\alpha_n^2(a) < \infty\]

第一个条件是保证步骤足够大以最终克服任何初始条件或随机波动。第二个条件保证最终步骤变得足够小以确保收敛。

注意,对于样本平均情况,\(\alpha_n(a)=\frac{1}{n}\) 都满足两个收敛条件, 但对于恒定步长参数的情况不符合,\(\alpha_n(a)=n\)。 在后一种情况下,不满足第二个条件,表明估计值从未完全收敛,但是响应于最近收到的奖励而继续变化。 正如我们上面提到的,这在非平稳环境中实际上是可取的,并且在强化学习中最常见的是非常不稳定的问题。 另外,满足条件(2.7)的步长参数序列通常非常缓慢地收敛或需要相当大的微调以获得令人满意的收敛速率。 尽管满足这些收敛条件的步长参数序列通常用于理论工作,但它们很少用于应用和实证研究。

练习2.4 如果步长参数 \(\alpha(a)\) 不是常数,则估计值 \(Q_n\) 是先前收到的奖励的加权平均值, 其权重不同于(2.6)给出的权重。对于一般情况,类似于(2.6),就步长参数的顺序而言,每个先前奖励的权重是什么?

练习2.5(编程) 设计并进行实验,以证明样本平均方法对非平稳问题的困难。 使用10臂赌博机试验的修改版本,其中所有 \(q_*(a)\) 开始相等,然后采取独立的随机游走 (比如在每一步通过向所有 \(q_*(a)\) 添加均值为0且标准差为0.01的正态分布增量)。 使用样本平均值,增量计算和使用常量步长参数的另一个动作值方法,\(\alpha=0.1\),绘制如图2.2所示的动作值方法的图。 使用 \(\varepsilon=0.1\) 和更长的运行,比如10000步。

2.6 乐观的初始值

到目前为止我们讨论的所有方法在某种程度上都依赖于初始行动价值估计 \(Q_1(a)\)。 在统计语言中,这些方法的初始估计存在偏差。对于样本平均方法,一旦所有动作至少被选择一次,偏差就会消失, 但对于具有常数 \(\alpha\) 的方法,偏差是永久性的,尽管随着时间的推移逐渐减少,如(2.6)所示。 在实践中,这种偏差通常不是问题,有时可能非常有用。缺点是如果只是将它们全部设置为零,初始估计实际上变成了一组必须由用户选择的参数。 好处是,它们提供了一种简单的方法来提供关于可以预期的奖励水平的一些先验知识。

初始行动价值也可以用作鼓励探索的简单方法。 假设我们没有将初始动作值设置为零,就像我们在10臂赌博机试验中所做的那样,我们将它们全部设置为+5。 回想一下,该问题中的 \(q_*(a)\) 是从具有均值0和方差1的正态分布中选择的。因此,初始估计值+5非常乐观。 但这种乐观主义鼓励采取行动价值方法进行探索。无论最初选择哪种行为,奖励都低于起始估计; 学习者转向其他行动,对其收到的奖励感到“失望”。结果是在值估计收敛之前,所有操作都会尝试多次。 即使一直选择贪婪的行为,系统也会进行大量的探索。

图2.3显示了对于所有a,使用 \(Q_1(a)=+5\) 的贪婪方法的10臂赌博机试验的性能。 为了比较,还显示了一个 \(\varepsilon\) 贪婪方法,其中 \(Q_1(a)= 0\)。 最初,乐观方法表现更差,因为它探索更多,但最终它表现更好,因为它的探索随着时间的推移而减少。 我们称这种技术为鼓励探索 乐观的初始值。我们认为它是一个简单的技巧,对于静止问题非常有效,但它远不是一个鼓励探索的普遍有用的方法。 例如,它不适合非平稳问题,因为它的驱动对于探索本质上是暂时的。如果任务发生变化,再次需要探索,这种方法无法帮助。 实际上,任何以特殊方式关注初始条件的方法都不可能对一般的非平稳情况有所帮助。 时间的开始只出现一次,因此我们不应该过分关注它。 这种批评也适用于样本平均方法,它也将时间的开始视为一种特殊的方法事件,平均所有后续奖励的权重相等。 然而,所有这些方法都非常简单,其中之一,或者它们的一些简单组合,在实践中通常是足够的。 在本书的其余部分,我们经常使用其中一些简单的探索技术。

_images/figure-2.3.png

图2.3 乐观的初始行动价值估计对10臂赌博机试验的影响。两种方法都使用恒定的步长参数, \(alpha=0.1\)

练习2.6:神秘的尖峰 图2.3所示的结果应该非常可靠,因为它们是超过2000个随机选择的10臂赌博机任务的平均值。 那么,为什么乐观方法曲线的早期会出现振荡和峰值?换句话说,什么可能使这种方法在特定的早期步骤中表现得更好或更差?

练习2.7:无偏恒定步长技巧 在本章的大部分内容中,我们使用样本平均值来估计动作值, 因为样本平均值不会产生恒定步长的初始偏差(参见导致(2.6)的分析)。 然而,样本平均值并不是一个完全令人满意的解决方案,因为它们可能在非平稳问题上表现不佳。 是否有可能避免不变步长的偏差,同时保留其对非平稳问题的优势?一种方法是使用步长

(8)\[\beta_n \doteq \alpha / \overline{o}_n\]

处理特定动作的第n个奖励,其中 \(\alpha>0\) 是常规常量步长,\(\overline{o}_n\) 是从0开始的跟踪:

(9)\[\overline{o}_n \doteq \overline{o}_{n-1} + \alpha(1-\overline{o}_{n-1}) for n \ge 0, with \overline{o}_0 \doteq 0\]

进行如(2.6)中的分析,以表明 \(Q_n\) 是指数的新近加权平均值,没有初始偏差

2.7 上限置信区间动作选择

探索是必要的,因为行动价值估计的准确性始终存在不确定性。贪婪的行为是目前看起来最好的行动,但其他一些行动可能实际上更好。 \(\varepsilon\) 贪婪行动选择迫使不贪婪的行动被尝试,而不是那些几乎贪婪或特别不确定的动作。 最好根据它们实际上最优的潜力来选择非贪婪行动,同时考虑到它们的估计与最大值的接近程度以及这些估计中的不确定性。 这样做的一种有效方法是根据选择行动

(10)\[A_t \doteq \mathop{argmax} \limits_{a} \left[Q_t(a) + c \sqrt{\frac{\ln{t}}{N_t(a)}}\right]\]

其中 \(\ln{t}\) 表示t的自然对数( \(e \approx 2.71828\) 必须提高到等于t的数量), \(N_t(a)\) 表示在时间t之前选择动作a的次数((2.1)中的分母),数字 \(c>0\) 控制探索的程度。 如果 \(N_t(a)=0\),则a被认为是最大化动作。

这种 上限置信区间 (UCB)行动选择的想法是,平方根项是对一个值估计的不确定性或方差的度量。 因此,最大化的数量是动作a的可能真实值的一种上限,其中c确定置信水平。 每次选择a时,不确定性可能会降低: \(N_t(a)\) 递增,并且,正如它在分母中出现的那样,不确定性项减少。 另一方面,每次选择除a之外的动作时,t增加但 \(N_t(a)\) 不增加;因为t出现在分子中,不确定性估计值会增加。 使用自然对数意味着随着时间的推移,增加量会变小,但是是无限制; 最终将选择所有操作,但是将随着时间的推移,具有较低值估计值或已经频繁选择的操作的选择频率会降低。

10臂赌博机试验的UCB结果如图2.4所示。如本文所示,UCB通常表现良好, 但比起 \(\varepsilon\) 贪婪,UCB更难向本书其余部分所考虑的更为普遍的强化学习环境扩展。 一个难点在于处理非平稳问题;比这些更复杂的方法将需要在2.5节中介绍。 另一个难点是处理大的状态空间,特别是当使用本书第二部分中开发的函数逼近时。 在这些更高级的设置中,UCB动作选择的想法通常是不实际的。

_images/figure-2.4.png

图2.4 10臂赌博机试验上UCB动作选择的平均表现。如图所示,除了在前 \(k\) 个步骤中, 当它在尚未尝试的动作中随机选择时,UCB通常比 \(\varepsilon\) 贪婪动作选择”更好。

练习2.8 USB尖峰 在图2.4中,UCB算法在第11步显示出明显的性能峰值。为什么是这样? 请注意,为了使您的答案完全令人满意,它必须解释为什么奖励在第11步增加以及为什么在随后的步骤中减少。 提示:如果 \(c=1\),则尖峰不太突出。

2.8 赌博机问题的梯度算法

到目前为止,在本章中我们已经考虑了估算行动价值并使用这些估计值来选择行动的方法。 这通常是一种很好的方法,但它不是唯一可行的方法。在本节中,我们考虑为每个动作a学习数字 偏好,我们将其表示为 \(H_t(a)\)。 偏好越大,采取行动的次数越多,但偏好在奖励方面没有解释。只有一种行为相对于另一种行为的相对偏好才是重要的; 如果我们将1000添加到所有动作首选项,则对动作概率没有影响,动作概率是根据soft-max分布(如Gibbs或Boltzmann分布)确定的,如下所示:

(11)\[Pr\{A_t=a\} \doteq \frac{e^{H_t(a)}}{\sum_{b=1}^{k}e^{H_t(b)}} \doteq \pi_t(a)\]

在这里,我们还引入了一个有用的新符号, \(\pi_t(a)\),表示在时间t采取行动的概率。 最初,所有动作偏好都是相同的(例如,对于所有a, \(H_1(a)=0\)),使得所有动作具有相同的被选择概率。

练习2.9 指出在两个动作的情况下,soft-max分布与统计学和人工神经网络中经常使用的逻辑或sigmoid函数给出的相同。

基于随机梯度上升的思想,存在用于该设置的自然学习算法。在每个步骤中, 在选择动作 \(A_t\) 并接收奖励 \(R_t\) 之后,动作偏好通过以下方式更新:

(12)\[\begin{split}\begin{aligned} H_{t+1}(A_t) &\doteq H_t(A_t) + \alpha(R_t-\overline{R}_t)(1-\pi_t(A_t)), &和 \\ H_{t+1}(a) &\doteq H_t(a) - \alpha(R_t-\overline{R}_t)\pi_t(a),&对所有 a \ne A_t \end{aligned}\end{split}\]

其中 \(\alpha>0\) 是步长参数,\(\overline{R}_t \in \mathbb(R)\) 是所有奖励的平均值, 包括时间t,可以按照第2.4节(或第2.5节,如果问题是非平稳的)所述逐步计算。 \(\overline{R}_t\) 术语作为比较奖励的基线。 如果奖励高于基线,那么将来获取 \(A_t\) 的概率增加; 如果奖励低于基线,则概率降低,未选择的动作向相反方向移动。

图2.5显示了对10臂赌博机试验变体的梯度赌博机算法的结果,其中真实的预期奖励是根据正态分布选择的, 平均值为+4而不是零(并且单位方差与之前一样)。由于奖励基线术语瞬间适应新的水平,所以所有奖励的上移对梯度赌博机算法完全没有影响。 但如果基线被省略(即,如果 \(\overline{R}_t\) 在(2.12)中被视为常数零),那么性能将显着降低,如图所示。

_images/figure-2.5.png

图2.5\(q_*(a)\) 被选择为接近+4而不是接近零时, 在10臂赌博机试验上具有和不具有奖励基线的梯度赌博机算法的平均性能。

随机梯度上升的赌博机梯度算法

通过将其理解为梯度上升的随机近似,可以更深入地了解梯度赌博机算法。 在精确的梯度上升中,每个动作偏好 \(H_t(a)\) 将与增量对性能的影响成比例增加:

(13)\[H_{t+1}(a) \doteq H_t(a) + \alpha\frac{\partial \mathbb{E}[R_t]}{\partial H_t(a)}\]

这里的性能衡量指标是预期的奖励:

\[\mathbb{E}[R_t] = \sum_{x}\pi_t(x)q_*(x)\]

并且增量效应的度量是该性能度量相对于动作偏好的 偏导数。 当然,在我们的情况下不可能完全实现梯度上升,因为假设我们不知道 \(q_*(x)\), 但实际上我们的算法(2.12)的更新等于(2.13)预期值,使算法成为 随机梯度上升 的一个实例。 显示这一点的计算只需要基础微积分,但需要几个步骤。 首先,我们仔细研究一下确切的性能梯度:

\[\begin{split}\begin{aligned} \frac{\partial \mathbb{E}[R_t]}{\partial H_t(a)} &= \frac{\partial}{\partial H_t(a)}\left[\sum_{x}\pi_t(x)q_*(x)\right] \\ &= \sum_{x}q_*(x)\frac{\partial \pi_t(x)}{\partial H_t(a)} \\ &= \sum_{x}(q_*(x)-B_t)\frac{\partial \pi_t(x)}{\partial H_t(a)} \end{aligned}\end{split}\]

其中 \(B_t\) 称为 基线,可以是任何不依赖于x的标量。我们可以在这里包括基线而不改变相等性, 因为梯度在所有动作上总和为零,\(\sum_{x}\frac{\partial \pi_t(x)}{\partial H_t(a)} = 0\), 当 \(H_t(a)\) 改变时,一些动作的概率上升,有些下降,但变化的总和必须为零,因为概率的总和总是一。

接下来,我们将和的每个项乘以 \(\pi_t(x) / \pi_t(x)\)

\[\frac{\partial \mathbb{E}[R_t]}{\partial H_t(a)} = \sum_{x}\pi_t(x)(q_*(x)-B_t)\frac{\partial \pi_t(x)}{\partial H_t(a)}/\pi_t(x)\]

该等式现在采用期望的形式,对随机变量 \(A_t\) 的所有可能值x求和,然后乘以取这些值的概率。从而:

\[\begin{split}\begin{aligned} &= \mathbb{E}\left[ (q_*(A_t)-B_t)\frac{\partial \pi_t(A_t)}{\partial H_t(a)}/\pi_t(A_t) \right] \\ &= \mathbb{E}\left[ (R_t-\overline{R}_t)\frac{\partial \pi_t(A_t)}{\partial H_t(a)}/\pi_t(A_t) \right] \end{aligned}\end{split}\]

这里我们选择了基线 \(B_t=\overline{R}_t\) 和替换 \(R_t\)\(q_*(A_t)\), 这是允许的,因为 \(\mathbb{E}[R_t|A_t] = q_*(A_t)\)。 很快我们将确定 \(\frac{\partial \pi_t(x)}{\partial H_t(a)}=\pi_t(x)(\mathbb{1}_{a=A_t}-\pi_t(a))\), 其中,如果 \(a = x\) 则定义 \(\mathbb{1}_{a=A_t}\) 为1,否则为0。假设现在,我们有

\[\begin{split}\begin{aligned} &= \mathbb{E}\left[ (R_t-\overline{R}_t) \pi_t(A_t) (\mathbb{1}_{a=A_t}-\pi_t(a))/\pi_t(A_t) \right] \\ &= \mathbb{E}\left[ (R_t-\overline{R}_t)(\mathbb{1}_{a=A_t}-\pi_t(a)) \right] \end{aligned}\end{split}\]

回想一下,我们的计划是将性能梯度编写为我们可以在每个步骤上采样的预期,就像我们刚刚完成的那样, 然后更新与样本成比例的每个步骤。将上述期望的样本替换为(2.13)中的性能梯度,得出:

\[H_{t+1}(a) = H_t(a) + \alpha(R_t-\overline{R}_t)(\mathbb{1}_{a=A_t}-\pi_t(a)),对于所有a\]

您可能认为它等同于我们的原始算法(2.12)。

因此,它只是表明这一点 \(\frac{\partial \pi_t(x)}{\partial H_t(a)}=\pi_t(x)(\mathbb{1}_{a=A_t}-\pi_t(a))\), 正如我们假定的一样。回想一下倒数的标准商法则:

\[\frac{\partial}{\partial x} \left[ \frac{f{x}}{g{x}} \right] = \frac{ \frac{\partial f(x)}{\partial x}g(x) - f(x)\frac{\partial g(x)}{\partial x}}{g(x)^2}\]

使用这个,我们可以写出

\[\begin{split}\begin{aligned} \frac{\partial \pi_t(x)}{\partial H_t(a)} &= \frac{\partial}{\partial H_t(a)}\pi_t(x) \\ &= \frac{\partial}{\partial H_t(a)}\left[ \frac{e^{H_t(x)}}{\sum_{y=1}^{k}e^{H_t(y)}} \right] \\ &= \frac{ \frac{\partial e^{H_t(x)}}{\partial H_t(a)} \sum_{y=1}^{k}e^{H_t(y)} - e^{H_t(x)}\frac{\partial \sum_{y=1}^{k}e^{H_t(y)}}{\partial H_t(a)} }{(\sum_{y=1}^{k}e^{H_t(y)})^2} \\ &= \frac{ \mathbb{1}_{a=x}e_{H_t(x)}\sum_{y=1}^{k}e^{H_t(y)} - e^{H_t(x)}e^{H_t(a)} }{(\sum_{y=1}^{k}e^{H_t(y)})^2} (因为 \frac{\partial e^x}{\partial x}=e^x) \\ &= \frac{\mathbb{1}_{a=x}e_{H_t(x)}}{\sum_{y=1}^{k}e^{H_t(y)}} - \frac{e^{H_t(x)}e^{H_t(a)}}{(\sum_{y=1}^{k}e^{H_t(y)})^2} \\ &= \mathbb{1}_{a=x}\pi_t(x) - \pi_t(x)\pi_t(a) \\ &= \pi_t(x)(\mathbb{1}_{a=x} - \pi_t(a)) &Q.E.D. \end{aligned}\end{split}\]

我们刚刚表明,梯度赌博机算法的预期更新等于预期奖励的梯度,因此该算法是随机梯度上升的实例。 这确保了该算法具有稳健的收敛特性。

请注意,除了不依赖于所选操作之外,我们不需要奖励基线的任何属性。 例如,我们可以将其设置为零或1000,并且算法仍然是随机梯度上升的实例。 基线的选择不会影响算法的预期更新,但它确实会影响更新的方差,从而影响收敛速度(如图2.5所示)。 选择它作为奖励的平均值可能不是最好的,但它很简单并且在实践中运作良好。

2.9 关联搜索(语境赌博机)

到目前为止,在本章中我们只考虑了非关联性任务,即不需要将不同行为与不同情况联系起来的任务。 在这些任务中,学习者要么在任务静止时尝试找到单个最佳动作,要么在任务非平稳时随着时间的推移而尝试跟踪最佳动作。 但是,在一般的强化学习任务中,存在多种情况,目标是学习策略:从状态到在这些情况下最佳的行为的映射。 为完整问题设置台阶,我们简要讨论非关联任务扩展到关联设置的最简单方法。

举个例子,假设有几个不同的 \(k\) 臂赌博机任务,并且在每一步中你都会随机对抗其中一个。 因此,赌博机任务从一步到另一步随机变化。这在你看来是一个单一的,非平稳的 \(k\) 臂赌博机任务, 其真实动作值从一步到另一步随机变化。您可以尝试使用本章中描述的可以处理非平稳性的方法之一, 但除非真实的操作值变化缓慢,否则这些方法将无法正常工作。 但是,现在假设,当为您选择赌博机任务时,您将获得一些关于其身份的独特线索(但不是其动作价值)。 也许你正面临一个真正的赌博机,它改变它的显示颜色来改变了它的动作价值。 现在,您可以学习一项策略,将每个任务与你看到的颜色相关联,并在面对该任务时采取最佳操作。 例如,如果是红色,选择第1个摇臂;如果是绿色,选择第2个摇臂。 在没有任何区分一个赌博机任务的信息的情况下,通过正确的策略,你通常可以做得更好。

这是一个关联搜索任务的示例,因为它涉及试错学习以搜索最佳操作,以及这些操作与它们最佳的情况的关联。 关联搜索任务现在通常在文献中被称为语境赌博机。联合搜索任务介于 \(k\) 臂赌博机问题和完全强化学习问题之间。 它们就像完整的强化学习问题,因为它们涉及学习策略,但就像我们的 \(k\) 臂赌博机问题的版本一样,每个动作只能立即得到奖励。 如果允许行动来影响下一个情况以及奖励,那么我们就会有完整的强化学习问题。 我们将在下一章中提出这个问题,并在本书的其余部分考虑它的影响。

2.10 总结

我们在本章中介绍了几种平衡探索和利用的简单方法。\(\varepsilon\) 贪婪方法随机选择一小部分时间,而UCB方法确定性地选择, 但通过巧妙地在每个步骤中有利于(favoring at)目前为止接收到更少样本的动作来实现探索。 梯度赌博机算法估计的不是动作价值,而是动作偏好,并且使用soft-max分布以分级的概率方式支持更优选的动作。 初始化估计的简单技巧积极地促使甚至贪婪的方法也进行显著探索。

很自然地会问这些方法中哪一种最好。虽然这是一个难以回答的问题,但我们当然可以在我们在本章中使用的10臂赌博机试验上运行它们并比较它们的性能。 一个复杂因素是它们都有一个参数;要获得有意义的比较,我们必须将其性能视为其参数的函数。 到目前为止,我们的图表显示了每种算法和参数设置随时间学习的过程,以产生该算法和参数设置的学习曲线。 如果我们绘制了所有算法和所有参数设置的学习曲线,那么图表将过于复杂和拥挤,无法进行清晰的比较。 相反,我们通过1000步的平均值总结完整的学习曲线;该值与学习曲线下的面积成比例。 图2.6显示了本章中各种赌博机算法的测量方法,每个算法都是x轴上单个刻度上显示的自身参数的函数。 这种图形称为 参数学习。请注意,参数值的变化因子为2,并以对数刻度表示。 还要注意每种算法性能的特征呈倒U形状;所有算法在其参数的中间值上表现最佳,既不太大也不太小。 在评估方法时,我们不仅要关注它在最佳参数设置下的表现,还要关注它对参数值的敏感程度。 所有这些算法都相当不敏感,在一系列参数值上表现良好,这些参数值变化大约一个数量级。 总的来说,在这个问题上,UCB似乎表现最佳。

_images/figure-2.6.png

图2.6 本章介绍的各种赌博机算法的参数研究。每个点是在其参数的特定设置下使用特定算法通过1000步获得的平均奖励。

尽管它们很简单,但我们认为本章介绍的方法可以被认为是最先进的。 有更复杂的方法,但它们的复杂性和假设使得它们对于我们真正关注的完整强化学习问题是不切实际的。 从第5章开始,我们提出了解决完整强化学习问题的学习方法,这些方法部分地使用了本章探讨的简单方法。

虽然本章探讨的简单方法可能是我们目前所能做的最好的方法,但它们远远不能完全满意地解决平衡探索和利用的问题。

\(k\) 臂赌博机问题中平衡探索和利用的一种经过充分研究的方法是计算一种称为 Gittins指数 的特殊动作价值。 在某些重要的特殊情况下,这种计算是易处理的,直接导致最优解, 尽管它确实需要完全了解可能存在的问题,我们通常认为这是不可用的。 此外,这种方法的理论和计算易处理性似乎都没有概括为我们在本书其余部分考虑的完整强化学习问题。

Gittins索引方法是 贝叶斯 方法的一个实例,它假定在动作价值上已知初始分布,然后在每个步骤之后准确更新分布(假设真实动作价值是静止的)。 通常,更新计算可能非常复杂,但对于某些特殊分布(称为 共轭先验),它们很容易。 一种可能性是根据其作为最佳动作的后验概率在每个步骤选择动作。这种方法,有时称为 后验采样汤普森采样, 通常与我们在本章中介绍的最佳无分布方法类似。

在贝叶斯环境中,甚至可以设想计算探索和利用之间的最佳平衡。 可以针对任何可能的动作计算每个可能的立即奖励的概率以及由此产生的后验分布与动作价值的关系。 这种不断发展的分布成为问题的 信息状态。 给定一个视野,比如1000步,人们可以考虑所有可能的行动,所有可能的结果奖励,所有可能的下一步行动,所有下一个奖励,等等所有1000个步骤。 给定假设,可以确定每个可能的事件链的奖励和概率,并且只需要选择最好的事件。 但是,可能性树的增长非常迅速;即使只有两个动作和两个奖励,树也会有 \(2^2000\) 个叶子。 完全执行这种巨大的计算通常是不可行的,但也许它可以有效地近似。 这种方法将有效地将赌博机问题转化为完全强化学习问题的一个实例。 最后,我们可以使用近似强化学习方法,例如本书第二部分中介绍的方法来实现这一最优解。 但这是一个研究课题,超出了这本入门书的范围。

练习2.11(编程) 为练习2.5中概述的非平稳情况制作类似于图2.6的图像。 包括常量步长 \(varepsilon\) 贪婪算法,\(\alpha=0.1\)。 使用200,000步的运行,并且,作为每个算法和参数设置的性能度量,使用过去100,000步的平均奖励。

书目和历史评论

2.1 在统计学,工程学和心理学中研究了赌博机问题。在统计数据中, 赌博机问题属于Thompson(1933,1934)和Robbins(1952)引入并由Bellman(1956)研究的“实验的顺序设计”分类。 Berry和Fristedt(1985)从统计学的角度提供了对赌博机问题的广泛处理。 Narendra和Thathachar(1989)从工程角度处理赌博机问题,提供了关注它们的各种理论传统的良好讨论。 在心理学中,强盗问题在统计学习理论中发挥了作用(例如,Bush和Mosteller,1955;Estes,1950)。

术语贪婪通常用于启发式搜索文献中(例如,Pearl,1984)。 探索和利用之间的冲突在控制工程中被称为识别(或估计)与控制之间的冲突(例如,Witten,1976b)。 Feldbaum(1965)将其称为双重控制问题,指的是在试图控制不确定系统时,需要同时解决识别和控制这两个问题。 在讨论遗传算法的各个方面时,Holland(1975)强调了这种冲突的重要性, 将其称为利用需求与新信息需求之间的冲突。

2.2 我们的 \(k\) 臂赌博机问题的行动价值方法最初由Thathachar和Sastry(1985)提出。 这些通常被称为学习自动机文献中的估计算法。动作价值一词归功于Watkins(1989)。 第一个使用“\(\varepsilon\) 贪婪方法”的也可能是Watkins(1989,p.187),但这个想法很简单,以至于早期使用似乎很可能。

2.4-5 这种材料属于随机迭代算法的一般标题,Bertsekas和Tsitsiklis(1996)对此进行了详细介绍。

2.6 Sutton(1996)在强化学习中使用了乐观初始化。

2.7 Lai和Robbins(1985),Kaelbling(1993b)和Agrawal(1995)对使用上限置信边界的估计进行了早期工作。 我们在这里提出的UCB算法在文献中称为UCB1,最初由Auer,Cesa-Bianchi和Fischer(2002)开发。

2.8 梯度赌博机算法是Williams(1992)引入的基于梯度的强化学习算法的一个特例, 后来发展为我们在本书后面讨论的演员评论和策略梯度算法。 我们在这里的发展受到了Balaraman Ravindran(个人通信)的影响。 Greensmith,Bartlett和Baxter(2002,2004)和Dick(2015)在那里提供了对基线选择的进一步讨论。 像这样的算法的早期系统研究由Sutton(1984)完成。 动作选择规则(2.11)的术语 soft-max 归因于Bridle(1990)。这条规则似乎是Luce(1959)首次提出的。

2.9 Barto,Sutton和Brouwer(1981)引入了术语关联搜索和相应的问题。 关联强化学习这个术语也被用于关联搜索(Barto和Anandan,1985),但我们更倾向于将该术语保留为完整强化学习问题的同义词(如Sutton,1984)。 (并且,正如我们所指出的,现代文学也使用术语“语境赌博机”来解决这个问题。) 我们注意到Thorndike效应定律(引自第1章)通过引用情境之间的关联关系的形成来描述关联搜索(状态)和行动。 根据操作性或工具性条件的术语(例如,Skinner,1938),判别性刺激是一种刺激,表示存在特定的强化偶然事件。 在我们的术语中,不同的判别刺激对应于不同的状态。

2.10 Bellman(1956)是第一个展示如何使用动态规划来计算贝叶斯问题解决方案中探索和利用之间的最佳平衡的人。 Gittins指数方法归功于Gittins和Jones(1974)。 Duff(1995)展示了如何通过强化学习来学习Gittins指数的强盗问题。 Kumar(1985)的调查对这些问题的贝叶斯和非贝叶斯方法进行了很好的讨论。 信息状态一词来自关于部分可观察MDP的文献;参见,例如,Lovejoy(1991)。

其他理论研究侧重于探索的效率,通常表示算法可以快速实现最优决策策略。 形式化探索效率的一种方法是通过适应强化学习监督学习算法的 样本复杂度 的概念, 这是算法在学习目标函数时需要达到所需精度的训练样本的数量。 对强化学习算法的探索的样本复杂性的定义,是算法不选择近似最优动作的时间步数个数(Kakade,2003)。 Li(2012)在对强化学习中探索效率的理论方法的调查中讨论了这个和其他几种方法。 Russo,Van Roy,Kazerouni,Osband和Wen(2018)提供了对Thompson采样的全面现代处理。

第3章 有限马尔可夫决策过程

在本章中,我们将介绍有限马尔可夫决策过程或有限MDP的形式问题,我们将在本书的其余部分尝试解决这些问题。 这个问题涉及评价反馈,如在赌博机问题中,但也涉及一个关联方面,即在不同情况下选择不同的行动。 MDP是顺序决策的经典形式化,其中行动不仅影响直接奖励,还影响后续情况或状态,以及贯穿未来的奖励。 因此,MDP涉及延迟奖励以及交换即时与延迟奖励的需要。 在赌博机问题中,我们估计每个动作a的价值 \(q_*(a)\), 在MDP中我们估计每个状态s中每个动作a的价值 \(q_*(s, a)\), 或者我们估计给出最佳行动选择的每个状态的价值 \(v_*(s)\)。 这些依赖于状态的量对于准确地为个人行动选择的长期结果分配信用至关重要。

MDP是强化学习问题的数学理想化形式,可以对其进行精确的理论陈述。 我们介绍问题数学结构的关键元素,如回归,值函数和Bellman方程。 我们试图传达可能被用作有限MDP的各种可能的应用程序。 与所有人工智能一样,在适用范围和数学易处理性之间存在着一种矛盾。 在本章中,我们将介绍这种矛盾关系,并讨论它所暗示的一些权衡和挑战。 第17章介绍了在MDP之外进行强化学习的一些方法。

3.1 个体环境接口

MDP旨在直接构建从交互中学习以实现目标的问题。 学习者和决策者被称为 个体(agent)。它与之交互的东西,包括个体之外的所有东西,被称为 环境。 这些交互持续不断,个体选择动作同时环境响应那些动作并向个体呈现新情况 [1]。 环境还产生奖励,这是个体通过其行动选择寻求最大化的特殊数值。

_images/figure-3.1.png

图3.1:马尔可夫决策过程中的个体 - 环境交互。

更具体地,个体和环境在离散时间序列每一步相互作用,\(t = 0,1,2,3,\dots\) [2]。 在每个时间步t,个体接收环境 状态 \(S_{t} \in \mathcal{S}\) , 并在此基础上选择一个 动作\(A_{t}\in \mathcal{S}(s)\) [3]。 每一步后,作为它行动的结果,个体接收到一个 奖励 值, \(R_{t+1} \in \mathcal{R} \subset \mathbb{R}\), 并且自身处于一个新状态,\(S_{t+1}\) [4] , MDP和个体一起产生了一个如下所示的序列或 轨迹

(1)\[S_0,A_0,R_1,S_1,A_1,R_2,S_2,A_2,R_3,\dots\]

有限 MDP中,状态,动作和奖励 (\(\mathcal{S}\)\(\mathcal{A}\)\(\mathcal{R}\))的集合都具有有限数量的元素。 在这种情况下,随机变量 \(R_t\)\(S_t\) 具有明确定义的离散概率分布,仅取决于先前的状态和动作。 也就是说,对于这些随机变量的特定值,\(s^\prime \in \mathcal{S}\)\(r \in \mathcal{R}\), 在给定前一状态和动作的特定值的情况下,存在这些值在时间t发生的概率:

(2)\[p(s^\prime,r|s,a) \doteq Pr\{S_t=s^\prime,R_t=r|S_{t-1}=s,A_{t-1}=a\}\]

对所有 \(s^\prime, s \in \mathcal{S}\)\(\mathcal{r} \in \mathcal{R}\)\(a \in \mathcal{A}(s)\)。函数 \(p\) 定义了MDP的 动态。 方程中等号上的点提醒我们它是一个定义(在这个例子中是函数 \(p\)),而不是从先前定义得出的事实。 动力学函数 \(p : \mathcal{S} \times \mathcal{R} \times \mathcal{S} \times \mathcal{A} \to [0, 1]\) 是四个参数的普通确定性函数。 中间的“|”来自条件概率的符号, 但这里只是提醒我们 \(p\) 指定 \(s\)\(a\) 的每个选择的概率分布,即

(3)\[\sum_{s^\prime \in \mathcal{S}}\sum_{r \in \mathcal{R}}p(s^\prime,r|s,a)=1,对所有 s \in \mathcal{S},a \in \mathcal{A}(s)\]

马尔可夫 决策过程中,\(p\) 给出的概率完全表征了环境的动态。 也就是说,\(S_t\)\(R_t\) 的每个可能值的概率 仅取决于前一个状态和动作 \(S_{t-1}\)\(A_{t-1}\), 并且在给定它们的情况下,它们根本不依赖于先前的状态和动作。 最好将其视为对决策过程的限制,而不是对 状态 的限制。 状态必须包括有关过去的个体-环境交互的所有方面的信息,这些信息对未来有所影响。 如果确实如此,那么就说该状态拥有 马尔可夫性。我们将在本书中假设马尔可夫性, 尽管从第二部分开始我们将考虑不依赖它的近似方法,并且在第17章中我们考虑如何从非马尔可夫观察中学习和构造马尔可夫状态。

从四参数动力学函数p中,可以计算出人们可能想知道的关于环境的任何其他信息,例如状态转移概率(我们将其略微滥用符号表示为三参数函数 \(p : \mathcal{S} \times \mathcal{S} \times \mathcal{A} \to [0, 1]\)),

(4)\[p(s^\prime|s,a) \doteq Pr\{S_t=s^\prime|S_{t-1}=s,A_{t-1}=a\}=\sum_{r\in\mathcal{R}}p(s^\prime,r|s,a)\]

我们还可以将状态 - 动作对的预期奖励计算为双参数函数 \(r : \mathcal{S} \times \mathcal{A} \to \mathbb{R}\)

(5)\[r(s,a)\doteq\mathbb{E}\left[R_t|S_{t-1}=s,A_{t-1}=a\right]=\sum_{r\in\mathcal{R}}r\sum_{s^\prime\in\mathcal{S}}p(s^\prime,r|s,a)\]

以及状态 - 行动 - 下一状态三元组的预期奖励作为三个参数函数 \(r : \mathcal{S} \times \mathcal{A} \times \mathcal{S} \to \mathbb{R}\)

(6)\[r(s,a,s^\prime)\doteq\mathbb{E}\left[R_t|S_{t-1}=s,A_{t-1}=a,S_t=s^\prime\right]=\sum_{r\in\mathcal{R}}r\frac{p(s^\prime,r|s,a)}{p(s^\prime|s,a)}\]

在本书中,我们通常使用四参数p函数(3.2),但这些其他符号中的每一个偶尔也很方便。

MDP框架是抽象和灵活的,可以以不同的方式应用在很多不同的问题上。 例如,时间步长不需要指固定的实时间隔;它们可以指任意连续的决策和行动阶段。 这些动作可以是低级控制,例如施加到机器人手臂的电动机的电压,或高级​​决策,例如是否要吃午餐或进入研究生院。 同样,状态也可以采取各种各样的形式。它们可以完全由低级感觉决定,例如直接传感器读数, 或者它们可以更高级和抽象,例如房间中物体的符号描述。 可以基于对过去的感觉的记忆,甚至是完全精神的或主观的来构成一个状态。 例如,个体可能处于不确定对象在哪里的状态,或者在某些明确定义的意义上感到惊讶的状态。 同样,某些行为可能完全是精神上的或可计算的。例如,某些操作可能会控制代理选择考虑的内容,或者它关注的重点。 一般而言,行动可以是我们想要学习如何制定的任何决定,而状态可以是我们可以知道的任何可能有助于制作它们的任何事物。

特别是,个体和环境之间的边界通常与机器人或动物身体的物理边界不同。 通常,边界更接近于个体。例如,机器人及其传感硬件的电动机和机械联动件通常应被视为环境的一部分而不是个体的一部分。 同样,如果我们将MDP框架应用于人或动物,肌肉,骨骼和感觉器官应被视为环境的一部分。 也许,奖励可以在自然和人工学习系统的物理体内计算,但被认为是个体的外部。​

我们遵循的一般规则是,任何不能被个体任意改变的东西都被认为是在它之外,因此也是其环境的一部分。 我们不假定个体对环境一无所知。例如,个体通常非常了解如何根据其动作及其所处的状态来计算奖励。 但是我们总是认为奖励计算是在个体之外的,因为它是根据个体的任务所定义的,因此不能由个体来随意改变。 事实上,在某些情况下,个体就算知道它的环境是如何运行的,并且仍然面临着艰难的强化学习任务, 正如我们可以知道一个魔方是如何运行的,但仍然无法解开它。 个体-环境的边界代表着对个体的绝对控制能力的限制,而不是限制它的知识。

个体-环境的边界可以位于不同的地方以用于不同的目的。在复杂的机器人中,许多不同的个体可能同时运行,每个个体都有自己的边界。 例如,一个个体可以做出高级决策,高级决策可由低级个体面临的状态组成,从而实现高层次的决策。 在实践中,一旦选择了特定的状态,动作和奖励,就确定个体-环境边界,从而确定了感兴趣的特定决策制定任务。

MDP框架是从相互作用的目标导向学习的问题中抽象出来的。 它提出无论传感,记忆和控制装置的细节,以及任何目标试图达到的目标, 学习目标导向行为的任何问题都可以减少为个体及其环境之间来回传递的三个信号: 一个信号表示个体做出的选择(动作),一个信号表示作出选择的基础(状态),以及另一个信号来定义个体的目标(奖励)。 这个框架可能不足以有效地代表所有决策学习问题,但它已被证明是广泛有用和适用的。

当然,特定的状态和操作因任务而异,并且它们的表示方式会对性能产生很大影响。 在强化学习中,与其他类型的学习一样,这种表征性选择目前更多的是艺术而非科学。 在本书中,我们提供了一些关于表达状态和行为的好方法的建议和例子,但我们主要焦点的是一旦表示被确定,如何学习行为的一般原则。

例3.1:生物反应器 假设强化学习用于确定生物反应器(用于生产有用化学品的大量营养物和细菌)的瞬间温度温度和搅拌速率。 这种应用中的动作可以是传递到下级控制系统的目标温度和目标搅拌速率,该控制系统又直接激活加热元件和马达以实现目标。 状态可能是有可能被过滤和延迟热电偶和其他传感器读数,加上代表大桶和目标化学品成分的符号输入。 奖励可能是生物反应器产生有用化学品的速率的逐时测量。 请注意,此处每个状态都是传感器读数和符号输入的列表或矢量,每个动作都是由目标温度和搅拌速率组成的矢量。 强化学习任务的典型特征是具有这种结构化表示的状态和动作。另一方面,奖励总是单个数字。

例3.2:拾取和放置机器人 考虑使用强化学习来控制机器人手臂在重复拾取和放置任务中的运动。 如果我们想要学习快速和平稳的运动,则当前个体将必须直接控制马达并且具有关于机械联动装置的当前位置和速度的低延迟信息。 在这种情况下的动作可能是每个关节处施加到每个电动机的电压,并且状态可能是关节角度和速度的最新读数。 对于成功拾取和放置的每个对象,奖励可能为+1。为了鼓励平稳移动,在每个时间步骤上,可以根据动作的瞬间“急动”给出小的负面奖励。

练习3.1 设计适合MDP框架的三个自己的示例任务,为每个任务确定其状态,动作和奖励。 尽可能使这三个例子彼此 不同。该框架是抽象和灵活的,可以以多种不同的方式应用。在至少一个示例中以某种方式扩展其限制。

练习3.2 MDP框架是否足以有效地代表 所有 目标导向的学习任务?你能想到任何明显的例外吗?

练习3.3 考虑驾驶问题。你可以根据加速器,方向盘和制动器(即你的身体与机器接触的位置)来定义动作。 或者你可以将它们定义得更远,比如橡胶与道路相遇,考虑你的动作是轮胎扭矩。 或者你可以进一步定义它们,比如说,你的大脑掌控身体,肌肉抽搐的动作来控制你的四肢。 或者你可以达到一个更高的层次,说你的行动是你选择开车的地方。 什么是个体和环境之间合适的层次和位置分界?在什么基础上,该线的一个位置优先于另一个? 是否有任何根本原因选择一个位置而不是另一个位置,还是随意选择?

例3.3:环保机器人

移动机器人的工作是在办公室环境中收集空的汽水罐。它有用于检测汽水罐的传感器,以及可以将它们拾起并放置在机箱中的臂和夹具;它使用可充电电池供电。 机器人的控制系统具有用于解释传感器信息,用于导航以及用于控制手臂和夹具的部件。 关于如何搜索汽水罐的高级决策是由强化学习个体根据电池的当前充电水平做出的。 举一个简单的例子,我们假设只能区分两个电荷电平,包括一个小的状态集 \(\mathcal{S}=\{高,低\}\)。 在每个状态,个体可以决定是否(1)在一段时间内主动 搜索 汽水罐,(2)保持静止并 等待 某人给它汽水罐,或(3)返回其本垒为电池 充电。 当能量水平很 时,充电总是愚蠢的,所以我们不会将其包含在为此状态设定的动作中。 动作集是 \(\mathcal{A}(高)=\{搜索, 等待\}\)\(\mathcal{A}(低)=\{搜索, 等待, 充电\}\)

奖励在大多数情况下为零,但是当机器人固定空罐时变为正值,或者如果电池完全耗尽则变为负值。 找到汽水罐的最好方法是主动搜索它们,但这会耗尽机器人的电池电量,而等待则不会。 每当机器人正在搜索时,存在其电池耗尽的可能性。在这种情况下,机器人必须关闭并等待获救(产生低回报)。 如果电池电量水平 ,则可以始终完成一段主动搜索而没有耗尽电池的风险。 以 电量水平开始的搜索周期使电量水平以概率 \(\alpha\) 保持并且以概率 \(1-\alpha\) 降低至 电量水平。 另一方面,当电量水平 时进行的搜索周期使其以概率 \(\beta\) 并且以概率 \(1-\beta\) 消耗电池。 在后一种情况下,必须拯救机器人,然后将电池重新充电至 电量水平。 机器人收集的每个汽水罐都可以作为单位奖励计算,而每当机器人必须获救时,奖励为-3。 用 \(r_{搜索}\)\(r_{等待}\),其中 \(r_{搜索}>r_{等待}\),分别表示机器人在搜索和等待时将收集的预期罐数(以及预期的奖励)。 最后,假设在跑步回家期间不能收集罐头,并且在电池耗尽的过程中不能收集罐头。 这个系统是一个有限的MDP,我们可以记下转移概率和预期的奖励,动态如左表所示:

_images/table_figure.png

请注意,表中有一行代表当前状态 \(s\),动作 \(a\)\(a\in\mathcal{A}(s)\) 的每种可能组合。 某些转换的概率为零,因此没有为它们指定预期的奖励。右侧所示是另一种有用的方法,可以总结有限MDP的动态,称为 转换图。 有两种节点:状态节点动作节点。每个可能的状态都有一个状态节点(由状态名称标记的大圆圈), 以及每个状态-动作对的动作节点(由行动名称标记并由线连接的小实心圆圈)。 从状态 \(s\) 开始并采取动作 \(a\),你将沿着从状态节点 \(s\) 到动作节点 \((s,a)\) 的线路移动。 然后,环境通过离开动作节点 \((s,a)\) 的箭头之一转换到下一个状态的节点。 每个箭头对应一个三元组 \((s,s^\prime,a)\),其中 \(s^\prime\) 是下一个状态,我们用转移概率 \(p(s^\prime|s,a)\) 标记箭头, 以及该转换的预期回报 \(r(s,a,s^\prime)\)。请注意,标记离开动作节点的箭头的转移概率和总是为1。

练习3.4 给出一个类似于例3.3中的表,但是对于 \(p(s^\prime,r|s,a)\)。 它应该有 \(s, a, s^\prime, r\)\(p(s^\prime,r|s,a)\) 的列, 以及 \(p(s^\prime,r|s,a)>0\) 的每个4元组的行。

3.2 目标和奖励

在强化学习中,个体的目的或目标被形式化为从环境传递到个体的特殊信号(称为 奖励)。 在每个时间步骤,奖励是一个简单的数字,\(R_{t} \in \mathbb{R}\)。非正式地,个体的目标是最大化其收到的总奖励。 这意味着最大化不是立即奖励,而是长期累积奖励。我们可以用 奖励假说 来清楚表达这个非正式的想法:

所有我们所说的目标和目的都可以被认为是所接收的标量信号(称为奖励)的累积和的预期值的最大化。

使用奖励信号来形式化目标的想法是强化学习的最显着特征之一。

尽管根据奖励信号制定目标可能最初看起来有限,但在实践中它已被证明是可行的和广泛适用的。 看到这一点的最佳方法是考虑如何使用或可能使用它的示例。例如,为了让机器人学会走路,研究人员在每个时间步长上提供了与机器人向前运动成比例的奖励。 在让机器人学会如何逃离迷宫时,在逃脱前经过的每一步的奖励通常为-1;这鼓励代理人尽快逃脱。 为了让机器人学会找到并收集空的汽水罐进行回收利用,人们可能会在大多数情况下给予奖励零,然后每收集一次空罐给+1的回报。 人们可能还想在机器人碰到东西或者有人大喊大叫时给予机器人负面的奖励。 对于学习玩跳棋或国际象棋的代理人来说,获胜的自然奖励为+1,失败为-1,绘图和所有非终结位置为0。

您可以看到所有这些示例中发生的情况。个体总是学会最大化其奖励。 如果我们希望它为我们做点什么,我们必须以这样的方式为它提供奖励,即在最大化它们的同时,个体也将实现我们的目标。 因此,我们建立的奖励真正表明我们想要实现的目标至关重要。 特别是,奖励信号不是向个体提供关于 如何 实现我们想要做的事情的先验知识的地方 [5]。 例如,国际象棋游戏个体应该仅仅因为实际获胜而获得奖励,而不是为了实现拿走对手的棋子或控制棋盘中心这样的子目标。 如果实现这些类型的子目标得到奖励,那么个体可能会找到一种方法来实现它们而不实现真正的目标。 例如,即使以失去游戏为代价,它也可能找到一种方法来获取对手的棋子。奖励信号是你与机器人沟通的 方式,而不是您希望 如何 实现 [6]

3.3 回报和情节

到目前为止,我们已经讨论了非正式学习的目标。我们已经说过,个体的目标是获得从长远来看的最大累积奖励。 这如何正式定义?如果在时间步骤t之后接收的奖励序列表示为 \(R_{t + 1}, R_{t + 2}, R_{t + 3}, \dots\), 那么,我们希望最大化这个序列的具体什么方面?一般而言,我们寻求最大化 预期收益,其中收益 \(G_{t}\) 被定义为奖励序列的某个特定函数。 在最简单的情况下,回报是奖励的总和:

(7)\[G_{t} \doteq R_{t+1} +R_{t+2} + R_{t+3} + \dots + R_{T},\]

其中T是最后一步。这种方法在存在最终时间步骤的自然概念的应用中是有意义的, 也就是说,当个体-环境交互自然地分解为子序列时,我们称之为 情节 [7],例如玩游戏,穿过迷宫,或任何形式的重复互动。 每个情节在称为 终点 状态的特殊状态结束,随后是重置到标准起始状态或从起始状态的标准分布的抽样。 即使你认为情节以不同的方式结束,例如输赢游戏,下一情节的开始也与上一情节的结束无关。 因此,所有这些情节都可以被认为是以相同的终点状态结束,对不同的结果有不同的奖励。具有这种情节的任务被称为 情节任务。 在情节任务中,我们有时需要将所有非终结状态的集合,表示为 \(\mathcal{S}\) , 与所有状态的集合加上终端状态,表示为 \(\mathcal{S^+}\) ,区分开来。 终止时间T是随机变量,从情节到情节通常不同。

另一方面,在许多情况下,个体-环境交互不会自然地分解为可识别的事件,而是持续不断地进行。 例如,这将是一个自然的方式来制定一个持续的过程控制任务,或具有长寿命的机器人上的应用。我们将这些称之为 持续任务。 回报公式(3.7)对于连续的任务是有问题的,因为最终时间步长将是 \(T=\infty\),并且返回,这是我们试图最大化的,本身可以很容易是无限的。 (例如,假设个体在每个时间步都获得+1的奖励。)因此,在本书中,我们通常使用返回的定义,在概念上稍微复杂但在数学上更简单。

我们需要的另一个概念是 衰减因子。根据这种方法,个体尝试选择动作,以使其在未来接收的衰减的奖励的总和最大化。 特别是,它选择 \(A_{t}\) 来最大化预期的 衰减回报

(8)\[G_{t} \doteq R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \dots = \sum_{k=0}^{\infty}\gamma^k R_{t+k+1}\]

其中 \(\gamma\) 是参数,\(0 \leq\gamma \leq 1\),称为 衰减因子

衰减率决定了未来奖励的现值:未来收到的k个时间步骤的奖励价值仅为立即收到的 \(\gamma^{k-1}\) 倍。 如果奖励是立即被接收的则是值得的。 如果 \(\gamma < 1\),只要奖励序列 \(\{R_{k}\}\) 有界,则(3.8)中的无限和具有有限值。 如果 \(\gamma = 0\),个体是“短视”的,只关注最大化立即奖励: 在这种情况下,其目标是学习如何选择 \(A_{t}\) 以使 \(R_{t+1}\) 最大化。 如果每个个体的行为恰好只影响即时奖励,而不影响未来的奖励,那么短视个体可以通过单独最大化每个即时奖励来最大化(3.8)。 但一般来说,最大化立即奖励的行为可以减少对未来奖励的获取,从而减少回报。 当 \(\gamma\) 接近1时,回报目标更加强烈地考虑了未来的回报;个体变得更有远见。

连续时间步骤的回报以一种对强化学习的理论和算法很重要的方式相互关联:

(9)\[\begin{split}\begin{aligned} G_{t} &\doteq R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \gamma^3 R_{t+4} + \dots \\ &= R_{t+1} + \gamma(R_{t+2} + \gamma R_{t+3} + \gamma^2 R_{t+4} + \dots) \\ &= R_{t+1} + \gamma G_{t+1} \end{aligned}\end{split}\]

请注意,这适用于所有时间步骤 \(t<T\),即使终止发生在 \(t+1\),如果我们定义 \(G_T=0\),也是适用的。 这通常可以很容易地计算奖励序列的回报。

请注意,尽管回报公式(3.8)是无穷多个项的总和,但奖励非零并且为常数,如果 \(\gamma < 1\),则它仍然是有限的。 例如,如果奖励是常数+1,那么返回是

(10)\[G_t = \sum_{k=0}^{\infty}\gamma^k = \frac{1}{1-\gamma}\]

练习3.5 3.1节中的等式是针对连续的情况,需要进行修改(非常轻微)以应用于情节任务。通过给出(3.3)的修改版本,表明你知道所需的修改。

pole_balancing

示例3.4:杆平衡 这项任务的目的是将力施加到沿着轨道移动的推车上,以便保持铰接在推车上的杆不会翻倒: 如果杆从垂直方向落下一个给定角度或者如果推车超过给定角度,则会发生故障离开赛道。 每次故障后,极点都会重置为垂直。这个任务可以被视为偶发事件,其中自然事件是重复平衡极点的尝试。 在这种情况下,对于没有发生故障的每个时间步骤,奖励可以是+1,因此每次返回将是直到失败的步骤数。 在这种情况下,永远成功的平衡将意味着无限的回报。或者,我们可以使用衰减将极点平衡视为一项持续性任务。 在这种情况下,每次失败时奖励为1,其他时间奖励为零。然后每次返回 \(1-\gamma^K\) 与K相关,其中K是失败前的时间步数。 在任何一种情况下,通过尽可能长时间保持极点平衡来使回报最大化。

练习3.5 假设你将杆平衡作为一个情节性任务,但是也使用了衰减因子,除了-1是失败之外,所有奖励都是零。 那么每次回报是多少?这个回报与有衰减的持续任务有什么不同?

练习3.7 想象一下,你正在设计一个运行迷宫的机器人。你决定在逃离迷宫时奖励+1,在其他时候奖励零。 任务似乎自然地分解为情景,即连续贯穿迷宫的运行,所以你决定把它当作一个偶然的任务,其目标是最大化预期的总奖励(3.7)。 运行学习个体一段时间后,您会发现它从迷宫中逃脱没有任何改善。出了什么问题?你是否有意识地向个体传达了你希望它实现的目标?

练习3.8 假设 \(\gamma=0.5\) 并且接收以下奖励序列 \(R_1=1\)\(R_2=2\)\(R_3=6\)\(R_4=3\),并且 \(R_5=2\),其中 \(T=5\)\(G_0,G_1,\dots,G_5\) 是多少? 提示:反向工作。

练习3.9 假设 \(\gamma=0.9\) 并且奖励序列是 \(R_1=2\),接着是无限序列的7s。 \(G_1\)\(G_0\) 是什么?

练习3.10 证明(3.10)中的第二个等式。

3.4 情节和持续任务的统一符号

在上一节中,我们描述了两种强化学习任务,其中一种是个体-环境交互自然地分解为一系列单独的情节(情节任务),而另一种则不是(连续任务)。 前一种情况在数学上更容易,因为每个动作仅影响在情节期间随后收到的有限数量的奖励。 在本书中,我们有时会考虑一种问题,有时候会考虑另一种问题,但通常都会考虑。 因此,建立一种能够让我们同时准确地谈论这两种情况的符号是有用的。

准确地描述情节性任务需要一些额外的符号。我们需要考虑一系列情节,而不是一个长序列的时间步骤,每个情节都由有限的时间步骤序列组成。 我们从零开始重新编号每个情节的时间步长。因此,我们不仅要参考时间 \(t\) 的状态表示 \(S_{t}\), 而且参考在情节 \(i\) 和时间 \(t\) 的状态表示 \(S_{t,i}\) (同样地,对于 \(A_{t,i}\)\(R_{t,i}\)\(\pi_{t,i}\)\(T_{i}\) 等符号意义相似)。 然而,事实证明,当我们讨论情节任务时,我们几乎从不必区分不同的情节。 我们几乎总是在考虑一个特定的情节,或者陈述对所有情节都适用的东西。 因此,在实践中,我们几乎总是通过省略情节编号的明确引用来使用符号。 也就是说,我们写 \(S_{t}\) 来引指 \(S_{t,i}\) 等等。

我们需要另一个约定来获得涵盖情节和持续任务的单一符号。 在一种情况下(3.7),我们将收益定义为有限数量的项的和,而在另一种情况下,将收益定义为无限数量的项(3.8)。 这两个可以通过考虑情节终止来统一,即进入一个特殊的吸收状态,该状态仅转换为自身并且仅产生零奖励。 例如,考虑状态转换图:

state transition diagram

state transition diagram

这里实心方块表示对应于情节结束的特殊吸收状态。从 \(S_{0}\) 开始,我们得到奖励序列+1,+1,+1,0,0,0,…。 总结这些,我们得到相同的回报,无论我们是否在前 \(T\) 个奖励求和(这里 \(T=3\))还是在整个无限序列上求和。 即使我们引入衰减因子这仍然成立。因此,我们可以根据(3.8),使用在不需要时忽略情节编号的惯例来定义回报, 并且包括如果总和仍然被定义时 \(\gamma = 1\) 的可能性(例如,因为所有情节终止)。或者,我们也可以写回报如下

(11)\[G_t \doteq \sum_{k=t+1}^{T} \gamma^{k-t-1} R_k\]

包括 \(T = \infty\)\(\gamma = 1\) (但不能同时存在)的可能性。 我们在本书的剩余部分中使用这些约定来简化符号,并表达情节和持续任务之间的近乎相似。 (之后,在第10章中,我们将介绍一个持续未衰减的形式。)

3.5 策略和价值函数

几乎所有的强化学习算法都涉及估计状态(或状态-动作对)的 价值函数, 它们估计个体在给定状态下的 好坏程度 (或者在给定状态下执行给定动作的程度有多好)。 这里的“有多好”的概念是根据未来的奖励来定义的,或者准确的的说是预期回报方面。 当然,个体未来可能获得的回报取决于它将采取的行动。因此,价值函数是根据特定的行为方式来定义的,称为策略。

形式上,策略 是从状态到选择每个可能动作的概率的映射。如果个体在时间 \(t\) 遵循策略 \(\pi\), 则 \(\pi(a|s)\) 是如果 \(S_t=s\),则 \(A_t=a\) 的概率。 像 \(p\) 一样,\(\pi\) 是一个普通的函数; \(\pi(a|s)\) 中间的“|”仅提醒它为每个 \(s\in \mathcal{S}\) 定义了 \(a\in \mathcal{A}(s)\) 的概率分布。 强化学习方法指定了个体的策略如何因其经验结果而变化。

练习3.11 如果当前状态为 \(S_t\),并且根据随机策略 \(\pi\) 选择动作, 则对于 \(\pi\) 和四参数函数 \(p\) (3.2),\(R_{t+1}\) 的期望是多少?

在状态 \(s\) 下,策略 \(\pi\) 下的 价值函数 表示为 \(v_\pi(s)\) , 是从 \(s\) 开始并且之后遵循策略 \(\pi\) 的预期收益。 对于 MDPs,我们可以正式将 \(v_\pi(s)\) 定义为

(12)\[v_\pi(s) \doteq \mathbb{E}_\pi\left[G_t|S_t=s\right] = \mathbb{E}_\pi\left[\sum_{k=0}^{\infty} \gamma^k R_{t+k+1}|S_t=s\right],对所有 s\in \mathbb{S}\]

其中 \(\mathbb{E}[\dot]\) 表示个体遵循策略 \(\pi\) 的随机变量的期望值, \(t\) 是任意的时间步长。 请注意,如果有终止状态的话,其值一直为0。我们称函数 \(v_\pi\)策略 \(\pi\) 的状态—价值函数

同样,我们定义在策略 \(\pi\),状态 \(s\) 下采取动作 \(a\) 的价值, 表示为 \(q_\pi(s,a)\),作为从 \(s\) 开始的,采取行动` a \(, 此后遵循策略 :math:\)pi` 的预期回报:

(13)\[q_\pi(s,a) \doteq \mathbb{E}_\pi\left[G_t|S_t=s,A_t=a\right] = \mathbb{E}_\pi\left[\sum^{\infty}_{k=0}\gamma^kR_{t+k+1}|S_t=s,A_t=a\right]\]

我们称 \(q_\pi\) 为策略 \(\pi\) 的动作值函数。

练习3.12\(q_\pi\)\(\pi\) 给出 \(v_\pi\) 的等式。 练习3.13 根据 \(v_\pi\) 和四参数 \(p\) 给出 \(q_\pi\) 的等式。

价值函数 \(v_\pi\)\(q_\pi\) 可以根据经验估计。 例如,如果个体遵循策略 \(\pi\),作为遇到的状态的次数接近无穷大。 如果为每个状态采取的每项行动保留单独的平均值,那么这些平均值将同样收敛于行动价值 \(q_\pi(s,a)\)。 我们称这种估计方法为 蒙特卡洛方法,因为它们涉及对实际收益的许多随机样本进行平均。 这些方法在第5章中介绍。当然,如果有很多状态,那么单独为每个状态保持单独的平均值可能是不切实际的。 相反,个体将必须维护 \(v_\pi\)\(q_\pi\) 作为参数化函数(参数少于状态),并调整参数以更好地匹配观察到的返回。 这也可以产生准确的估计,尽管很大程度上取决于参数化函数逼近器的性质。这些可能性在本书的第二部分中讨论。

在强化学习和动态规划中使用的价值函数的基本属性是它们满足类似于我们已经为返回建立的递归关系(3.9)。 对于任何策略 \(\pi\) 和任何状态 \(s\)\(s\) 的值与其可能的后继状态的值之间保持以下一致性条件:

(14)\[\begin{split}\begin{aligned} v_\pi(s) &\doteq \mathbb{E}_\pi[G_t|S_t=s] \\ &= \mathbb{E}_\pi[R_{t+1} + \gamma G_{t+1}|S_t=s] (由 (3.9)) \\ &= \sum_a\pi(a|s) \sum_{s^\prime}\sum_r p(s^\prime,r|s,a) \left[r+\gamma\mathbb{E}_\pi[G_{t+1}|S_{t+1}=s^\prime]\right] \\ &= \sum_a\pi(a|s) \sum_{s^\prime,r}p(s^\prime,r|s,a)[r+\gamma v_\pi(s^\prime)], 对所有 s\in\mathcal{S} \end{aligned}\end{split}\]

其中隐含的动作 \(a\) 取自集合 \(\mathcal{A}(s)\), 下一个状态 \(s^\prime\) 取自集合 \(\mathcal{S}\) (或者在情节问题的情况下取自 \(\mathcal{S}+\)), 并且奖励 \(r\) 取自集合 \(\mathcal{R}\)。 注意,在最后的等式中我们如何合并两个和,一个在 \(s^\prime\) 的所有值上, 另一个在 \(r\) 的所有值上,合并为所有可能值的一个和。 我们经常使用这种合并的和来简化公式。请注意最终表达式如何轻松作为期望值读取。 它实际上是三个变量 \(a\)\(s^\prime\)\(r\) 的所有值的总和。 对于每个三元组,我们计算其概率 \(\pi(a|s)p(s^\prime,r|s,a)\), 用该概率对括号中的数量进行加权,然后对所有可能性求和得到预期值。

_images/backup_diagram_for_v_pi.png

\(v_\pi\) 的备份图

公式(3.14)是 \(v_\pi\) 的贝尔曼方程。它表达了状态价值与下一个状态价值之间的关系。 考虑从一个状态向可能的下一个状态的情况,如右图所示。每个空心圆表示状态,每个实心圆表示状态-动作对。 从状态 \(s\) 开始,顶部的根节点,个体可以采取基于其策略 \(\pi\) 的任何一组动作,图中显示了三个。 这些动作中的每一个,环境可以响应下一个状态中的其中一个,\(s^\prime\) (图中显示两个), 以及奖励 \(r\),取决于函数 \(p\) 给出的动态。 贝尔曼方程(3.14)对所有可能性进行平均,通过其发生概率对每个可能性进行加权。 它指出,开始状态的值必须等于预期的下一个状态的(衰减)值,加上沿途预期的奖励。

值函数 \(v_\pi\) 是其贝尔曼方程的唯一解。 我们在后面的章节中展示了贝尔曼方程如何构成一些计算,近似和学习 \(v_\pi\) 方法的基础。 我们称这样的图表为 备份图,因为它们是展示了作为强化学习方法核心的更新或 备份 操作的基础的联系。 这些操作将值信息从其后继状态(或状态—动作对) 传回 状态(或状态-动作对)。 我们在本书中使用备份图来提供我们讨论的算法的图形摘要。 (注意,与转换图不同,备份图的状态节点不一定代表不同的状态;例如,一个状态可能是它自己的下一个状态)。

示例3.5:网格世界 图3.2(左图)显示了简单有限MDP的矩形网格世界表示。网格的单元格对应于环境的状态。 在每个单元格中,可以有四个动作:北,南,东,西,这明确让个体在网格上的相应方向上移动一个单元格。 使个体离开网格的操作会使其位置保持不变,但会导致-1的奖励。 除了将个体从特殊状态 \(A\)\(B\) 移出的行为,其他行为奖励值为 \(0\)。 在状态 \(A\),所有四个动作都会产生 \(+10\) 的奖励,并将个体送到 \(A^\prime\) 。 从状态 \(B\),所有动作都会获得 \(+5\) 的奖励,并将个体转到 \(B^\prime\)

figure-3.2

图3.2 网格世界的例子:等概率随机随机策略的特殊奖励动态(左)和状态值函数(右)。

假设个体在所有状态中以相等的概率选择所有四个动作。图3.2(右)显示了该策略的值函数 \(v_\pi\), 对于这个策略,衰减因子 \(\gamma=0.9\)。该值函数是通过求解线性方程(3.14)来计算的。 注意下边缘附近的负值;这些是在随机策略下高概率击中网格边缘的的结果。 状态 \(A\) 是本策略下的最佳状态,但其预期收益低于即时奖励 \(10\), 由于个体从 \(A\)\(A^\prime\) ,从而可能进入电网边缘。 另一方面,状态 \(B\) 的当即奖励高于 \(5\) , 因为个体从 \(B\) 被带到状态 \(B^\prime\) ,具有正值。 从 \(B^\prime\) 来看,进入边缘的预期惩罚(负回报)超过了困在 \(A\)\(B\) 上的预期收益的补偿。

练习3.14 在练习3.5中,图3.2(右)所示的值函数 \(v_\pi\) ,贝尔曼方程(3.12)必须保持函数中的每个状态。 以数字方式显示该等式的相对于其四个相邻状态,价值为 \(+2.3\)\(+0.4\)\(-0.4\)\(+0.7\),保持中心状态,值为 \(+0.7\)。(这些数字只能精确到一位小数。)

练习3.15 在网格世界的例子中,奖励对于目标是正的奖励,对于走进世界的边缘是负的惩罚,而在其余的时间里是零。 这些奖励的符号是重要的吗,还是只是他们之间的间隔?请证明,使用(3.8), 向所有奖励添加常量 \(c\) 会使所有状态的价值增加一个常数 \(v_c\) ,因此不会影响任何策略下任何状态的相对值。 \(v_c\) 关于 \(c\)\(\gamma\) 是什么 ?

练习3.16 现在考虑在情节任务,例如走迷宫中给所有的奖励增加一个常量 \(c\)。 这是否会有什么影响,还是会像以上那些连续任务那样保持不变?是或者否,为什么? 举个例子。

示例3.6:高尔夫 为了将打高尔夫球作为强化学习任务,我们将每次击球的惩罚(负回报)计算为 \(-1\) ,直到我们将球打入洞中。 状态是高尔夫球的位置。一个状态的值是从该位置到该洞的击球数量的负数。我们的动作是我们如何瞄准和摆球,当然还有我们选择的球杆。 让我们把前者视为给定的,只考虑球杆的选择,我们假设是推杆或打出去。 图3.3的上半部分显示了总是使用推杆的策略的可能的状态值函数 \(v_{putt}(s)\) 。 最终 入洞 作为终结状态值为 \(0\) 。 从绿色区域(球道的尽头)的任何地方,我们假设我们可以做一个推杆;这些地方状态值为 \(-1\)。 离开绿色区域,我们不能通过推杆入洞,值越大。 如果我们可以通过推杆达到绿色区域状态,那么该状态必须具有比绿色区域小的值,即 \(-2\)。 为了简单起见,让我们假设我们可以非常精确和准确地推杆,但范围有限。 这给了我们图中标有 \(-2\) 的尖锐轮廓线;该线和绿色区域之间的所有位置都需要打两杆才能完成入洞。 类似地,\(-2\) 轮廓线的投放范围内的任何位置必须具有 \(-3\) 的值,依此类推,可以获得图中所示的所有轮廓线。 推杆不会让我们脱离沙地陷阱,所以它们的值为 \(-\infty\) 。 总的说,通过推杆,我们需要六杆从球座入洞。

figure-3.3

图3.3: 高尔夫球示例:用于推杆(上面)的状态价值函数和使用挥杆的最佳动作价值函数(下图)。

_images/q_pi_backup_diagram.png

\(q_\pi\) 的备份图

练习3.17 动作价值,即 \(q_\pi\) 的贝尔曼方程是什么? 必须根据状态—动作对 \((s,a)\) 的可能后继的动作价值 \(q_\pi(s^\prime,a^\prime)\) 给出动作值 \(q_\pi(s,a)\)。 提示:对应于该方程的备用图在右图中给出。显示与(3.14)类似的方程序列,但用于动作价值。

练习3.18 状态的值取决于在该状态下可能的动作的值以及当前策略下每个动作的可能性。 我们可以根据状态的小的备份图来考虑这一点,并考虑到每个可能的操作:

exercise-3.18

根据给定 \(S_t=s\) 的预期叶节点 \(q_\pi(s,a)\) 的值, 给出对根节点 \(v_\pi(s)\) 的值的对应于该直觉和图表的方程。 这个方程式应该包含一个符合策略 \(\pi\) 条件的预期。 然后给出第二个等式,其中期望值以 \(\pi(a|s)\) 方式明确地写出,使得等式中不出现预期值符号。

练习3.19 动作值 \(q_\pi(s,a)\) 取决于预期的下一个奖励和剩余奖励的预期总和。 再次,我们可以通过一个小的备份图来考虑这一点,这一个根源于一个动作(状态—动作对),并分支到可能的下一个状态:

exercise-3.19

给定 \(St = s\)\(A_t= a\), 根据预期的下一个奖励 \(R_{t+1}\) 和预期的下一个状态值 \(v_\pi(S_{t+1})\), 给出与这个直觉和图表对应的方程式的动作值 \(q_\pi(s,a)\)。 这个方程式应该包括期望值,但 不包括 一个符合策略的条件。 然后给出第二个方程,用(3.2)定义的 \(p(s^\prime,r|s,a)\) 明确地写出期望值,使得方程式中不会出现预期值符号。

3.6 最优策略和最优价值函数

解决强化学习任务大概意味着要从长远的角度找到一个取得很大回报策略。 对于有限MDP,我们可以通过以下方式精确地定义一个最优策略。价值函数对策略进行部分排序。 如果策略 \(\pi\) 所有状态的预期返回值大于或等于策略 \(\pi^\prime\) 的值, 则该策略 \(\pi\) 被定义为优于或等于策略 \(\pi^\prime\)。 换句话说,对所有 \(s\in \mathcal{S}\), 当且仅当 \(v_\pi(s)\ge v_{\pi^{^\prime}}(s)\) 时,\(\pi\ge\pi^\prime\) 成立。 总是至少有一个策略优于或等于所有其他策略。这个策略称为 最优策略。 虽然可能有不止一个,我们用 \(\pi_*\) 表示所有最优策略。 它们共享同样的状态值函数,称为 最优状态价值函数,表示为 \(v_*\),并定义为

(15)\[v_*(s) \doteq \max_\pi v_\pi(s),\]

对所有 \(s\in \mathcal{S}\)

最优策略还具有相同的最优动作价值函数,表示为 \(q_*\),并定义为

(16)\[q_*(s,a) \doteq \max_\pi q_\pi(s,a)\]

对所有 \(s\in \mathcal{S}\)\(a\in\mathcal{A}(s)\)。 对于状态—动作对 \((s,a)\),此函数给出在状态 \(s\) 中执行动作 \(a\) 并且此后遵循最优策略的预期返回值。 因此,我们可以用 \(v_*\) 来表示 \(q_*\) ,如下所示:

(17)\[q_*(s,a) = \mathbb{E}\left[R_{t+1}+\gamma v_* (S_{t+1})|S_t=s,A_t=a\right]\]

示例3.17:高尔夫的最优价值函数 图3.3的下部展示了一个可能的最优动作价值函数 \(q_*(s,driver)\) 的轮廓。 如果我们首先用一号木杆用力进行击球,然后选择挥杆或推杆,以值较大者为准,这些是每个状态的价值。 用力挥杆使我们能够把球打的更远,但精度较低。 只有当我们已经非常接近绿色区域的时候,我们才能使用挥杆一次就能入洞; 因此 \(q_*(s,driver)\)\(-1\) 轮廓仅覆盖绿色区域的一小部分。 然而,如果我们有两次击球,那么我们可以从更远的距离到达洞,如 \(-2\) 轮廓所示。 在这种情况下,我们不必挥杆以到达小 \(-1\) 轮廓内,而只是挥杆到达绿色区域的任何地方;从那里我们可以使用推杆。 最优动作价值函数在提交给特定的 第一 动作(在这种情况下,挥杆)之后给出值,但之后使用最佳动作。 \(-3\) 轮廓仍然更远,包括起始发球台。从发球台开始,最好的动作是两次挥杆和一次推杆,三次击球。

因为 \(v_*\) 是策略的价值函数,它必须满足状态价值的贝尔曼方程(3.14)所给出的自洽条件。 因为它是最优价值函数,所以 \(v_*\) 的一致性条件可以写成特殊形式,而不参考任何特定的策略。 这是 \(v_*\) 的贝尔曼方程,或者说是 贝尔曼最优方程。 直观上地,贝尔曼最优方程式表达了这样一个事实,即最优策略下的状态价值必须等于来自该状态的最佳行动的预期收益:

\[\begin{split}\begin{aligned} v_*(s) &= \max_{a\in\mathcal{A}(s)} q_{\pi_*}(s,a) \\ &=\max_a \mathbb{E}_{\pi_*}[G_t|S_t=s,A_t=a] \\ &=\max_a \mathbb{E}_{\pi_*}[R_{t+1}+\gamma G_{t+1}|S_t=s,A_t=a] &(由(3.9)式) \\ &=\max_a \mathbb{E}[R_{t+1}+\gamma v_*(S_{t+1})|S_t=s,A_t=a] &(3.18) \\ &=\max_{a\in \mathcal{A}(s)}\sum_{s^\prime,r} p(s^\prime,r|s,a)[r+\gamma v_*(s^\prime)] &(3.19) \end{aligned}\end{split}\]

最后两个方程是 \(v_*\) 的贝尔曼最优方程的两种形式,\(q_*\) 的贝尔曼最优方程为

(18)\[\begin{split}\begin{aligned} q_*(s,a) &= \mathbb{E}\left[R_{t+1}+\gamma\sum_{a^\prime}q_*(S_{t+1,a^\prime})|S_t=s,A_t=a\right] \\ &=\sum_{s^\prime,r}p(s^\prime,r|s,a)[r+\gamma \max_{a^\prime}q_*(s^\prime,a^\prime)] \end{aligned}\end{split}\]

下图中的备份图以图像方式显示了在 \(v_*\)\(q_*\) 的贝尔曼最优方程中考虑的未来状态和动作的跨度。 这些与 \(v_\pi\)\(q_\pi\) 的备份图相同,只是在个体选择点添加了弧,以表示选择的最大值,而不是给定一些策略的期望值。 图3.4中,左图以图形方式表示贝尔曼最优方程(3.19),右图表示贝尔曼最优方程(3.20)。

figure-3.14

图3.4: \(v_*\)\(q_*\) 的备份图

对于有限的MDP,\(v_*\) 的贝尔曼最优方程(3.19)具有唯一解。 贝尔曼最优方程实际上是一个方程组,每个状态一个方程,所以如果有 \(n\) 个状态, 则有 \(n\) 个未知数的 \(n\) 个方程。 如果环境的动态 \(p\) 是已知,则原则上可以使用解决非线性方程组的各种方法中的任何一种来求解该 \(v_*\) 的方程组。 同样,可以求解 \(q_*\) 的一组相关方程。

一旦有 \(v_*\),确定最优策略就比较容易了。对于每个状态,将在贝尔曼最优方程中获得最大价值的一个或多个动作。 任何仅为这些操作分配非零概率的策略都是最优策略。你可以将其视为一步步的搜索。 如果具有最优价值函数 \(v_*\) ,则在一步搜索之后出现的动作将是最优动作。 另一种说法的方法是任何对最优评估函数 \(v_*\) 贪婪的策略是最优策略。 计算机科学中使用术语 贪婪 来描述任何基于本地或直接考虑来选择替代搜索或决策程序的方法, 而不考虑这种选择可能阻止未来获得更好的替代方法的可能性。因此,它描述了根据其短期结果选择行动的策略。 \(v_*\) 的美妙之处在于,如果用它来评估行动的短期结果,具体来说是一步到位的结果, 那么贪婪的策略在我们感兴趣的长期意义上实际上是最优的,因为 \(v_*\) 已经考虑到所有可能的未来动作的奖励结果。 通过 \(v_*\),最佳预期的长期回报将变成在本地且立即可用于每个状态的量。 因此,一步一步的搜索产生长期的最佳动作。

\(q_*\) 使选择最优动作更容易。 使用 \(q_*\) ,个体甚至不需要进行一步一步的查询: 对于任何状态 \(s\),它可以简单地发现任何使 \(q_*(s,a)\) 最大化的动作。 动作价值函数有效地缓存了所有一步一步搜索的结果。 它提供最优的期望长期回报作为本地并立即可用于每个状态—动作对的值。 因此,代表状态-动作对的功能而不仅仅是状态的代价, 最优动作-价值函数允许选择最优动作而不必知道关于可能的后继状态及其值的任何信息,即,不必要了解环境的动态。

示例3.8:解决网格世界问题 假设我们为示例3.5中介绍的简单网格任务解决关于 \(v_*\) 的贝尔曼方程,并再次显示在图3.5(左图)中。 回想一下,状态 \(A\) 之后是 \(+10\) 的回报并转换到状态 \(A^\prime\), 而状态 \(B\) 之后是 \(+5\) 的回报并转换到状态 \(B^\prime\)。 图3.5(中间)显示了最优价值函数,图3.5(右图)显示了相应的最优策略。 在单元格中有多个箭头,任何相应的动作都是最佳的。

figure-3.5

图3.5: 网格世界例子的最优解决方案。

示例3.19:回收机器人的贝尔曼最优方程 使用(3.19),我们可以明确地给出回收机器人示例的贝尔曼最优方程。 为了使事情变得更加紧凑,我们可以简单地描述 两种状态, 以及 搜索等待充电 三种动作,用 hlswre 来分别表示。 由于只有两个状态,贝尔曼最优方程由两个方程组成。\(v_*(h)\) 的方程可以写成如下:

\[\begin{split}\begin{aligned} v_*(h)&=\max\left\{ \begin{array}{lr} p(h|h,s)[r(h,s,h)+\gamma v_*(h)]+p(l|h,s)[r(h,s,l)+\gamma v_*(l)],\\ p(h|h,w)[r(h,w,h)+\gamma v_*(h)]+p(l|h,w)[r(h,w,l)+\gamma v_*(l)] \end{array}\right\} \\ &=\max\left\{ \begin{array}{lr} \alpha[r_s + \gamma v_*(h)]+(1-\alpha)[r_s +\gamma v_*(l)],\\ l[r_w+\gamma v_*(h)]+0[r_w+\gamma v_*(l)] \end{array}\right\} \\ &=\max\left\{ \begin{array}{lr} r_s+\gamma[\alpha v_*(h)+(1-\alpha)v_*(l)],\\ r_w + \gamma v_*(h) \end{array}\right\} \end{aligned}\end{split}\]

按照与 \(v_*(l)\) 相同的方式得到等式

\[\begin{split}v_*(l)=\max\left\{ \begin{aligned} &\beta r_s - 3(1-\beta)+\gamma[(1-\beta)v_*(h)+\beta v_*(l)], \\ &r_w + \gamma v_*(l),\\ &\gamma v_*(h) \end{aligned} \right\}\end{split}\]

对于任何 \(r_s\)\(r_w\)\(\alpha\)\(\beta\)\(\gamma\) 的选择, \(0 \le\gamma<1\)\(0 \le \alpha,\beta\le 1\); 正好有一对数字 \(v_*(h)\)\(v_*(l)\) 同时满足这两个非线性方程。

明确解决贝尔曼最优方程提供了找到最优策略的一条途径,从而为解决强化学习问题提供了依据。但是,这个解决方案很少直接有用。 它类似于详尽的搜索,展望所有可能性,计算它们的发生概率以及它们在预期奖励方面的可取性。 这个解决方案依赖于至少三个假设,在实践中很少是这样的: (1)我们准确地知道环境的动态;(2)我们有足够的计算资源来完成解决方案的计算;(3)马尔可夫性。 对于我们感兴趣的任务,通常不能完全实现这个解决方案,因为这些假设的各种组合不成立。 例如,虽然第一和第三个假设对于西洋双陆棋游戏没有任何问题,但第二个是主要的障碍。 因为游戏有 \(10^{20}\) 个状态,所以今天最快的电脑需要数千年的时间才能计算出 \(v_*\) 的贝尔曼方程式, 而找到 \(q_*\) 也是如此。在强化学习中,通常需要计算近似解。

许多不同的决策方法可以被看作是近似解决贝尔曼最优方程的方法。 例如,启发式搜索方法可以被视为扩大(3.19)的右边,达到一定深度,形成可能性的“树”,然后使用启发式评估函数近似“叶”节点上的 \(v_*\)。 (启发式搜索方法,如 \(A^*\) 几乎总是基于情节案例)。动态规划的方法可以更加紧密地与贝尔曼最优方程相关联。 许多强化学习方法可以被明确地理解为大致解决贝尔曼最优方程的方案,使用实际的经验丰富的过渡代替预期转换的知识。 我们在以后章节中将考虑各种这样的方法。

练习3.20 绘制或描述高尔夫球示例的最佳状态价值函数。

练习3.21 绘制或描述用于高尔夫球示例的推杆 \(q_*(s,putter)\) 的最佳动作价值函数的轮廓 。

_images/exercise-3.22.png

练习3.22 考虑右侧显示的持续MDP。唯一的决定是在顶点状态,有 两个动作可选。 数字显示每次行动后收到的确定奖励。有两个确定性的策略,\(\pi_{左}\)\(\pi_{右}\)。 如果 \(\gamma=0\),哪一种策略是最优的?如果 \(\gamma=0.9\)?如果 \(\gamma=0.5\) 呢?

练习3.23 给出回收机器人的 \(q_*\) 贝尔曼方程。

练习3.24 图3.5给出了网格世界问题的最优状态的最优价值为 \(24.4\),保留小数点后一位。 以你对最优策略的了解和(3.8),以符号方式表示此值,然后将其计算为小数点后三位。

习题3.25\(q_*\) 给出 \(v_*\) 的方程。

练习3.26\(v_*\) 和四参数 \(p\) 的方程。

3.7 优化和近似

我们已经定义了最优价值函数和最优策略。显然,学习最优策略的个体会做得很好,但在实践中却很少发生。 对于我们感兴趣的各种任务,只能以极高的计算成本才能生成最优策略。 一个明确定义的最优化概念组织了我们在本书中描述的学习方法,并提供了一种了解各种学习算法的理论属性的方法, 但个体只能不同程度的接近理想值。正如我们上面讨论的,即使我们有一个完整和准确的环境动态模型, 通常不可能通过求解贝尔曼最优方程来简单地计算最优策略。 例如,像西洋棋这样的棋盘游戏是人类经验的一小部分,即使是大型的定制计算机仍然无法计算出最优的动作。 个体面临的一个关键问题一直是可用的计算能力,特别是在单个时间步长中可以执行的计算量。

可用的内存也是一个重要的限制。 通常需要大量内存来建立价值函数,策略和模型的近似值。 在具有小的有限状态集的任务中,可以使用对于每个状态(或状态-动作对)具有一个条目的数组或表来形成这些近似。 这个我们称之为 表格 的情况,相应的方法称之为表格方法。 然而,在许多实际感兴趣的情况下,还有更多的状态不可能在一个表格中完整表达。 在这些情况下,必须使用某种更紧凑的参数化函数表示来近似函数。

我们强化学习问题的框架迫使我们解决近似问题。然而,它也为我们提供了一些独特的机会来实现有用的近似。 例如,在逼近最优行为时,可能存在许多状态,个体面临的这样一个低概率,即为他们选择次优动作对个体收到的奖励数量几乎没有影响。 例如, Tesauro (人名,TD-Gammon西洋双陆棋游戏程序作者)的西洋双陆棋玩家具有卓越的技能, 也可能会在棋盘上做出非常糟糕的决定,但是从来没有在与专家的对抗时发生。 事实上,TD-Gammon (西洋双陆棋游戏程序)可能对游戏的大部分状态设置做出不好的决定。 强化学习的在线性质使得其有可能以更多的方式来近似最优策略,以便为经常遇到的状态作出良好的决策,而不用花费很少的努力来处理不经常遇到的状态。 这是将强化学习与其他方法区分开来,近似解决MDP问题的一个关键属性。

3.8 总结

我们总结一下我们在本章中提出的强化学习问题的要素。强化学习是从互动中学习如何行动从而实现目标。 强化学习 个体 及其 环境 通过一系列离散的时间步长进行交互。 其接口的规范定义了一个特定的任务:动作 是由个体所做的选择;状态 是做出选择的基础;奖励 是评估选择的基础。 个体内的一切都是由个体完全知晓和控制的;外面的一切都是不完全可控的,可能完全知道也可能不完全知道的。 策略 是随机规则,个体通过该规则选择动作作为状态的函数。 个体的目标是随着时间的推移最大限度地获得奖励。

当上述强化学习设置用明确定义的转移概率表示时,它构成马尔可夫决策过程(MDP)。 有限MDP是具有有限状态,动作和(当我们在此处制定)奖励集的MDP。 当前的强化学习理论大多局限于有限的MDP,但方法和思想更为普遍。

返回值 是个体寻求最大化(预期价值)的未来奖励的功能。 它有几个不同的定义,取决于任务的性质,以及是否希望 衰减 延迟奖励。 无衰减的公式适用于 情节 任务,其中个体—环境相互作用自然地分解在 情节 中; 衰减的方案适用于 持续任务,其中互动本身并不会自然地分解在情节中,而是无限制的持续下去。

在给定个体使用策略的情况下,策略的 价值函数 为每个状态或状态-动作对分配该状态或状态-动作对的预期回报。 最优价值函数 为每个状态或状态-动作对分配任何策略可实现的最大预期回报。价值函数最优的策略是 最优策略。 尽管状态和状态-动作对的最优价值函数对于给定的MDP是唯一的,但是可以存在许多最优策略。 任何对最优价值函数贪婪的策略都必须是最优策略。贝尔曼最优方程 是最佳价值函数必须满足的特殊一致性条件, 并且原则上可以针对最优价值函数求解,从中可以相对容易地确定最优策略。

根据对个体最初可用的知识水平的假设,可以以各种不同的方式提出强化学习问题。 在 完全知识 的问题中,个体拥有完整而准确的环境动态模型。 如果环境是MDP,那么这样的模型由完整的四参数动力学函数 \(p\) (3.2)组成。 在 知识不完整 的问题中,没有完整而完美的环境模型。

即使个体具有完整和准确的环境模型,个体通常也无法在每个时间步长充分利用这个模型执行足够的计算。 而可用的内存也是一个重要的限制。可能需要内存来建立价值函数,策略和模型的精准近似。 在大多数具有实际意义的情况下,表中的条目远远多于可能是条目的状态,并且必须进行近似。

我们在本书中描述的学习方法是通过一个明确定义的最优化概念来组织的,并提供了一种了解各种学习算法的理论属性的方法, 但是强化学习个体只能不同程度的接近理想值。 在强化学习中,我们非常关心虽然无法找到最优解决方案但必须能以某种方式得到近似的情况。

书目和历史评论

强化学习问题深深地受到来自最优控制领域的马尔可夫决策过程(MDP)的思想的影响。 这些历史影响和心理学的其他主要影响在第1章给出的简要历史中有所描述。 强化学习增加了MDP关注现实大问题的近似和不完整信息。 MDP和强化学习问题与人工智能中的传统学习和决策问题只有微弱的联系。 然而,人工智能现在正在从各种角度大力探索MDP公式的规划和决策。 MDP比人工智能中使用的先前公式更通用,因为它们允许更一般的目标和不确定性。

MDP理论通过例如Bertsekas(2005),White(1969),Whittle(1982,1983)和Puterman(1994)来处理。 Ross(1983)给出了对有限情况的特别紧凑的处理。MDP也在随机最优控制的标题下进行研究, 其中自适应最优控制方法与强化学习最密切相关(例如,Kumar,1985;Kumar和Varaiya,1986)。

MDP理论从一系列发展而来,以理解在不确定性下制定决策序列的问题,每个决策都取决于先前的决策及其结果。 它有时被称为多阶段决策过程或顺序决策过程的理论,并且源于关于顺序抽样的统计文献, 从Thompson(1933,1934)和Robbins(1952)的论文开始,我们在第2章中引用了有赌博机问题(如果制定为多情况问题,则是典型的MDP)。

我们知道使用MDP形式主义讨论强化学习的最早实例是Andreae(1969b)对学习机器统一视图的描述。 Witten和Corbin(1973)尝试使用MDP形式主义后来由Witten(1977,1976a)分析的强化学习系统。 尽管他没有明确提到MDP,但Werbos(1977)提出了与现代强化学习方法相关的随机最优控制问题的近似解法 (参见Werbos,1982,1987,1988,1989,1992)。 虽然Werbos的想法当时并未得到广泛认可,但他们在强调近似解决各种领域(包括人工智能)中的最优控制问题的重要性方面具有先见之明。 强化学习和MDP最有影响力的整合归功于Watkins(1989)。

3.1 我们用 \(p(s^\prime,r|s,a)\) 表征MDP的动力学有点不寻常。 在MDP文献中更常见的是根据状态转移概率 \(p(s^\prime|s,a)\) 和预期的下一个奖励 \(r(s,a)\) 来描述动态。 然而,在强化学习中,我们更多时候必须参考个人的实际或样本奖励(而不仅仅是他们的期望值)。 我们的符号也使得 \(S_t\)\(R_t\) 通常共同确定更加平稳,因此必须具有相同的时间索引。 在强化学习教学中,我们发现我们的概念在概念上更直接,更容易理解。

有关系统理论概念的直观讨论,请参见Minsky(1967)。

生物反应器实例基于Ungar(1990)和Miller and Williams(1992)的工作。 回收机器人的例子受到Jonathan Connell(1989)建造的罐头收集机器人的启发。 Kober和Peters(2012)提出了强化学习的机器人应用集合。

3.2 奖励假设由Michael Littman(个人通信)提出。

3.3-4 情节连续 任务的术语与MDP文献中常用的术语不同。 在该文献中,通常区分三种类型的任务:(1)有限时间任务,其中交互在特定固定数量的时间步骤之后终止; (2)无限期任务,其中交互可以持续任意长,但最终必须终止;(3)无限期任务,其中交互不会终止。 我们的情节和持续任务分别类似于不定限期和无限期任务,但我们更倾向于强调交互性质的差异。 这种差异似乎比通常术语强调的目标函数的差异更为重要。情节任务经常使用不定时间目标函数和持续任务无限期目标函数, 但我们认为这是一个常见的巧合,而不是根本的差异。

极点平衡的例子来自Michie和Chambers(1968)以及Barto,Sutton和Anderson(1983)。

3.5-6 从长远来看,基于好的或坏的分配价值具有古老的根源。 在控制理论中,将状态映射到代表控制决策的长期结果的数值是最优控制理论的关键部分, 最优控制理论是在20世纪50年代通过扩展19世纪经典力学的状态函数理论而开发的(参见,例如,Schultz和Melsa,1967年)。 在描述计算机如何编程下棋时,Shannon(1950)考虑到国际象棋位置的长期优势和劣势,建议使用评估功能。

Watkins(1989)用于估计 \(q_*\) 的Q学习算法(第6章)使得动作-价值函数成为强化学习的重要部分, 因此这些函数通常被称为“Q函数”。但是动作-价值函数的概念比这更古老了。 Shannon(1950)提出,国际象棋游戏程序可以使用函数 \(h(P,M)\) 来确定位置 \(P\) 中的移动 \(M\) 是否值得探索。 Michie(1961,1963)的MENACE系统和Mi​​chie and Chambers(1968)的BOXES系统可以理解为估算行动价值函数。 在经典物理学中,汉密尔顿的主要功能是行动价值函数;关于这个函数,牛顿动力学是贪婪的(例如,Goldstein,1957)。 行动价值函数在Denardo(1967)关于收缩映射的动态规划理论处理中也发挥了核心作用。 贝尔曼最优性方程(对于 \(v_*\))由Richard Bellman(1957a)推广,他将其称为“基本函数方程”。 连续时间和状态问题的贝尔曼最优方程的对应物被称为Hamilton-Jacobi-Bellman方程式(或通常只是Hamilton-Jacobiequation), 表明其在经典物理学中的根源(例如,Schultz和Melsa,1967)。高尔夫的例子是克里斯沃特金斯建议的。

[1]我们使用术语个体,环境和动作,而不是工程师术语控制器,受控系统(或工厂)和控制信号,因为它们对更广泛的受众有意义。
[2]我们将注意力限制在离散时间以使事情尽可能简单,即使许多想法可以延伸到连续时间情况 (例如,参见Bertsekas和Tsitsiklis,1996;Werbos,1992;Doya,1996)。
[3]我们使用 \(R_{t+1}\) 而不是 \(R_{t}\) 来表示归因于 \(A_{t}\) 的奖励, 因为它强调下一个奖励和下一个状态 \(R_{t+1}\)\(S_{t+1}\) 共同确定。 不幸的是,这两种惯例在文献中都被广泛使用。
[4]更好的方式是传授这种先验知识是最初的策略或价值功能,或对这些的影响。 参见Lin(1992),Maclin和Shavlik(1994)和Clouse(1996)。
[5]传授这种先验知识的更好的地方是初始策略或初始价值功能,或影响这些。
[6]第17.4节进一步探讨了设计有效奖励信号的问题。
[7]情节有时在文献中被称为“试验”。

第4章 动态规划

动态规划(DP)这个术语是指可以用于在给定完整的环境模型是马尔可夫决策过程(MDP)的情况下计算最优策略的算法集合。 传统的DP算法在增强学习领域应用十分有限,因为它们不仅要求理想的模型,同时计算量也非常大,但是在理论方面依然非常重要。 DP算法为本书后面章节的理解提供了必要的基础。事实上,那些方法都可以被看作是取得与DP算法相同的效果的尝试, 所不同的是这些算法需要比较少的计算量,并且不用假设理想的环境模型。

我们通常假设环境是有限马尔可夫决策过程。也就是说,我们假设环境的状态,动作,和奖励集合, \(\cal{S}\)\(\cal{A(s)}\)\(\cal{R}\) 是有限的, 并且它的动态由一组概率 \(p(s^\prime,r|s,a)\) 给出,对所有 \(\cal{s}\in\cal{S}\)\(a\in\cal{A(s)}\)\(r\in\cal{R}\)\(\cal{S}'\in\mathcal{S}^+\) (如果是片段式的问题,那么 \(\cal{S}^+\)\(\mathcal{S}\) 加上终止状态)。 虽然DP思想可以被用到连续状态和动作空间的问题中,但是只有少数特殊的例子能得到确切的答案。 想要获得连续状态和动作空间的近似解,通常的解决方法是量化状态和动作空间然后应用有限状态的DP方法。 我们在第II部分探索的方法是可以应用到连续问题中的,并且是对这种方法的非常重要的扩展。

DP和增强学习思想的核心通常说来是用价值函数去组织构建一种搜索从而找到好的策略。 本章我们向读者展示DP怎么被用来计算第3章中定义的价值函数。 在第3章中讨论过的,一旦我们找到最优价值函数 \(v_*\) 或者 \(q_*\),我们就可以很容易的获得最优策略,这符合贝尔曼最优方程:

(1)\[\begin{split}\begin{aligned} v_*(s) &= \max_a\mathbb{E}[R_{t+1}+\gamma v_*(S_{t+1}) | S_t=s,A_t=a] \\ &= \max_a\sum_{s',r}p(s',r|s,a)[r+\gamma v_*(s')] \end{aligned}\end{split}\]

或者

(2)\[\begin{split}\begin{aligned} q_*(s,a)& = \mathbb{E}[R_{t+1}+\gamma \max_{a'} q_*(S_{t+1},a') | S_t=s,A_t=a]\\ &=\sum_{s',r}p(s',r|s,a)[r+\gamma\max_{a'} q_*(s',a')], \end{aligned}\end{split}\]

对于所有的 \(s\in\mathcal{S}\)\(a\in\mathcal{A}(s)\), 以及 \(s^\prime\in\mathcal{S^+}\) 。 我们可以看到,DP算法其实是将贝尔曼方程转换为更新规则以此来提升价值函数的近似效果。

4.1 策略评估(预测)

首先我们考虑给定任意策略 \(\pi\) 怎样计算状态值函数 \(v_\pi\)。 这在DP文献中被称作 策略评估。我们把它当作 预测问题。回想第三章,对于所有的 \(s\in\mathcal{S}\)

\[\begin{split}\begin{aligned} v_\pi(s) & \doteq \mathbb{E_\pi}[G_t | S_t=s] \\ &= \mathbb{E_\pi}[R_{t+1} + \gamma G_{t+1} | S_t=s] &(从(3.9)) \\ &= \mathbb{E_\pi}[R_{t+1}+\gamma v_\pi(S_{t+1}) | S_t=s] & (4.3) \\ &= \sum_a\pi(a|s)\sum_{s',r}p(s',r|s,a)[r+\gamma v_\pi(s')],& (4.4) \end{aligned}\end{split}\]

在这里 \(\pi(a|s)\) 是在状态 \(s\) 时使用策略 \(\pi\) 采取动作 \(a\) 的概率, 期望下标 \(\pi\) 用来表明是在策略 \(\pi\) 的条件下。 只要 \(\gamma<1\) 或者所有的状态在策略 \(\pi(a|s)\) 下都能达到最终状态, 就能保证 \(v_\pi\) 存在且唯一。

如果环境动力学模型完全已知,那么 \((4.4)\) 就是一个同时存在 \(|\mathcal{S}|\) 个线性方程与 \(|\mathcal{S}|\) 个未知数(\(v_\pi(s),s\in\mathcal{S}\))的系统。 原则上,它的解决方案是一种简单易懂的计算方法。对我们而言,迭代解的方法最合适。 考虑一系列的近似值函数,\(v_0,v_1,v_2,...\), 每个都是从 \(S^+\)\(\mathbb{R}\) (实数)的映射。 初始的近似值 \(v_0\) 是任意选取的(除了终止状态,如果有的话,需要被赋值为0), 并通过使用 \(v_\pi (3.12)\) 的贝尔曼方程作为更新规则来获得每个逐次逼近:

(3)\[\begin{split}\begin{aligned} v_{k+1}(s)& \overset{\cdot}{=}\mathbb{E}[R_{t+1}+\gamma v_k(S_{t+1}) | S_t=s] \\ &= \sum_{a}\pi(a|s)\sum_{s',r}p(s',r|s,a)[r+\gamma{v_k(s')}], \end{aligned}\end{split}\]

对于所有的 \(s\in\mathcal{S}\)。很明显, \(v_k=v_\pi\) 是这种更新规则下的不动点, 因为关于 \(v_\pi\) 贝尔曼方程可以保证等号的成立。实际上,只要在相同的条件下保证 \(v_\pi\) 的存在, 随着 \(k\rightarrow\infty\)\(\{v_k\}\) 序列可以保证在广泛意义下收敛到 \(v_\pi\)。 这个算法被称为 迭代策略评估

在执行每次值近似的过程中,从 \(v_k\) 得到 \(v_{k+1}\),迭代策略评估对每个状态 \(s\) 采取相同的操作: 它将状态 \(s\) 的后继状态的旧值获得的新值替换旧的状态 \(s\) 的值,以及期望的即时回报, 以及在所评估的策略下可能的所有一步转换。我们把这种操作叫做一次 完全回溯。 每次迭代策略评估的迭代过程都回溯每个状态的值得到新的方程 \(v_{k+1}\) 的近似值。 有几种不同类型的完全回溯,取决于一个状态或者状态-动作对是否被回溯,而且取决于结合后继状态的估计值的精确方式。 由于是基于所有可能的下一个状态而不是基于采样一次得到的下一个状态,所以所有的DP算法中的回溯都叫做 完全回溯。 上面的方程或者第三章介绍的回溯图可以描述回溯的特性。例如,上一章中“ \(v_\pi\) 的备份图”就是对应于应用在迭代策略评估中的完全回溯图。

如果要写出 \((4.5)\) 中的迭代策略评估的序列程序需要用两个数组,一个用来存放前一次的值, \(v_k(s)\), 一个用来存放本次的新值, \(v_{k+1}(s)\)。这样一来,新的值可以用旧的值一个一个计算出来并且不改变旧的值。 当然,可以用一个数组来更新更加容易,也就是每一个新的回溯值被计算出来立刻覆盖原有的旧值。 取决于状态回溯的顺序,有时候 \((4.5)\) 等式右边新的值会被采用而不是采用旧的值。 这种些微不同的算法也能收敛到 \(v_\pi\);事实上,这样做收敛速度通常会快过两个数组的版本, 试想,因为这种方法一产生新数据就会得到应用。我们认为这种回溯是对整个状态空间的 搜索。 对于一个数组的算法,在一次搜索中状态被回溯的顺序对收敛速度有非常大的影响。 提起DP算法通常我们想到是一个数组的版本。

迭代策略评估的完整版本在下面的框中以伪代码显示。另外一种实现方式关注于算法的终止。 一般而言,迭代策略评估仅仅在极限的情况下,但是实际中必须要在这之前停止。 迭代策略评估的一种典型停止条件是每次搜索过后计算 \(\max_{s\in\mathcal{S}}|v_{k+1}(s)-v_k(s)|\), 当这个值足够小的时候就停止。

迭代策略评估,用于估算 \(V \approx v_\pi\)

输入将要被评估的策略 \(\pi\)

算法参数:小阈值 \(\theta > 0\) 确定估计的准确性

初始化一个数组 \(V(s)=0\) ,所有的 \(s\in\mathcal{S}^+\),除了 \(V(终点) = 0\)

循环

\(\Delta \leftarrow 0\)

对于每个 \(s \in \mathcal{S}\):

\(v \leftarrow V(s)\)

\(V(s) \leftarrow \sum_{a}\pi(a|s)\sum_{s',r}p(s',r|s,a)[r+\gamma V(s')]​\)

\(\Delta \leftarrow \max(\Delta,|v-V(s)|)\)

直到 \(\Delta < \theta\) (一个小的正数)

例4.1 考虑 \(4\times 4\) 的棋盘格如下所示。

RL

非终止状态 \(S=\{1,2,...14\}\)。每个状态有四个可能的动作, \(\cal{A}={上, 下, 右, 左}\), 明确地决定了相应的状态转移,那些会导致个体走出棋盘格的动作实际上保持状态不变。 因此,比如,对于所有的 \(r\in\cal{R}\)\(p(6,-1|5,右)=1\)\(p(7,-1|7,右)=1\)\(p(10,r|5,右)=0\)。 这是没有衰减因子的,回合式的任务。所有的转移回报都是-1直到终止状态。 图中的终止状态被打上阴影(虽然有两个部位有阴影,其实是一个终止状态)。 因此对于所有的状态 \(s,s'\) 和动作 \(a\),期望回报方程是 \(r(s,a,s')=-1\)。 假设个体遵从等概率随机策略(所有的状态等可能)。图4.1的左边展示了一系列用迭代策略评估计算出的值函数 \(\{v_k\}\)。 最终的估计实际上是 \(v_{\pi}\),这种情况下赋予每个状态直到终止状态的期望步数的相反数。

练习4.1 在例4.1中,如果 \(\pi\) 是等概率随机策略, 求 \(q_\pi(11,下)\)?以及 \(q_\pi(7,下)\)

练习4.2 在例4.1中,假设新状态15被添加到棋盘格状态13的正下方, 此状态执行动作 后个体分别到达12,13,14和15。 假设 初始状态的转移保持不变。那么在等概率策略下求 \(v_\pi(15)\) 是多少? 现在假设状态13的动力学也发生了改变,如此一来智能体在状态13执行 动作会到达新状态15。 求这种情况下的 \(v_\pi(15)\)

练习4.3 对于动作-值函数 \(q_\pi\) 和用一系列函数 \(q_0,q_1,q_2,\dots\) 近似得到的 \(q_\pi\),求类似于 \((4.3),(4.4)和(4.5)\) 的方程?

4.2 策略提升

我们计算某个策略价值函数的目的是找到一个更好的策略。假设我们已经确定了一个任意确定性的策略 \(\pi\) 价值函数 \(v_\pi\)。 对于某些状态 \(s\) 我们想知道是否应该改变策略来明确的选择一个动作 \(a\not=\pi(s)\)。 我们知道在当前状态 \(s\) 遵从当前的策略有多好——也就是 \(v_\pi(s)\)——但是改变为一个新的状态会更好还是坏呢? 一种解决这个问题的方法是考虑从状态 \(s\) 下选择动作 \(a\),然后遵从现有的策略 \(\pi\)

figure-4.1

图4.1: 迭代策略评估在一个小的棋盘格游戏上收敛。左边一列是对于随机策略(所有的动作执行概率相等)下的状态值函数的一系列近似。 右边一列是一系列相对于估计的价值函数(箭头代表所有能够取得最大值的动作)的贪婪策略。 上一个策略仅仅保证了是对随机策略的提升,但是在这种情况下,所有的策略在经过第三次迭代后都是最优的。

这种的方式的值是:

(4)\[\begin{split}\begin{aligned} q_\pi(s,a)& \doteq \mathbb{E}[R_{t+1}+\gamma v_\pi(S_{t+1}) | S_t=s,A_t=a] \\ &= \sum_{s',r}p(s',r|s,a)[r+\gamma v_\pi(s')] \end{aligned}\end{split}\]

关键的标准是这等式是大于还是小于 \(v_{\pi}\)。如果是大于——也就是说, 在状态 \(s\) 选择执行一次动作 \(a\) 然后遵从策略 \(\pi\) 是否会比一直遵从策略 \(\pi\) 好——然后我们当然愿意每次到达状态 \(s\) 选择动作 \(a\) 都会比较好。 那么新的策略事实上总体来说也会比较好。

这种方法是正确的,只是 策略提升理论 的一种特殊情况。\(\pi\)\(\pi'\) 是任意一对确定性的策略, 这样一来,对于所有的 \(s\in\mathcal{S}\)

(5)\[q_\pi(s,\pi'(s)) \geq v_\pi(s)\]

那么策略 \(\pi'\) 必须与策略 \(\pi\) 同样好或者比策略 \(\pi\) 更好。 也就是说,必须从所有的状态 \(s\in\mathcal{S}\) 取得更好或者相等的期望回报:

(6)\[v_\pi'(s) \geq v_\pi(s)\]

另外,如果 \((4.7)\) 在任意状态严格不等,那么 \((4.8)\) 也应该至少在一个状态严格等。 这个结果尤其适用于我们在之前考虑的两种策略,一个最初的确定的策略 \(\pi\) 和一个改变的策略 \(\pi'\), 除了 \(\pi'(s)=a\not=\pi(s)\),都与 \(\pi\) 相同。 显然,\((4.7)\) 在所有状态都成立除了 \(s\)。 因此,如果 \(q_\pi(s,a) > v_\pi(s)\),那么有变化的策略就会比策略 \(\pi\) 要好。

策略提升理论的证明过程很容易理解。从 \((4.7)\) 开始, 我们一直扩展 \(q_\pi\) 那一边并且再次应用 \((4.7)\) 直到我们得到 \(v_\pi'(s)\)

\[\begin{split}\begin{aligned} v_\pi(s)& \leq q_\pi(s,\pi'(s))\\ &= \mathbb{E}[R_{t+1}+\gamma v_\pi(S_{t+1}) | S_t=s,A_t=\pi'(s)] & (由(4.6))\\ &= \mathbb{E}_{\pi'}[R_{t+1}+\gamma v_\pi(S_{t+1}) | S_t=s] \\ & \leq\mathbb{E}_{\pi'}[R_{t+1}+\gamma q_\pi(S_{t+1},\pi'(S_{t+1})) | S_t=s] & (由(4.7))\\ &= \mathbb{E}_{\pi'}[R_{t+1}+\gamma \mathbb{E}_{\pi'}[R_{t+2}+\gamma v_\pi(S_{t+2})| S_{t+1},A_t=\pi'(s+1) ] | S_t=s] \\ &= \mathbb{E}_{\pi'}[R_{t+1}+\gamma R_{t+2}+\gamma^2 v_\pi(S_{t+2}) | S_t=s] \\ & \leq\mathbb{E}_{\pi'}[R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+\gamma^3 v_\pi(S_{t+3}) | S_t=s] \\ & \vdots \\ & \leq \mathbb{E}_{\pi'}[R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\gamma^3R_{t+4}+\cdots | S_t=s] \\ &=v_{\pi'}(s) \end{aligned}\end{split}\]

目前为止我们看到当给定一个策略和它的价值函数后,我们可以很容易地对在某个状态的动作改变进行评估。 很自然就会扩展到考虑所有状态和所有可能的动作,根据 \(q_\pi(s,a)\) 选择在每个状态最好的动作。 换句话说,考虑新的 贪婪 策略 \(\pi'\),如下

(7)\[\begin{split}\begin{aligned} \pi'(s)& \doteq \arg\max_a q_\pi(s,a) \\ & =\arg \max_a\mathbb{E}[R_{t+1}+\gamma v_\pi(S_{t+1}) | S_t=s,A_t=a]\\ &=\arg\max_a\sum_{s',r}p(s',r|s,a)[r+\gamma v_\pi(s')], \end{aligned}\end{split}\]

其中 \(\arg\max_a\) 表示随后的表达式最大化(随意打破关系)的 \(a\) 的值。 贪婪策略采取短期内看起来最好的动作——向前展望一步——根据 \(v_\pi\)。 通过构造,贪婪策略满足策略提升理论 \((4.7)\) 的条件,所以我们知道这个策略和初始策略一样或者更好。 通过根据初始策略的值函数使策略变贪婪的方式来制定一个新的策略提升初始策略的过程,叫做 策略提升

假定新的贪婪策略 \(\pi'\),与旧的策略 \(\pi\) 一样好。那么 \(v_\pi=v_{\pi'}\), 根据 \((4.9)\) 对于所有的 \(s\in\mathcal{S}\)

\[\begin{split}\begin{aligned} v_{\pi'}(s)& =\max_a\mathbb{E}[R_{t+1}+\gamma v_{\pi'}(S_{t+1}) | S_t=s,A_t=a]\\ &=\max_a\sum_{s',r}p(s',r|s,a)[r+\gamma v_{\pi'}(s')]. \end{aligned}\end{split}\]

但是这与贝尔曼最优方程 \((4.1)\) 一致,所以,\(v_{\pi'}\) 必须是 \(v_*\)\(\pi\)\(\pi'\) 必须都是最优策略。因此策略提升一定会得到一个更好的策略除非初始的策略就是最优的。

目前为止在这一章节中我们我们考虑了确定策略的特殊情况。普遍情况下,一个随机策略 \(\pi\) 通过在每一个状态 \(s\) 采取每一个动作 \(a\) 来指定概率 \(\pi(a|s)\)。 我们不会讨论细节,但是实际上,这一章节的所有的方法都可以很容易的扩展到随机策略。 特别的,策略提升理论贯穿如前所述的随机策略例子。另外,如果策略提升步骤比如 \((4.9)\) 之间 有联系——也就是说,如果有几个动作都能得到最大值——那么在随机策略的例子中我们不需要从中选择一个单独的动作。 取而代之的是,每一个取得最大值的动作在新的贪婪策略中有一定的概率被选择。只要非最大动作的概率为零,任何分摊的方案都可以。

图4.1的最后一行给出了随机策略提升的例子。这里初始策略 \(\pi\) 是等概率随机策略, 新策略 \(\pi'\) 是关于 \(v_\pi\) 的贪婪策略。 图的左下角是价值函数 \(v_\pi\),右下角是可能的策略 \(\pi'\) 的集合。 在策略 \(\pi'\) 图中的那些有多个箭头的状态就是在 \((4.9)\) 中几个动作能够同时取得最大的状态。 对于那些动作,任何概率分配方式都是允许的。任一个这种策略的价值函数 \(v_{\pi'}(s)\) 在所有的状态 \(s\in\mathcal{S}\),可以看到是-1,-2或者是-3,然而 \(v_\pi(s)\) 至多是-14。 因此,对于所有的状态 \(s\in\mathcal{S}\)\(v_{\pi'}(s)\geq v_\pi(s)\),说明策略进行了提升。 虽然在这种情况下新的策略 \(\pi'\) 偶然成为最优策略,在更广泛的意义下,这只能保证策略的提升。

4.3 策略迭代

一旦策略 \(\pi\),已经用 \(v_\pi\) 提升为更好的策略 \(\pi'\), 我们可以计算 \(v_{\pi'}\) 再次提升策略得到更好的策略 \(\pi''\)。 我们可以得到一系列单调提升的策略和价值函数:

\[\pi_0 \overset{E}{\rightarrow} v_{\pi_0} \overset{I}{\rightarrow} \pi_1 \overset{E}{\rightarrow} v_{\pi_1} \overset{I}{\rightarrow} \pi_2 \overset{E}{\rightarrow} \cdots \overset{I}{\rightarrow} \pi_* \overset{E}{\rightarrow} v_{*}\]

其中,\(\overset{E}{\rightarrow}\) 表示策略评估, \(\overset{I}{\rightarrow}\) 表示策略提升。 每个策略都能保证在原先策略的基础上严格提升(除非该策略已经是最优)。 因为有限MDP只有有限个数量的策略,这个过程一定会在有限次的迭代中收敛到最优策略和最优价值函数。

这种发现一个最优策略的方法叫做 策略迭代。完整的算法在以下算法框中给出。 注意每个策略评估,从前一次的策略开始,本身就是迭代计算的过程。 这就造成策略评估收敛速度的大幅度提升(可能是因为价值函数在不同的策略之间改变很小)。

策略迭代(使用迭代策略评估)估计 \(\pi \approx \pi_*\)

  1. 初始化

    对于所有的 \(s\in\mathcal{S}\),任意 \(V(s)\in\mathbb{R}\)\(\pi(s)\in\cal{A}(s)\)

  2. 策略评估

    循环

    \(\Delta{\leftarrow}0\)

    对每个 \(s\in{S}\) 循环:

    \(v\leftarrow{V(s)}\)

    \(V(s){\leftarrow}\sum_{s',r}p(s',r|s,\pi(s))[r+\gamma{V(s')}]\)

    \(\Delta{\leftarrow}{\max(\Delta,|v-V(s)|)}\)

    直到 \(\Delta<\theta\) (确定估计准确性的一个小的正数)

  3. 策略提升

    策略-稳定 \(\leftarrow\)

    对于每个 \(s\in\mathcal{S}\):

    \(上一次动作\leftarrow {\pi(s)}\)

    \(\pi(s)\leftarrow{\arg\max_a\sum_{s',r}p(s',r|s,a)[r+\gamma V(s')]}\)

    如果 \(上一次动作\not=\pi(s)\) ,那么 策略-稳定 \(\leftarrow\)

    如果 策略-稳定 为真 ,那么停止并且返回 \(V \approx{v_*}\) 以及 \(\pi \approx{\pi_*}\);否则返回2

例4.2: 杰克租车 杰克管理着一个全国汽车租赁公司的两个地点。每天,一些顾客到每个地点租车。 如果杰克有一辆车可以用来出租,那么他将车租出去并且得到租车公司的10美元报酬。 如果他在这个地点没有车,那么这次生意机会就失去了。汽车被送回来之后就可以被租出去。 为了确保人们需要车子的时候有车可以租,杰克可以在晚上将车子在两个地点之间转移,每转移一辆车需要花费2美元。 我们假设需要车子的数量与返回车子的数量是泊松随机变量,也就是说数量 \(n\) 的概率 是 \(\frac{\lambda^n}{n!}e^{-\lambda}\)\(\lambda\) 是期望值。 假设第一个和第二个地点对于租借需求 \(\lambda\) 是3和4,返回数量是3和2。 为了简化问题,我们假设每个位置不会超过20辆车(任何多余的车都将会被返回租赁公司,从问题中消失), 并且最多五辆车可以在同一晚上从一个地点转移到另一个地点。 我们将衰减因子设置为 \(\gamma=0.9\),将这个问题当作连续有限MDP,时间步骤是天数, 状态是每天结束是在每个位置剩余车子的数量,动作是每晚将车子在两个地点转移的净数量。 图4.2展示的是从不转移任何车子的策略出发通过策略迭代找到的一系列策略。

_images/figure-4.2.png

图4.2: 通过策略迭代找到的一系列关于杰克租车问题的策略,和最终的状态价值函数。 前五个图表明,每天结束时在每个地点的车数量以及需要从第一个位置转移到第二个位置的车子的数量 (负数意味着从第二个位置转移到第一个位置)。每一个成功的策略都是在之前策略基础上严格的提升, 并且最终的策略是最优的。

策略迭代经常在非常少的几次迭代中收敛,图4.1中的例子阐明了这一点。 图4.1中,左下角的图展示了等概率随机策略的价值函数,右下角的图展示了一个对应于这个价值函数的贪婪策略。 策略提升理论保证了这些策略比初始的策略要好。在这个例子中,然而,这些策略不仅仅是比较好,而是最优的, 使得到达终点状态的步数最少。在这个例子中,策略迭代可以在一步迭代之后就能找到最优策略。

练习4.4 本节中的策略迭代算法中有一个微妙的错误,如果策略在两个或多个同样好的策略之间不断切换, 它可能永远不会终止。这适用于教学,但不适用于实际使用。修改伪代码以保证收敛。

练习4.7(编程) 编写一个策略迭代的程序重新解决做出如下改动后的杰克租车问题。 杰克第一个地点的一个员工每晚乘公共汽车回家,并且住在第二个地点附近。 她希望能够免费搭一辆要转移的车到第二个地点。每一辆多余的车还是要花费2美元,转移到另一个方向也一样。 另外,杰克在每个位置的停车位有限。如果一个位置每天晚上多于10辆车要停放(当车子转移完之后), 那么需要花费额外的4美元去另外一个停车场(与多少辆车停放独立)。 这种现实问题经常掺杂非线性和未知动力学,除了动态规划,优化方法不容易解决。 为了核验程序,你首先需要复现初始问题的结果。

练习4.5 关于动作价值的策略迭代如何定义?提供一个完整的算法计算 \(q_*\), 类似于策略迭代算法中计算 \(v_*\) 的过程。要特别关注这个练习,因为这里的思想将贯穿这本书。

练习4.7 假设只限于考虑 \(\epsilon-soft\) 策略, 意味着在每一个状态 \(s\) 选择每个动作的概率都至少是 \(\frac{\epsilon}{|\cal{A(s)}|}\)。 定性地描述计算 \(v_*\) 的策略迭代算法中按照3,2,1的顺序的每一步所需要的改变。

4.4 价值迭代

策略迭代的一个缺点是每一次迭代过程都包含策略评估,策略评估本身就可能是需要多次对整个状态集迭代计算的过程。 如果策略评估需要迭代计算,那么只能在极限处准确收敛到 \(v_\pi\)。 我们一定要等到准确的收敛吗?是否可以中途停止?图4.1中的例子显然表明截断策略评估是可行的。 在那个例子中,策略评估超过三次迭代后对相应的贪婪策略没有影响。

实际上,策略迭代过程中的策略评估步骤可以用几种方法截断而不会失去收敛性。 一个重要的特例就是策略评估在一次迭代之后就停止(每个状态只有一个回溯)。这个算法就叫做 价值迭代 。 可以被写成一个特殊的结合策略提升和截断之后的策略评估步骤的简单回溯操作:

(8)\[\begin{split}\begin{aligned} v_{k+1}(s)&\doteq \max_a\mathbb{E}[R_{t+1}+\gamma v_{k}(S_{t+1}) | S_t=s,A_t=a] \\ &= \max_a\sum_{s',r}p(s',r|s,a)[r+\gamma v_{k}(s')], \end{aligned}\end{split}\]

对所有的 \(s\in\mathcal{S}\)。 对于任意的 \(v_0\),在保证 \(v_*\) 存在的同样的条件下:math:{v_k} 序列可以收敛到 \(v_*\)

另一种理解价值迭代的方法参考贝尔曼方程(4.1)。注意价值迭代仅仅是将贝尔曼最优方程转变为更新规则。 另外注意到价值迭代的回溯过程是如何与策略评估的回溯(4.5)等价,它需要采取所有动作中能够达到最大值的那一个。 另外一种看待这个相近关系的方法是比较这些算法的回溯图: 价值评估算法展示了策略评估的回溯图,图3.4中左图展示了价值迭代的回溯图。 这两个是计算 \(v_\pi\)\(v_*\) 的本质回溯操作。

最后,让我们考虑价值迭代如何终止。类似策略评估,价值迭代一般需要无穷次的迭代才能准确的收敛到 \(v_*\) 。 实际操作中,只要价值函数在一次更新中只改变一小点我们就停止价值迭代。如下是在这种停止条件下的完整的算法。

价值迭代,用于估算 \(\pi \approx \pi_*\)

算法参数:小的阈值 \(\theta > 0\) 确定估计的准确性

对所有 \(s\in\mathcal{S}\),初始化 \(V(s)\) 为任意值,其中 \(V(终点)=0\)

循环:

\(v\leftarrow{V(s)}\)

\(V(s){\leftarrow}\max_a\sum_{s',r}p(s',r|s,a)[r+\gamma{V(s')}]​\)

\(\Delta{\leftarrow}{\max(\Delta,|v-V(s)|)}\)

直到 \(\Delta<\theta\) (一个小的正数)

输出确定的策略 \(\pi\approx{\pi_*}\) ,满足 \(\pi(s)=\arg\max_a\sum_{s',r}p(s',r|s,a)[r+\gamma{V(s')}]\)

价值迭代在更新过程中高效地结合了一轮策略评估更新和一轮策略提升更新。 在每一轮的策略提升过程中插入多轮的策略评估更新往往能够取得更加快速的收敛效果。 通常情况下,被截断的策略迭代算法的整个类可以被认为是一系列的更新,这些更新有的用策略评估回溯方法,有的用价值迭代回溯方法。 既然(4.10)那些回溯的唯一不同是最大化操作,这就意味着最大化操作加到了策略评估的操作中。 基于有衰减的有限MDP,所有这些算法都收敛到一个最优策略。

例4.3:赌徒问题 一个赌徒对掷硬币的游戏进行下注。如果硬币正面朝上,他将赢得押在这一掷上的所有赌注, 如果是反面朝上,他将输掉所押的赌注。如果赌徒赢得100美元或者输光了钱那么游戏结束。 每一次掷硬币,赌徒要决定押多少钱,这些钱必须是整数美元。 这个问题可以被建模为一个无衰减,回合式的有限MDP。 状态是赌徒的资本,\(s\in \{1,2,\dots,99\}\), 动作是押注多少,\(a\in \{0,1,\dots,\min(s,100-s)\}\)。 赌徒达到目标时奖励是+1,其他转移过程都为0。状态价值函数给出了从每个状态出发能够赢得的概率。 策略是从资本多少到押注的一个映射。最优策略最大化达到目标的概率。 \(p_h\) 代表硬币正面朝上的概率。如果 \(p_h\) 知道了,那么整个问题都清楚了,并且可以被解决,比如用价值迭代方法。 图4.3展示出了价值函数经过成功的价值迭代更新后的变化,并且找到了 \(p_h=0.4\) 情况下最终的策略。 这个策略是最优的,但不是唯一的。实际上,有很多最优策略,都取决于相对于最优价值函数选取的argmax动作。 你能想象出所有的最优策略是什么样的吗?

_images/figure-4.3.png

图4.3: \(p_h=0.4\) 情况下赌徒问题的解。上面的图是经过价值迭代成功地更新找到的价值函数。 下面是最终的策略。

练习4.8 为什么赌徒问题的最优策略有这样奇怪的形式? 尤其是,在资本剩余50美元的时候需要押注所有在一次投掷上,但是对于资本剩余51美元的时候却没有这样做。 为什么这会是一个好的策略?

练习4.9(编程) 实现赌徒问题的价值迭代算法并且求解 \(p_h=0.25\)\(p_h=0.55\) 的情况。 在编程的时候,设置两个对应于终止状态资本剩余为0和100情况的虚拟状态可能会比较方便,分别赋予0和1。 像图4.3那样用图展示出你的结果。随着 \(\theta\leftarrow 0\) 你的结果是否稳定?

练习4.10 类似于(4.10)的值迭代的回溯图,写出动作价值 \(q_{k+1}(s,a)\)

4.5 异步动态规划

到目前为止我们所讨论的DP方法一个主要的缺点是他们涉及整个MDP状态集合,也就是说,需要对整个状态集合进行更新。 如果状态集非常大,即使一次更新也会代价很大。例如,五子棋有多于 \(10^{20}\) 个状态。 即使我们能够一秒钟执行一百万个状态的价值迭代更新,也会花费一千年才能完成一次更新。

异步 DP算法是就地迭代DP算法,并没有按照规则的状态集更新步骤进行组织。 这些算法以任何顺序更新状态值,使用恰好可用的其他状态值。某些状态的值可能会在其他状态的值更新一次之前被更新多次。 为了收敛到准确值,异步算法需要持续的回溯所有的状态值:在一定量的计算之后不能忽视任何状态。 异步DP算法在选择回溯更新状态时有极大的灵活性。

例如,一种版本的异步价值迭代回溯更新值的时候,用(4.10)的值迭代回溯更新方法就地更新, 并且在每一步 \(k\) 只更新一个状态 \(s_k\)。如果 \(0\leq \gamma <1\), 只要所有的状态都在序列 \(\{s_k\}\) 中出现无限次就能保证渐进收敛到 \(v_*\) (序列也可以是随机的)。 (在无衰减回合式的例子中,有些顺序的回溯更新很可能不能够收敛,但是避免这些顺序相对而言还是比较容易的。) 类似地,也可以混合策略评估和价值迭代回溯更新来生成一种异步截断策略迭代。 虽然这种和其他不常用的DP算法超出了本书的讨论范围,很显然一些不同的更新搭建的模块可以灵活的应用在多种多样的少量更新次数的DP算法中。

当然,避免多次更新并不能保证计算量减少。仅仅意味着一个算法没必要陷入无法提升策略的很长的更新中去。 我们可以利用这种灵活性,选择应用更新之后能够提升算法进度的状态。 我们可以试着整理回溯更新的顺序让价值信息在状态之间高速传播。 有些状态价值不需要像其他状态价值那样频繁更新。 我们甚至可以在整个过程中避免更新某些与最优行为无关的状态。这种思想我们将在第八章中详细讨论。

异步算法也使得与实时交互计算的结合更加容易。解决一个MDP问题,我们可以 在个体真正经历MDP的同时 运行迭代DP算法。 个体的经验可以用来决定DP算法将回溯更新应用到哪个状态上。同时,来自DP算法的最新值和策略信息可以用来指导个体的决策。 例如,我们可以在个体访问状态时更新个体状态。这样可以 集中 DP算法的回溯更新到到个体更加相关的状态集上。 这种集中方法在强化学习中经常用到。

4.6 广义策略迭代

策略迭代包含两个同时进行的交互过程,一个使得价值函数与当前策略一致(策略评估),另一个使得策略在当前价值函数下变得贪婪(策略提升)。 在策略迭代过程中,这两个过程相互交替,一个完成了另一个才开始,但是这并不是必须的。 在价值迭代过程中,例如,在每两次策略提升的过程中只进行一次策略评估的迭代。 异步DP方法中,评估和提升过程以一种更加精细的方式交替。在某些例子中一个状态在转移到其他状态之前就在一个过程中更新。 只要两个过程持续更新所有的状态,最终的结果就会一致,即收敛到最优价值函数和最优策略。

_images/generalized_policy_iteration.png

我们用术语 广义策略迭代 (GPI)这个词来指代策略评估和策略提升相互交互的一般概念,而不依赖于两个过程的粒度和其他细节。 几乎所有的强化学习方法都可以被描述为GPI。也就是说,都有可识别的策略和价值函数, 策略总是被价值函数进行更新,价值函数用来计算出相应策略下的价值函数,如右图所示。 很容易看到,如果评估过程和提升过程都稳定了,也就是说,不会再有变化,那么价值函数和策略一定是最优的。 价值函数仅在与当前策略一致时才稳定,并且策略仅在相对于当前价值函数贪婪时才稳定。 因此,只有当一个策略在它自己的评估函数下保持贪婪时,两个过程才能都稳定下来。 这预示着贝尔曼最优方程(4.1)成立,因此这个策略和价值函数是最优的。

GPI中的评估和提升的过程可以认为是既存在竞争又存在合作。在竞争这个意义上他们走向相反的方向。 使价值函数的策略贪婪通常会使更改的策略的价值函数不正确,使价值函数与策略一致通常会导致该策略不再贪婪。 然而,从长远来看,这两个过程相互作用以找到单一的联合解:最优价值函数和最优策略。

_images/two_lines.png

我们可能还会考虑GPI中评估和提升过程的约束和目标的交互,例如,如右图所示两维空间中的两条线。 虽然实际的几何比这更加复杂,这个图表明了实际情况中会发生的情况。 每一个过程驱使价值函数或者策略朝向一条代表这两个目标的一个解的线前进。 目标会交互是因为两条线并不互相垂直。直接驱使向一个目标发展会导致偏离另一个目标。 然而,不可避免地,联合的过程越来越趋近整体的最优目标。 图中的箭头对应于策略迭代的行为过程,每个箭头都使系统完全达到两个目标中的一个。 在GPI过程中可以采取更小不完全的步骤去达到每个目标。 任一种情况,这两个过程一起会达到整体的最优目标,即使每一个单独都不能达到最优。

4.7 动态规划的效率

对于非常大的问题,DP可能不实用,但与其他解决MDP的方法相比,DP方法实际上非常有效。 如果我们忽略一些技术细节,那么(最坏的情况)DP方法找到最优解的时间是状态和动作数量的多项式。 如果 \(n\)\(k\) 指代状态和动作的数量,这意味着DP方法需要大量的计算操作, 这些操作小于 \(n\)\(k\) 的某个多项式函数。 即使策略(确定的)的总数是 \(k^n\),DP方法保证能够在多项式时间内找到最优策略。 从这个意义上讲,DP方法比策略空间的任何直接搜索的方法都要快得多,因为直接搜索必须详尽地检查每个策略以提供相同的保证。 线性规划方法也可以用来解决MDPs,并且在某些案例中他们最差的收敛保证也比DP方法好。 但是线性规划方法在比较小数量的状态(大约100倍)情况下不如DP方法实用。对于非常大的问题,只有DP方法是可行的。

DP有时候被认为应用有限,因为 维数灾难 ,状态的数量随着状态变量的增加成指数增长。 非常大的状态集合的确会带来困难,但是这些是问题的固有困难,并不是DP作为一个解决问题的算法本身带来的困难。 实际上,DP方法比相关的直接搜索和线性规划方法在解决大状态空间的问题上要更加合适。

在实际应用中,使用如今的计算机,DP方法可以被用来解决数百万状态的MDP问题。 策略迭代和价值迭代都有广泛应用,一般来说,还不清楚哪一个更好。 在实际应用中,这些方法通常都要比理论最差的时间收敛得快,尤其是有好的初始值函数或者策略的时候。

在大状态空间的问题上,通常优先选择 异步 DP方法。为了完成一次同步方法的更新需要计算和存储所有的状态。 对于一些问题,即使这么多的存储和计算也是不现实的,但是这个问题还是可以解决的,因为在寻找最优解的过程中只有一小部分状态出现。 异步方法和其他GPI的一些变种可以被应用在这些例子中,并且可能比同步方法更快地找到好的或者最优的策略。

4.8 总结

在这一章节中我们熟悉了动态规划的基本思想和算法,它可以用来解决有限MDP。 策略评估 指的是(通常)迭代计算一个给定策略的价值函数。策略提升 指的是给定一个策略的价值函数计算一个提升的策略。 将这两种计算放在一起,就会得到策略迭代和价值迭代这两个最流行的DP方法。 在完全了解MDP的情况下,任何一个都能可靠地计算有限MDP的最优策略和价值函数。

经典的DP方法在状态集中进行更新,对每个状态进行 完全回溯 操作。 基于所有可能被选取的状态和他们出现的可能性,每次回溯更新一个状态的价值。 完全回溯更新与贝尔曼方程紧密相关:他们更像是这些状态转变为分配状态。 当回溯价值不再变化,满足相应贝尔曼方程的价值已经收敛。 正如有四个主要值函数(\(v_\pi\)\(v_*\)\(q_\pi\)\(q_*\))一样, 有四个相应的贝尔曼方程和四个相应的完全回溯。 回溯图 给出了一种DP回溯操作的直观看法。

深入DP方法,应该是几乎所有强化学习的方法,可以将他们看作是 广义策略迭代 (GPI)。 GPI是一个关于两个交互过程围绕一个近似策略和一个近似价值函数的一般的思想。 一个过程使用给定的策略进行某种策略评估,使价值函数更加趋近这个策略的真实价值函数。 另外一个过程在假定当前价值函数是它的真实价值函数并使用给定的价值函数进行某种策略提升,使得策略更好。 虽然每个过程改变另外一个过程的基础,但总体而言,他们一起合作找到一个联合的解: 一个策略和价值函数,并且它们不受两个过程的影响,并且是最优的。 在某些情形中,GPI已经被证明收敛,特别是我们之前在本章提及的经典DP方法。 在其他情形中,收敛性还没有被证明,但是GPI的思想依旧帮助我们理解这些方法。

DP方法在整个状态集中进行更新并没有必要。 异步 DP方法是用任意顺序进行回溯的就地迭代方法,可能是随机确定的并且使用过时的信息。 很多这些方法可以被看作是更加细粒度的GPI。

最后,我们说明DP方法的最后一条特殊性质。所有这些方法基于对后继状态价值的估计来更新状态价值的估计。 也就是说,他们根据其他估计更新估计数。我们把这种广义的思想叫做 自助法。 许多强化学习的方法都会用到自助法,即使那些不像DP方法需要完全准确的环境模型的方法。 下一章我们探索不需要模型但是进行自助的方法。这些关键特征和特性是分离的,当然可以以一种有趣的方式来混合。

书目和历史评论

“动态规划”这个词可以追溯到贝尔曼(1957a),他展示了这个方法可以被用到很多问题中。 在很多教材中都有对于DP的扩充,包括Bertsekas(2005,2012),Bertsekas和Tsitsiklis(1996), Dreyfus和Law(1977),Ross(1983),White(1969),还有Whittle(1982,1983)。 我们对于DP的兴趣仅限于用它来解决MDPs,但是DP也可以用在其他类型的问题中。Kumar和Kanal(1988)提出了一种更加一般的看法。

据我们所知,第一次将DP和强化学习联系起来的是Minsky(1961)在Samuel的跳棋手问题中给出的。 在一个脚注中,Minsky提到可以将DP应用在Samuel的回溯过程可以以近似分析的形式处理的问题中。 这个批注可能误导了人工智能学者使他们认为DP只能严格用在可以理论分析的问题中,因此与人工智能大不相干。 Andreae(1969b)在强化学习中提到DP,尤其是策略迭代,虽然他并没有给出DP和学习算法之间的特殊联系。 Werbos(1977)建议一种近似DP的方法叫做“启发式动态规划”,这种方法强调在连续状态空间问题上应用梯度下降方法(Werbos,1982,1987,1988,1989,1992)。 这些方法与我们在本书中讨论的强化学习算法很相近,刻画了这一类强化学习方法叫做“递增的动态规划”。

4.1-4 这些章节很好的建立了DP算法,这些算法在上述的引用中都被提及。 策略提升理论和策略迭代算法起源于Bellman(1957a)和Howard(1960)。策略提升受到Watkins(1989)看法的影响。 我们的对于作为一个截断的策略迭代的价值迭代的讨论是基于Puterman和Shin(1978)的看法, 他们提出了一类算法叫做 修正的策略迭代 ,策略迭代和价值迭代是其中的特例。 Bertsekas(1987)给出了如何在有限的时间内用价值迭代找到一个最优策略的理论分析。

迭代策略评估是经典的用来解决一系列的线性方程的成功近似算法的一个例子。 一个版本的算法用两个数组,一个用来记录旧的值,另一个用来更新,在雅克比用过这个经典方法之后被叫做 雅克比式 算法。 有时也被叫做 同步 算法因为可以并行执行,从其他进程得到输入,不同的进程同步更新每个状态的值。 第二个数组用来有序地模拟这个并行计算。在用来解决一系列的线性方程的高斯-赛德尔算法之后就地更新版本算法被叫做 高斯-赛德尔-形式 算法。 除了迭代策略评估,其他DP算法可以用这些不同的版本实现。Bertsekas和Tsitsiklis(1989)给出了这些变种可以很好的收敛,并且给出了他们性能的不同之处。

4.5 异步DP算法起源于Bersekas(1982,1983),他起名为分布式DP算法。 异步DP算法的最初动机是在不同进程之间存在通讯延迟并且没有全局同步时钟的多进程系统之间实现时提出的。 这些算法被Bertsekas和Tsitsiklis(1989)进行了扩充。雅克比-形式和高斯-赛德尔-形式DP算法是异步版本的一个特例。 Williams和Baird(1990)提出了一种更加细化的异步DP算法,我们之前已经讨论过:回溯操作本身被分解为多步,可以异步进行。

4.7 这一章节,与Michael Littman合作完成,并且基于Littman,Dean,和Kaelbling(1995)。 短语“维数灾难”起源于Bellman(1957)。

第5章 蒙特卡洛方法

这一章,我们开始考虑评估价值函数以及获得最优策略的第一种学习方法。 不同于上一章,这里我们不再假设我们对环境有完全的了解。 蒙特卡洛方法需要的仅仅是 经验*──与环境进行真实的或者模拟的交互所得到的状态,动作,奖励的样本序列。 其中,从 *真实 的经验学习是非常吸引人的,因为它在不需要关于环境动态的先验知识的情况下仍然能够获得最优的行为(策略); 而从 模拟 的经验学习也同样强大,虽然这时需要一个模型,但是这个模型仅仅用来产生样本, 并不是动态规划(DP)方法中所用到的所有转移概率的完整分布函数。 在相当多情况下我们很容易从目标的概率分布函数中进行抽样得到样本,可是很难获得这个分布的显式(具体)形式。

蒙特卡洛方法是基于对样本回报求平均的办法来解决强化学习的问题的。 为了保证能够得到良好定义的回报,这里我们定义蒙特卡洛方法仅适用于回合制任务。 就是说,我们假设我们的经验被分成一个个的回合,而且对每个回合而言,不管选择什么样的动作,都会结束。 只有在事件结束时,我们的价值估计和策略才会改变。蒙特卡洛方法因此能够写成逐个回合的增量形式,而不是逐步(在线)的形式。 术语“蒙特卡洛”被广泛的用于任何的在操作中引入了随机成分的估计方法。 这里我们使用它来表示基于平均整个回报的方法(区别于那些使用部分的回报的方法。我们将在下一章阐述)。

蒙特卡洛方法使用抽样以及对状态-动作对的 回报 求平均的办法很像我们在第二章中遇到的赌博机中使用的方法, 在第二章中我们也使用了抽样以及对每个动作的 奖励 求平均的方法。 他们主要的区别在于,我们现在有多种状态,每个表现地就像一个不同的赌博机问题 (就像一个联合-搜索或前后关联的赌博机),而且它们之间是相互关联的。 就是说,在一个状态下做出一个动作的回报依赖于本事件中这个状态之后的状态所做的动作。 因为所有动作的选择也正在学习中,从之前的表述来看,问题变成了非平稳的。

为了解决这种非平稳性,我们改变我们的办法,像我们在第四章中对动态规划方法(DP)所做的,使用广义策略迭代(GPI)。 那里我们依靠对MDP的了解来 计算 价值函数,这里我们从MDP的抽样回报中 学习 价值函数。 我们使用相同的办法去获得最优的价值函数和策略,即GPI中价值函数和对应的策略交互作用。 就像在动态规划(DP)的那章所做的,首先我们考虑预测的问题 (计算一个确定的随机策略 \(\pi\) 的价值 \(v_{\pi}\)\(q_{\pi}\) ), 然后是策略提升,以及最后,控制的问题和解决它的广义策略迭代方法。 从动态规划(DP)中得到的这些想法都被推广到蒙特卡洛方法中,不过在这种情况下(指蒙特卡洛),我们只有样本经验。

5.1 蒙特卡洛预测

我们开始考虑在给定策略的情况下,用蒙特卡洛方法学习状态-价值函数。 我们之前讲过,一个状态的价值等于从这个状态开始的期望回报──期望的累积未来折扣奖励。 一个显而易见的估计方法是,对经验中的所有的这个状态的回报求平均。 随着更多的回报被观察到,这个平均值会收敛于它的期望值,即期望回报。 这个想法根植于所有的蒙特卡洛方法中。

具体来看,假设我们想要估计 \(v_{\pi}({s})\) 的值, 它表示遵循策略 \(\pi\) 的情况下,状态 \(s\) 的价值, 我们已经得到了一些回合,它们都遵循策略 \(\pi\) 并且都出现了状态 \(s\) 。 每当一个回合中出现状态 \(s\),我们就说这是对状态 \(s\) 的一次 访问。 当然,在同一个回合中状态 \(s\) 可能被访问多次,我们称第一次为 \(s\)首次访问。 所以我们有两种蒙特卡洛方法,一种只计算所有回合中首次访问状态 \(s\) 的平均回报, 以此作为 \(v_\pi(s)\) 的估计值,我们称之为 首次访问MC方法 ; 与之对应的,另一种方法计算所有回合中每次访问状态 \(s\) 的平均回报,我们称之为 每次访问MC方法 。 上述的两种方法很相似,但是具有细微不同的理论特性。 第一种方法(指首次访问MC方法)被广泛研究可追溯到十九世纪四十年代,所以我们这一章主要关注这种方法。 至于第二种方法呢,我们将在第九章和第十二章分别作为函数近似和资格迹(eligibility traces)的扩展。 首次访问MC方法如下所示。每次访问MC方法和首次访问MC方法是相同的,除了没有检查在回合中早些时候发生过 \(S_t\)

首次访问 MC 预测,估计 \(V \approx v_\pi\)

输入:用来评估的策略 \(\pi\)

初始化:

对所有 \(s\in\mathcal{S}\),任意 \(V(s)\in\mathbb{R}\)

\(Returns(s) \leftarrow\) 一个空的列表,对所有 \(s\in\mathcal{S}\)

一直循环(对每一个回合):

使用 \(\pi\) 生成一个回合:\(S_0, A_0, R_1, S_1, A_1, R_2, \dots , S_{T-1}, A_{T-1}, R_{T}\)

\(G \leftarrow 0\)

对于回合中的每一步循环,\(t = T-1, T-2, \dots, 0\)

\(G \leftarrow \gamma{G} + R_{t+1}\)

除非 \(S_t\) 出现在 \(S_0, S_1, \dots, S_{t-1}\) 中:

\(G\) 添加到列表 \(Returns(s)\)

\(V(s) \leftarrow average(Returns(s))\)

不论是首次访问MC方法还是每次访问MC方法,都会随着访问 \(s\) 的次数趋于无穷而收敛于 \(v_\pi(s)\)。 对于首次访问MC方法,这是显而易见的。在这种情况下,每个回报都是对于 \(v_{\pi}(s)\) 的有限方差的独立同分布的估计。 根据大数定理,这些估计的平均数会收敛于期望价值。每个平均是无偏估计,标准差随着次数减小的关系是 \(1 / \sqrt{n}\), 其中 \(n\) 是求平均的量的个数(即,估计以二次方的速度收敛)。 每次访问的方法则没有那么直观,不过也会以二次方的速度收敛于 \(v_\pi(s)\) (Singh and Sutton,1996)。

我们用一个例子来很好地说明如何使用蒙特卡洛方法。

例5.1:二十一点(Blackjack) 这个风靡于赌场的游戏 二十一点 是一种比谁手上的牌点数和大(不超过21点)的游戏。 其中,所有的J,Q,K记为10点,A即可为1也可为11。我们考虑的版本是玩家独立面对庄家。 游戏开始时每人手上有两张牌,其中庄家的牌有一张是明牌。如果玩家起手就是21点(一张10点的牌和一张A),这个叫 natural 。 这种情况下就算庄家也是natural也判玩家赢,这种情况叫draw,游戏结束。 如果玩家起手点数小于21点,那么他可以要牌,每次要一张,或者停止要牌。 如果玩家的牌超过21点,玩家就直接输了,叫做爆掉;如果玩家停止要牌,那么进入庄家回合。 庄家要牌或者停止要牌根据的策略是,只要超过17点就停止,否则就一直要牌,没有其他选择。 如果庄家爆掉,那么玩家赢。如果大家都没爆掉,那么就比谁的点数接近21点。

21点可以看成一个回合式的有限马尔可夫过程。每次游戏都是一个回合。赢、输、draw的奖励分别为1、-1、0。 游戏过程中的任意动作奖励都为0,且我们不算折扣(\(\gamma = 1\));因此这些结束状态的奖励即是回报。 玩家的动作只有要牌或者停止要牌两种。游戏的状态取决于玩家是什么牌以及庄家手上的明牌。 我们假设牌数是无限的,这样我们记牌就没有优势了。 如果玩家将A当成11点来算的话(不能爆掉),我们称它 可用 。 开始时我们把A当成11,因为如果当成1的话,那么开始时的牌肯定是小于等于11点的,这样我们没有更多的选择,肯定是会要牌的。 所以,玩家做出的决定依赖于三个变量:当前的牌的点数和(12-21)、庄家的明牌的点数(A-10)以及玩家是否有可用的A。 这样的话,总共有200个不同的状态。

我们考虑这样的策略:一直要牌,直到点数和等于20或21时停止。为了使用蒙特卡洛方法找到这个策略下的状态价值函数, 我们使用一个模拟器模拟了许多次的游戏,游戏中玩家使用上述的策略。然后我们将每个状态的回报值求平均,作为对应状态的价值函数。 通过这种方法求得的价值函数如图5.1所示。 可以看到,如果A可用,相对于A不可用,估计的值会有更多不确定性,更加不规则,因为这些状态不是很常见。 经过500,000次的游戏,我们看到价值函数被近似得很好。

图5.1:遵循一直要牌直到点数和等于20或21的策略,使用蒙特卡洛策略估计求得的估计的状态价值函数。

图5.1:遵循一直要牌直到点数和等于20或21的策略,使用蒙特卡洛策略估计求得的估计的状态价值函数。

练习 5.1 请思考,图5.1右边两幅图:为什么估计值在尾部的最后两行会突然变大? 为什么最左边的整个一行价值会有下降?为什么前面部分,上面图中的价值要大于下面的图?

练习5.2 假设在二十一点任务中使用每次访问MC而不是首次访问MC。你是否期望结果会有很大差异?为什么或者为什么不?

在这个任务中,虽然我们对环境有完全的了解,但是我们仍然难以用动态规划算法(DP)来计算价值函数。 动态规划(DP)需要下一个状态的分布——具体讲,它需要转移函数 \(p(s^{'},r|s,a)\) 的值——而这在二十一点里不太好确定。 例如说,假设玩家的牌面和为14点,并且玩家选择停止要牌。那么对应庄家的明牌点数,玩家的期望奖励是多少呢? 所有这些期望奖励和转移函数 \(p(s^{'},r|s,a)\) 都需要在使用动态规划(DP)算法 之前 得知。 而它们的计算量很大且容易出错。相比而言,使用蒙特卡洛方法仅仅只需要产生样本就好了,这要简单许多。 这种情况经常令人惊讶,蒙特卡洛方法只需要样本回合,这相比动态规划(DP)需要对动态环境有完全的了解而言有很大的优势。

_images/backup_diagrams_of_MC.png

我们能将备份图的想法推广到蒙特卡洛的算法中吗?这个图表的顶部根节点是我们需要更新的量, 树枝和叶节点分别表示这些转移状态的奖励以及下个状态的估计价值。 具体的,对于蒙特卡洛估计 \(v_\pi\),如右图所示,根节点是我们的起始状态的价值,之后的轨迹表示一个特定回合的经历,最后以终止状态结束。 我们可以通过与动态规划(DP)的图表(\(v_\pi\) 备份图)对比发现, 首先,动态规划(DP)的图表展示了所有的转移可能,列出了所有可能的下一状态,而蒙特卡洛(MC)在一个回合里只有一种转移可能。 其次,动态规划(DP)只包含了单步的转移状态价值,而蒙特卡洛(MC)表示一个回合从开始到结束的所有状态价值。 这些图表所表现的不同精确地反应了这两种算法的根本性的差异。

需要注意的是,蒙特卡洛(MC)方法对每个状态的估计是独立的,即是说,对这个状态的估计并不取决于其他的状态,这点和动态规划(DP)是一样的。 换句话说,就像我们在前面的章节所提到的,蒙特卡洛(MC)方法不使用 提升(bootstrap)

特别地,注意到我们估计每一个特定状态的价值所需要花费的计算开销都是独立于状态数量的。 所以但我们只需要一个或者一小部分状态信息时,蒙特卡洛(MC)方法就很有吸引力了。 我们可以从我们关心的那个状态开始,生成很多回合的样本,然后求它们的回报的均值,而不用管其他的起始状态。 这是蒙特卡洛(MC)方法相对说DP方法的好处(继可以从真实经验和模拟经验中学习之后的第三个好处)。

_images/bubble.png

线圈上的肥皂泡(来自 Hersh 和 Griego(1969),已授权修改。1969 Scientific American,Nature America,Inc 的一个部门。保留所有权利。)

例5.2:肥皂泡 假设一根线围成一个闭环,在肥皂水中浸泡后,表面形成了一个肥皂薄膜或者泡泡。 如果线是不规则的但是已知,如何计算肥皂泡表面的形状呢? 已知泡泡的形状有一个特性:在表面任一点,受到临近的力之和为零(如果不为零,泡泡的形状会改变,直到稳定下来)。 这个性质意味着,泡泡表面上的每一点的高度等于周围点高度的平均值。此外,表面的形状必须符合线形成的边界。 解决这个问题的常规办法是,用网格分格这个区域,使用网格上一点的周围点来计算这点的高度,然后迭代地进行。 边界上的点的高度和线上的那点一致,然后其他的点的高度都可以从临近网格的点的高度求平均得到。 这个过程不断的迭代,很像动态规划(DP)迭代策略评估。最终,这个不断迭代的过程会收敛到很接近真实的表面形状。

这个问题和最初设计蒙特卡洛(MC)所涉及的问题是类似的。除了上述提到的迭代计算的方法,我们还可以想象在表面进行随机漫步。 在网格上的每一点以等概率向临近的点移动,直到到达边界。 结果是,这些边界点的高度求得的期望值即是我们随机漫步起始点的高度(事实上,它恰好等于之前的迭代方法计算得到的值)。 因此,我们能够很好地得到表面上任意一点的高度值。只需要从该点开始,进行许多次随机漫步,然后将所有得到的边界高度值求平均。 如果我们仅仅对某一点或者某一小块区域的高度感兴趣,这个蒙特卡洛(MC)方法要比之前的迭代方法高效的多。

5.2 动作价值的蒙特卡洛估计

如果模型不可用,那么估计 动作 价值(即状态-价值对的值)而不是 状态 价值就会特别有用。 如果模型可用,那么仅使用状态价值就可以决定策略; 决定下一步只需要看哪个动作导致的奖励和下一状态组合最佳,就像我们在动态规划(DP)那章所讲的一样。 而如果模型不可用,仅使用状态价值是不够的。我们必须清楚地估计每个动作的价值,以使价值在建议策略时有用。 所以,蒙特卡洛方法主要用来估计 \(q_*\) 。为此,我们首先考虑对动作价值的策略估计问题。

对于动作价值的策略评估问题,即估计 \(q_\pi{(s,a)}\)\(q_\pi{(s,a)}\) 定义为, 从状态 \(s\) 开始,做出动作 \(a\),之后遵循策略 \(\pi\),所得到的期望回报(return)。 在这里使用的蒙特卡洛方法与上一节对状态价值使用的基本相同,只不过现在谈论的是状态-动作对而不是状态。 一个状态-动作对 \(s,a\) 即是在一个回合里,访问到状态 \(s\) ,并做出动作 \(a\)。 在每次访问MC方法中,每次访问状态-动作对都会计算,最后求平均; 而首次访问MC方法每个回合只计算最多一次。当访问次数趋近于无穷时,这两种方法(指每次访问 MC 和首次访问 MC)都会以二次方收敛到期望值。

唯一的问题是,可能会有许多状态-动作对从未被访问到。如果 \(\pi\) 是一个确定性的策略, 那么遵循策略 \(\pi\),每个状态将会仅仅观察到一个动作的回报。 如果不能观察到其他动作的回报,也就不能求平均,那么蒙特卡洛的估计就不能随着经验的增加而提高。 这是一个严重的问题,因为我们学习动作价值,就是为了在每个状态选择合适的动作。 为了比较所有的可能,我们需要估计每个状态 所有 可能的动作,而不仅仅是当前选择的动作。

这是一个很普遍的问题,即 保持探索。我们在第二章的k-臂赌博机问题中提到过。 要使策略评估能够工作,我们必须保证持续的探索。一个办法是, 从特定的状态动作对出发 ,对每种动作都有大于零的概率选择到。 这能够保证经历无限个回合后,所有的状态-动作对都会被访问到无限次。我们称这种假设为 探索开端

这个探索开端的假设有时是很有用的。但是它不具普遍意义,特别是当我们直接从与真实环境的交互中学习时,这种方法就不太适用了。 在这种情况下(指从与真实环境的交互中学习)起始状态不是很有用。 为了让所有状态-动作对都能访问到的更加普遍的一种方法是让我们的策略是随机策略,即每个状态下,选择任意动作的概率都不为零。 我们将会在后面的小节里讨论这种方法的两个变种。现在,让我们假设是探索开端,然后完整地表述蒙特卡洛控制方法。

练习 5.2 请问蒙特卡洛估计 \(q_\pi\) 的备份图怎样的?

5.3 蒙特卡洛控制
_images/GPI_chp5.3.png

现在,我们开始考虑蒙特卡洛估计来解决控制问题,即求解近似最优的策略。 整个的过程和上一章动态规划的模式相同,我们依照广义策略迭代(GPI)的思想。 广义策略迭代(GPI)中,我们同时维持一个近似的策略和一个近似的价值函数。 这个价值函数会不断地靠近当前策略的价值,而这个策略也会不断地根据当前的价值进行提升,如右图所示。 这两种变化在一定程度上相互作用,任意一方的改变都会引起另一方的改变,但是总的来讲他们使策略和价值函数都趋向于最优。

首先,我们考虑经典的策略迭代的蒙特卡洛(MC)版本。这里,我们交替执行策略迭代和策略提升的完整步骤。 从一个随机的策略 \(\pi_0\) 开始,以最优策略和最优的动作-价值函数结束:

\[\pi_0 \overset{E}{\rightarrow} q_{\pi_0} \overset{I}{\rightarrow} \pi_1 \overset{E}{\rightarrow} q_{\pi_1} \overset{I}{\rightarrow} \pi_2 \overset{E}{\rightarrow} \cdots \overset{I}{\rightarrow} \pi_{*} \overset{E}{\rightarrow} q_{*}\]

其中,\(\overset{E}{\rightarrow}\) 表示一个完整的策略评估, \(\overset{I}{\rightarrow}\) 表示一个完整的策略提升。策略评估的做法上一节已经说明。 随着我们经历越来越多的回合,近似的动作-价值函数渐进地趋近于真实的动作-价值函数。 此时,我们假设观察到了无限的回合,而且这些回合都是以探索开端的方式生成的。 在上述假设下,对应于随机策略 \(\pi_k\),蒙特卡洛方法会精确地计算每个 \(q_{\pi_k}\)

策略提升的方法是,对于当前的价值函数,使策略贪婪。这种情况下,我们有 动作-价值 函数,因此不需要模型来构建贪婪策略。 对于任何的动作-价值函数 \(q\),它对应的贪婪策略是:对每个 \(s \in\mathcal{S}\), 选择使动作-价值函数最大的那个动作:

(1)\[\pi(s) \dot{=} arg \space \underset{a}{max} \space q(s,a)\]

之后我们可以做策略提升,我们构建每个 \(\pi_{k+1}\)\(q_{\pi_k}\) 的贪婪策略。 策略提升理论(见4.2节)可以应用到 \(\pi_k\)\(\pi_{k+1}\) 上, 因为对于所有 \(s \in\mathcal{S}\)

\[\begin{split}\begin{aligned} q_{\pi_{k}}\left(s, \pi_{k+1}(s)\right) &=q_{\pi_{k}}(s, \arg \max _{a} q_{\pi_{k}}(s, a)) \\ &=\max _{a} q_{\pi_{k}}(s, a) \\ & \geq q_{\pi_{k}}\left(s, \pi_{k}(s)\right) \\ & \geq v_{\pi_{k}}(s) \end{aligned}\end{split}\]

正如我们上一章说阐述的,这个理论保证了每个 \(\pi_{k+1}\) 都一致地比 \(\pi_k\) 好, 或者和 \(\pi_k\) 一样好。后者,我们能得到两个最优策略。这个理论保证了整个过程会收敛到最优的策略和价值函数。 通过这种方法我们能在不知道环境动态(不知道转移函数)的情况下,仅靠样本回合(使用蒙特卡洛(MC)方法)来找到最优策略。

我们做出了两个不太可能的假设,以保证蒙特卡洛(MC)方法能够收敛。第一个是,回合都是探索开端的方式; 第二个是,我们有无限个回合供策略评估使用。为了得到一个可实践的算法,我们将不得不删除这两个假设。 我们将在这一章的稍后部分考虑怎么删除第一个假设。

现在,我们先考虑第二个假设,即策略评估需要无限个回合。这个假设相对容易去掉。 事实上,相同的问题曾在上一章的经典动态规划(DP)算法中出现过。例如迭代策略评估只会渐进地收敛到真实价值函数。 无论是DP还是MC,我们有两种方法解决这个问题。一个方法是,让每次策略评估都足够接近 \(q_{\pi_k}\)。 为了获得这个估计的边界的量级和错误的概率,我们会使用一些方法和一些假设,然后经过足够多的步骤后, 策略评估能够保证这些边界足够的小。这个方法可以完全满足保证收敛到一定程度的近似。 然而,如果使用这种方法,即使是解决最小的问题,在实践中也会需要非常多的回合。

还有第二种方法可以避免策略评估需要无限回合,在跳转到策略提升前,放弃尝试完成策略评估。 评估的每一步,我们将价值函数 \(q_{\pi_k}\) 移动,但是除了很多步之外,我们不希望移动到期望的值。 我们最先在4.6节的GPI中介绍了这种方法。一个极端的例子是价值迭代,就是每执行一步策略提升就要执行一步迭代策略评估。 还有一种更极端的例子是价值迭代的原地版本,它每个状态交替使用策略提升和策略评估。

对于蒙特卡洛策略评估而言,以回合制的方式交替使用策略评估和策略提升是很自然的。 每一个回合结束后,观察到的回报用来做策略评估,然后对每个经历的状态做策略提升。 完整的简化算法在下面,我们称作 探索开端的蒙特卡洛算法 (Monte Carlo ES,即 Monte Carlo with Exploring Starts)。

探索开端的蒙特卡洛算法(Monte Carlo ES),用于估算 \(V \approx v_\pi\)

初始化,对所有的 \(s \in \mathcal{S}, a \in \mathcal{A}(s)\):

所有的 \(s \in\mathcal{S}\),任意 \(\pi(s) \in \mathcal{A}(s)\)

对所有的 \(s \in \mathcal{S}, a \in \mathcal{A}(s)\),任意 \(Q(s,a) \in \mathbb{R}\)

对所有的 \(s \in \mathcal{S}, a \in \mathcal{A}(s)\)\(Returns(s,a) \leftarrow\) 空列表

一直循环(对每一个回合):

随机选择状态 \(S_0 \in \mathcal{S}\) 和动作 \(A_0 \in \mathcal{A}(S_0)\) 使得所有状态-动作对的概率大于0

\(S_0, A_0\) 开始,遵循策略 \(\pi\) ,生成一个回合:\(S_0, A_0, R_1, \dots , S_{T-1}, A_{T-1}, R_T\)

\(G \leftarrow 0\)

对于这个回合中的每一步,\(t=T-1, T-2, \dots, 0\)

\(G \leftarrow \gamma G + R_{t+1}\)

除非 \(S_t, A_t\) 出现在 \(S_0, A_0, R_1, \dots , S_{t-1}, A_{t-1}\) 中:

\(G\) 添加到 \(Returns(S_t, A_t)\)

\(Q(S_t, A_t) \leftarrow average(Returns(S_t, A_t))\)

\(\pi(S_t) \leftarrow \mathop{argmax} \limits_{a} Q(S_t, a)\)

练习5.4 探索开端的蒙特卡洛算法的伪代码是无效的,因为对于每个状态-动作对,它维护所有返回的列表并重复计算它们的平均值。 使用类似于第2.4节中解释的技术来维护平均值和计数(对于每个状态-动作对)并逐步更新它们会更有效。描述如何改变伪代码来实现这一目标。

在探索开端的蒙特卡洛算法里,每个状态-动作对的回报会累积起来并求平均,不管使用的是什么策略。 很容易看出,这个算法不会收敛到次优的策略。因为,如果收敛到次优的策略,由于价值函数最终会收敛到该策略对应的价值,这又可以做策略提升了。 只有当策略和价值函数均为最优时才会稳定。收敛到最优的那点看起来是不可避免的,因为动作-价值函数的改变越来越小。 不过这个还未被正式的证明。在我们看来,这个是强化学习中最为重要的开放问题(部分解决方法请看 Tsitsiklis,2002)。

图 5.3: 使用探索开端的蒙特卡洛算法(Monte Carlo ES),21点的最优策略和状态-价值函数。状态-价值函数是从算法得到的动作-价值函数计算而来的

图 5.2: 使用探索开端的蒙特卡洛算法下21点的最优策略和状态-价值函数。状态-价值函数是从算法得到的动作-价值函数计算而来的。

例 5.3:解决21点问题 我们很容易的使用探索开端的蒙特卡洛算法来解决21点问题。 由于这些回合都是仿真的游戏,所以很容易使探索开端包含所有的可能性。 这种情况下,我们只需要庄家的牌,玩家的牌面和,以及玩家是否有使用的A的值都以等概率提取。 初始策略使用我们之前讨论时使用的,在20或21时停止要牌,其余情况均要牌。初始的各个状态的动作-价值函数均为零。 图5.2展示了使用探索开端的蒙特卡洛算法得到的最优策略。 这个策略除了使用A的策略中左边的缺口外,和Thorp在1966提出的“基本”策略是一样的。Thorp的策略没有那个缺口。 我们虽然不清楚为什么会有那个缺口,但是我们确信上图的策略就是我们所说版本的21点游戏的最优策略。

5.4 非探索开端的蒙特卡洛控制

如何摆脱这个在实践中不太可能发生的探索开端的假设呢? 保证无限次后所有的动作都能被选到的惟一的通用办法是让个体能够持续地选择它们。 具体来讲有两种方法,我们称之为 在策略(on-policy) 方法和 离策略(off-policy) 方法。 在策略方法尝试去估计和提升我们用作决策的那个策略;而离策略估计和提升的策略与用来生成数据的策略不同。 我们上一节所用到的探索开端的蒙特卡洛方法就是一种在策略方法。 在这一节里,我们还将学习如何设计不用探索开端假设的在策略蒙特卡洛控制(on-policy Monte Carlo control)算法。 离策略方法将在下一节说明。

我们的在策略控制方法是 软的(soft) ,就是说所有的 \(s\in\mathcal{S}\)\(a\in\mathcal{A}(s)\)\(\pi(a|s)>0\),但是会逐渐地接近于确定性的最优策略。 许多第二章谈论的方法都可以提供这种机制。 这一节我们使用 \(\epsilon -\) 贪心\(\epsilon - greedy\))策略, 即大多数时间选择有最大估计动作价值的动作,但是有 \(\epsilon\) 的概率选择随机的动作。 也就是说,对所有非贪心的动作,选择它的概率是 \(\frac{\epsilon}{|\mathcal{A}(s)|}\), 选择贪心的动作的概率是 \(1-\epsilon+\frac{\epsilon}{|\mathcal{A}(s)|}\)\(\epsilon-\) 贪心是 \(\epsilon-soft\) 策略的一个例子, 在 \(\epsilon-soft\) 中,对所有的状态和动作, 有 \(\pi(a|s)\geq\frac{\epsilon}{|A(s)|}\)。 在 \(\epsilon-soft\) 中,\(\epsilon-\) 贪心策略是最接近贪心的。

在策略蒙特卡洛控制的思想仍然是广义策略迭代(GPI)。 和探索开端的蒙特卡洛算法一样,我们使用首次访问蒙特卡洛方法来估计当前策略的动作-价值函数。 由于没有探索开端这个假设,我们不能简单地对当前价值函数使用贪心来提升当前的策略, 因为那样会影响我们在未来对非贪心动作的探索。 幸运的是,广义策略迭代(GPI)并不需要我们的策略一直保持贪心,只是要求不断向贪心策略 靠近。 我们的在策略方法会不断的趋向于 \(\epsilon-\) 贪心策略。 对任意的 \(\epsilon-soft\) 策略 \(\pi\)\(q_\pi\) 对应的任意的 \(\epsilon-\) 贪心策略都不坏于策略 \(\pi\)。 完整的算法如下。

在策略首次访问蒙特卡洛控制(对于 \(\epsilon-soft\) 策略),用于估算 \(V \approx v_\pi\)

算法参数:小 \(\epsilon > 0\)

初始化:

\(\pi \leftarrow\) 任意 \(\epsilon-soft\) 策略

对所有的 \(s \in \mathcal{S}, a \in \mathcal{A}(s)\),任意 \(Q(s,a) \in \mathbb{R}\)

对所有的 \(s \in \mathcal{S}, a \in \mathcal{A}(s)\)\(Returns(s,a) \leftarrow\) 空列表

一直循环:

遵循策略 \(\pi\) ,生成一个回合:\(S_0, A_0, R_1, \dots , S_{T-1}, A_{T-1}, R_T\)

\(G \leftarrow 0\)

对于这个回合中的每一步,\(t=T-1, T-2, \dots, 0\)

\(G \leftarrow \gamma G + R_{t+1}\)

除非 \(S_t, A_t\) 出现在 \(S_0, A_0, R_1, \dots , S_{t-1}, A_{t-1}\) 中:

\(G\) 添加到 \(Returns(S_t, A_t)\)

\(Q(S_t, A_t) \leftarrow average(Returns(S_t, A_t))\)

\(A^* \leftarrow \mathop{argmax} \limits_{a} Q(S_t, a)\) (随意打破关系)

对所有 \(a \in\mathcal{A}(S_t)\):

\[\begin{split}\pi\left(a \mid S_{t}\right) \leftarrow\left\{\begin{array}{ll} 1-\varepsilon+\varepsilon /\left|\mathcal{A}\left(S_{t}\right)\right| & \text { if } a=A^{*} \\ \varepsilon /\left|\mathcal{A}\left(S_{t}\right)\right| & \text { if } a \neq A^{*} \end{array}\right.\end{split}\]

由于策略提升理论的保证,\(q_\pi\) 对应的任意的 \(\epsilon -\) 贪心策略 都较 \(\epsilon - soft\) 策略 \(\pi\) 有所提高。 设 \(\pi'\)\(\epsilon -\) 贪心策略。 策略提升理论能够应用在这里,因为对所有 \(s \in \mathcal{S}\):

(2)\[\begin{split}\begin{aligned} q_{\pi}\left(s, \pi^{\prime}(s)\right) &=\sum_{a} \pi^{\prime}(a | s) q_{\pi}(s, a) \\ &=\frac{\varepsilon}{|\mathcal{A}(s)|} \sum_{a} q_{\pi}(s, a)+(1-\varepsilon) \max _{a} q_{\pi}(s, a) (5.2)\\ & \geq \frac{\varepsilon}{|\mathcal{A}(s)|} \sum_{a} q_{\pi}(s, a)+(1-\varepsilon) \sum_{a} \frac{\pi(a | s)-\frac{\varepsilon}{|\mathcal{A}(s)|}}{1-\varepsilon} q_{\pi}(s, a) \end{aligned}\end{split}\]

(和是为1的非负权值的加权平均,所以它必须小于等于最大数的求和)

\[\begin{split}\begin{aligned} &=\frac{\varepsilon}{|\mathcal{A}(s)|} \sum_{a} q_{\pi}(s, a)-\frac{\varepsilon}{|\mathcal{A}(s)|} \sum_{a} q_{\pi}(s, a)+\sum_{a} \pi(a | s) q_{\pi}(s, a) \\ &=v_{\pi}(s) \end{aligned}\end{split}\]

所以,由策略提升理论,\(\pi^{'} \geq \pi\), (即对所有 \(s \in \mathcal{S}\)\(v_{\pi^{'}}(s) \geq v_\pi(s)\)。 我们现在证明等号只能在 \(\pi^{'}\)\(\pi\) 均为最优策略时才能取到, 即它们比任何其他 \(\epsilon - soft\) 策略要好或者相当。

考虑一个除了策略是 \(\epsilon - soft\) 驱动的,其他和原来环境恰好相同的新环境。 这个新环境有相同的状态和动作集,行为也和之前一样。如果在状态 \(s\),做出动作 \(a\), 那么有 \(1 - \epsilon\) 的可能性新环境和旧环境表现一样, 有 \(\epsilon\) 的可能性会随机地以等可能性在所有动作里重新选择一个动作, 然后表现得像具有新的随机动作的旧环境。 在这个具有一般策略的新环境中能够做的最好的情况与带 \(\epsilon-soft\) 旧环境相同。 让 \(\tilde{v}_*\)\(\tilde{q}_*\) 表示新环境的最优的价值函数。 则策略 \(\pi\) 是最优的,当且仅当 \(v_\pi = \tilde{v}_*\) 。 从 \(\tilde{v}_*\) 的定义我们知道它是下式的唯一解

\[\begin{split}\begin{aligned} \widetilde{v}_{*}(s)=&(1-\varepsilon) \max _{a} \widetilde{q}_{*}(s, a)+\frac{\varepsilon}{|\mathcal{A}(s)|} \sum_{a} \widetilde{q}_{*}(s, a) \\ =&(1-\varepsilon) \max _{a} \sum_{s^{\prime}, r} p\left(s^{\prime}, r | s, a\right)\left[r+\gamma \widetilde{v}_{*}\left(s^{\prime}\right)\right] \\ &+\frac{\varepsilon}{|\mathcal{A}(s)|} \sum_{a} \sum_{s^{\prime}, r} p\left(s^{\prime}, r | s, a\right)\left[r+\gamma \widetilde{v}_{*}\left(s^{\prime}\right)\right] \end{aligned}\end{split}\]

\(\epsilon - soft\) 策略 \(\pi\) 没有提升时,取等号。由(5.2)式,我们还知道,

\[\begin{split}\begin{aligned} v_{\pi}(s)=&(1-\varepsilon) \max _{a} q_{\pi}(s, a)+\frac{\varepsilon}{|\mathcal{A}(s)|} \sum_{a} q_{\pi}(s, a) \\ =&(1-\varepsilon) \max _{a} \sum_{s^{\prime}, r} p\left(s^{\prime}, r | s, a\right)\left[r+\gamma v_{\pi}\left(s^{\prime}\right)\right] \\ +\quad & \frac{\varepsilon}{|\mathcal{A}(s)|} \sum_{a} \sum_{s^{\prime}, r} p\left(s^{\prime}, r | s, a\right)\left[r+\gamma v_{\pi}\left(s^{\prime}\right)\right] \end{aligned}\end{split}\]

这个方程与上面的方程相比,除了把 \(\tilde{v}_*\) 换成了 \(v_\pi\) ,其他的都相同。 由于 \(\tilde{v}_*\) 是唯一的解,所以必定有 \(v_\pi = \tilde{v}_*\)

其实,我们在前几页已经说明了策略迭代适用于 \(\epsilon - soft\) 策略。 对 \(\epsilon - soft\) 策略使用贪心策略,我们能够保证每一步都有提升, 直到我们在 \(\epsilon - soft\) 策略中找到最优的策略为止。 虽然这个分析独立于动作-价值函数的确定,但是它假设策略和价值都能精确计算。 这使我们与上一节大致相同。现在我们只通过 \(\epsilon - soft\) 策略得到最优策略, 但是另一方面,我们移除了探索开端的假设。

5.5 通过重要性采样的离策略预测

所有的控制方法都会面临这样一个两难的问题:一方面,他们需要通过 最优 的行为来学习动作价值; 但另一方面,他们需要表现地不那么好,来探索所有的动作(来 找到 最优的动作)。 那么,如何既能够学到最优策略,又能够在实际中多探索呢? 上一节的在策略方法实际上是一个妥协——它学习的并非最优策略,而是仍然保留了探索的近-最优策略。 一个更直截了当的方法是,使用两个策略,一个策略用来学习最优策略,另一个则更具探索性地用来产生行为。 用来学习的策略我们称之为 目标策略 ,另一个用来生成行为的称作 行为策略 。 这种情况下,我们说从数据中学习是“离开了(off)”目标策略的,整个过程用术语 离策略学习 表示。

我们会在本书整个余下的内容中同时探讨在策略和离策略两种方法。在策略方法一般来讲更简单一些,所以一般先考虑它。 离策略方法需要额外的概念和记号,且因为数据是由另一个不同的策略产生的,离策略方法通常拥有更大的方差,收敛更慢。 另一方面,离策略方法更加强大且更一般化。它包括在策略方法作为特殊情况,此时目标和行为策略相同。 离策略方法在应用程序中也有各种其他用途。例如,离策略能够从非传统学习器或人类专家生成的数据中学习。 离策略学习还被看成是学习多步预测模型的关键,该模型常被用来预测现实世界的动力学 (请看17.2章节; Sutton, 2009; Sutton et al., 2011)。

这一节我们开始学习离策略方法。从考虑 预测 问题开始,其目标策略和行为策略都是固定的。 现在,假设我们想要估计 \(v_\pi\) 或者 \(q_\pi\), 但我们所有的回合都由另一个策略 \(b\) 所得到,这里 \(\b \neq \pi\)。 这种情况下,\(\pi\) 是目标策略,\(b\) 是行为策略,这两种策略都认为是已知且固定的。

为了使用策略 \(b\) 得到的回合来估计 \(\pi\) 的价值, 我们要求在策略 \(\pi\) 下做出的动作也能,至少时不时地在策略 \(b\) 下做出。 就是说,我们需要 \(\pi(a|s) > 0\) 意味着 \(b(a|s) >0\)。这个称为 覆盖(coverage) 假设。 对特定的状态,策略 \(b\) 必须是随机且不等于 \(\pi\)。 另一方面,目标策略 \(\pi\) 可以是确定性的,事实上,这在控制问题上会很有趣。 在控制问题中,目标策略一般对当前的动作价值函数是确定性的贪心策略。 这个策略变成确定性的最优策略的同时,行为策略还能保持随机性和更多的探索性,比如,一个 \(\epsilon -\) 贪心策略。 当然,这一节,我们只考虑预测问题,且策略是给定的和固定的。

几乎所有的离策略方法使用了 重要性采样。 这是一个通用的技术,用来估计随机变量在一个分布上的期望值,但是采样的样本来自另一个分布。 我们在离策略上应用重要性采样的方法是,根据目标和行为策略下得到发生的事件轨迹的概率,将得到的回报加权。 两个概率的比值称为 重要性采样率 。给定初始状态 \(S_t\) ,那么在策略 \(\pi\) 下, 接下来的状态动作轨迹 \(A_t, S_{t+1}, A_{t+1}, \dots ,S_T\) 发生的概率是

\[\begin{split}\begin{aligned} &Pr\{A_t, S_{t+1},A_{t+1},\dots,S_T | S_t,A_{t:T-1} \sim \pi\} \\ &=\pi(A_t|S_t)p(S_{t+1}|S_t,A_t)\pi(A_{t+1}|S_{t+1})\cdots p(S_{T}|S_{T-1},A_{T-1}) \\ &=\prod_{k=t}^{T-1} \pi(A_k|S_k)p(S_{k+1}|S_k,A_k), \end{aligned}\end{split}\]

其中, \(p\) 是状态转移概率函数,它的定义参见式(3.4)。 因此,在目标策略和行为策略下的该轨迹的发生的相对概率为(即重要性采样率)

(3)\[\rho_{t:T-1} \doteq \frac{\prod_{k=t}^{T-1} \pi(A_k|S_k)p(S_{k+1}|S_k,A_k)} {\prod_{k=t}^{T-1} b(A_k|S_k)p(S_{k+1}|S_k,A_k)} = \prod_{k=t}^{T-1} \frac{\pi(A_k|S_k)}{b(A_k|S_k)}\]

注意到上式中的轨迹的概率依赖于MDP的转移概率(常常是未知的),但是它们在分子和分母中都是相同的,能够被消掉。 即是说,重要性采样率最终仅仅依赖于两个策略和序列,而与MDP无关。

回想一下,我们希望估算目标策略下的预期回报(价值),但由于行为策略,我们所有的回报都是 \(G_t\)。 这些回报具有错误的期望 \(\mathbb{E}[G_t|S_t=s]=v_b(s)\),因此不能平均得到 \(v_\pi\)。 这是重要性抽样的来源。比率 \(rho_{t:T-1}\) 将收益转换为具有正确的期望值:

(4)\[\mathbb{E}[\rho_{t:T-1}G_t|S_t=s]=v_{\pi}(s)\]

现在我们准备好给出蒙特卡洛算法,算法使用在策略 \(b\) 下的一批观察到的回合来估计 \(v_\pi(s)\)。 为了方便,我们将时间步调设置为穿过回合的递增形式,即下一个回合开始时的时间步调不清零,而是接着上个回合的末尾加一。 比如,这一批的回合中,第一回合在时间 \(100\) 的时候结束,那么下一个回合在时间 \(t=101\) 开始。 这使我们能够使用时间步调来指代特定回合中的时间步调。 特别地,我们可以定义一个集合表示状态 \(s\) 被访问到的时间步调,记为 \(\cal{T}(s)\)。 这是对于每次访问而言的。对于首次访问,\(\cal{T}(s)\) 只包含第一次访问 \(s\) 的时间步调。 然后,\(T(t)\) 表示第一次回合结束的时间,\(G_t\) 表示 \(t\) 之后到 \(T(t)\) 的回报。 然后集合 \(\{G_t\}_{t \in \cal{T}(s)}\) 表示状态 \(s\) 的所有回报, \(\{\rho_{t:T(t)-1} \}_{t \in \cal{T}(s)}\) 表示对应的重要性采样率。 为了估计 \(v_\pi(s)\) ,我们用重要性采样率来缩放回报,然后求平均:

(5)\[V(s) \doteq \frac{\sum_{t \in \cal{T}(s)} \rho_{t:T(t)-1} G_t}{|\cal{T}(s)|}.\]

当重要性采样只是以上面的简单的方式求平均时,我们称为 原始重要性采样(ordinary importance sampling)

另一个选择是 加权重要性采样(weighted importance sampling) ,它使用了加权平均,定义为

(6)\[V(s) \doteq \frac{\sum_{t \in \cal{T}(s)} \rho_{t:T(t)-1} G_t}{\sum_{t \in \cal{T}(s)} \rho_{t:T(t)-1}},\]

若分母为零,加权重要性采样也为零。 为了了解这两种不同的重要性采样方法,在观察状态 \(s\) 的单一回报后,我们考虑其首次访问方法的估计。 对加权重要性采样来说,分子分母中的 \(\rho_{t:T(t)-1}\) 可以消掉, 因此这时它就等于我们观察到的回报,与重要性采样率无关(假设重要性采样率不为零)。 由于只有一个回报被观察到,所以这是一个合理的估计。 但是,它的期望值应该是 \(v_b(s)\) 而不是 \(v_\pi(s)\)。从统计意义上看,这是有偏估计。 与之相对,原始重要性采样(5.5)的首次访问版本的期望值始终是 \(v_\pi(s)\) (这是无偏的),但它可能会很大。 假设重要性采样率为十,即对观察到的轨迹,目标策略发生的可能性是行为策略的十倍。 这种情况下,采用原始重要性采样方法的估计值是观察到的回报的 十倍 。 它可能与观察到的回报相差太大了,即使当前的轨迹可以很好的表示目标策略。

正式地讲,两种重要性采样的不同可以用偏差和方差来表示。 原始重要性采样的估计是无偏的,而加权重要性采样是有偏的(偏差会渐进地趋于零)。 另一方面,原始重要性采样的方差一般是无界的,因为它的重要性采样率的方差是无界的;而加权重要性采样的任意单个回报的最大权重是1。 事实上,假设回报是有界的,即使重要性采样率为无限, 加权重要性采样的方差也是趋于零的(Precup, Sutton, and Dasgupta 2001)。 实践中,由于加权重要性采样方差更小,一般更偏向于使用它。 然而,我们不能完全放弃原始重要性采样,因为使用函数近似,它更容易扩展到近似的方法。 我们将在本书的第二部分介绍近似方法。

原始和加权重要性采样的每次访问方法都是有偏差的,但是,随着样本数量的增加,偏差也渐渐渐渐变为零。 实际上,每次访问方法通常都是首选方法,因为它们不需要跟踪访问过哪些状态,因为它们更容易扩展到近似值。 完整的使用加权重要性采样用来估计离策略的每次访问MC算法将在将在下一小节给出。

练习 5.5 考虑具有单个非终结状态的MDP和单个动作,该动作以概率 \(p\) 转换回非终结状态 并以概率 \(1-p\) 转换到终端状态。令在所有过渡中奖励都是 \(+1\),并且令 \(\gamma=1\)。 假设您观察到一个持续10个步骤的事件,回报为10。非终结状态值的首次访问和每次访问估算是什多少?

例 5.4: 离策略估计21点的状态价值 我们应用两种重要性采样方法,从离策略的数据估计单个21点状态(例5.1)的价值。 前面讲过,蒙特卡洛方法的一个优势是它可以用来估计单一的一个状态,不用生成其他状态的估计。 这个例子中,我们估计庄家是两点,玩家点数和是13点,玩家有一个使用的A(即玩家有A和2两张牌)。 从这个状态生成数据,然后以相同的概率选择要牌或停止(行为策略)。 目标策略是只有当点数和为20或21时才停止,如例5.1所示。 目标策略的价值大概是 \(-0.27726\) (这是由目标策略生成一百万个回合的回报求平均而得)。 两种离策略方法在 \(1000\) 个随机的离策略回合后,估计的价值很接近这个值了。 为使我们的结果更可信,我们独立地进行了 \(100\) 次实验,每次估计值都从零开始,学习 \(10000\) 个回合。 图5.3显示了学习曲线——两种方法各自的均方误差是回合数的函数,结果是 \(100\) 次实验的平均。 两种算法的误差都趋向于零,但是加权重要性采样在开始的时候误差更小,这在实践中很典型。

_images/figure-5.3.png

图5.3: 从离策略回合数据估计21点的单个状态的价值,加权重要性采样有更低的估计误差。

例 5.5:无限方差 对原始重要性采样的估计通常会有无限的方差,因此带来了不太让人满意的收敛特性, 即无论合适,缩放的回报都有无限的方差——而这在回合的轨迹中包含环时更加容易发生。 一个简单的例子如图5.4所示。这里只有一个非结束状态 \(s\) 和两个动作,结束返回结束 动作会百分百导致回合结束,而 返回 动作会有 \(0.9\) 的可能返回状态 \(s\), 有 \(0.1\) 的可能到结束状态。 返回动作导致结束的话,有 \(+1\) 的奖励;返回状态 \(s\) 的话,奖励为零。 考虑目标策略是一直选择 返回 的动作。 所有的回合都包含了数次(可能是零次)返回状态 \(s\),然后到结束,并获得奖励,回合的回报为 \(+1\)。 因此,在目标策略下,状态 \(s\) 的价值是 \(1\)\(\gamma=1\))。 假设我们使用行为策略生成的离策略数据来估计这个状态的价值,该行为策略选择以等概率随机地选择 结束返回 两种动作。

_images/figure-5.4.png

图5.4: 原始重要性采样估计例5.5的单状态MDP,产生了惊人的不稳定性。 正确的估计值应该是1(\(\gamma=1\)),即使只有一次回报(在重要性采样之后)。 但图中样本的方差是无限的,估计值不能收敛于这个正确值。这些结果对应于离策略首次访问MC方法。

图5.4的下部显示了使用原始重要性采样,十次独立的首次访问MC方法得到的结果。 即使是经历了数百万次的回合后,估计值也不能收敛到正确值 \(1\)。 相反,对加权重要性采样算法来讲,它会在第一个以 返回 动作结束的回合后,就给出刚好为 \(1\) 的估计值。 所有返回不为 \(1\) 的话(以 结束 动作结束),就会造成与目标策略不一致。 这时 \(\rho_{t:T(t)}\) 为零,影响5.6式的分子或者分母。 这样,加权重要性采样算法产生的加权平均值,仅考虑了与目标策略相同的回报,因此这个值恰好为 \(1\)

我们可以用一个简单的计算证明,对于这个例子中经过重要性采样缩放的回报值,它的方差是无限的。 对于随机变量 \(X\),它的的方差等于它与它的平均值之差的平方的期望值,写作

\[Var[X] \doteq \mathbb{E}[(X - \overline{X})^2] = \mathbb{E}[X^2 - 2X\overline{X}^2+\overline{X}^2] = \mathbb{E}[X^2] - \overline{X}^2.\]

因此,正如我们这种情况,均值是有限的,当且仅当随机变量 \(X\) 的平方的期望为无限时,方差为无限。 因此,我们只需要说明经过重要性采样缩放的回报的平方的期望是无限的即可:

\[\mathbb{E}_b\left[ \left( \prod_{t=0}^{T-1} \frac{\pi(A_t|S_t)}{b(A_t|S_t)}G_0 \right)^2 \right].\]

为计算这个期望值,我们基于回合的长度和终点,将其分成几种情况。 首先,我们需要注意的是,对于所有以 结束 动作结束的回合,重要性采样率为零,因为目标策略永远也不会做这个动作; 这些回合对所求的期望值没有任何贡献(圆括号里的值为零),可以忽略。 我们只需考虑那些包含一定数量(可能是零)的 返回 动作,然后接着一个 返回 动作导致结束的回合。 所有这些回合的回报为 \(1\),所以 \(G_0\) 可以忽略掉。 这样,为了得到期望值,我们只需考虑回合的长度,乘以回合发生的可能性,除以重要性采样率的平方,再把他们都加起来:

\[\begin{split}\begin{aligned} &= \frac{1}{2}\cdot 0.1\left(\frac{1}{0.5} \right)^2 (长度为1的回合)\\ &+ \frac{1}{2} \cdot 0.9 \cdot \frac{1}{2} \cdot 0.1\left(\frac{1}{0.5} \frac{1}{0.5} \right)^2 (长度为2的回合)\\ &+ \frac{1}{2} \cdot 0.9 \cdot \frac{1}{2} \cdot 0.9 \cdot \frac{1}{2} \cdot 0.1\left(\frac{1}{0.5} \frac{1}{0.5} \frac{1}{0.5} \right)^2 (长度为3的回合)\\ &+ \cdots \\ &= 0.1 \sum_{k=0}^{\infty}0.9^k \cdot 2^k \cdot 2 = 0.2 \sum_{k=0}^{\infty}1.8^k = \infty \end{aligned}\end{split}\]

练习 5.6 给定策略 \(b\) 的回报, 式5.6中状态价值 \(V(s)\) 换成 动作 价值 \(Q(s,a)\) 的表达式是什么?

练习 5.7 对原始重要性采样方法而言,像图5.3那样,学习曲线中误差是随着训练次数的增加而减少的。 但是,对加权重要性采样,误差是先增加然后减少,你如何看待这种现象?

练习 5.8 例5.5的结果及其展示图5.4中,我们使用了首次访问MC方法。 假设对同样的问题,我们使用每次访问MC方法。估计值的方差还会是无限吗?为什么?

5.6 增量式的实现

蒙特卡洛预测方法可以用增量式的方式,用回合式的形式,使用在第二章(2.4节)提到的展开的技术实现。 不同的是,第二章中我们平均 奖励,而蒙特卡洛方法中,我们平均 回报。 其他第二章所用到的,都可以用在 在策略 蒙特卡洛方法中。 对于 离策略 蒙特卡洛方法,我们需要分别考虑 原始 重要性采样和 加权 重要性采样两种情况。

对于原始重要性采样,回报值会被重要性采样率 \(\rho_{t:T(t)-1}\) (式5.3)所缩放,然后再求平均(式5.5)。 对于这些方法,我们可以再次使用第二章用到的增量式的方法,但使用缩放的回报值代替第二章所用的奖励值。 现在,就剩下 加权 重要性采样的离策略方法。这里,我们需要生成对回报值的加权平均,所以需要一个稍有不同的增量式算法。

假设我们有一系列的回报值 \(G_1,G_2,\dots,G_{n-1}\),都是从相同的状态开始的, 且每个回报值对应一个随机的权值 \(W_i\) (比如 \(W_i = \rho_{t_i:T(t_i)-1}\))。我们希望表示估计值

然后在每获得一个额外的回报 \(G_n\) 时保持更新。除了跟踪 \(V_n\), 我们还必须保持给定前 \(n\) 个回报下每个状态的累积权值 \(C_n\)\(V_n\) 的更新规则是

(7)\[V_{n+1} \doteq V_n +\frac{W_n}{C_n}\left[G_n - V_n \right], \quad n \geq 1,\]

\[C_{n+1} \doteq C_n + W_{n+1},\]

这里 \(C_0 \doteq 0\) (且 \(V_1\) 是随机的,因此需要一个具体值)。 下面的框中包含了完整的回合式的增量式算法,用于蒙特卡洛策略估计。 这个算法主要用在离策略的情况,使用加权重要性采样,但是也能用于在策略的情况。 用于在策略时,让目标策略和行为策略一样即可(这种情况下(\(\pi = b\)),\(W\) 始终是1)。 近似值 \(Q\) 收敛到 \(q_\pi\) (对所有的出现的状态-动作对),而动作由另一个潜在的不同策略 \(b\) 提供。

练习 5.9 修改5.1节中首次访问MC策略评估算法,对样本求平均时使用2.4节提到的增量式的实现。

练习 5.10 从5.7式推导出5.8式的加权平均更新规则。遵循2.3节的非加权的规则。

离策略 MC 预测(策略评估) \(Q \approx q_\pi\)

输入:任意目标策略 \(\pi\)

初始化,对所有 \(s \in \mathcal S\)\(a \in \mathcal{A}(s)\)

\(Q(s,a) \in \mathbb{R}\) (随机值)

\(C(s,a) \leftarrow 0\)

一直循环(对每一个回合):

\(b \leftarrow\) 任何覆盖 \(\pi\) 的策略

使用策略 \(b\) 生成一个回合:\(S_0, A_0, R_1, \dots ,S_{T-1},A_{T-1}, R_T\)

\(G \leftarrow 0\)

\(W \leftarrow 1\)

对回合的每一步循环,\(t= T-1, T-2, \dots, 0\),当 \(W \ne 0\) 时:

\(G \leftarrow \gamma G + R_{t+1}\)

\(C(S_t,A_t) \leftarrow C(S_t,A_t) +W\)

\(Q(S_t,A_t) \leftarrow Q(S_t,A_t) + \frac{W}{C(S_t,A_t)}[G - Q(S_t,A_t)]\)

\(W \leftarrow W \frac{\pi(A_t|S_t)}{b(A_t|S_t)}\)

5.7 离策略蒙特卡洛控制

现在我们开始展示一个例子,关于本书的第二类学习控制方法:离策略方法。 前面讲到,在策略的显著特点是,它在估计策略值的同时也用于控制。而离策略方法中,这两个功能是分开的。 用于产生行为的策略,即称作 行为 策略,事实上与要评估和提升的策略,即 目标 策略,是无关的。 这样分开的好处是,目标策略可以是确定性的(即,贪心的),同时行为策略能持续访问所有的动作。

离策略蒙特卡洛控制方法使用上两节讲过的一种技术。它们跟随行为策略的同时,学习和提升目标策略。 这些技术需要行为策略选择所有动作的概率是非零的,这些动作可能会被目标策略选择到(覆盖)。 为了探索所有的可能,我们需要行为策略是软(soft)的(即,在所有状态下,策略选择所有动作的概率是非零的)。

下边的框里展示了一个离策略蒙特卡洛方法来估计 \(\pi_{*}\)\(q_*\), 它是基于广义策略迭代(GPI)和加权重要性采样的。 目标策略 \(\pi \approx \pi_*\) 是对于 \(Q\) 的贪心策略, \(Q\)\(q_\pi\) 的估计。 行为策略 \(b\) 可以是任何的策略,但是为了保证 \(\pi\) 能收敛到最优策略, 对每对状态动作对,都需要收集无限次的回报。 这一点可以通过选择 \(b\)\(\epsilon-soft\) 来保证。 即使动作是由另一个软策略 \(b\) 选择的,且策略 \(b\) 可能在回合之间甚至回合中改变, 策略 \(\pi\) 也能在所有遇到的状态收敛到最优。

离策略MC控制,估计 \(\pi \approx \pi_*\)

初始化,对所有 \(s \in \mathcal S\)\(a \in \mathcal{A}(s)\)

\(Q(s,a) \in \mathbb{R}\) (随机值)

\(C(s,a) \leftarrow 0\)

\(\pi(s) \leftarrow argmax_a Q(s,a)\) (关系一直打破)

一直循环(对每一个回合):

\(b \leftarrow\) 任何软策略

使用策略 \(b\) 生成一个回合:\(S_0, A_0, R_1, \dots ,S_{T-1},A_{T-1}, R_T\)

\(G \leftarrow 0\)

\(W \leftarrow 1\)

对回合的每一步循环,\(t= T-1, T-2, \dots, 0\)

\(G \leftarrow \gamma G + R_{t+1}\)

\(C(S_t,A_t) \leftarrow C(S_t,A_t) +W\)

\(Q(S_t,A_t) \leftarrow Q(S_t,A_t) + \frac{W}{C(S_t,A_t)}[G - Q(S_t,A_t)]\)

\(\pi(S_t) \leftarrow argmax_a Q(S_t,a)\) (关系一直打破)

如果 \(A_t \ne \pi(S_t)\) 则退出内循环(进行下一个回合)

\(W \leftarrow W \frac{1}{b(A_t|S_t)}\)

一个潜在的问题是,当所有剩下的动作是贪心的时候,这个方法只能从回合的尾部学习。 如果非贪心的动作出现很多的话,学习过程会很慢,特别是对于长回合开始出现的状态而言,潜在地,这可能会大大减慢学习速度。 当然,还没有足够的经验表明这在离策略蒙特卡洛方法中是个严重的问题。 如果这个问题很严重,那么阐述它最重要的方式是结合时序差分学习(temporal-difference)来讲,这个算法将在下一章见到。 或者,如果 \(\gamma\) 小于 \(1\) ,下一节的方法也会管用。

练习5.11 在用于非策略MC控制的盒装算法中, 您可能一直期望 \(W\) 更新涉及重要性采样率 \(\frac{\pi(A_t|S_t)}{b(A_t|S_t)}\), 但是这里却是 \(\frac{1}{b(A_t|S_t)}\)。为什么这仍然是正确的?

练习 5.12:赛车轨迹(编程) 考虑驾驶赛车在像图5.5那样的赛道上拐弯。你想要尽可能的快,但是又不能冲出赛道。

_images/figure-5.5.png

图 5.5:一对向右转的赛车轨迹问题

在我们简化版的赛车轨迹问题中,赛车在其中的一个离散的格子中。 赛车的速度也是离散的,表示每个时间步长会在水平方向和竖直方向移动的格子数。 动作是表示对速度的加速,每个时间步长增长量为 \(+1,-1,0\),这样一共九种(\(3 \times 3\))动作。 所有的速度分量都是严格非负的,且不超过5,除了起点,它们也不能同时为零。 每个回合开始时,选择一个随机的开始状态,速度分量均为零,当赛车跨过终点线时结束。 在结束之前的每一步,奖励为 \(-1\)。如果赛车碰到赛道的边界,又会从起点的随机位置重新开始,速度分量同时变为零,本回合继续。 每个时间步长更新赛车的坐标之前,检查赛车的轨迹与赛道是否相交,如果相交在终点线,那么回合结束; 如果相交在其它,那么赛车碰到边界了,就得从起点开始。 为了让问题更有挑战性,每个时间步长,速度有0.1的可能性保持原样。 应用蒙特卡洛控制算法来计算对于每个起始状态的最优策略。 展示一些遵循最优策略的轨迹(关掉轨迹噪声)。

5.8 *折扣感知的重要性采样

目前为止,我们所讨论的离策略是基于重要性采样,将回报看成一个整体,对回报进行加权, 而并没有考虑到回报内在的结构是折扣奖励的和。 这一节,我们将简单考虑一种前沿研究的思想,使用这个回报的结构来很大意义上减少离策略估计的方差。

例如,考虑这种情况,回合很长,\(\gamma\) 远小于 \(1\)。 具体而言,假设回合有100个时间步长,\(\gamma = 0\)。 那么时刻0的回报恰好是 \(G_0 = R_1\) ,但是它的重要的采样率将会是一百个参数的乘积, \(\frac{\pi(A_0|S_0)}{b(A_0|S_0)} \frac{\pi(A_1|S_1)}{b(A_1|S_1)} \cdots \frac{\pi(A_{99}|S_{99})}{b(A_{99}|S_{99})}\)。 对于原始重要性采样而言,回报会被上述的乘积所缩放,但是,真正起作用的是第一项, 即 \(\frac{\pi(A_0|S_0)}{b(A_0|S_0)}\), 而与其他 \(99\)\(\frac{\pi(A_1|S_1)}{b(A_1|S_1)} \cdots \frac{\pi(A_{99}|S_{99})}{b(A_{99}|S_{99})}\) 的乘积无关。 因为,第一个奖励后,回报就已经决定了。之后的乘积项与回报值独立且期望为 \(1\); 它们并不改变期望值,但是增加了许多方差。一些情况下甚至产生无限大的方差。 现在我们考虑如何避免这个外部的方差。

主要的思想是,将折扣认为是决定结束的概率,或者说,部分结束的 度(degree) 。 对所有的 \(\gamma \in [0,1)\) ,我们考虑回报 \(G_0\) 是有 \(1 - \gamma\) 的度, 在第一步后部分结束,产生只有一个奖励 \(R_1\) 的回报; 有 \((1 - \gamma)\gamma\) 的度,在第二步后结束,产生 \(R_1+R_2\) 的回报,等等。 以二步为例,\((1 - \gamma)\gamma\) 对应二步结束的度, 其中,\(\gamma\) 表示第一步不结束的度,\(1-\gamma\) 表示第二步结束的度。 又比如,第三步后结束的度为 \((1-\gamma)\gamma^2\),其中 \(\gamma^2\) 表示第一步第二步都没有结束的度。 这个部分的回报我们称为 平坦部分回报(flat partial returns)

\[\overline{G}_{t : h} \doteq R_{t+1}+R_{t+2}+\cdots+R_{h}, \quad 0 \leq t<h \leq T\]

其中,“平坦”表示缺少折扣,“部分”表示这些回报只算到第 \(h\) 步,不用一直算到结束, \(h\) 称为 水平线(horizon)\(T\) 是回合结束的时间)。 传统的 \(G_t\) 可以看成是这些部分平坦回报的和:

\[\begin{split}\begin{aligned} G_{t} \doteq & R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+\cdots+\gamma^{T-t-1} R_{T} \\ =&(1-\gamma) R_{t+1} \\ &+(1-\gamma) \gamma\left(R_{t+1}+R_{t+2}\right) \\ &+(1-\gamma) \gamma^{2}\left(R_{t+1}+R_{t+2}+R_{t+3}\right) \\ & \vdots \\ &+(1-\gamma) \gamma^{T-t-2}\left(R_{t+1}+R_{t+2}+\cdots+R_{T}\right) \\ &+\gamma^{T-t-1}\left(R_{t+1}+R_{t+2}+\cdots+R_{T}\right) \\ &=(1-\gamma) \sum_{h=t+1}^{T-1} \gamma^{h-t-1} \overline{G}_{t : h} \space + \space \gamma^{T-t-1} \overline{G}_{t:T} \end{aligned}\end{split}\]

现在我们需要使用重要性采样率来缩放平坦部分回报,这与截断相似。 由于 \(G_{t:h}\) 只包含了到水平线 \(h\) 的奖励,我们只需要到 \(h\) 的概率的比率。 现在像式5.5那样,我们定义一个原始重要性采样估计器,如下

(8)\[V(s) \doteq \frac{ \sum_{t \in \mathcal{T}(s)}\left((1-\gamma) \sum_{h=t+1}^{T(t)-1} \gamma^{h-t-1} \rho_{t : h-1} \overline{G}_{t : h}+\gamma^{T(t)-t-1} \rho_{t : T(t)-1} \overline{G}_{t : T(t)}\right) }{ |\mathcal{T}(s)| }\]

像式5.6那样,定义一个加权重要性采样估计器,如下

(9)\[V(s) \doteq \frac{ \sum_{t \in \mathcal{T}(s)}\left((1-\gamma) \sum_{h=t+1}^{T(t)-1} \gamma^{h-t-1} \rho_{t : h-1} \overline{G}_{t : h}+\gamma^{T(t)-t-1} \rho_{t : T(t)-1} \overline{G}_{t : T(t)}\right) }{ \sum_{t \in \mathcal{T}(s)}\left((1-\gamma) \sum_{h=t+1}^{T(t)-1} \gamma^{h-t-1} \rho_{t : h-1}+\gamma^{T(t)-t-1} \rho_{t : T(t)-1}\right) }\]

我们称上述两种估计器 折扣感知(discounting-aware) 重要性采样估计器。 它们考虑了折扣率,但如果 \(\gamma = 1\) 则没有影响(与5.5节离策略估计器一样)。

5.9 *每决策重要性抽样

还有一种方法,在离策略重要性采样里将回报结构作为奖励总和考虑在内, 这样的方法即使在没有折扣的情况下(即 \(\gamma = 1\) )也可以减少方差。 在离策略估计器5.5和5.6中,和中的每个元素本身也是和:

\[\begin{split}\begin{aligned} \rho_{t : T-1} G_{t} &=\rho_{t : T-1}\left(R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^{T-t-1} R_{T}\right) \\ &=\rho_{t : T-1} R_{t+1}+\gamma \rho_{t : T-1} R_{t+2}+\cdots+\gamma^{T-t-1} \rho_{t : T-1} R_{T} (5.11) \end{aligned}\end{split}\]

离策略估计器依赖于这些值的期望;我们尝试用更简单的方式表达出来。 注意到,5.11中的每个元素是一个随机奖励和一个随机重要性采样率的乘积。 比如,第一个元素,我们用5.3式展开,

(10)\[\rho_{t : T-1} R_{t+1} = \frac{\pi(A_t|S_t)}{b(A_t|S_t)} \frac{\pi(A_{t+1}|S_{t+1})}{b(A_{t+1}|S_{t+1})} \frac{\pi(A_{t+2}|S_{t+2})}{b(A_{t+2}|S_{t+2})} \cdots \frac{\pi(A_{T-1}|S_{T-1})}{b(A_{T-1}|S_{T-1})}R_{t+1}.\]

在所有这些项中,我们可以猜想,上式中只有第一项和最后一项(奖励)是相关的;所有其他都是与奖励后发生的事件有关,他们的期望值是:

\[ \begin{align}\begin{aligned}:label: 5.13\\\mathbb{E}\left[\frac{\pi(A_k|S_k)}{b(A_k|S_k)}\right] = \sum_a b(a|S_k)\frac{\pi(a|S_k)}{b(a|S_k)} = \sum_a \pi(a|S_k) = 1.\end{aligned}\end{align} \]

通过更多几个步骤可以证明,如所猜想的那样,所有这些其他项对期望没有影响,换句话说,

(11)\[\mathbb E[\rho_{t:T-1} R_{t+1}] = \mathbb E[\rho_{t:t} R_{t+1}].\]

如果对5.11中第k项重复上述的分析,我们得到

\[\mathbb E[\rho_{t:T-1} R_{t+k}] = \mathbb E[\rho_{t:t+k-1}R_{t+k}].\]

将上述结果代入式5.11,可以得到

\[\mathbb E[\rho_{t:T-1} G_t] = \mathbb E[\tilde{G}_t],\]

其中

\[\tilde{G}_{t}=\rho_{t : t} R_{t+1}+\gamma \rho_{t : t+1} R_{t+2}+\gamma^{2} \rho_{t : t+2} R_{t+3}+\cdots+\gamma^{T-t-1} \rho_{t : T-1} R_{T}\]

上述思想我们称作 每决策(per-decision) 重要性采样。紧随其后的是一个交替重要性采样估计器, 同样是无偏差的,就像5.5的原始重要性采样估计器一样,它使用了 \(\tilde{G}_{t}\)

(12)\[V(s) \doteq \frac{\sum_{t \in \mathcal T(s)} \tilde{G}_t}{|\mathcal T(s)|},\]

我们可能会期望有时会降低方差。

是否存在一个每决策版本的 加权 重要性采样呢?这个我们不太清楚。 目前为止,我们所知的这样的估计器都是非一致的(即是说,无限数据也不能让他们收敛到正确的值)。

**练习5.13* 写出从(5.12)导出(5.14)的步骤。 **练习5.14* 使用截断加权平均估计量(5.10)的思想修改离策略蒙特卡洛控制算法(5.7节)。 请注意,您首先需要将此等式转换为动作价值。

5.10 小结

这一章的蒙特卡洛方法以 样本回合 的方式,从经验中学习价值函数和最优策略。 相比于动态规划(DP)的方法,这至少有三种优势。 首先,它们能够直接从与环境的交互中学习到最优的行为,并不需要知道环境的动态。 其次,它们能够被用于模拟或 样本模型。对于相当多的应用来讲,虽然我们很难建立具体的转移概率的模型 (这个转移概率模型是DP方法所需要的),但是,我们可以很容易去估计样本回合。 第三,使用蒙特卡洛方法,我们可以很容易且很有效率地 聚焦 到状态的小子集。 对于我们特别感兴趣的区域,可以准确地评估,而不需要费大力气去准确地评估剩余的状态集(我们将在第八章继续深入讲解)。

蒙特卡洛方法的第四个优点,也是我们在本书后续将谈论的,是它们对于违反马尔可夫过程的行为会受到更少的伤害。 这是因为,它们对于价值估计的更新并非基于对下一个状态的估计,或者说,它们不提升(bootstrap)。

设计蒙特卡洛控制方法时,我们遵循了第四章提出的 广义策略迭代 (GPI)的整体架构。 GPI包含了策略评估和策略迭代的交互过程。蒙特卡洛方法提供了一种策略评估过程。 在蒙特卡洛方法中,我们简单地将从该状态开始得到的回报求平均,而不是使用一个模型去计算每个状态的价值。 因为状态的价值就是从该状态开始得到的回报的期望,所以这个平均可以很好地近似该状态的价值。 在控制方法中,我们特别关注了近似动作-价值函数,因为使用它,我们能够在不需要知道环境转移动态的情况下,提升策略。 蒙特卡洛方法以回合制的方式混合了策略评估和策略提升,而且可以以回合制的方式增量地实现。

保持 有效的探索 是蒙特卡洛控制方法中的一个重要问题。 仅仅选择当前估计的最好动作是不够的,因为这样我们不能得到其他动作的回报了,而且更好的策略可能就不会被学习到。 解决这个问题的一种方法是,假设回合开始时随机地选择状态-动作对,以覆盖所有的可能。 这样的 探索开端 能够被安排在模拟的回合中,但是不大可能应用在真实的经验中。 在 在策略 方法中,个体会一直进行探索,且找到的最优策略仍然会探索。 在 离策略 方法中,个体仍然会探索,但是会学习一个与该策略无关的确定性的最优策略。

离策略预测 指从一个不同的 行为策略 产生的数据中学习一个 目标策略 ,学习这个目标策略的价值函数。 这样的学习方法是基于 重要性采样 的,即用两种策略下执行观察到的动作的可能性的比值,来加权回报。 原始重要性采样 使用加权回报的简单平均,而 加权重要性采样 是使用加权的平均。 原始重要性采样是无偏估计,但是有很大的,可能无限的方差。 而加权重要性采样的方差是有限的,在实际中也更受喜爱。 除了概念上的简化,离策略蒙特卡洛方法如何用于预测和控制的问题至今未解决,且仍然是一个正在进行的研究课题。

这一章的蒙特卡洛方法与上一章的动态规划方法有两个主要的不同点。 首先,它们对样本经验进行操作,因此可以不用模型,直接进行学习。 其次,他们没有提升(bootstrap)。就是说,他们不依赖其他的价值估计来更新自己的价值估计。 这两点不同并非紧密联系,可以分开谈论。 下一章,我们将会考虑一种方法,它可以像蒙特卡洛那样从经验中学习,也可以像动态规划那样使用提升(bootstrap)。

书目和历史评论

术语“蒙特卡洛”源于1940s,当时Los Alamos的物理学家发明了一种概率游戏,来帮助他们理解有关原子弹的复杂物理现象。 有一些教材从这个方面谈论了蒙特卡洛方法(例如,Kalos and Whitlock, 1986;Rubinstein, 1981)。

5.1-2 Singh和Sutton(1996)区分了每次访问MC方法和首次访问MC方法,并证明了强化学习中有关这些方法的一些结论。 21点的例子是基于Widrow, Gupta和Maitra(1973)提到的一个例子。 肥皂泡的例子是一个经典的狄利克雷(Dirichlet)问题。

用蒙特卡洛方法来解决问题是Kakutani(1945;见Hersh和Griego,1969;Doyle 和Snell,1984)首先提出的。 Barto 和 Duff(1994)讨论了一种用经典蒙特卡洛算法解决线性系统方程的背景下的策略评估。 他们使用了Curtiss(1954)的分析来说明蒙特卡洛策略评估在解决大规模问题上的计算优势。

5.3-4 探索开端的蒙特卡洛算法是本书的1998年第一版中提出的。 这可能是第一个基于策略迭代的明确连接蒙特卡洛估计和蒙特卡洛控制的方法。 早期(1968)Michie 和 Chambers在强化学习背景下使用蒙特卡洛方法估计动作价值。 在极点平衡中(例3.4),我们使用回合持续时间的平均值来估计每个状态每个可能动作的价值(期望的平均“生命”), 然后,使用这些评估值来控制选择哪些动作。这个方法神似于用每次访问MC估计的蒙特卡洛探索开端算法。 Narendra和Wheeler(1986)研究了一种蒙特卡洛方法,用于各态历经的有限马尔可夫链。 这种方法使用逐次的访问在同一状态下的累积回报作为奖励调整学习自动机的动作概率。

5.5 高效的离策略学习在很多领域里已经被认识到是一个重要的挑战。 比如,它与概率图(贝叶斯)模型(例如,Pearl,1995;Balke 和 Pearl,1994) 中的“干涉(interventions)”和“反事实(counterfactuals)”的概念很接近。 离策略方法中使用重要性采样的方法有很长的历史,且至今也不能很好的理解。 加权重要性采样,有时也叫做归一化的(normalized)重要性采样(例如,Koller和Friedman,2009), 被Rubinstein(1981),Hesterberg(1988),Shelton(2001),和Liu(2001)以及其他人说研究。

离策略学习中的目标策略在文献中有时称为“估计”策略,我们的第一版书中也是如此。

5.7 赛车轨迹改编自Barto,Bradtke和Singh(1995)以及Gardner(1973)。

5.8 我们对于折扣感知重要性采样的思想是基于Sutton,Mahmood,Precup和van Hasselt(2014)的分析的。 它的完整版见Mahmood(将要出版;Mahmood,van Hasselt,和 Sutton,2014)。

5.9 每策略重要性采样是由Precup,Sutton和Singh(2000)提出的。 这些工作也结合了离策略学习和时序差分学习,资格迹和近似拟合的方法。 这提出了一个微妙的问题,我们将在下一章介绍它。

第6章 时序差分学习

如果必须将一个想法确定为强化学习的核心和新颖,那么毫无疑问它将是 时序差分 (TD)学习。 TD学习是蒙特卡洛思想和动态规划(DP)思想的结合。与蒙特卡洛方法一样,TD方法可以直接从原始经验中学习,而无需环境动态模型。 与DP一样,TD方法部分基于其他学习估计更新估计,而无需等待最终结果(它们是自举)。 TD,DP和蒙特卡洛方法之间的关系是强化学习理论中反复出现的主题;本章是我们开始探索这个关系。 在我们完成之前,我们将看到这些想法和方法相互融合,并且可以以多种方式组合。 特别是,在第7章中,我们介绍了n步算法,它提供了从TD到蒙特卡洛方法的桥梁, 在第12章中我们介绍了 TD(\(\lambda\)) 算法,它无缝地统一了它们。

像往常一样,我们首先关注策略评估或 预测 问题,即估算给定策略 \(\pi\) 的价值函数 \(v_\pi\) 的问题。 对于控制问题(找到最优策略),DP、TD和蒙特卡洛方法都使用广义策略迭代(GPI)的一些变体。 方法的差异主要在于它们对预测问题的方法的差异。

6.1 TD预测

TD和蒙特卡罗方法都使用经验来解决预测问题。对于基于策略 \(\pi\) 的一些经验, 两种方法都更新了他们对该经验中发生的非终结状态 \(S_t\)\(v_\pi\) 的估计 \(V\)。 粗略地说,蒙特卡罗方法一直等到访问后的回报已知,然后使用该回报作为 \(V(S_t)\) 的目标。 适用于非平稳环境的简单的每次访问蒙特卡罗方法是

(1)\[V(S_{t}) \leftarrow V(S_{t})+\alpha\left[ G_{t}-V(S_{t})\right]\]

其中 \(G_t\) 是跟随时间t的实际回报,\(\alpha\) 是一个恒定的步长参数(参见方程2.4)。 我们将此方法称为恒定 \(\alpha\) MC。 蒙特卡罗方法必须等到回合结束才能确定 \(V(S_t)\) 的增量(这时只有 \(G_t\) 已知), TD方法需要等到下一个时间步。 在时间 \(t+1\),它们立即形成目标并 使用观察到的奖励 \(R_{t+1}\) 进行有用的更新。 最简单的TD方法立即进行更新

(2)\[V(S_{t}) \leftarrow V(S_{t})+\alpha\left[R_{t+1}+\gamma V(S_{t+1})-V(S_{t})\right]\]

过渡到 \(S_{t+1}\) 并接收 \(R_{t+1}\)。 在实际中,蒙特卡洛更新的目标是 \(G_t\),而TD更新的目标是 \(R_{t+1} + \gamma V(S_{t+1})\)。 这种TD方法称为 TD(0)一步TD,因为它是第12章和第7章中开发的 TD(\(\lambda\))和n步TD方法的特例。 下面的方框完全以程序形式给出了TD(0)。

表格TD(0)估计 \(v_\pi\)

输入:要评估策略 \(\pi\)

算法参数:步长 \(\alpha in (0,1]\)

对所有 \(s \in \mathbb{S}^{+}\),除了 \(V(终点)=0\),任意初始化 \(V(s)\)

对每个回合循环:

初始化 \(S\)

对回合的每一步循环:

\(A \leftarrow\)\(\pi\) 给出 \(S\) 的动作

采取动作 \(A\),观察 \(R\)\(S^{\prime}\)

\(V(S) \leftarrow V(S)+\alpha\left[R+\gamma V(S^{\prime})-V(S)\right]\)

\(S \leftarrow S^{\prime}\)

直到 \(S\) 是终点

因为TD(0)部分基于现有估计进行更新,所以我们说它是一种 自举(bootstrapping) 方法,就像DP一样。 我们从第3章知道

\[\begin{split}\begin{aligned} v_{\pi}(s) & \doteq \mathbb{E}_{\pi}\left[G_{t} | S_{t}=s\right] (6.3)\\ &=\mathbb{E}_{\pi}\left[R_{t+1}+\gamma G_{t+1} | S_{t}=s\right] & (由(3.9))\\ &=\mathbb{E}_{\pi}\left[R_{t+1}+\gamma v_{\pi}\left(S_{t+1}\right) | S_{t}=s\right] (6.4) \end{aligned}\end{split}\]

粗略地说,蒙特卡罗方法使用(6.3)的估计作为目标,而DP方法使用(6.4)的估计作为目标。 蒙特卡洛目标是估计,因为(6.3)中的预期值未知;使用样本回报来代替实际预期回报。 DP目标是一个估计,不是因为完全由环境模型提供的预期值,而是因为 \(v_{\pi}(S_{t+1})\) 未知, 且使用当前估计值 \(V(S_{t+1})\) 来代替。 TD目标是估计原因有两个:它在(6.4)中对预期值进行采样, 使用当前估计值 \(V\) 而不是真实 \(v_\pi\)。 因此,TD方法将蒙特卡罗的采样与DP的自举相结合。 正如我们将要看到的那样,通过谨慎和想象,这将使我们在获得蒙特卡罗和DP方法的优势方面走得很远。

_images/TD(0).png

右侧是表格TD(0)的备份图。 备份图顶部的状态节点的值估计基于从它到紧接的状态的一个样本转换而更新。 我们将TD和蒙特卡洛更新称为样本更新,因为它们涉及展望样本后继状态(或状态-动作对), 使用后继值和相应的奖励来计算备份值(?),然后相应地更新原始状态(或状态-动作对)的值。 样本 更新与DP方法的 预期 更新不同,因为它们基于单个样本后继,而不是基于所有可能后继的完整分布。

最后,请注意在TD(0)更新中,括号中的数量是一种误差, 衡量 \(S_t\) 的估计值与更好的估计 \(R_{t+1} + \gamma V(S_{t+1})\) 之间的差异。 这个数量称为 TD误差,在整个强化学习过程中以各种形式出现:

(3)\[\delta_{t} \doteq R_{t+1}+\gamma V\left(S_{t+1}\right)-V\left(S_{t}\right)\]

请注意,每次TD误差都是 当时估算 的误差。因为TD误差取决于下一个状态和下一个奖励,所以直到一个步骤之后才可用。 也就是说,\(\delta_{t}\)\(V(S_{t+1})\) 中的误差,在时间 \(t+1\) 可用。 还要注意,如果列表 \(V\) 在回合期间没有改变(因为它不是蒙特卡罗方法(?)),那么蒙特卡罗误差可以写成TD误差的和:

\[\begin{split}\begin{aligned} G_{t}-V\left(S_{t}\right) &=R_{t+1}+\gamma G_{t+1}-V\left(S_{t}\right)+\gamma V\left(S_{t+1}\right)-\gamma V\left(S_{t+1}\right) & (由(3.9)) \\ &=\delta_{t}+\gamma\left(G_{t+1}-V\left(S_{t+1}\right)\right) \\ &=\delta_{t}+\gamma \delta_{t+1}+\gamma^{2}\left(G_{t+2}-V\left(S_{t+2}\right)\right) \\ &=\delta_{t}+\gamma \delta_{t+1}+\gamma^{2} \delta_{t+2}+\cdots+\gamma^{T-t-1} \delta_{T-1}+\gamma^{T-t}\left(G_{T}-V\left(S_{T}\right)\right) \\ &=\delta_{t}+\gamma \delta_{t+1}+\gamma^{2} \delta_{t+2}+\cdots+\gamma^{T-t-1} \delta_{T-1}+\gamma^{T-t}(0-0) \\ &=\sum_{k=t}^{T-1} \gamma^{k-t} \delta_{k} (6.6) \end{aligned}\end{split}\]

如果在回合期间更新 \(V\) (因为它在TD(0)中),则此恒等式不准确,但如果步长很小,那么它可能仍然保持近似。 这种恒等式的一般化在时序差分学习的理论和算法中起着重要作用。

练习6.1 如果 \(V\) 在回合中发生变化,那么(6.6)只能保持近似;等式两边的区别是什么? 设 \(V_t\) 表示在TD误差(6.5)和TD更新(6.2)中在时间 \(t\) 使用的状态值列表。 重做上面的推导以确定必须添加到TD误差总和的额外量,以便等于蒙特卡罗误差。

例 6.1 开车回家 每天下班回家后,你都会尝试预测回家需要多长时间。 当你离开办公室时,你会记下时间,星期几,天气以及其他可能相关的内容。 这个星期五你正好在6点钟离开,你估计要回家需要30分钟。当你到达你的车是6:05,你注意到开始下雨了。 在雨中交通通常较慢,所以你需要花费35分钟,或者总共40分钟。十五分钟后,你及时完成了旅程的高速公路部分。 当你驶出高速进入第二部分道路时,你将总旅行时间的估计值减少到35分钟。 不幸的是,此时你被困在一辆慢卡车后面,而且道路太窄而无法通过。 你最终不得不跟随卡车,直到6:40你转到住的小街。三分钟后你就回家了。因此,状态,时间和预测的顺序如下:

状态 经过时间(分钟) 预测到的时间 预计总时间
周五6点离开办公室 0 30 30
到达车,下雨 5 35 40
驶出高速公路 20 15 35
第二条路,在卡车后面 30 10 40
进入家的街道 40 3 43
到家 43 0 43

这个例子中的奖励是旅程每一段的经过时间 [1]。我们不打折(\(\gamma=1\)),因此每个状态的回报是从该状态开始的实际时间。 每个状态的价值是 预期的 时间。第二列数字给出了遇到的每个状态的当前估计值。

查看蒙特卡罗方法操作的一种简单方法是绘制序列上预测的总时间(最后一列),如图6.1(左)所示。 红色箭头表示常量 \(\alpha\) MC方法(6.1)推荐的预测变化,其中 \(\alpha=1\)。 这些正是每个状态的估计值(预测的行走时间)与实际返回(实际时间)之间的误差。 例如,当你离开高速公路时,你认为回家仅需15分钟,但实际上需要23分钟。 公式6.1适用于此点,并确定驶出公路后的估计时间的增量。 误差 \(G_t - V(S_t)\) 此时为8分钟。假设步长参数 \(\alpha\)\(1/2\)。 然后,由于这种经验,退出高速公路后的预计时间将向上修改四分钟。 在这种情况下,这可能是一个太大的变化;卡车可能只是一个不幸的中断。 无论如何,只有在你到家之后才能进行变更。只有在这一点上你才知道任何实际的回报。

_images/figure-6.1.png

图6.1 通过蒙特卡罗方法(左)和TD方法(右)在开车回家示例中推荐的变化。

在学习开始之前,是否有必要等到最终结果已知? 假设在另一天你再次估计离开你的办公室时需要30分钟才能开车回家,但是你会陷入大规模的交通堵塞之中。 离开办公室后二十五分钟,你仍然在高速公路上等待。你现在估计还需要25分钟才能回家,共计50分钟。 当你在车流中等待时,你已经知道你最初估计的30分钟过于乐观了。 你必须等到回家才增加对初始状态的估计吗?根据蒙特卡罗的方法,你必须,因为你还不知道真正的回报。

另一方面,根据TD方法,你可以立即学习,将初始估计值从30分钟转移到50分。 事实上,每个估计值都会转移到紧随其后的估计值。 回到驾驶的第一天,图6.1(右)显示了TD规则(6.2)推荐的预测变化 (如果 \(\alpha=1\),这些是规则所做的更改)。 每个误差与预测随时间的变化成比例,即与预测的 时序差分 成比例。

除了在车流中等待你做点什么之外,还有几个计算原因可以解释为什么根据你当前的预测学习是有利的, 而不是等到你知道实际回报时才终止。我们将在下一节简要讨论其中的一些内容。

练习6.2 这是一个练习,以帮助你发展直觉,了解为什么TD方法通常比蒙特卡罗方法更有效。 考虑开车回家示例以及如何通过TD和蒙特卡罗方法解决它。你能想象一个TD更新平均比蒙特卡罗更新更好的情景吗? 举一个示例场景 - 过去经验和当前状态的描述 - 你期望TD更新更好。这里有一个提示:假设你有很多下班开车回家的经验。 然后你搬到一个新的建筑物和一个新的停车场(但你仍然在同一个地方进入高速公路)。现在你开始学习新建筑的预测。 在这种情况下,你能看出为什么TD更新可能会好得多,至少初始是这样吗?在原始场景中发生同样的事情可能吗?

6.2 TD预测方法的优势

TD方法部分基于其他估计更新其估计。他们通过猜测来学习猜测 - 他们 引导。这是一件好事吗? TD方法与蒙特卡罗和DP方法相比有哪些优势?开发和回答这些问题将涉及本书的其余部分以及更多内容。 在本节中,我们简要地预测一些答案。

显然,TD方法比DP方法具有优势,因为它们不需要环境模型,其奖励和下一状态概率分布。

TD方法相对于蒙特卡罗方法的下一个最明显的优势是它们自然地以在线,完全递增的方式实现。 使用蒙特卡罗方法,必须等到回合的结束,因为只有这样才能知道回报,而使用TD方法,只需要等待一个时间步。 令人惊讶的是,这通常是一个重要的考虑因素。一些应用程序有很长的回合,所以延迟所有学习直到回合结束太慢。 其他应用程序是持续的任务,根本没有回合。最后,正如我们在前一章中所提到的, 一些蒙特卡罗方法必须忽略或折扣采取实验行动的事件,这可能会大大减慢学习速度。 TD方法不太容易受到这些问题的影响,因为无论采取何种后续行动,它们都会从每次转变中学习。

但TD方法听起来有效吗?当然,从下一个中学习一个猜测是方便的,而不是等待实际的结果, 但我们仍然可以保证收敛到正确的答案吗?令人高兴的是,答案是肯定的。 对于任何固定策略 \(\pi\),已经证明TD(0)收敛到 \(v_{\pi}\), 如果它足够小,则表示恒定步长参数,如果步长参数按照通常随机近似条件(2.7)减小,则概率为1(译者注:这句没太明白)。 大多数收敛证明仅适用于上面(6.2)所述算法的基于表格的情况,但是一些也适用于一般线性函数逼近的情况。 这些结果将在9.4节的更一般性设置中讨论。

如果TD和蒙特卡罗方法渐近地收敛到正确的预测,那么自然下一个问题是“哪个首先收敛到那里?” 换句话说,哪种方法学得更快?哪种方法使得有限数据的使用更加有效?目前,这是一个悬而未决的问题, 即没有人能够在数学上证明一种方法比另一种方法收敛得更快。事实上,甚至不清楚说出这个问题的最恰当的正式方式是什么! 然而,在实践中,通常发现TD方法比常数- \(\alpha\) MC方法在随机任务上收敛得更快,如例6.2所示。

例6.2 随机行走

在这个例子中,我们在应用于以下马尔可夫奖励过程时,凭经验比较TD(0)和常数- \(alpha\) MC的预测能力:

_images/random_walk_markov_reward_process.png

马尔可夫奖励过程 (MRP)是没有行动的马尔可夫决策过程。我们经常在关注预测问题时使用MRP, 其中不需要将由环境引起的动态与由个体引起的动态区分开来。 在该MRP中,所有回合以中心状态 \(C\) 开始,然后以相同的概率在每一步上向左或向右前进一个状态。 回合终止于最左侧或最右侧。当回合在右边终止时,会产生 \(+1\) 的奖励;所有其他奖励都是零。 例如,典型的回合可能包含以下状态和奖励序列:\(C, 0, B, 0, C, 0, D, 0, E, 1\)。 因为此任务是未折扣的,所以每个状态的真实价值是从该状态开始在右侧终止的概率。 因此,中心状态的真值是 \(v_\pi(C)=0.5\)。所有状态 \(A\)\(E\) 的 真实价值都是 \(\frac{1}{6}\)\(\frac{2}{6}\)\(\frac{3}{6}\)\(\frac{4}{6}\)\(\frac{5}{6}\)

_images/random_walk_comparison.png

上面的左图显示了在TD(0)的单次运行中在不同数量的回合之后学习的价值。 100回合之后的估计值与它们的真实值接近 - 具有恒定的步长参数(在此示例中 \(\alpha=0.1\)), 这些值随着最近一个回合的结果而无限地波动。右图显示了两种方法对于各种 \(\alpha\) 值的学习曲线。 显示的性能度量是学习的值函数和真值函数之间的均方根(RMS)误差,在五个状态上取平均值, 然后在超过100次运行上平均。在所有情况下,对于所有 \(s\),近似值函数被初始化为中间值 \(V(s)=0.5\)。 在这项任务中,TD方法始终优于MC方法。

练习6.3 从随机游走示例的左图中显示的结果看来,第一回合仅导致 \(V(A)\) 的变化。 这告诉你第一回合发生了什么?为什么只有这一状态的估计值发生了变化?确切地说它改变了多少?

练习6.4 随机游走示例右图中显示的特定结果取决于步长参数 \(\alpha\) 的值。 如果使用更广范围的 \(\alpha\) 值,您认为关于哪种算法更好的结论是否会受到影响? 是否存在不同的固定值 \(\alpha\),其中任何一种算法的表现都要比显示的好得多?为什么或者为什么不?

*练习6.5 在随机游走示例的右图中,TD方法的RMS误差似乎下降然后再上升,特别是在 \(\alpha\) 高时。 可能是什么导致了这个?你认为这总是会发生,或者它可能是近似值函数初始化的函数吗?

练习6.6 在例6.2中,我们说状态 \(A\)\(E\) 随机游走示例的 真实值是 \(\frac{1}{6}\)\(\frac{2}{6}\)\(\frac{3}{6}\)\(\frac{4}{6}\)\(\frac{5}{6}\)。描述至少两种不同的方式相说明这些可以计算出来。 您认为我们实际使用哪个?为什么?

6.3 TD(0)的最优性

假设只有有限的经验,比如10个回合或100个时间步。在这种情况下,使用增量学习方法的常见方法是重复呈现经验,直到该方法收敛于答案。 给定近似值函数 \(V\),对于访问非终结状态的每个时间步长 \(t\) 计算由(6.1)或(6.2)指定的增量, 但是值函数仅通过所有增量的总和改变一次。 然后,使用新的值函数再次处理所有可用的经验,以产生新的整体增量,依此类推,直到值函数收敛。 我们将此称为 批量更新,因为只有在处理完每 完整的训练数据后才会进行更新。

在批量更新中,TD(0)确定性地收敛到与步长参数 \(\alpha\) 无关的单个答案,只要选择 \(\alpha\) 足够小。 常数- \(\alpha\) MC方法也在相同条件下确定性地收敛,但是收敛到不同的答案。 理解这两个答案将有助于我们理解两种方法之间的差异。在正常更新下,方法不会一直移动到各自的批次答案, 但在某种意义上,他们会在这些方向上采取措施。在尝试理解一般的两个答案之前,对于所有可能的任务,我们首先看一些例子。

例6.3 批量更新下的随机行走 如下将TD(0)和常数- \(\alpha\) MC的批量更新版本应用于随机行走预测示例(示例6.2)。 在每一新回合之后,到目前为止所见的所有回合都被视为一个批量。它们被重复地呈现给算法 TD(0)或常数- \(\alpha\) MC, 其中 \(\alpha\) 足够小,使得价值函数收敛。然后将得到的价值函数与 \(v_\pi\) 进行比较, 绘制五个状态(以及整个实验的100次独立重复)的平均均方根误差,得到图6.2所示的学习曲线。 请注意,批处理TD方法始终优于批量蒙特卡罗方法。

_images/figure-6.2.png

图6.2 在随机行走任务的批量训练下TD(0)和常数- \(\alpha\) MC的性能。

在批量训练中,常数- \(\alpha\) MC收敛于值 \(V(s)\),这是在访问每个状态之后经历的实际回报的样本平均值。 这些是最佳估计,因为它们最小化了训练集中实际回报的均方误差。从这个意义上来说,令人惊讶的是, 批量TD方法能够根据右图所示的均方根误差测量得到更好的效果。批量TD如何能够比这种最佳方法表现更好? 答案是蒙特卡罗方法仅以有限的方式是最优的,而TD以与预测回报更相关的方式是最优的。

例6.4 你是预测者 现在把自己置于未知马尔可夫奖励过程的回报预测者的角色。假设你观察了以下八个回合:

A,0,B,0 B,1
B,1 B,1
B,1 B,1
B,1 B,0

这意味着第一个回合在状态A开始,转换为B,奖励为0,然后从B终止,奖励为0。其他七个回合甚至更短,从B开始并立即终止。 鉴于这批数据,您认为估计 \(V(A)\)\(V(B)\) 的最佳预测最佳值是什么? 每个人都可能会同意 \(V(B)\) 的最佳值是 \(\frac{3}{4}\), 因为在状态B的8次中有6次过程立即终止,回报为1,而在B中另外两次过程终止于回报0。

_images/you_are_the_predictor.png

但是,根据这些数据,估算 \(V(A)\) 的最佳值是多少?这里有两个合理的答案。 一个是观察到过程处于状态A会100%立即到达B(奖励为0); 因为我们已经确定B的值为 \(\frac{3}{4}\),所以A的值也必须为 \(\frac{3}{4}\)。 查看这个答案的一种方法是它首先建立马尔可夫过程的建模,在这种情况下如右图所示, 然后计算给定模型的正确估计,在这种情况下确实给出 \(V(A)=\frac{3}{4}\)。 这也是批量TD(0)给出的答案。

另一个合理的答案就是注意到我们已经看过A一次,其后的回报是0;因此,我们估计 \(V(A)\) 为0。 这是批量蒙特卡罗方法给出的答案。请注意,它也是给出训练数据最小平方误差的答案。 实际上,它给数据带来零误差。但我们仍然希望第一个答案会更好。如果该过程是马尔可夫的, 我们预计第一个答案将对 未来 数据产生较低的误差,即使蒙特卡罗对现有数据的回答更好。

实施例6.4说明了批次TD(0)和批量蒙特卡罗方法发现的估计值之间的一般差异。 批量蒙特卡罗方法总是找到最小化训练集上的均方误差的估计, 而批量TD(0)总是找到对马尔可夫过程的最大似然模型完全正确的估计。 通常,参数的 最大似然估计 是其生成数据的概率最大的参数值。 在这种情况下,最大似然估计是从观察到的事件中以明显方式形成的马尔可夫过程的模型: 从 \(i\)\(j\) 的估计转移概率是从 \(i\)\(j\) 的观察到的转变的分数, 以及相关联的预期奖励是在这些转变中观察到的奖励的平均值。 给定此模型,如果模型完全正确,我们可以计算值函数的估计值,该估计值将完全正确。 这被称为 确定性等价估计,因为它等同于假设潜在过程的估计是确定的而不是近似的。 通常,批量TD(0)收敛于确定性等价估计。

这有助于解释为什么TD方法比蒙特卡罗方法更快收敛。在批量形式中,TD(0)比蒙特卡罗方法更快, 因为它计算真实的确定性等价估计。这解释了随机行走任务中批量结果显示的TD(0)的优势(图6.2)。 与确定性等价估计的关系也可以部分解释非批量TD(0)的速度优势(例如,例6.2,第125页,右图)。 尽管非批量方法没有达到确定性等效或最小平方误差估计,但它们可以被理解为大致在这些方向上移动。 非批量TD(0)可能比常数- \(\alpha\) MC更快,因为它正朝着更好的估计方向发展,即使它没有完全到达那里。 目前,关于在线TD和蒙特卡罗方法的相对效率,没有更明确的说法。

最后,值得注意的是,尽管确定性等价估计在某种意义上是最优解,但直接计算它几乎是不可行的。 如果 \(n=|\mathcal{S}|\) 是状态的数量,然后仅形成过程的最大似然估计可能需要 \(n^2\) 个存储器的量级, 并且如果按常规方式完成,则计算相应的值函数需要 \(n^3\) 个计算步骤的量级。 在这些术语中,确实令人惊讶的是TD方法可以使用不超过 \(n\) 阶的存储器和训练集上的重复计算来近似相同的解。 在具有大状态空间的任务中,TD方法可能是近似确定性等价解的唯一可行方法。

*练习6.7 设计TD(0)更新的非策略版本,可以与任意目标策略⇡一起使用并覆盖行为策略b,在每个步骤t使用重要性采样率(5.3)。

6.4 Sarsa:在策略TD控制

我们现在转向使用TD预测方法来解决控制问题。像往常一样,我们遵循广义策略迭代(GPI)的模式,这次只使用TD方法解决评估或预测部分。 与蒙特卡罗方法一样,我们面临着对探索和利用进行权衡的需要,并且再次采用的方法分为两大类:在策略和离策略。 在本节中,我们将介绍在策略上的TD控制方法。

第一步是学习动作价值函数而不是状态价值函数。特别是,对于在策略的方法, 我们必须估计当前行为策略 \(\pi\) 和所有状态 \(s\) 和行动 \(a\)\(q(s, a)\)。 这可以使用基本上与上述用于学习 \(v_\pi\) 的相同的TD方法来完成。 回想一下,回合由一系列状态和状态-动作对组成:

_images/sequence_of_states_and_state-action_pairs.png

在上一节中,我们考虑了从状态到状态的转变,并学习了状态的价值。 现在我们考虑从状态-动作对转换到状态-动作对,并学习状态-动作对的价值。 这些案例在形式上是相同的:它们都是具有奖励过程的马尔可夫链。 确保TD(0)下状态价值收敛的定理也适用于相应的动作价值算法:

(4)\[Q\left(S_{t}, A_{t}\right) \leftarrow Q\left(S_{t}, A_{t}\right)+\alpha\left[R_{t+1}+\gamma Q\left(S_{t+1}, A_{t+1}\right)-Q\left(S_{t}, A_{t}\right)\right].\]
_images/backup_of_sarsa.png

在从非终点状态 \(S_t\) 的每次转换之后完成该更新。 如果 \(S_{t+1}\) 是终点,则 \(Q(S_{t+1}, A_{t+1})\) 被定义为零。 此规则使用五元组事件的每个元素 \(\left(S_{t}, A_{t}, R_{t+1}, S_{t+1}, A_{t+1}\right)\), 它们构成从一个状态-动作对到下一个状态-动作对的转换。这个五元组产生了算法的名称Sarsa。 Sarsa的备份图如右图所示。

可以直接设计基于Sarsa预测方法的在策略控制算法。 正如在所有策略方法中一样,我们不断估计行为策略 \(\pi\)\(q_\pi\), 同时将 \(\pi\) 改为 \(q_\pi\) 的贪婪。Sarsa控制算法的一般形式在下面的框中给出。

Sarsa算法的收敛属性取决于策略对 \(Q\) 的依赖性。 例如,可以使用 \(\varepsilon\) -贪婪或 \(\varepsilon\) -soft 策略。 只要所有状态-动作对被无限次访问并且策略收敛于贪婪策略的限制 (可以控制,例如,设置 \(\varepsilon\) -贪婪时的 \(\varepsilon=1/t\)), Sarsa就以概率1收敛到最优策略和动作-价值函数。

练习6.8 显示(6.6)的动作价值适用于TD误差的动作值形式 \(\delta_{t}=R_{t+1}+\gamma Q\left(S_{t+1}, A_{t+1}\right)-Q\left(S_{t}, A_{t}\right)\), 再次假设值不会逐步变化。

Sarsa (在策略TD控制)估计 \(Q \approx q_*\)

算法参数:步长 \(\alpha \in (0,1]\),小值 \(\varepsilon > 0\)

对所有 \(s \in \mathcal(S)^+\)\(a \in \mathcal(A)(s)\),任意初始 \(Q(s, a)\),除了 \(Q(终点, \cdot)=0\)

对每一个回合循环:

初始化 \(S\)

使用从 \(Q\) 派生的策略从 \(S\) 中选择 \(A\)varepsilon` -贪婪)

对回合的每一步循环:

采取动作 \(A\),观察 \(R\), \(S^{\prime}\)

使用从 \(Q\) 派生的策略从 \(S^{\prime}\) 中选择 \(A^{\prime}\)varepsilon` -贪婪)

\(Q(S, A) \leftarrow Q(S, A)+\alpha\left[R+\gamma Q\left(S^{\prime}, A^{\prime}\right)-Q(S, A)\right]\)

\(S \leftarrow S^{\prime}\)\(A \leftarrow A^{\prime}\)

直到 \(S\) 是终点

例6.5:有风网格世界 下面的插图是一个标准的网格世界,有开始和目标状态, 但有一个差异:在网格中间有一个向上运行的侧风。 动作是标准的四个── ,但在中间区域, 结果的下一个状态向上移动一个“风”,其强度因列而异。 在每列下方给出风的强度,向上移动的格子数量。 例如,如果你是目标右侧的一个单元格,则左侧的操作会将你带到目标上方的单元格。 这是一个没有折扣的回合任务,在达到目标状态之前回报恒定为 \(-1\)

_images/sarsa_for_windy_gridworld.png

右边的图表显示了将 \(\varepsilon\) -贪婪Sarsa应用于此任务的结果, 其中 \(\varepsilon=0.1\)\(\alpha=0.5\), 并且所有 \(s, a\) 初始化价值 \(Q(s,a)=0\)。 图表的斜率增加表明目标随着时间的推移更快地达到。经过8000个时间步骤,贪婪的策略早已是最优的(它的轨迹显示在图中); 继续的 \(\varepsilon\) -贪婪探索将平均回合长度保持在17步左右,比最低值15更多两步。 请注意,蒙特卡罗方法在这里不能轻易使用,因为所有策略都不能保证终止。 如果发现某项策略导致个体保持相同的状态,然后下一回合就永远不会结束。 Sarsa等在线学习方法没有这个问题,因为他们很快就会在这一回合中说这些策略很差,并转而使用其他策略。

练习6.9:带有对角移动的有风网格世界(编程) 重新解决有风的网格世界,假设有八种可能的动作, 包括对角线移动,而不是通常的四种动作。额外行动能使你做得好多少?除了由风引起的第九次动作之外,你能做到更好吗?

练习6.10:随机风(编程) 用对角移动重新解决有风网格世界任务,假设风的效果(如果有的话)是随机的, 有时从每列给出的平均值变化1。也就是说,三分之一的时间里你完全按照这些值移动,如上一个练习中所示, 但也有三分之一的时间将在该单元格一个单元格之上移动,另外三分之一的时间在一个单元格之下移动。 例如,如果你是目标右侧的一个单元格并向 移动,那么三分之一的时间将移动到目标上方一个单元格, 三分之一的时间将移动到目标上方两个单元格,最后三分之一的时间你移动到目标。

6.5 Q-learning:离策略TD控制

强化学习的早期突破之一是开发了一种名为 Q-learning (Watkins,1989)的离策略TD控制算法,由以下定义:

(5)\[Q\left(S_{t}, A_{t}\right) \leftarrow Q\left(S_{t}, A_{t}\right)+\alpha\left[R_{t+1}+\gamma \max _{a} Q\left(S_{t+1}, a\right)-Q\left(S_{t}, A_{t}\right)\right].\]

在这种情况下,学习的动作-价值函数 \(Q\) 直接近似 \(q_*\),即最佳动作-价值函数,与所遵循的策略无关。 这极大地简化了算法的分析并实现了早期的收敛证明。该策略仍然具有一个效果,即它确定访问和更新哪些状态-动作对。 但是,正确收敛所需的只是所有动作-价值对继续更新。正如我们在第5章中所观察到的那样,这是一个最小要求, 因为在一般情况下保证找到最佳行为的任何方法都必须要求它。 在该假设和步长参数序列的通常随机近似条件的变体下,\(Q\) 已经显示出以概率1收敛到 \(q_*\)。 Q-learning算法以程序形式显示如下。

Q-learning (离策略TD控制)估计 \(\pi \approx \pi_*\)

算法参数:步长 \(\alpha \in (0,1]\),小值 \(\varepsilon > 0\)

对所有 \(s \in \mathcal(S)^+\)\(a \in \mathcal(A)(s)\),任意初始 \(Q(s, a)\),除了 \(Q(终点, \cdot)=0\)

对每一个回合循环:

初始化 \(S\)

对回合的每一步循环:

使用从 \(Q\) 派生的策略从 \(S\) 中选择 \(A\)varepsilon` -贪婪)

采取动作 \(A\),观察 \(R\), \(S^{\prime}\)

\(Q(S, A) \leftarrow Q(S, A)+\alpha\left[R+\gamma \max _{a} Q\left(S^{\prime}, a\right)-Q(S, A)\right]\)

\(S \leftarrow S^{\prime}\)

直到 \(S\) 是终点

Q-learning的备份图是什么?规则(6.8)更新状态-动作对,因此顶点(更新的根)必须是一个小的,填充的动作节点。 更新也 来自 动作节点,最大化在下一个状态下可能执行的所有操作。因此,备份图的底部节点应该是所有这些动作节点。 最后,请记住,我们指出将这些“下一个动作”节点的最大值放在它们之间(图3.4-右)。你能猜出现在的图是什么样吗? 如果能,请在转到图6.4中的答案之前进行猜测。

_images/the_cliff_gridworld.png

例6.6:悬崖行走 这个网格世界示例比较了Sarsa和Q-learning,突出了在策略(Sarsa)和离策略(Q-learning)方法之间的区别。 考虑右边显示的网格世界。这是一个标准的未折扣的,偶然的任务,具有开始和目标状态,以及向上,向下,向右和向左移动的常见操作。 所有过渡的奖励都是 \(1\),除了那些标记为“悬崖”的区域。进入该区域会产生 \(-100\) 的奖励,并且会立即回到起点。

_images/performance_of_Sarsa_and_Q-learning.png

右图显示了具有 \(\varepsilon\) -贪婪动作选择的Sarsa和Q-learning方法的性能,\(\alpha=0.1\)。 在初始瞬态之后,Q-learning会学习最优策略的价值,这些策略沿着悬崖边缘行进。 不幸的是,由于“\(\varepsilon\) -贪婪动作选择”,这导致它偶尔从悬崖上掉下来。 另一方面,Sarsa将动作选择考虑在内,并学习通过网格上部的更长但更安全的路径。 虽然Q-learning实际上学习了最优策略的价值,其在线表现比学习迂回策略的Sarsa差。 当然,如果 \(\varepsilon\) 逐渐减少,那么两种方法都会渐近地收敛到最优策略。

练习6.11 为什么Q-learning被认为是一种 离策略 控制方法?

练习6.12 假设动作选择是贪婪的。Q-learning与Sarsa的算法完全相同吗?他们会做出完全相同的动作选择和权重更新吗?

6.6 预期的Sarsa

考虑与Q-learning一样的学习算法,区别在于其考虑到当前策略下每个动作的可能性,使用预期值而不是最大化下一个状态-动作对。 也就是说,考虑具有如下更新规则的算法

\[\begin{split}\begin{aligned} Q\left(S_{t}, A_{t}\right) & \leftarrow Q\left(S_{t}, A_{t}\right)+\alpha\left[R_{t+1}+\gamma \mathbb{E}_{\pi}\left[Q\left(S_{t+1}, A_{t+1}\right) | S_{t+1}\right]-Q\left(S_{t}, A_{t}\right)\right] \\ & \leftarrow Q\left(S_{t}, A_{t}\right)+\alpha\left[R_{t+1}+\gamma \sum_{a} \pi\left(a | S_{t+1}\right) Q\left(S_{t+1}, a\right)-Q\left(S_{t}, A_{t}\right)\right] & \text{(6.9)} \end{aligned}\end{split}\]

但这遵循Q-learning的模式。给定下一个状态 \(S_{t+1}\), 该算法 确定地 在与Sarsa 期望 移动的方向相同的方向上移动, 因此它被称为 预期的Sarsa。其备份图如图6.4右边所示。

预期的Sarsa在计算上比Sarsa更复杂,但作为回报,它消除了由于随机选择 \(A_{t+1}\) 而导致的差异 基于相同的经验,我们可能期望它的表现略好于Sarsa,实际上它通常也是如此。 图6.3显示了预期Sarsa与Sarsa,Q-learning的悬崖行走任务的总结。 预期的Sarsa在这个问题上保留了Sarsa对Q-learning的显着优势。 此外,对于广泛得步长参数 \(\alpha\)alpha=1` 而不会导致渐近性能的任何退化, 而Sarsa只能在长期运行时以小的 \(\alpha\) 值表现良好,短期表现较差。 在这个和其他例子中,预期的Sarsa相对于Sarsa具有一致的经验优势。

_images/figure-6.3.png

图6.3:TD控制方法对悬崖行走任务的临时和渐近性能是关于 \(\alpha\) 的函数。 所有算法都使用 \(\varepsilon\) -贪婪策略,其中 \(\varepsilon=0.1\)。 渐近性能是超过100,000回合的平均,而临时性能是前100回合的平均值。 这些数据分别是临时和渐近情况的超过50,000回合和10次运行的平均。 实心圆圈标志着每种方法的最佳临时性能。改编自van Seijen et al.(2009)。

_images/figure-6.4.png

图6.4:Q-learning和预期Sarsa的备份图。

在这些悬崖行走任务结果中,预期的Sarsa被用于策略,但总的来说,它可能使用与目标策略 \(\pi\) 不同的策略来产生行为, 在这种情况下,它成为一种离策略算法。例如,假设 \(\pi\) 是贪婪的策略,而行为更具探索性; 然后预期Sarsa正是Q-learning。在这个意义上,预期的Sarsa包含并概括了Q-learning,同时可靠地改善了Sarsa。 除了额外的计算成本之外,预期的Sarsa可能完全支配其他更著名的TD控制算法。

6.8 最大化偏差和双学习

到目前为止,我们讨论的所有控制算法都涉及最大化其目标策略的构建。 例如,在Q-learning中,目标策略是给定当前操作值的贪婪策略,其中使用max定义, 而在Sarsa中,策略通常是 \(\varepsilon\) -贪婪,这也涉及最大化操作。 在这些算法中,最大估计值被隐含地用作最大值的估计值,这可能导致显着的正偏差。 要了解原因,请考虑单个状态 \(s\),其中有许多动作 \(a\) 的真值 \(q(s, a)\) 都是零, 但其估计值 \(Q(s, a)\) 是不确定的,因此分布在零的上方和下方。 真值的最大值为零,但估计的最大值为正,一个正偏差。我们称之为 最大化偏差

例6.7 最大化偏差例子 图6.5中显示的小型MDP提供了一个简单的示例,说明最大化偏差如何影响TD控制算法的性能。 MDP有两个非终端状态 AB,回合总是从 A 开始,可以选择 两个动作。 动作立即转换到终止状态,奖励和返回为零。 动作转换为 B,同时奖励为零, 之后有许多可能的动作,所有动作都会导致立即终止,奖励来自正态分布,平均值为 \(-0.1\),方差为 \(1.0\)。 因此,从 开始的任何轨迹的预期回报是 \(-0.1\),因此在状态 A 中向 移动总是错误的。 然而,我们的控制方法可能有利于 动作,因为最大化偏差使 B 看起来具有正值。 图6.5显示,带有 \(\varepsilon\) -贪婪动作选择的Q-learning最初学会强烈支持 动作。 即使在渐近线上,Q-learning也比我们的参数设置 (\(\varepsilon=0.1\)\(\alpha=0.1\)\(\gamma=0.1\)) 中的 动作大约多5%。

_images/figure-6.5.png

图6.5 在简单的情节MDP上进行Q-learning和双Q-learning的比较(显示插图)。 Q-learning最初学习比 动作更经常地学习 动作,并且总是比 \(\varepsilon=0.1\)\(\varepsilon\) -贪婪动作选择强制执行的最小概率的5%更经常地学习。 相比之下,双Q-learning基本上不受最大化偏差的影响。这些数据是超过10,000次运行的平均。 初始动作价值估计为零。\(\varepsilon\) -贪婪动作选择中的任何关系都是随机打破的。

是否存在避免最大化偏差的算法?首先,考虑一个赌博机例子,其中我们对许多行为中的每一个的价值进行噪声估计, 获得作为每个行动的所有游戏所获得的奖励的样本平均值。如上所述,如果我们使用估计的最大值作为真值的最大值的估计, 那么将存在正的最大化偏差。查看问题的一种方法是,由于使用相同的样本(游戏)来确定最大化动作和估计其值。 假设我们将游戏划分为两组,并用它们来学习两个独立的估计,称之为 \(Q_1(a)\)\(Q_2(a)\), 对 \(a\in\mathcal{A}\),每个都是真值 \(q(a)\) 的估计。 我们可以使用一个估计值,比如 \(Q_1\),确定最大化动作 \(A^{*}=\arg \max _{a} Q_{1}(a)\), 另一个 \(Q_2\) 提供其价值的估计 \(Q_{2}(A^{*})=Q_2(\arg \max _{a} Q_{1}(a))\)。 在 \(\mathcal{E}[Q_2(A^{*})]=q(A^{*})\) 的意义上,该估计将是无偏的。 我们也可以重复这个过程,两个估计的作用相反,产生第二个无偏估计 \(Q_{1}(\arg \max _{a} Q_{2}(a))\)。 这是 双Q-learning 的思想。请注意,虽然我们学习了两个估计值,但每次游戏只会更新一个估算值; 双学习使内存要求加倍,但不会增加每步的计算量。

双学习的想法自然地延伸到完整MDP的算法。例如,类似于Q-learning的双学习算法,称为双Q-learning, 将时间步长分为两步,可能通过在每一步上投硬币。如果硬币为正面,那么更新就是

(6)\[Q_{1}(S_{t}, A_{t}) \leftarrow Q_{1}(S_{t}, A_{t})+\alpha\left[R_{t+1}+\gamma Q_{2}\left(S_{t+1}, \underset{a}{\arg \max } Q_{1}(S_{t+1}, a\right))-Q_{1}(S_{t}, A_{t})\right]\]

如果硬币出现反面,则在 \(Q_1\)\(Q_2\) 切换时进行相同的更新,以便更新 \(Q_2\)。 两个近似值函数完全对称地处理。行为策略可以使用行为价值估计。 例如,双Q-learning的 \(\varepsilon\) -贪婪策略可以基于两个动作价值估计的平均值(或总和)。 下面的框中给出了完整的双Q-learning算法。这是用于产生图6.5中结果的算法。 在这个例子中,双学习似乎消除了最大化偏见造成的伤害。 当然还有Sarsa和预期的Sarsa的双学习版本。

双Q-learning,估计 \(Q_1 \approx Q_2 \approx q_*\)

算法参数:步长 \(\alpha \in (0,1]\),小值 \(\varepsilon > 0\)

对所有 \(s\in\mathcal(S)^+\)\(a\in\mathcal(A)(s)\),初始化 \(Q_1(s,a)\)\(Q_2(s,a)\),使得 \(Q(终点, \cdot)=0\)

对每一个回合循环:

初始化 \(S\)

对回合的每一步循环:

依据在 \(Q_1+Q_2\) 中策略 \(\varepsilon\) -贪婪,从 \(S\) 中选择 \(A\)

采取动作 \(A\),观察 \(R\), \(S^{\prime}\)

有0.5的概率:

\(Q_{1}(S, A) \leftarrow Q_{1}(S, A)+\alpha\left(R+\gamma Q_{2}\left(S^{\prime}, \arg \max _{a} Q_{1}\left(S^{\prime}, a\right)\right)-Q_{1}(S, A)\right)\)

否则:

\(Q_{2}(S, A) \leftarrow Q_{2}(S, A)+\alpha\left(R+\gamma Q_{1}\left(S^{\prime}, \arg \max _{a} Q_{2}\left(S^{\prime}, a\right)\right)-Q_{2}(S, A)\right)\)

\(S \leftarrow S^{\prime}\)

直到 \(S\) 是终点

*练习6.13 具有 \(\varepsilon\) -贪婪目标策略的双预期Sarsa的更新方程是什么?

6.9 游戏,Afterstates和其他特殊情况

在本书中,我们尝试对一系列任务提出统一的方法,但当然总是有一些特殊的任务可以通过专门的方式得到更好的处理。 例如,我们的一般方法涉及学习一个 动作 -价值函数, 但是在第一章中我们提出了一种学习玩井字棋的TD方法,它学到的东西更像是一个 状态 -价值函数。 如果我们仔细观察那个例子,很明显,在那里学到的函数通常意义上既没有动作价值函数也没有状态价值函数。 传统的状态价值函数评估个体可以选择操作的状态,但是在个体移动 之后,井字棋游戏中使用的状态价值函数评估棋盘位置。 让我们称这些为 afterstates,相应得价值函数为 afterstate价值函数。 当我们了解环境动态的初始部分但不一定了解完整的动态时,afterstates是有用的。 例如,在游戏中我们通常知道移动的直接影响。我们知道每次可能的棋子移动会产生什么样的位置,而不是我们的对手将如何应对。 afterstate价值函数是利用这种知识的自然方式,从而产生更有效的学习方法。

从井字棋示例中可以明显看出,根据afterstates设计算法更为有效。传统的动作价值函数将从位置 移动映射到价值的估计值。 但是许多位置-移动对产生相同的结果位置,如下例所示:

_images/tic-tac-toe1.png

在这种情况下,位置-移动对是不同的,但产生相同的“结果位置”,因此必须具有相同的夹子。 传统的行动-价值函数必须分别评估两个对,而afterstate价值函数将立即同等地评估两个对。 任何关于左侧位置-移动对的学习都会立即转移到右侧的位置-移动对。

Afterstates出现在许多任务中,而不仅仅是游戏。例如,在排队任务中,有一些操作,例如将客户分配给服务器,拒绝客户或丢弃信息。 在这种情况下,行动实际上是根据其直接影响来定义的,这些影响是完全已知的。

不可能描述所有可能的专业问题和相应的专业学习算法。但是,本书中提出的原则应该广泛应用。 例如,仍然可以根据广义策略迭代恰当地描述afterstate方法,其中策略和(afterstate)价值函数以基本相同的方式交互。 在许多情况下,人们仍将面临在策略和离策略方法之间的选择,以管理持续探索的需要。

练习6.14 描述杰克汽车租赁(例4.2)的任务如何用afterstates重写。就这一具体任务而言,为什么这样的重写可能会加速收敛?

6.10 总结

在本章中,我们介绍了一种新的学习方法,即时序差分(TD)学习,并展示了如何将其应用于强化学习问题。 像往常一样,我们将整体问题分为预测问题和控制问题。TD方法是用于解决预测问题的蒙特卡罗方法的替代方法。 在这两种情况下,控制问题的扩展都是通过我们从动态规划中抽象出来的通用策略迭代(GPI)的概念。 这就是近似策略和价值函数应该以朝着最优价值移动这样一种方式相互作用的想法。

构成GPI的两个过程之一驱使用价值函数准确地预测当前策略的回报;这是预测问题。 另一个过程推动策略对于当前价值函数在局部地(例如,\(\varepsilon\) -贪婪)进行改进。 当第一个过程基于经验时,出现了关于保持足够的探索的问题。我们可以对TD控制方法进行分类, 根据他们是否通过使用在策略或者离策略的方法处理这个问题。 Sarsa是一种在策略的方法,而Q-learning是一种离策略的方法。预期的Sarsa也是一种离策略的方法。 第三种方法可以扩展TD方法来控制,我们在本章中没有包含,称为演员-评论家方法。这些方法在第13章中详细介绍。

本章介绍的方法是目前使用最广泛的强化学习方法。这可能是由于它们非常简单: 它们可以在线应用,只需极少的计算量,就可以通过与环境的交互来经历; 它们可以通过用小型计算机程序实现的单个方程几乎完全表达。 在接下来的几章中,我们扩展了这些算法,使它们更复杂,功能更强大。 所有新算法将保留这里介绍的算法的本质:它们将能够在线处理经验,计算相对较少,并且它们将由TD误差驱动。 本章介绍的TD方法的特殊情况应正确地称为 一步法表格式不基于模型 TD方法。 在接下来的两章中,我们将它们扩展为 \(n\) 步形式(蒙特卡罗方法的链接)和包含环境模型的形式(计划和动态规划的链接)。 然后,在本书的第二部分,我们将它们扩展到用各种形式的函数逼近而不是表格(深度学习和人工神经网络的链接)。

最后,在本章中,我们完全在强化学习问题的背景下讨论了TD方法,但TD方法实际上比这更普遍。 它们是学习对动力系统进行长期预测的一般方法。 例如,TD方法可能与预测财务数据,寿命,选举结果,天气模式,动物行为,发电站需求或客户购买有关。 只有当TD方法被分析为纯粹的预测方法时,不管它们在强化学习中的用途如何,它们的理论性质才能得到很好的理解。 即便如此,TD学习方法的这些其他潜在应用尚未得到广泛探索。

书目和历史评论

正如我们在第1章中所概述的那样,TD学习的概念早期源于动物学习心理学和人工智能, 最着名的是Samuel(1959)和Klopf(1972)的工作。 Samuel的工作被描述为第16.2节中的案例研究。与TD学习有关的还有Holland(1975,1976)早期关于价值预测一致性的想法。 这些影响了作者之一(Barto),他是1970年至1975年在Holland教授的密歇根大学的研究生。 Holland的想法引发了许多TD相关系统, 包括Booker(1982)和Holland斗式旅(bucket brigade)(1986)的工作,这与Sarsa有关,如下所述。

6.1-2 这些部分的大部分具体材料来自Sutton(1988),包括TD(0)算法,随机行走示例和术语“时序差分学习”。 动态规划和蒙特卡罗方法的关系受到Watkins(1989),Werbos(1987)和其他人影响。备份图的使用对于本书的第一版来说是新的。

基于Watkins和Dayan(1992)的工作,表格TD(0)被Sutton(1988)证明收敛和Dayan(1992)以概率为1证明。 Jaakkola,Jordan和Singh(1994)以及Tsitsiklis(1994)通过使用强大的现有随机近似理论的扩展,扩展和加强了这些结果。 其他扩展和一般化将在后面的章节中介绍。

6.3 Sutton(1988)建立了批量训练下TD算法的最优性。 照亮这一结果的是Barnard(1993)推导的TD算法,它是用于学习马尔可夫链模型的增量方法的一个步骤和 用于从模型计算预测的方法的一个步骤的组合。术语 确定性等价 来自自适应控制文献(例如,Goodwin和Sin,1984)。

6.4 Sarsa算法由Rummery和Niranjan(1994)引入。 他们结合人工神经网络对其进行了探索,称之为“修改连接Q-learning”。 Sutton(1996)引入了“Sarsa”这个名字。 Singh,Jaakkola,Littman和Szepesv ari(2000)证明了一步表格Sarsa(本章所述形式)的收敛性。 Tom Kalt提出了“有风网格世界”的例子。

Holland(1986)斗式旅的想法演变成与Sarsa密切相关的算法。斗式旅的最初想法涉及相互触发的规则链; 它专注于将信用从当前规则传递回触发它的规则。随着时间的推移, 斗式旅更像是TD学习,将信用归还给任何暂时的先前规则,而不仅仅是触发当前规则的规则。 斗式旅的现代形式,以各种自然方式简化,几乎与一步法Sarsa相同,如Wilson(1994)所详述。

6.5 Watkins(1989)引入了Q-learning,Watkins和Dayan(1992)对收敛证明的概述进行了严格的描述。 Jaakkola,Jordan和Singh(1994)以及Tsitsiklis(1994)证明了更一般的收敛性结果。

6.6 预期的Sarsa算法由George John(1994)引入,他称之为“\(\overline{Q}\) -learning”, 并强调其作为一种离策略算法优于Q-learning。当我们在本书的第一版中将预期的Sarsa作为练习, 或者对于van Seijen,van Hasselt,Whiteson和Weiring(2009), 他们建立了预期的Sarsa的收敛性和条件将胜过常规的Sarsa和Q-learning时,John的工作并不为我们所知。 我们的图6.3是根据他们的结果改编的。Van Seijen等人将“预期的Sarsa”定义为一种独立的策略方法(正如我们在第一版中所做的那样), 而现在我们将此名称用于目标和行为策略可能不同的通用算法。 van Hasselt(2011)注意到了预期的Sarsa的一般离策略视角,他称之为“一般Q学习”。

6.7 最大化偏差和双学习被van Hasselt引入并进行了广泛的研究(2010年,2011年)。 图6.5中的示例MDP改编自图4.1中的示例(van Hasselt,2011)。

6.8 Afterstate的概念与“决策后的状态”的概念相同 (Van Roy,Bertsekas,Lee和Tsitsiklis,1997; Powell,2011)。

[1]如果这是一个控制问题,目的是最大限度地缩短旅行时间,那么我们当然会将奖励作为经过时间的 影响。 但是因为我们只关注预测(策略评估),所以我们可以通过使用正数来保持简单。

第7章 \(n\) 步引导(Bootstrapping)方法

在本章中,我们统一了蒙特卡罗(MC)方法和前两章中介绍的一步时序差分(TD)方法。MC方法和一步法TD方法都不是最好的。 在本章中,我们将介绍 n步TD方法,这些方法概括了两种方法,以便可以根据需要平滑地从一种方法转换到另一种方法,以满足特定任务的需求。 n步方法在一端采用MC方法,在另一端采用一步TD方法。最好的方法通常介于两个极端之间。

另一种看待n步方法的好处的方法是让它们摆脱时间步骤的独裁。 使用一步TD方法,同一时间步骤确定可以更改操作的频率以及完成引导的时间间隔。 在许多应用程序中,人们希望能够非常快速地更新动作以考虑已经发生变化的任何事情, 但是如果引导在一段时间内发生了重大且可识别的状态变化,则引导效果最佳。 使用一步TD方法,这些时间间隔是相同的,因此必须做出妥协。 n步方法使引导能够在多个步骤中发生,使我们摆脱单一时间步骤的暴政。

n步方法的概念通常用作 资格迹 (第12章)算法思想的介绍,它可以同时实现多个时间间隔的引导。 在这里,我们反过来考虑n步引导的想法,将资格迹机制的处理推迟到以后。 这使我们能够更好地分离问题,在更简单的n步设置中处理尽可能多的问题。

像往常一样,我们首先考虑预测问题,然后考虑控制问题。 也就是说,我们首先考虑n步方法如何帮助预测作为固定策略的状态函数的回报(即,估计 \(v_\pi\))。 然后我们将想法扩展到行动价值和控制方法。

7.1 \(n\) 步TD预测

蒙特卡罗和TD方法之间的方法空间是什么?考虑使用 \(\pi\) 生成的样本回合估计 \(v_\pi\)。 蒙特卡罗方法基于从该状态到回合结束的观察到的奖励的整个序列来执行每个状态的更新。 另一方面,一步法TD方法的更新仅基于下一个奖励,一步之后从状态价值引导作为剩余奖励的代理。 然后,一种中间方法将基于中间数量的奖励执行更新:多于一个,但是在终止之前少于所有奖励。 例如,两步更新将基于前两个奖励以及两个步骤后的估计的状态值。 同样,我们可以进行三步更新,四步更新等。图7.1显示了 \(v_\pi\)n步更新 频谱的备份图, 左侧是一步TD更新,右侧是直到最后终止的蒙特卡罗更新。

_images/figure-7.1.png

图7.1: n步方法的备份图。这些方法组成从一步TD方法到蒙特卡罗方法的频谱范围。

使用n步更新的方法仍然是TD方法,因为它们仍然根据它从后来的估计中如何变化来改变先前的估计。 现在后来的估计不是一步之后,而是n步之后。时序差分在n个步骤上延伸的方法称为 n步TD方法。 前一章介绍的TD方法都使用了一步更新,这就是我们称之为一步TD方法的原因。

更正式地,考虑状态 \(S_t\) 的估计值的更新,作为状态奖励序列的结果, \(S_{t}, R_{t+1}, S_{t+1}, R_{t+2}, \ldots, R_{T}, S_{T}\) (省略动作)。 我们知道在蒙特卡洛更新中,\(v_\pi(S_t)\) 的估计值会在完全回报的方向上更新:

\[G_{t} \doteq R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+\cdots+\gamma^{T-t-1} R_{T}\]

其中T是回合的最后一个步骤。我们将此数量称为更新的 目标。 而在蒙特卡洛更新中目标是回报,在一步更新中,目标是第一个奖励加上下一个状态的折扣估计值,我们称之为 一步回报

\[G_{t : t+1} \doteq R_{t+1}+\gamma V_{t}\left(S_{t+1}\right)\]

其中这里的 \(V_{t} : \mathcal{S} \rightarrow \mathbb{R}\)\(v_\pi\) 在时刻t的估计值。 \(G_{t:t+1}\) 的下标表示它是时间t的截断回报,使用奖励直到时间 \(t+1\), 折扣估计 \(\gamma V_{t}\left(S_{t+1}\right)\) 代替其他项 \(\gamma R_{t+2}+\gamma^{2} R_{t+3}+\cdots+\gamma^{T-t-1} R_{T}\) 的完全回报, 如前一章所述。我们现在的观点是,这个想法在经过两个步骤之后就像在一个步骤之后一样有意义。 两步更新的目标是两步回报:

\[G_{t : t+2} \doteq R_{t+1}+\gamma R_{t+2}+\gamma^{2} V_{t+1}\left(S_{t+2}\right)\]

其中现在 \(\gamma^{2} V_{t+1}\left(S_{t+2}\right)\) 纠正了项 \(\gamma^{2} R_{t+3}+\gamma^{3} R_{t+4}+\cdots+\gamma^{T-t-1} R_{T}\) 的缺失。 同样,任意n步更新的目标是n步回报:

(1)\[G_{t : t+n} \doteq R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^{n-1} R_{t+n}+\gamma^{n} V_{t+n-1}\left(S_{t+n}\right)\]

而所有其他状态的值保持不变:对于所有 \(s \neq S_{t}\)\(V_{t+n}(s)=V_{t+n-1}(s)\)。 我们将此算法称为 n步TD。 请注意,在每回合的前n-1个步骤中,根本不会进行任何更改。 为了弥补这一点,在回合结束后,终止后和开始下一集之前,会进行相同数量的额外更新。 完整的伪代码在下面的框中给出。

\(n\) 步TD(0)估计 \(V \approx v_\pi\)

输入:策略 \(\pi\)

算法参数:步长 \(\alpha \in (0,1]\),正整数 \(n\)

\(s \in \mathcal{S}\),任意初始化 \(V(s)\)

所有存储和访问操作(对于 \(S_t\)\(R_t\))都可以使其索引 \(mod n + 1\)

对每个回合循环:

初始化并存储 \(S_0 \ne\) 终点

\(T \leftarrow \infty\)

\(t=0,1,2, \ldots\) 循环:

如果 \(t < T\),则:

根据 \(\pi(\cdot|S_t)\) 采取行动

观察并将下一个奖励存储为 \(R_{t+1}\),将下一个状态存储为 \(S_{t+1}\)

如果 \(S_{t+1}\) 是终点,则 \(T \leftarrow t+1\)

\(\tau \leftarrow t - n + 1\)\(\tau\) 是状态估计正在更新的时间)

如果 \(\tau \geq 0\)

\(G \leftarrow \sum_{i=\tau+1}^{\min (\tau+n, T)} \gamma^{i-\tau-1} R_{i}\)

如果 \(\tau + n < T\), 则 \(G \leftarrow G+\gamma^{n} V\left(S_{\tau+n}\right)\)

\(V\left(S_{\tau}\right) \leftarrow V\left(S_{\tau}\right)+\alpha\left[G-V\left(S_{\tau}\right)\right]\) \(\quad\quad\quad\) \(\left(G_{\tau : \tau+n}\right)\)

直到 \(\tau = T - 1\)

练习7.1 在第6章中,我们注意到如果值估计值不是逐步变化,则蒙特卡罗误差可写为TD误差之和(6.6)。 证明(7.2)中使用的n步误差也可以写为推导早期结果的总和TD误差(如果值估计没有改变则再次)。

练习7.2(编程) 使用n步法,值估计 逐步变化,因此使用TD误差之和(参见上一个练习)代替(7.2)中的误差的算法实际上的算法略有不同。 它会是一个更好的算法还是更糟糕的算法?设计和编写一个小实验来根据经验回答这个问题。

n步回报使用价值函数 \(V_{t+n-1}\) 来校正超出 \(R_{t+n}\) 的缺失奖励。 n步回报的一个重要特性是,在最恶劣的意义上,它们的期望被保证是比 \(V_{t+n-1}\) 更好的 \(v_\pi\) 估计。 也就是说,对于所有 \(n \ge 1\),预期的n步回报的最差误差保证小于或等于 \(V_{t+n-1}\) 下最差误差的 \(\gamma^{n}\) 倍:

(2)\[\max _{s}\left|\mathbb{E}_{\pi}\left[G_{t : t+n} | S_{t}=s\right]-v_{\pi}(s)\right| \leq \gamma^{n} \max _{s}\left|V_{t+n-1}(s)-v_{\pi}(s)\right|\]

这称为 n步回报的误差减少属性。由于误差减少属性,可以正式显示所有n步TD方法在适当的技术条件下收敛到正确的预测。 因此,n步TD方法形成一系列可靠的(sound)方法,一步法TD方法和蒙特卡罗方法作为其极端情况。

例7.1:随机行走的n步TD方法 考虑在例6.2中描述的5个状态随机游走任务中使用n步TD方法。 假设第一回合直接从中心状态 C 向右进行,通过 DE,然后在右边终止,回报为1。 回想所有状态的估计值从中间值开始,\(V(s)=0.5\)。 作为这种经验的结果,一步法只改变最后一个状态 \(V(E)\) 的估计值,该值将增加到1,观察到的返回值。 另一方面,两步法将增加终止前两个状态的值: \(V(D)\)\(V(E)\) 都将增加到1。 三步法或任何n步法(对 \(n \ge 2\)),将所有三个访问状态的值增加到1,全部增加相同的量。

哪个n的值更好?图7.2显示了对较大随机行走过程进行简单经验测试的结果,其中包含19个状态而不是5个 (从左侧离开回报为 \(-1\),所有值都初始化为0),我们在本章中将其用作运行示例。 结果显示了涉及大范围n和 \(\alpha\) 的值的n步TD方法。 垂直轴上显示的每个参数设置的性能度量是19个状态的回合结束时,预测与其真实值之间的均方误差的平方根, 然后在整个实验的前10回合和100次重复中取平均值(所有参数设置都使用相同的行走集合)。 请注意,中间值为n的方法效果最好。 这说明了TD和蒙特卡罗方法对n步方法的推广能够比两种极端方法中的任何一种方法表现更好。

_images/figure-7.2.png

图7.2: 对于19个状态的随机行走任务的不同n值,n步TD方法的性能是 \(\alpha\) 的函数(例7.1)。

练习7.3 为什么你认为在本章的例子中使用了更大的随机游走任务(19个州而不是5个)? 较小的步行会将优势转移到不同的n值吗?在较大的步行中左侧结果从0变为 \(-1\) 是怎么发生的? 你认为这对n的最佳价值有任何不同吗?

7.2 \(n\) 步Sarsa

如何使用n步方法不仅用于预测,还用于控制?在本节中,我们将展示如何以简单的方式将n步方法与Sarsa结合以产生一种策略上的TD控制方法。 Sarsa的n步版本我们称之为n步Sarsa,而前一章中提到的原始版本我们称之为 一步SarsaSarsa(0)

主要思想是简单地切换动作状态(状态-动作对),然后使用 \(\varepsilon\) -贪婪策略。 n步Sarsa的备份图(如图7.3所示),就像n步TD一样(图7.1) ),是交替状态和动作的字符串, 除了Sarsa所有都以动作而不是状态开始和结束。我们根据估计的动作值重新定义n步回报(更新目标):

(3)\[G_{t : t+n} \doteq R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^{n-1} R_{t+n}+\gamma^{n} Q_{t+n-1}\left(S_{t+n}, A_{t+n}\right), \quad n \geq 1,0 \leq t<T-n\]

如果 \(t+n \geq T\),则 \(G_{t : t+n} \doteq G_{t}\)。那么自然算法就是

(4)\[Q_{t+n}\left(S_{t}, A_{t}\right) \doteq Q_{t+n-1}\left(S_{t}, A_{t}\right)+\alpha\left[G_{t : t+n}-Q_{t+n-1}\left(S_{t}, A_{t}\right)\right], \quad 0 \leq t<T\]

而所有其他状态的值保持不变:\(Q_{t+n}(s, a)=Q_{t+n-1}(s, a)\), 对于所有 \(s, a\) 使得 \(s \ne S_t\)\(a \ne A_t\)。 这是我们称之为 n步Sarsa 的算法。 伪代码显示在下面的框中,图7.4给出了与一步法相比可以加速学习的原因示例。

_images/figure-7.3.png

图7.3: 状态-动作值的n步方法频谱的备份图。 它们的范围从Sarsa(0)的一步更新到蒙特卡罗方法的直到终止更新。 在两者之间是n步更新,基于实际奖励的n个步骤和第n个下一个状态-动作对的估计值,都被适当地折扣。 最右边是n步预期Sarsa的备份图。

\(n\) 步Sarsa估计 \(Q \approx q_*\) 或者 \(q_\pi\)

对所有 \(s\in\mathcal(S)\)\(a\in\mathcal(A)\),任意初始化 \(Q(s,a)\)

初始化 \(\pi\) 关于 \(Q\) 或固定的给定策略为 \(\varepsilon\) -贪婪

算法参数:步长 \(\alpha \in (0,1]\),小 \(\varepsilon > 0\),正整数 \(n\)

所有存储和访问操作(对于 \(S_t\)\(A_t\)\(R_t\))都可以使其索引 \(mod n + 1\)

对每个回合循环:

初始化并存储 \(S_0 \ne\) 终点

选择并存储动作 \(A_{0} \sim \pi\left(\cdot | S_{0}\right)\)

\(T \leftarrow \infty\)

\(t=0,1,2, \ldots\) 循环:

如果 \(t < T\),则:

采取行动 \(A_t\)

观察并将下一个奖励存储为 \(R_{t+1}\),将下一个状态存储为 \(S_{t+1}\)

如果 \(S_{t+1}\) 是终点,则

\(T \leftarrow t+1\)

否则:

选择并存储动作 \(A_{t+1} \sim \pi\left(\cdot | S_{t=1}\right)\)

\(\tau \leftarrow t - n + 1\)\(\tau\) 是状态估计正在更新的时间)

如果 \(\tau \geq 0\)

\(G \leftarrow \sum_{i=\tau+1}^{\min (\tau+n, T)} \gamma^{i-\tau-1} R_{i}\)

如果 \(\tau + n < T\), 则 \(G \leftarrow G+\gamma^{n} Q\left(S_{\tau+n}, A_{\tau+n}\right)\) \(\quad\quad\quad\) \(\left(G_{\tau : \tau+n}\right)\)

\(Q\left(S_{\tau}, A_{\tau}\right) \leftarrow Q\left(S_{\tau}, A_{\tau}\right)+\alpha\left[G-Q\left(S_{\tau}, A_{\tau}\right)\right]\)

如果 \(\pi\) 正在被学习,那么确保 \(\pi\left(\cdot | S_{\tau}\right)\) 是关于 \(Q\) \(\varepsilon\) -贪婪

直到 \(\tau = T - 1\)

_images/figure-7.4.png

图7.4: 由于使用n步方法而导致的策略学习加速的网格世界示例。 第一个面板显示了一个个体在单个回合中所采用的路径,在一个高回报的位置结束,用 G 标记。 在这个例子中,这些值最初都是0,除了 G 的正奖励,所有奖励都是零。 其他两个面板中的箭头显示了通过一步Sarsa方法和n步Sarsa方法通过该路径加强了的动作价值。 一步Sarsa法只强化导致高回报的动作序列的最后一个动作,而n步法强化序列的最后n个动作, 因此从一个回合中学习了更多。

练习7.4 证明Sarsa(7.4)的n步回报可以完全按照新的TD误差写成如下:

(5)\[G_{t : t+n}=Q_{t-1}\left(S_{t}, A_{t}\right)+\sum_{k=t}^{\min (t+n, T)-1} \gamma^{k-t}\left[R_{k+1}+\gamma Q_{k}\left(S_{k+1}, A_{k+1}\right)-Q_{k-1}\left(S_{k}, A_{k}\right)\right]\]

那么预期的Sarsa呢?预期Sarsa的n步版本的备份图显示在图7.3的最右侧。 它由一系列样本动作和状态的线性组成,就像在n步Sarsa中一样, 除了它的最后一个元素一如既往是在 \(\pi\) 下的概率加权的所有动作可能性的分支。 该算法可以用与n步Sarsa(上面)相同的等式来描述,除了将n步回报重新定义为

(6)\[G_{t : t+n} \doteq R_{t+1}+\cdots+\gamma^{n-1} R_{t+n}+\gamma^{n} \overline{V}_{t+n-1}\left(S_{t+n}\right), \quad t+n<T\]

\(t+n \geq T\)\(G_{t : t+n} \doteq G_{t}\)。 其中 \(\overline{V}_{t}(s)\) 是状态s的 预期近似值,使用目标策略下时间 \(t\) 的估计行动值:

(7)\[\overline{V}_{t}(s) \doteq \sum_{a} \pi(a | s) Q_{t}(s, a), \quad \text { 对所有 } s \in \mathcal{S}\]

在本书的其余部分中,使用预期近似值来开发许多动作价值方法。如果s是终点,则其预期近似值被定义为0。

7.3 \(n\) 步离策略学习

回想一下,离策略学习是学习一项策略的价值函数 \(\pi\),同时遵循另一项策略 \(b\)。 通常,\(\pi\) 是当前行动-价值-函数估计的贪婪策略, 而 \(b\) 是一种更具探索性的策略,也许是 \(\varepsilon\) -贪婪。 为了使用 \(b\) 中的数据,我们必须考虑到两种策略之间的差异,使用它们采取所采取行动的相对概率(参见第5.5节)。 在n步法中,回报是在n个步骤上构建的,因此我们对这些n个动作的相对概率感兴趣。 例如,在构建n步TD的简单离策略版本,时间 \(t\) 的更新(实际上在时间 \(t+n\) 进行) 可以简单地通过 \(\rho_{t : t}+n-1\) 加权:

(8)\[V_{t+n}\left(S_{t}\right) \doteq V_{t+n-1}\left(S_{t}\right)+\alpha \rho_{t : t+n-1}\left[G_{t : t+n}-V_{t+n-1}\left(S_{t}\right)\right], \quad 0 \leq t<T\]

其中 \(\rho_{t : t}+n-1\) 称为 重要性采样比率, 是在两个策略下从 \(A_t\)\(A_{t+n-1}\) 采取 \(n\) 个动作的相对概率(参见方程5.3):

(9)\[\rho_{t : h} \doteq \prod_{k=t}^{\min (h, T-1)} \frac{\pi\left(A_{k} | S_{k}\right)}{b\left(A_{k} | S_{k}\right)}\]

例如,如果任何一个动作永远不会被 \(\pi\) 占用(即 \(\pi\left(A_{k} | S_{k}\right)=0\)), 那么n步回报应该被赋予零权重并被完全忽略。 另一方面,如果偶然采取行动,\(\pi\) 将采取比 \(\b\) 更大的概率,那么这将增加否则将给予回报的权重。 这是有道理的,因为该动作是 \(\pi\) 的特征(因此我们想要了解它),但很少被 \(\b\) 选择,因此很少出现在数据中。 为了弥补这一点,我们必须在它发生时增加权重(over-weight)。 请注意,如果这两个策略实际上是相同的(在策略情况下),则重要性采样比率始终为1。 因此,我们的新更新(7.9)概括并可以完全取代我们之前的n步TD更新。 同样,我们之前的n步Sarsa更新可以完全被简单的离策略形式所取代:

(10)\[Q_{t+n}\left(S_{t}, A_{t}\right) \doteq Q_{t+n-1}\left(S_{t}, A_{t}\right)+\alpha \rho_{t+1 : t+n}\left[G_{t : t+n}-Q_{t+n-1}\left(S_{t}, A_{t}\right)\right]\]

\(0 \leq t<T\)。注意,这里的重要性采样比率比n步TD(7.9)晚一步开始和结束。 这是因为我们正在更新状态-动作对。我们不必关心我们选择行动的可能性; 现在我们选择了它,我们希望从发生的事情中充分学习,只对后续行动进行重要性采样。 完整算法的伪代码如下面的框所示。

离策略 \(n\) 步Sarsa估计 \(Q \approx q_*\) 或者 \(q_\pi\)

输入:对所有 \(s\in\mathcal(S)\),一个任意的行为策略 \(b\) 使得 \(b(a | s)>0\)

对所有 \(s\in\mathcal(S)\)\(a\in\mathcal(A)\),任意初始化 \(Q(s,a)\)

初始化 \(\pi\) 关于 \(Q\) 或固定的给定策略为贪婪

算法参数:步长 \(\alpha \in (0,1]\),正整数 \(n\)

所有存储和访问操作(对于 \(S_t\)\(A_t\)\(R_t\))都可以使其索引 \(mod n + 1\)

对每个回合循环:

初始化并存储 \(S_0 \ne\) 终点

选择并存储动作 \(A_{0} \sim \pi\left(\cdot | S_{0}\right)\)

\(T \leftarrow \infty\)

\(t=0,1,2, \ldots\) 循环:

如果 \(t < T\),则:

采取行动 \(A_t\)

观察并将下一个奖励存储为 \(R_{t+1}\),将下一个状态存储为 \(S_{t+1}\)

如果 \(S_{t+1}\) 是终点,则

\(T \leftarrow t+1\)

否则:

选择并存储动作 \(A_{t+1} \sim \pi\left(\cdot | S_{t=1}\right)\)

\(\tau \leftarrow t - n + 1\)\(\tau\) 是状态估计正在更新的时间)

如果 \(\tau \geq 0\)

\(\rho \leftarrow \prod_{i=\tau+1}^{\min (\tau+n-1, T-1)} \frac{\pi\left(A_{i} | S_{i}\right)}{b\left(A_{i} | S_{i}\right)}\) \(\quad\quad\quad\) \(\left(\rho_{\tau}+1 : t+n-1\right)\)

\(G \leftarrow \sum_{i=\tau+1}^{\min (\tau+n, T)} \gamma^{i-\tau-1} R_{i}\)

如果 \(\tau + n < T\), 则 \(G \leftarrow G+\gamma^{n} Q\left(S_{\tau+n}, A_{\tau+n}\right)\) \(\quad\quad\quad\) \(\left(G_{\tau : \tau+n}\right)\)

\(Q\left(S_{\tau}, A_{\tau}\right) \leftarrow Q\left(S_{\tau}, A_{\tau}\right)+\alpha \rho\left[G-Q\left(S_{\tau}, A_{\tau}\right)\right]\)

如果 \(\pi\) 正在被学习,那么确保 \(\pi\left(\cdot | S_{\tau}\right)\) 是关于 \(Q\) 贪婪

直到 \(\tau = T - 1\)

n步预期Sarsa的离策略版本将对n步Sarsa使用与上述相同的更新,除了重要性采样比率将减少一个因素。 也就是说,上面的等式将使用 \(\rho_{t}+1 : t+n-1\) 而不是 \(\rho_{t}+1 : t+n\), 当然它将使用n步回报(7.7)的预期Sarsa版本。这是因为在预期的Sarsa中,在最后一个状态中考虑了所有可能的行为; 实际采取的那个没有效果,也没有必要纠正。

7.4 *具有控制变量的每个决策(per-decision)方法

上一节中介绍的多步离策略方法简单且概念清晰,但可能不是最有效的方法。 更复杂的方法将使用每个决策重要性采样的想法,如第5.9节中介绍的那样。 要理解这种方法,首先要注意普通的n步回报(7.1),就像所有回报一样,可以递归写入。 对于以水平线 \(h\) 结束的n个步骤,n步回报可以写成

(11)\[G_{t : h}=R_{t+1}+\gamma G_{t+1 : h}, \quad t<h<T\]

其中 \(G_{h : h} \doteq V_{h-1}\left(S_{h}\right)\)。 (回想一下,此回报在时间 \(h\) 使用,先前表示为 \(t+n\)。) 现在考虑遵循与目标策略不同的行为策略 \(b\) 的效果。 所有得到的经验,包括第一个奖励 \(R_{t+1}\) 和下一个状态 \(S_{t+1}\), 必须通过时间 \(t\) 的重要性采样比率加权, \(\rho_{t}=\frac{\pi\left(A_{t} | S_{t}\right)}{b\left(A_{t} | S_{t}\right)}\)。 你可能只想对上面的方程的右侧进行加权,但你可以做得更好。 假设时间 \(t\) 的动作永远不会被 \(\pi\) 选择,因此 \(\rho_{t}\) 为零。 然后,简单的加权将导致n步回报为零,这可能导致当它用作目标时的高方差。 相反,在这种更复杂的方法中,人们使用在水平线 \(h\) 结束的n步回报的替代的离策略定义,即

(12)\[G_{t : h} \doteq \rho_{t}\left(R_{t+1}+\gamma G_{t+1 : h}\right)+\left(1-\rho_{t}\right) V_{h-1}\left(S_{t}\right), \quad t<h<T\]

再次 \(G_{h : h} \doteq V_{h-1}\left(S_{h}\right)\)。 在这种方法中,如果 \(\rho_{t}\) 为零,则目标与估计相同并且不会导致变化,而不是目标为零并导致估计收缩。 重要性采样比率为零意味着我们应该忽略样本,因此保持估计不变似乎是合适的。 (7.13)中的第二个附加项称为 控制变量 (由于不明原因)。 请注意,控制变量不会更改预期的更新;重要性采样比率具有期望值1(第5.9节)并且与估计值不相关,因此控制变量的期望值为零。 另请注意,离策略定义(7.13)是对n步回报(7.1)的早期在策略定义的严格概括, 因为这两者在在策略情况下是相同的,其中 \(\rho_{t}\) 永远是1。

对于传统的n步方法,与(7.13)结合使用的学习规则是n步TD更新(7.2), 除了嵌入在回报中的那些之外,它没有明确的重要性采样比率。

练习7.5 编写上述离策略状态价值预测算法的伪代码。

对于动作价值,n步回报的离策略定义略有不同,因为第一个动作在重要性采样中不起作用。 第一个行动是正在学习的行动;在目标政策下是否不太可能甚至不可能无关紧要──它已被采纳,现在必须对其后的奖励和状态给予全部单位权重。 重要性采样仅适用于其后的操作。

首先请注意,对于动作价值,n步在策略回报结束于水平线 \(h\),期望形式(7.7)可以像(7.12)一样递归写入, 除了对于动作价值, 递归以 \(G_{h : h} \doteq \overline{V}_{h-1}\left(S_{h}\right)\) 结尾,如(7.8)所示。 具有控制变量的离策略形式是

\[\begin{split}\begin{aligned} G_{t : h} & \doteq R_{t+1}+\gamma\left(\rho_{t+1} G_{t+1 : h}+\overline{V}_{h-1}\left(S_{t+1}\right)-\rho_{t+1} Q_{h-1}\left(S_{t+1}, A_{t+1}\right)\right) \\ &=R_{t+1}+\gamma \rho_{t+1}\left(G_{t+1 : h}-Q_{h-1}\left(S_{t+1}, A_{t+1}\right)\right)+\gamma \overline{V}_{h-1}\left(S_{t+1}\right), t<h \leq T & \text{(7.14)} \end{aligned}\end{split}\]

如果 \(h<T\),则递归以 \(G_{h : h} \doteq Q_{h-1}(S_{h}, A_{h})\) 结束, 而如果是 \(t \geq T\),递归以 \(G_{T-1 : h} \doteq R_{T}\) 结束。 得到的预测算法(在与(7.5)组合之后)类似于预期的Sarsa。

练习7.6 证明上述方程中的控制变量不会改变回报的预期值。

**练习7.7* 为上面描述的离策略动作价值预测算法写下伪代码。在达到水平线或回合结束时,要特别注意递归的终止条件。

练习7.8 如果近似状态值函数没有改变,则表明n步回报(7.13)的通用(离策略)版本仍然可以作为基于状态的TD误差(6.5)的精确和紧凑地书写。

练习7.9 对离政策n步回报(7.14)和预期Sarsa TD误差(公式6.9中括号内的数量)的动作版本重复上述练习。

练习7.10(编程) 设计一个小的离策略预测问题并用它来表明使用(7.13)和(7.2)的离策略学习算法比使用(7.1)和(7.9)的更简单算法更有效。

我们在本节,上一节和第5章中使用的重要性采样实现了声音(sound)离策略学习,但也导致了高方差更新, 迫使使用小步长参数,从而不可避免地导致学习变慢。离策略训练比在策略训练慢 - 毕竟,数据与所学内容的相关性较低。 然而,可能也可以改进这些方法。对照变量是减少方差的一种方法。另一个是快速调整步长到观察到的方差, 如Autostep方法(Mahmood,Sutton,Degris和Pilarski,2012)。 另一种有希望的方法是由Tian(在准备中)扩展到TD的Karampatziakis和Langford(2010)的不变更新。 Mahmood(2017;Mahmood和Sutton,2015)的使用技巧也可能是解决方案的一部分。 在下一节中,我们将考虑一种不使用重要性采样的离策略学习方法。

7.5 无重要性采样的离策略学习:n步树备份算法

没有重要性采样,是否可以进行离策略学习? 第6章中的Q-learning和预期的Sarsa针对一步式案例进行了此操作,但是是否有相应的多步算法? 在本节中,我们将介绍一种称为 树备份算法 的n步方法。

_images/the-3-step-tree-backup-update.png

右侧显示的3步树备份备份图表明了该算法的思想。 沿中央脊柱向下并在图中标记的是三个样本状态和奖励,以及两个样本动作。 这些是表示在初始状态-动作对 \(S_t\)\(A_t\) 之后发生的事件的随机变量。 悬挂在每个状态的两侧是 选择的行动。(对于最后一个状态,所有操作都被认为尚未被选中。) 因为我们没有未选择操作的样本数据,所以我们引导并使用它们的值估计来形成更新目标。 这略微扩展了备份图的概念。到目前为止,我们总是将图表顶部节点的估计值更新为一个目标, 其中包括沿途的奖励(适当折扣)和底部节点的估计值。 在树形备份更新中,目标包括所有这些内容以及悬挂在各个层面的悬空动作节点的估计值。 这就是它被称为 树形备份 更新的原因;它是整个估计动作值树的更新。

更确切地说,更新来自树的 叶节点 的估计动作值。内部的动作节点对应于所采取的实际动作,不参与更新。 每个叶节点对目标的贡献与其在目标策略 \(\pi\) 下发生的概率成比例。 因此,每个第一级动作 \(a\) 的权重为 \(\pi\left(a | S_{t+1}\right)\), 除了实际采取的动作 \(A_{t+1}\),根本没有贡献。 它的概率 \(\pi\left(A_{t+1} | S_{t+1}\right)\) 用于加权所有第二级动作值。 因此,每个未选择的第二级动作 \(a^{\prime}\) 贡献权重 \(\pi\left(A_{t+1} | S_{t+1}\right) \pi\left(a^{\prime} | S_{t+2}\right)\)。 每个第三级动作都有权重 \(\pi\left(A_{t+1} | S_{t+1}\right) \pi\left(A_{t+2} | S_{t+2}\right) \pi\left(a^{\prime \prime} | S_{t+3}\right)\),依此类推。 就好像图中动作节点的每个箭头都被动作在目标策略下被选中的概率加权,如果动作下面有一棵树,则该权重适用于树中的所有叶节点。

我们可以将3步树备份更新视为由6个半步骤组成,在从动作到后续状态的样本半步骤之间交替, 以及根据策略从该状态考虑所有可能的动作及其概率的预期半步骤。

现在让我们开发n步树备份算法的详细方程。一步回报(目标)与预期的Sarsa相同,

(13)\[G_{t : t+1} \doteq R_{t+1}+\gamma \sum_{a} \pi\left(a | S_{t+1}\right) Q_{t}\left(S_{t+1}, a\right)\]

\(t<T-1\)。两步树备份回报为

\[\begin{split}\begin{aligned} G_{t : t+2} &\doteq R_{t+1}+\gamma \sum_{a \neq A_{t+1}} \pi\left(a | S_{t+1}\right) Q_{t+1}\left(S_{t+1}, a\right) \\ & \quad +\gamma \pi\left(A_{t+1} | S_{t+1}\right)\left(R_{t+2}+\gamma \sum_{a} \pi\left(a | S_{t+2}\right) Q_{t+1}\left(S_{t+2}, a\right)\right) \\ &=R_{t+1}+\gamma \sum_{a \neq A_{t+1}} \pi\left(a | S_{t+1}\right) Q_{t+1}\left(S_{t+1}, a\right)+\gamma \pi\left(A_{t+1} | S_{t+1}\right) G_{t+1 : t+2} \end{aligned}\end{split}\]

\(t<T-2\)。后一种形式表明了树备份n步回报的一般递归定义:

(14)\[G_{t : t+n} \doteq R_{t+1}+\gamma \sum_{a \neq A_{t+1}} \pi\left(a | S_{t+1}\right) Q_{t+n-1}\left(S_{t+1}, a\right)+\gamma \pi\left(A_{t+1} | S_{t+1}\right) G_{t+1 : t+n}\]

\(0 \leq t<T\),而所有其他状态-动作对的值保持不变: \(Q_{t+n}(s, a)=Q_{t+n-1}(s, a)\), 对于所有 \(s,a\) 使得 \(s\ne S_t\)\(a\ne A_t\)。 该算法的伪代码显示在下面的框中。

n步树备份估计 \(Q \approx q_*\) 或者 \(q_\pi\)

对所有 \(s\in\mathcal(S)\)\(a\in\mathcal(A)\),任意初始化 \(Q(s,a)\)

初始化 \(\pi\) 关于 \(Q\) 或固定的给定策略为贪婪

算法参数:步长 \(\alpha \in (0,1]\),正整数 \(n\)

所有存储和访问操作都可以使其索引 \(mod n + 1\)

对每个回合循环:

初始化并存储 \(S_0 \ne\) 终点

选择并存储动作 \(A_{0} \sim \pi\left(\cdot | S_{0}\right)\)

任意选择动作 \(A_{0}\) 作为 \(S_{0}\) 的函数;存储 \(A_{0}\)

\(T \leftarrow \infty\)

\(t=0,1,2, \ldots\) 循环:

如果 \(t < T\),则:

采取行动 \(A_t\),观察并将下一个奖励存储为 \(R_{t+1}\),将下一个状态存储为 \(S_{t+1}\)

如果 \(S_{t+1}\) 是终点,则

\(T \leftarrow t+1\)

否则:

任意选择动作 \(A_{t+1}\) 作为 \(S_{t+1}\) 的函数;存储 \(A_{t+1}\)

\(\tau \leftarrow t + 1 -n\)\(\tau\) 是状态估计正在更新的时间)

如果 \(\tau \geq 0\)

如果 \(t+1 \geq T\):

\(G \leftarrow R_{T}\)

否则:

\(G \leftarrow R_{t+1}+\gamma \sum_{a} \pi\left(a | S_{t+1}\right) Q\left(S_{t+1}, a\right)\)

\(k=\min (t, T-1)\) 下降到 \(\tau + 1\) 循环:

\(G \leftarrow R_{k}+\gamma \sum_{a \neq A_{k}} \pi\left(a | S_{k}\right) Q\left(S_{k}, a\right)+\gamma \pi\left(A_{k} | S_{k}\right) G\)

如果 \(\pi\) 正在被学习,那么确保 \(\pi\left(\cdot | S_{\tau}\right)\) 是关于 \(Q\) 贪婪

直到 \(\tau = T - 1\)

练习7.11 显示如果近似动作值不变,则树备份返回(7.16)可以写为基于预期的TD误差的总和:

\[G_{t : t+n}=Q\left(S_{t}, A_{t}\right)+\sum_{k=t}^{\min (t+n-1, T-1)} \delta_{k} \prod_{i=t+1}^{k} \gamma \pi\left(A_{i} | S_{i}\right)\]

其中 \(\delta_{t} \doteq R_{t+1}+\gamma \overline{V}_{t}\left(S_{t+1}\right)-Q\left(S_{t}, A_{t}\right)\) 并且 \(\overline{V}_{t}\) 由(7.8)给出。

7.6 *统一算法:n步 \(Q(\sigma)\)

到目前为止,在本章中我们已经考虑了三种不同类型的动作价值算法,对应于图7.5中所示的前三个备份图。 n步Sarsa具有所有样本转换,树备份算法将所有状态-动作转换完全分支而不进行采样, n步预期Sarsa具有除最后一个状态到动作之外的所有样本转换,这是完全分支,具有预期值。 这些算法在多大程度上可以统一?

图7.5中的第四个备份图表明了统一的一个想法。这是一个想法, 人们可以逐步决定是否想要将动作作为样本,如在Sarsa中,或者考虑对所有动作的期望,如树备份更新。 然后,如果一个人总是选择采样,那么就会获得Sarsa,而如果一个人选择永远不会采样,那么就会得到树备份算法。 预期的Sarsa就是这样一种情况,即除了最后一步之外,所有步骤都选择采样。

_images/figure-7.5.png

图7.5: 本章到目前为止考虑的三种n步动作值更新的备份图(4步案例)以及将它们统一起来的第四种更新的备份图。 \(\rho\) 表示在离策略情况下需要重要采样的一半过渡。 第四种更新通过逐个状态地选择是否采样(\(\sigma_{t}=1\))或不采样(\(\sigma_{t}=0\))来统一所有其他更新。

当然,如图中的最后一个图所示,还有许多其他可能性。为了进一步提高可能性,我们可以考虑采样和期望之间的连续变化。 令 \(\sigma_{t} \in[0,1]\) 表示步骤 \(t\) 的采样程度, 其中 \(\sigma=1\) 表示完全采样,\(\sigma=0\) 表示没有采样的纯期望。 随机变量 \(\sigma_t\) 可以在时间 \(t\) 被设置为状态,动作或状态 - 动作对的函数。 我们将这个提议的新算法称为n步 \(Q(\sigma)\)

现在让我们开发n步 \(Q(\sigma)\) 的方程。 首先,我们根据水平线 \(h+n\) 写出树备份n步回报(7.16),然后根据预期的近似值 \(\overline{V}\) (7.8):

\[\begin{split}\begin{aligned} G_{t : h} &=R_{t+1}+\gamma \sum_{a \neq A_{t+1}} \pi\left(a | S_{t+1}\right) Q_{h-1}\left(S_{t+1}, a\right)+\gamma \pi\left(A_{t+1} | S_{t+1}\right) G_{t+1 : h} \\ &=R_{t+1}+\gamma \overline{V}_{h-1}\left(S_{t+1}\right)-\gamma \pi\left(A_{t+1} | S_{t+1}\right) Q_{h-1}\left(S_{t+1}, A_{t+1}\right)+\gamma \pi\left(A_{t+1} | S_{t+1}\right) G_{t+1 : h} \\ &=R_{t+1}+\gamma \pi\left(A_{t+1} | S_{t+1}\right)\left(G_{t+1 : h}-Q_{h-1}\left(S_{t+1}, A_{t+1}\right)\right)+\gamma \overline{V}_{h-1}\left(S_{t+1}\right) \end{aligned}\end{split}\]

之后它与控制变量(7.14)的Sarsa的n步回报完全相同, 除了动作概率 \(\pi\left(A_{t+1} | S_{t+1}\right)\) 代替重要性采样率 \(\rho_{t+1}\)。 对于 \(Q(\sigma)\),我们在这两种情况之间线性滑动:

\[\begin{split}\begin{aligned} G_{t : h} \doteq R_{t+1} &+\gamma\left(\sigma_{t+1} \rho_{t+1}+\left(1-\sigma_{t+1}\right) \pi\left(A_{t+1} | S_{t+1}\right)\right)\left(G_{t+1 : h}-Q_{h-1}\left(S_{t+1}, A_{t+1}\right)\right) \\ &+\gamma \overline{V}_{h-1}\left(S_{t+1}\right) & \text{(7.17)} \end{aligned}\end{split}\]

\(t<h \leq T\)。 如果 \(h < T\),递归以 \(G_{h : h} \doteq Q_{h-1}\left(S_{h}, A_{h}\right)\) 结束, 或者如果 \(h = T\),则以 \(G_{T-1 : T} \doteq R_{T}\)。 那么我们使用n步Sarsa(7.11)的一般(离策略)更新。框中给出了完整的算法。

离策略 \(n\) 步Sarsa估计 \(Q \approx q_*\) 或者 \(q_\pi\)

输入:对所有 \(s\in\mathcal(S)\),一个任意的行为策略 \(b\) 使得 \(b(a | s)>0\)

对所有 \(s\in\mathcal(S)\)\(a\in\mathcal(A)\),任意初始化 \(Q(s,a)\)

初始化 \(\pi\) 关于 \(Q\) 或固定的给定策略为 \(\varepsilon\) -贪婪

算法参数:步长 \(\alpha \in (0,1]\),小 \(\varepsilon>0\),正整数 \(n\)

所有存储和访问操作都可以使其索引 \(mod n + 1\)

对每个回合循环:

初始化并存储 \(S_0 \ne\) 终点

选择并存储动作 \(A_{0} \sim b\left(\cdot | S_{0}\right)\)

\(T \leftarrow \infty\)

\(t=0,1,2, \ldots\) 循环:

如果 \(t < T\),则:

采取行动 \(A_t\),观察并将下一个奖励存储为 \(R_{t+1}\),将下一个状态存储为 \(S_{t+1}\)

如果 \(S_{t+1}\) 是终点,则:

\(T \leftarrow t+1\)

否则:

选择并存储动作 \(A_{t+1} \sim b\left(\cdot | S_{t+1}\right)\)

选择并存储 \(\sigma_{t+1}\)

存储 \(\frac{\pi\left(A_{t+1} | S_{t+1}\right)}{b\left(A_{t+1} | S_{t+1}\right)}\)\(\rho_{t+1}\)

\(\tau \leftarrow t - n + 1\)\(\tau\) 是状态估计正在更新的时间)

如果 \(\tau \geq 0\)

\(G \leftarrow 0\)

\(k=\min (t+1, T)\) 下降到 \(\tau + 1\) 循环:

如果 \(k=T\)

\(G \leftarrow R_{T}\)

否则:

\(\overline{V} \leftarrow \sum_{a} \pi\left(a | S_{k}\right) Q\left(S_{k}, a\right)\)

\(G \leftarrow R_{k}+\gamma\left(\sigma_{k} \rho_{k}+\left(1-\sigma_{k}\right) \pi\left(A_{k} | S_{k}\right)\right)\left(G-Q\left(S_{k}, A_{k}\right)\right)+\gamma \overline{V}\)

\(Q\left(S_{\tau}, A_{\tau}\right) \leftarrow Q\left(S_{\tau}, A_{\tau}\right)+\alpha\left[G-Q\left(S_{\tau}, A_{\tau}\right)\right]\)

如果 \(\pi\) 正在被学习,那么确保 \(\pi\left(\cdot | S_{\tau}\right)\) 是关于 \(Q\) 贪婪

直到 \(\tau = T - 1\)

7.7 总结

在本章中,我们开发了一系列时序差分学习方法,介于前一章的一步法TD方法和之前章的蒙特卡罗方法之间。 涉及中间量引导的方法很重要,因为它们通常比任何一个极端都要好。

_images/4-step-TD-and-4-step-Q-sigma.png

我们在本章中的重点是n步方法,它们展望n步奖励,状态和行动。右边的两个4步备份图总结了大多数介绍的方法。 所示的状态值更新用于具有重要性采样的n步TD,并且动作值更新用于n步 \(Q(\sigma)\),其概括了预期的Sarsa和Q-learning。 所有n步方法都涉及在更新之前延迟n个时间步骤,因为只有这样才能知道所有必需的未来事件。 另一个缺点是它们涉及每个时间步骤比先前方法更多的计算。 与一步法相比,n步法还需要更多内存来记录最后n个时间步骤中的状态,动作,奖励以及有时其他变量。 最后,在第12章中,我们将看到如何使用资格迹以最小的内存和计算复杂性实现多步TD方法,但除了一步方法之外总会有一些额外的计算。 这样的成本非常值得为逃避单一时间步骤的暴政而付出代价。

尽管n步法比使用资格迹的方法更复杂,但它们具有概念上清晰的巨大好处。 我们试图通过在n步案例中开发两种离策略学习方法来利用这一点。 一,基于重要性采样在概念上很简单,但可能具有很大的差异。如果目标和行为策略非常不同,它可能需要一些新的算法思想才能有效和实用。 另一种是基于树形备份更新,是Q-learning到具有随机目标策略的多步情况的自然延伸。 它不涉及重要性采样,但是,如果目标和行为策略实质上不同,则即使n很大,引导也可能仅跨越几个步骤。

书目和历史评论

n步回报的概念归功于Watkins(1989),他也首先讨论了它们的误差减少性质。 在本书的第一版中探讨了n步算法,其中它们被视为概念上的兴趣,但在实践中是不可行的。 Cichosz(1995)和特别是van Seijen(2016)的工作表明它们实际上是完全实用的算法。 鉴于此,以及它们的概念清晰度和简洁性,我们选择在第二版中突出显示它们。 特别是,我们现在推迟所有关于后向观点和资格迹的讨论,直到第12章。

7.1-2 根据Sutton(1988)和Singh和Sutton(1996)的工作,本文的随机行走实例的结果。 本章中使用备份图来描述这些算法和其他算法是新的。

7.3-5 这些部分的发展基于Precup,Sutton和Singh(2000),Precup,Sutton和Dasgupta(2001) 以及Sutton,Mahmood,Precup和van Hasselt(2014)的工作。

树备份算法归功于Precup,Sutton和Singh(2000),但这里的表示是新的。

7.6 \(Q(\sigma)\) 算法是本文的新内容, 但De Asis,Hernandez-Garcia,Holland和Sutton(2017)进一步探讨了密切相关的算法。

第8章 表格方法规划和学习

在本章中,我们开发了强化学习方法的统一视图,这些方法需要环境模型,例如动态规划和启发式搜索, 以及可以在没有模型的情况下使用的方法,例如蒙特卡洛和时序差分方法。 这些分别称为 基于模型(model-based)不基于模型(model-free)*的强化学习方法。 基于模型的方法依赖于 *规划(planning) 作为其主要组成部分,而不基于模型方法主要依赖于 学习(learning)。 虽然这两种方法之间存在着真正的差异,但也存在很大的相似之处。 特别是,这两种方法的核心是价值函数的计算。此外,所有方法都基于展望未来事件,计算备份值,然后将其用作近似值函数的更新目标。 在本书的前面,我们将蒙特卡洛和时序差分方法作为不同的替代方法,然后展示了如何通过n步方法统一它们。 我们在本章中的目标是基于模型和不基于模型方法的类似集成。 在前面的章节中已经确定了这些不同之处,我们现在探讨它们可以混合的程度。

8.1 模型和规划

通过环境 模型,我们指的是个体可以用来预测环境如何响应其行为的任何事物。 给定状态和动作,模型产生对结果下一状态和下一奖励的预测。 如果模型是随机的,那么有几种可能的下一个状态和下一个奖励,每个都有一定的发生概率。 一些模型描述了所有可能性及其概率;这些我们称之为 分布模型。 其他模型只产生一种可能性,根据概率进行采样;这些我们称之为 样本模型。 例如,考虑对十几个骰子的总和进行建模。 分布模型将产生所有可能的总和及其发生的概率,而样本模型将产生根据该概率分布绘制的单个总和。 在动态规划中假设的模型──MDP动力学的估计 \(p\left(s^{\prime}, r | s, a\right)\) ──是分布模型。 第5章中二十一点示例中使用的模型是一个样本模型。分布模型比样本模型更强大,因为它们可以始终用于产生样本。 但是,在许多应用中,获取样本模型比分布模型容易得多。十几个骰子就是一个简单的例子。 编写一个计算机程序来模拟骰子滚动并返回总和是很容易的,但是找出所有可能的总和及其概率更难且更容易出错。

模型可用于模仿或模拟体验。给定起始状态和动作,样本模型产生可能的转换,分布模型生成由其发生概率加权的所有可能转换。 给定起始状态和策略,样本模型可以产生整个回合,分布模型可以生成所有可能的回合及其概率。 在这两种情况下,我们都说模型用于 模拟 环境并产生 模拟经验

在不同领域中,规划 这个词以几种不同的方式使用。 我们使用该术语来指代将模型作为输入并生成或改进与建模环境交互的策略的任何计算过程:

\[\text{模型} \stackrel{规划}{\longrightarrow} \text{策略}\]

在人工智能中,根据我们的定义,有两种不同的规划方法。状态空间规划,包括我们在本书中采用的方法, 主要被视为通过状态空间搜索最优策略或目标的最佳路径。动作导致从状态到状态的转换,并且价值函数在状态上计算。 在我们所说的 规划空间规划 中,规划是通过规划空间进行搜索。 操作将一个规划转换为另一个规划,并在规划空间中定义价值函数(如果有)。 规划空间规划包括演化方法和“偏序规划”,这是人工智能中的一种常见规划,其中步骤的排序在规划的所有阶段都没有完全确定。 规划空间方法难以有效地应用于强化学习中关注的随机序列决策问题,我们不会进一步考虑它们(但参见,例如,Russell和Norvig,2010)。

我们在本章中提出的统一观点是,所有的状态空间规划方法都有一个共同的结构,这种结构也存在于本书所介绍的学习方法中。 本章的其余部分将开发此视图,但有两个基本思想: (1)所有状态空间规划方法都将计算价值函数作为改进策略的关键中间步骤, (2)它们通过应用于模拟经验的更新或备份操作计算价值函数。 这种通用结构可以表示如下:

\[\text{模型} \longrightarrow \text{模拟经验} \stackrel{备份}{longrightarrow} \text{价值} \longrightarrow \text{策略}\]

动态规划方法显然适合这种结构:它们扫描状态空间,为每个状态生成可能的转换分布。 然后,每个分布用于计算备份值(更新目标)并更新状态的估计值。 在本章中,我们认为各种其他状态空间规划方法也适合这种结构, 各种方法的区别仅在于它们的更新类型,它们的执行顺序以及备份信息的保留时间。

以这种方式查看规划方法强调了它们与我们在本书中描述的学习方法的关系。 学习和规划方法的核心是通过备份更新操作来估计价值函数。 不同之处在于,规划使用模型生成的模拟经验,而学习方法则使用环境产生的实际经验。 当然,这种差异导致了许多其他差异,例如,如何评估性能以及如何灵活地产生经验。 但是,共同的结构意味着许多想法和算法可以在规划和学习之间转移。 特别地,在许多情况下,学习算法可以代替规划方法的关键更新步骤。 学习方法仅需要经验作为输入,并且在许多情况下,它们可以应用于模拟经验以及真实经验。 下面的框显示了基于一步表格Q-learning的规划方法和来自样本模型的随机样本的简单示例。 这种方法,我们称之为 随机样本一步表格Q-planning, 在一步表格Q-learning收敛于真实环境的最优政策的相同条件下,收敛到模型的最优策略 (必须在步骤1中无限次地选择每个状态-动作,并且 \(\alpha\) 必须随时间适当减小)。

随机样本一步表格Q-planning

一直循环:

  1. 随机选择一个状态 \(S\in\mathcal{S}\) 和动作 \(A\in\mathcal{A}\)

  2. \(S, A\) 发送到样本模型,并获得样本下一个奖励 \(R\) 和样本下一个状态 \(S^{\prime}\)

  3. \(S,A,R,S^{\prime}\) 应用一步表格Q-learning:

    \(Q(S, A) \leftarrow Q(S, A)+\alpha\left[R+\gamma \max _{a} Q\left(S^{\prime}, a\right)-Q(S, A)\right]\)

除了统一的规划和学习方法之外,本章的第二个主题是以小的渐进步骤进行规划的好处。 这使规划能够在几乎没有浪费的计算的情况下随时中断或重定向,这似乎是将规划与行为和学习模型有效混合的关键要求。 如果问题太大而无法准确解决,即使在纯粹的规划问题上,以非常小的步骤进行规划也可能是最有效的方法。

8.2 Dyna:集成规划,行动和学习

当规划在线完成时,在与环境交互时,会出现许多有趣的问题。 从交互中获得的新信息可能会改变模型,从而与规划相互作用。 可能需要以某种方式定制规划过程以适应当前正在考虑或在不久的将来预期的状态或决定。 如果决策制定和模型学习都是计算密集型过程,则可能需要在它们之间划分可用的计算资源。 为了开始探索这些问题,我们在本节中介绍了Dyna-Q,这是一个集成了在线规划个体所需的主要函数的简单架构。 每个函数都以简单,几乎无关紧要的形式出现在Dyna-Q中。 在后面的章节中,我们详细介绍了实现每个函数的一些替代方法以及它们之间的交易。 目前,我们只是为了说明这些想法并激发你的直觉。

_images/relationships-between-experience-model-values-and-policy.png

在规划个体中,实际经验至少有两个角色:它可以用于改进模型(使其更准确地匹配真实环境), 并且它可以用来直接改进价值函数和政策,使用前面章节中讨论的各种强化学习方法。 前者称为模型学习,后者称为 直接强化学习 (直接RL)。 右图中总结了经验,模型,价值和策略之间可能存在的关系。 每个箭头显示影响和推测改善的关系。请注意,经验如何通过模型直接或间接地改进价值函数和策略。 后者,有时被称为 间接强化学习,参与规划。

直接和间接方法都有优点和缺点。间接方法通常可以更充分地利用有限的经验,从而以更少的环境互动实现更好的策略。 另一方面,直接方法更简单,并且不受模型设计中的偏差影响。 有些人认为间接方法总是优于直接方法,而另一些方法则认为直接方法是大多数人类和动物学习的原因。 心理学和人工智能方面的相关辩论关心认知的相对重要性而不是试错学习,以及审议规划而不是被动决策 (参见第14章,从心理学的角度讨论其中的一些问题)。 我们的观点是,所有这些辩论中的替代方案之间的对比被夸大了,通过认识到这两方之间的相似性而不是反对它们,可以获得更多的洞察力。 例如,在本书中,我们强调了动态规划和时序差分方法之间的深刻相似性,即使一个是为规划而另一个是为不基于模型学习而设计的。

Dyna-Q包括上图中显示的所有过程──规划,行为,模型学习和直接RL──所有持续发生的过程。 规划方法是上一节的随机样本一步表格Q-planning方法。直接RL方法是一步表格Q-learning。 模型学习方法也是基于表格的,并假设环境是确定性的。 每次转换 \(S_{t}, A_{t} \rightarrow R_{t+1}, S_{t+1}\) 之后, 模型在表格条目中记录 \(S_{t}, A_{t}\) 的预测,\(S_{t+1}, A_{t+1}\) 将确定性地跟随。 因此,如果使用之前经历过的状态-动作对查询模型,则它仅返回最后观察到的下一状态和下一个奖励作为其预测。 在规划期间,Q-planning算法仅从先前已经经历过的状态-动作对中随机采样(在步骤1中), 因此永远不会使用它没有信息的状态-动作对来查询模型。

Dyna个体的整体架构,其中Dyna-Q算法就是一个例子,如图8.1所示。 中间栏代表了个体与环境之间的基本互动,从而产生了真实经验的轨迹。 图左侧的箭头表示根据实际经验进行的直接强化学习,以改善价值函数和策略。 右边是基于模型的流程。该模型从实际经验中学习,并产生模拟经验。 我们使用术语 搜索控件 来指代为模型生成的模拟经验选择起始状态和动作的过程。 最后,通过将强化学习方法应用于模拟经验来实现规划,就像它们确实发生过一样。 通常,如在Dyna-Q中,相同的强化学习方法既用于从真实经验中学习,也用于从模拟经验中进行规划。 因此,强化学习方法是学习和规划的“最终共同路径”。 学习和规划是深深融合的,因为他们分享几乎所有相同的机制,只区别于他们的经验来源。

_images/figure-8.1.png

图8.1: 一般Dyna架构。在环境和策略之间来回传递的真实经验会影响策略和价值函数, 其方式与环境模型生成的模拟经验非常相似。

从概念上讲,规划,行动,模型学习和直接RL在Dyna个体中同时并行地发生。 但是,为了在串行计算机上具体化和实现,我们完全指定它们在一个时间步长内发生的顺序。 在Dyna-Q中,行动,模型学习和直接RL过程几乎不需要计算,我们假设它们只消耗了一小部分时间。 每个步骤中的剩余时间可用于规划过程,这本身就是计算密集型过程。 我们假设在行动,模型学习和直接RL之后的每个步骤中有时间来完成Q-plainning算法的n次迭代(步骤1-3)。 在下面框中的Dyna-Q的伪代码算法中, \(Model(s,a)\) 表示状态-动作对 \((s,a)\) 的(预测的下一状态和奖励)的内容。 直接强化学习,模型学习和规划分别通过步骤(d),(e)和(f)实施。如果省略(e)和(f),则剩余算法将是一步表格Q-learning。

表格Dyna-Q

\(s\in\mathcal{S}\)\(a\in\mathcal{A}\),初始化 \(Q(s,a)\)\(Model(s,a)\)

一直循环:

(a) \(S \leftarrow\) 当前(非终端)状态

(b) \(A \leftarrow \varepsilon\text{-贪婪}(S, Q)\)

(c)执行动作 \(A\);观察结果奖励 \(R\) 和状态 \(S^{\prime}\)

(d) \(Q(S, A) \leftarrow Q(S, A)+\alpha\left[R+\gamma \max _{a} Q\left(S^{\prime}, a\right)-Q(S, A)\right]\)

(e) \(Model(S, A) \leftarrow R, S^{\prime}\) (假设确定性环境)

(f)循环 \(n\) 次:

\(S \leftarrow\) 随机先前观察到的状态

\(A \leftarrow\) 先前在 \(S\) 中采取的随机动作

\(R, S^{\prime} \leftarrow Model(S, A)\)

\(Q(S, A) \leftarrow Q(S, A)+\alpha\left[R+\gamma \max _{a} Q\left(S^{\prime}, a\right)-Q(S, A)\right]\)

例8.1:Dyna迷宫 考虑图8.2中的简单迷宫。在47个状态中的每个状态中,有四个动作,, 它们将个体确定性地带到相应的相邻状态,除非移动被障碍物或迷宫的边缘阻挡,在这种情况下个体仍然在那里。 所有过渡的奖励都是零,除了那些进入目标状态的过程,奖励是 \(+1\)。 在达到目标状态(G)之后,个体返回到开始状态(S)以开始新的回合。 这是一个折扣的,偶然的任务,\(\gamma=0.95\)

图8.2的主要部分显示了将Dyna-Q个体应用于迷宫任务的实验的平均学习曲线。 初始动作价值为零,步长参数为 \(\alpha=0.1\),探测参数为 \(\varepsilon=0.1\)。 当在动作中贪婪地选择时,关系(ties)随机被破坏。个体的规划步骤 \(n\) 数量各不相同,他们按每个实际步骤执行。 对于每个 \(n\),曲线显示个体在每一回合中达到目标所采取的步数,对超过30次重复实验平均。 在每次重复中,随机数发生器的初始种子被保持。 因此,第一回合对于 \(n\) 的所有值都是完全相同的(约1700步),并且其数据未在图中显示。 在第一回合之后,所有 \(n\) 值的性能都得到改善,但是对于更大的值,性能改善更快速。 回想一下 \(n=0\) 个体是一个非规划个体,只使用直接强化学习(一步表格式Q-learning)。 这是迄今为止这个问题上最慢的个体,尽管事实上参数值(\(\alpha\)\(\varepsilon\))为它进行了优化。 非规划个体花了大约25回合来达到(\(\varepsilon\) -)最佳表现, 而 \(n=5\) 的代理人大约需要5个回合,而 \(n=50\) 的代理人只花了3个回合。

_images/figure-8.2.png

图8.2: 一个简单的迷宫(插图)和Dyna-Q个体的平均学习曲线,每个实际步骤的规划步骤数(\(n\))不同。 任务是尽快从 S 旅行到 G

图8.3显示了规划个体发现解决方案的速度比非规划个体快得多的原因。 显示了在第二回合中途由 \(n=0\)\(n=50\) 个体发现的策略。 如果没有规划(\(n=0\)),每回合只会为策略添加一个额外的步骤,因此到目前为止只学习了一步(最后一步)。 通过规划,在第一回合中再次只学习一步,但是在第二回合中,已经开发了一个广泛的策略,在该回合结束时将几乎回到开始状态。 此策略由规划过程构建,而个体仍然在启动状态附近徘徊。到第三回合结束时,将找到完整的最优政策并获得完美的表现。

_images/figure-8.3.png

图8.3: 在第二回合中途通过规划和非规划Dyna-Q个体找到的策略。 箭头表示每个状态的贪婪行为;如果没有显示状态的箭头,则其所有动作价值都相等。 黑色方块表示个体的位置。

在Dyna-Q中,学习和规划是通过完全相同的算法完成的,根据真实的学习经验和模拟的规划经验进行操作。 由于规划逐步进行,因此混合规划和行动是微不足道的。两者都尽可能快地进行。 个体总是被动并始终是审慎的,立即响应最新的感官信息,但总是在后台进行规划。后台中还有模型学习过程。 随着新信息的获得,模型会更新以更好地匹配现实。 随着模型的变化,正在进行的规划过程将逐渐计算出与新模型匹配的不同行为方式。

练习8.1 图8.3中的非规划方法看起来特别差,因为它是一步法;使用多步引导的方法会做得更好。 你认为第7章中的多步引导方法之一可以和Dyna方法一样吗?解释为什么能或者为什么不能。

8.3 当模型错误时

在上一节中介绍的迷宫示例中,模型中的更改相对适中。模型开始是空的,然后只填充完全正确的信息。 一般来说,我们不能指望如此幸运。模型可能是不正确的,因为环境是随机的, 并且只观察到有限数量的样本,或者因为模型是使用不完全推广的函数逼近来学习的, 或者仅仅是因为环境已经改变并且尚未观察到其新的行为。当模型不正确时,规划过程可能会计算次优策略。

在某些情况下,通过规划快速计算的次优策略会导致建模错误的发现和纠正。 当模型在预测更大的奖励或更好的状态转换的意义上比实际可能更容易发生这种情况。 规划的策略试图利用这些机会并在此过程中发现它们不存在。

例8.2:阻塞迷宫 图8.4显示了一个迷宫示例,说明了这种相对较小的建模错误并从中恢复。 最初,从开始到目标,到屏障右侧有一条短路径,如图的左上角所示。 在1000个时间步之后,短路径被“阻挡”,并且沿着屏障的左侧打开更长的路径,如图的右上方所示。 该图显示了Dyna-Q个体和增强型Dyna-Q+个体的平均累积奖励,将在稍后描述。 图表的第一部分显示两个Dyna个体都在1000步内找到了短路径。 当环境发生变化时,图表变得平坦,这是个体没有获得奖励的时期,因为他们在屏障后面徘徊。 然而,过了一段时间,他们能够找到新的开口和新的最佳行为。

当环境变得比以前变得 更好 时,会出现更大的困难,但以前正确的策略并未显示出改善。 在这些情况下,如果有的话,可能无法长时间检测到建模错误。

_images/figure-8.4.png

图8.4: Dyna个体在阻塞任务上的平均性能。左侧环境用于前1000个步骤,右侧环境用于剩下的步骤。 Dyna-Q+是带有鼓励探索的探索奖金的Dyna-Q。

例8.3:捷径迷宫 由这种环境变化引起的问题由图8.5中所示的迷宫示例说明。 最初,最佳路径是绕过障碍物的左侧(左上角)。然而,在3000步之后,沿着右侧打开较短的路径,而不会干扰较长的路径(右上方)。 该图显示常规Dyna-Q个体从未切换到捷径。事实上,它从未意识到它存在。 它的模型表示没有捷径,所以规划得越多,向右走并发现它的可能性就越小。 即使采用 \(\varepsilon\) -贪婪策略,个体也不太可能采取如此多的探索性行动来发现捷径。

_images/figure-8.5.png

图8.5: Dyna个体在捷径任务上的平均性能。左边的环境用于前3000个步骤,右边的环境用于剩下的步骤。

这里的一般问题是探索和利用之间冲突的另一种形式。在规划环境中,探索意味着尝试改进模型的行动, 而利用意味着在给定当前模型的情况下以最佳方式行事。 我们希望个体进行探索以查找环境中的更改,但不要太多,以至于性能会大大降低。 与早期的探索/利用冲突一样,可能没有完美和实用的解决方案,但简单的启发式方法往往是有效的。

解决了捷径迷宫的Dyna-Q+个体使用了一种这样的启发式方法。 此个体程序会跟踪每个状态-动作对自上次尝试与环境进行真正交互以来已经经过的时间步长。 经过的时间越长,这一对的动态变化的可能性就越大(我们可以推测),并且它的模型是不正确的。 为了鼓励测试长期未尝试的行为,对涉及这些行为的模拟经验给出了特殊的“奖金奖励”。 特别是,如果转换的建模奖励是 \(r\),并且没有在 \(\tau\) 时间步骤中尝试转换, 那么规划更新就好像转换产生 \(r+\kappa\sqrt{\tau}\) 的奖励,对于一些小 \(\kappa\)。 这样可以鼓励个体继续测试所有可访问的状态转换,甚至可以找到很长的动作序列,以便进行测试 [1]。 当然,所有这些测试都有其成本,但在很多情况下,就像在捷径迷宫中一样,这种计算的好奇心是非常值得额外的探索。

练习8.2 为什么具有探索奖励Dyna-Q+的Dyna个体在第一阶段以及阻塞和捷径实验的第二阶段表现更好?

练习8.3 仔细检查图8.5可以发现Dyna-Q+和Dyna-Q之间的差异在实验的第一部分略有缩小。这是什么原因?

练习8.4(编程) 上述探索奖励实际上改变了状态和动作的估计值。这有必要吗? 假设奖金 \(\kappa\sqrt{\tau}\) 不是用于更新,而是仅用于行动中。 也就是说,假设所选择的动作始终是 \(Q(S_{t}, a)+\kappa \sqrt{\tau(S_{t}, a)}\) 最大的动作。 进行一个网格世界实验,测试并说明这种替代方法的优点和缺点。

练习8.5 如何修改8.2节上显示的表格Dyna-Q算法来处理随机环境?这种修改如何在不断变化的环境中表现不佳,如本节所述? 如何修改算法以处理随机环境 变化的环境?

8.4 优先扫描

在前面部分中介绍的Dyna个体中,模拟转换是从所有先前经历过的状态-动作对中随机均匀选择的状态-动作对开始的。 但统一的选择通常不是最好的;如果模拟转换和更新专注于特定的状态-动作对,则规划可以更加有效。 例如,考虑在第一个迷宫任务的第二回合中发生的情况(图8.3)。 在第二回合开始时,只有直接进入目标的状态-动作对具有正值;所有其他对的价值仍为零。 这意味着对几乎所有转换执行更新毫无意义,因为它们将个体从一个零值状态转移到另一个零值状态,因此更新将不起作用。 只有在目标之前或之后转换到状态的更新才会更改任何价值。 如果统一生成模拟转换,那么在遇到其中一个有用转换之前,将会进行许多浪费的更新。 随着规划的进展,有用更新的区域也在增长,但如果重点放在能够做到最好的地方,那么规划的效果仍然远远不够。 在作为我们真正目标的更大问题中,状态的数量如此之大,以至于没有重点的搜索将极其低效。

这个例子表明,通过从目标状态 向后 工作,可以有效地集中搜索。 当然,我们并不真的想使用任何特定于“目标状态”概念的方法。我们希望方法适用于一般奖励函数。 目标状态只是一种特殊情况,便于刺激直觉。一般而言,我们希望不仅从目标状态而且从任何价值已发生变化的状态g开展工作。 假设在给定模型的情况下这些价值最初是正确的,因为它们在发现目标之前处于迷宫示例中。 现在假设个体发现环境中的变化并改变其一个状态的估计值,向上或向下。 通常,这意味着还应该更改许多其他状态的值,但唯一有用的一步更新是直接导致其价值已更改的一个状态的动作。 如果更新了这些动作的价值,则可以依次更改先前状态的价值。 如果是这样,那么导致它们的行为需要更新,然后 它们的 前任状态可能已经改变。 通过这种方式,可以从价值发生变化的任意状态向后工作,执行有用的更新或终止传播。 这个总体思路可能被称为规划计算的 后向聚焦(backward focusing)

随着有用更新的前沿向后传播,它经常快速增长,产生许多可以有用地更新的状态-动作对。但并非所有这些都同样有用。 一些状态的价值可能已经发生了很大变化,而其他状态的变化可能很小。 那些已经发生了很大变化的前任对也更有可能发生很大变化。 在随机环境中,估计转移概率的变化也会导致变化大小的变化以及需要更新状态-动作对的紧迫性。 根据紧急程度的衡量标准对更新进行优先级排序是很自然的,并按优先级顺序执行。这是优先扫描背后的思想。 维护每个状态-动作对的队列,如果更新,其估计值将变化为非平凡的,由变化的大小区分优先级。 更新队列中的头部状态-动作对时,将计算对其每个前任状态-动作对的影响。 如果效果大于某个小阈值,则将该对插入具有新优先级的队列中 (如果队列中存在该状态-动作对的先前条目,则插入导致队列中仅剩余的较高优先级条目)。 通过这种方式,变化的影响被有效地向后传播直到静止。确定性环境的完整算法在下面框中给出。

确定环境优先扫描

对所有 \(s, a\),初始化 \(Q(s,a)\)\(Model(s,a)\),初始化 \(PQueue\) 为0

一直循环:

(a) \(S \leftarrow\) 当前(非终端)状态

(b) \(A \leftarrow \text{策略}(S, Q)\)

(c)执行动作 \(A\);观察结果奖励 \(R\) 和状态 \(S^{\prime}\)

(d) \(Model(S, A) \leftarrow R, S^{\prime}\)

(e) \(P \leftarrow\left|R+\gamma \max _{a} Q\left(S^{\prime}, a\right)-Q(S, A)\right|\)

(f)如果 \(P>\theta\),则将 \(S, A\) 插入 \(PQueue\),优先级为 \(P\)

(g)循环 \(n\) 次,当 \(PQueue\) 不为空时:

\(S, A \leftarrow \text { first }(PQueue)\)

\(R, S^{\prime} \leftarrow Model(S, A)\)

\(Q(S, A) \leftarrow Q(S, A)+\alpha\left[R+\gamma \max _{a} Q\left(S^{\prime}, a\right)-Q(S, A)\right]\)

循环所有预计导向 \(S\)\(\overline{S}, \overline{A}\)

\(\overline{R} \leftarrow\) \(\overline{S}, \overline{A}, S\) 的预测奖励

\(P \leftarrow\left|\overline{R}+\gamma \max _{a} Q(S, a)-Q(\overline{S}, \overline{A})\right|\)

如果 \(P>\theta\),则将 \(\overline{S}, \overline{A}\) 插入 \(PQueue\),优先级为 \(P\)

_images/example-8.4-prioritized-sweeping-on-mazes.png

例8.4:迷宫优先扫描 已发现优先扫描可显着提高在迷宫任务中找到最佳解决方案的速度,通常为5到10倍。 右侧显示了典型示例。这些数据用于一系列与图8.2所示结构完全相同的迷宫任务,只是它们的网格分辨率不同。 优先扫描比未优先的Dyna-Q保持了决定性的优势。两个系统在每次环境交互中最多进行 \(n=5\) 次更新。 改编自Peng和Williams(1993)。

将优先扫描扩展到随机环境是直截了当的。通过保持每个状态-动作对经历的次数和下一个状态的计数来维持该模型。 然后很自然地更新每一对,而不是像我们迄今为止使用的样本更新,而是考虑到所有可能的下一个状态及其发生的概率,进行预期的更新。

例8.5 杆机动优先扫描

_images/example-8.5-prioritized-sweeping-for-rod-maneuvering.png

该任务的目的是在有限的矩形工作空间内围绕一些笨拙放置的障碍物操纵杆,以最少的步数到达目标位置。 杆可沿其长轴或垂直于该轴平移,或者可沿其中心的任一方向旋转。 每次运动的距离约为工作空间的1/20,旋转增量为10度。 解答(Translations)是确定性的,并量化为 \(20\times20\) 个位置之一。 右图显示了从优先扫描发现的障碍和从开始到目标的最短解决方案。 这个问题是确定性的,但有四个动作和14,400个潜在状态(其中一些由于障碍而无法到达)。 这个问题可能太大,无法用非优先级方法解决。图重印自Moore和Atkeson(1993)。

优先扫描只是分配计算以提高规划效率的一种方式,可能不是最好的方法。 优先扫描的限制之一是它使用 预期的 更新,这在随机环境中可能会浪费大量的计算在低概率转换上。 正如我们在下一节中所示,尽管采样引入了方差,但在许多情况下,样本更新可以更接近真值函数,但计算量更少。 样本更新可以获胜,因为它们将整体备份计算分解为更小的部分──与单个转换相对应的部分──然后使其能够更集中地关注在将产生最大影响的部分上。 这个想法被认为是van Seijen和Sutton(2013)引入的“小备份”中的逻辑限制。 这些是沿着单个转换的更新,例如样本更新,但是基于没有采样的转换概率,如预期的更新。 通过选择进行小更新的顺序,可以大大提高规划效率,超越优先扫描的可能性。

我们在本章中建议,可以将所有类型的状态空间规划视为价值更新的序列,仅在更新类型,预期或样本,大或小以及更新的顺序方面有所不同。 在本节中,我们强调了后向聚焦,但这只是一种策略。 例如,另一种方法是关注于根据在当前策略下经常访问的状态可以轻松地达到的状态,这可被称为 前向聚焦。 Peng和Williams(1993)以及Barto,Bradtke和Singh(1995)已经探索了前向聚焦不同版本,接下来几节中介绍的方法将其转化为极端形式。

8.5 预期与样本更新

前面章节中的示例给出了组合学习和规划方法的可能性的一些概念。 在本章的其余部分,我们分析所涉及的一些组件思想,从预期和样本更新的相对优势开始。

_images/figure-8.6.png

图8.6: 本书中考虑的所有一步更新的备份图。

本书的大部分内容都是关于不同类型的价值函数更新,我们已经考虑了很多种类。 目前关注一步更新,它们主要沿三个二进制维度变化。前两个维度是它们是更新状态价值还是动作价值, 以及它们是否估计最优策略或任意给定策略的价值。 这两个维度产生四类更新,用于近似四个值函数 \(q_*\)\(v_*\)\(q_\pi\)\(v_\pi\)。 另一个二进制维度是,更新是考虑所有可能发生的事件的 预期 更新,还是考虑可能发生的事件的单个样本的 样本 更新。 这三个二进制维度产生八种情况,其中七种对应于特定算法,如右图所示。(第八种情况似乎与任何有用的更新都不对应。) 这些一步更新中的任何一种都可用于规划方法。前面讨论的Dyna-Q个体使用 \(q_*\) 样本更新, 但他们也可以使用 \(q_*\) 预期更新,或预期或样本 \(q_\pi\) 更新。 Dyna-AC系统使用 \(v_\pi\) 样本更新和学习策略结构(如第13章所述)。 对于随机问题,优先扫描总是使用预期更新之一完成。

当我们在第6章介绍一步样本更新时,我们将它们作为预期更新的替代品。 在没有分布模型的情况下,不可能进行预期的更新,但可以使用来自环境或样本模型的样本转换来完成样本更新。 从这个角度来看,隐含的是,如果可能的话,预期更新比样本更新更可取。 但是他们是这样的吗?预期的更新肯定会产生更好的估计,因为它们不受采样误差的影响, 但它们也需要更多的计算,而计算通常是规划中的限制资源。 为了正确评估预期和样本更新的相对优点,我们必须控制其不同的计算要求。

具体来说,考虑近似 \(q_*\) 的预期和样本更新,离散状态和动作的特殊情况,近似值函数 :math`Q` 的表查找表示, 以及估计动态形式的模型 \(\hat{p}\left(s^{\prime}, r | s, a\right)\)。 状态-动作对 \(s, a\) 的预期更新是:

(1)\[Q(s, a) \leftarrow \sum_{s^{\prime}, r} \hat{p}\left(s^{\prime}, r | s, a\right)\left[r+\gamma \max _{a^{\prime}} Q\left(s^{\prime}, a^{\prime}\right)\right]\]

对于 \(s, a\) 的相应样本更新,给定样本下一状态和奖励 \(S_0\)\(R\) (来自模型), 是类似Q-learning的更新:

(2)\[Q(s, a) \leftarrow Q(s, a)+\alpha\left[R+\gamma \max _{a^{\prime}} Q\left(S^{\prime}, a^{\prime}\right)-Q(s, a)\right]\]

其中 \(\alpha\) 通常是正步长参数。

这些预期和样本更新之间的差异在环境是随机的程度上是显着的, 具体地,在给定状态和动作的情况下,可能以各种概率发生许多可能的下一状态。 如果只有一个下一个状态是可能的,那么上面给出的预期和样本更新是相同的(取 \(\alpha=1\))。 如果有许多可能的下一个状态,则可能存在重大差异。支持(In favor of)预期更新的是它是精确计算, 导致新的 \(Q(s,a)\) 的正确性仅受后继状态下 \(Q(s_{\prime},a_0)\) 的正确性的限制。 样本更新还受到采样误差的影响。 另一方面,样本更新在计算上更便宜,因为它只考虑一个下一个状态,而不是所有可能的下一个状态。 实际上,更新操作所需的计算通常由评估 \(Q\) 的状态-动作对的数量决定。 对于特定的起始对,\(s, a\),令 \(b\)分支因子(branching factor) (即 \(\hat{p}(s^{\prime} | s, a)>0\) 的可能的下一状态 \(s_{\prime}\) 的数量)。 然后,状态-动作对的预期更新需要大约样本更新计算的 \(b\) 倍。

如果有足够的时间来完成预期更新,那么由于没有采样误差,所得到的估计通常优于 \(b\) 样本更新。 但是,如果没有足够的时间来完成预期更新,那么样本更新总是更可取的, 因为它们至少会使用少于 \(b\) 更新的价值估算进行一些改进。 在许多状态-动作对的大问题中,我们经常处于后一种情况。 有这么多的状态-动作对,所有这些状态-动作对的预期更新将花费很长时间。 在此之前,我们可能会在许多状态-动作对中进行一些样本更新,而不是在几对中预期更新。 给定计算单元,投入到一些预期的更新是否更好,或 \(b\) 倍的样本更新更好?

图8.7显示了分析结果,提供了这个问题的答案。 它将估计误差显示为各种分支因子 \(b\) 的预期和样本更新的计算时间的函数。 考虑的情况是所有 \(b\) 后继状态同样可能并且初始估计中的误差为1。 下一个状态的值假定是正确的,因此预期更新在完成时将误差减少到零。 在这种情况下,样本更新根据 \(\sqrt{\frac{b-1}{b t}}\) 减少误差, 其中 \(t\) 是已经执行的样本更新的数量(假设样本平均值,即 \(\alpha=\frac{1}{t}\))。 关键的观察结果是,对于中等大小的 \(b\),误差会随着 \(b\) 更新的一小部分而急剧下降。 对于这些情况,许多状态-动作对可以使其值显着改善,在预期更新的效果的几个百分点内,同时单个状态-动作对可以经历预期更新。

_images/figure-8.7.png

图8.7: 预期更新和样本更新的效率比较。

图8.7中显示的样本更新的优点可能是低估了实际效果。在实际问题中,后继状态的值将是自身更新的估计值。 通过使估算更快更准确,样本更新将具有第二个优势,即从后继状态备份的值将更准确。 这些结果表明,样本更新可能优于大型随机分支因子问题的预期更新,并且要解决的状态太多。

练习8.6 上面的分析假设所有 \(b\) 可能的下一个状态都可能同样发生。 相反,假设分布是高度偏斜的,那么 \(b\) 状态中的一些比大多数状态更可能发生。 这是否会加强或削弱样本更新超过预期更新的情况?支持你的答案。

8.6 轨迹采样

在本节中,我们将比较两种分布更新的方法。 来自动态规划的经典方法是在整个状态(或状态-动作)空间中执行扫描,每次扫描更新每个状态(或状态-动作对)一次。 这对于大型任务来说是有问题的,因为可能没有时间来完成甚至一次扫描。 在许多任务中,绝大多数状态都是无关紧要的,因为只有在非常糟糕的策略或极低概率下才能访问它们。 详尽的扫描隐含地将相等的时间用于状态空间的所有部分,而不是集中在需要它的地方。 正如我们在第4章中所讨论的那样,详尽的扫描以及它们所暗示的所有状态的平等处理不是动态规划的必要属性。 原则上,更新可以以任何方式分布(为了确保收敛,所有状态或状态-动作对必须在限制中无限次访问; 尽管在下面的第8.7节中讨论了此例外),但是在实际中经常使用详尽的扫描。

第二种方法是根据某种分布从状态或状态-动作空间进行采样。 可以像在Dyna-Q个体中那样均匀地采样,但是这会遇到与穷举扫描相同的一些问题。 更有吸引力的是根据在策略的分布来分发更新,即根据遵循当前策略时观察到的分布。 这种分布的一个优点是它易于生成;只是按照当前的政策略与模型进行交互。 在一个回合的任务中,在一个开始状态(或根据起始状态分布)开始并模拟直到终止状态。 在一个持续的任务中,从任何地方开始,只是不断模拟。 在任何一种情况下,模型都会给出样本状态转换和奖励,并且当前策略会给出样本动作。 换句话说,模拟明确的单独轨迹,并在沿途遇到的状态或状态-动作对上执行更新。 我们称这种产生经验并更新的方式为 轨迹采样

除了轨迹采样之外,很难想象根据在政策分布分配更新的任何有效方法。 如果明确表示了在策略分布,那么就可以扫描所有状态,根据在政策分布对每个状态的更新进行加权, 但这会让我们再次得到穷举扫描的所有计算成本。 可能有人可以从分布中对各个状态-动作对进行采样和更新,但即使这可以有效地完成,这将提供哪些优于模拟轨迹的好处? 即使以明确的形式了解在策略分布也不太可能。当策略发生变化时,分布会发生变化,计算分布需要与完整策略评估相媲美的计算。 考虑到这些其他可能性使得轨迹采样看起来既有效又优雅。

更新的在策略分布是否良好?直觉上它似乎是一个不错的选择,至少比均匀分布更好。 例如,如果你正在学习下棋,你可以学习真实游戏中可能出现的位置,而不是棋子的随机位置。 后者可能是有效状态,但是能够准确地评估它们与评估真实游戏中的位置是不同的技能。 我们还将在第二部分中看到,当使用函数逼近时,策略上的分布具有显着的优势。 无论是否使用函数逼近,人们都可能期望策略关注能够显着提规划的速度。

专注于在策略分布可能是有益的,因为它会导致空间中巨大的,无趣的部分被忽略, 或者它可能是有害的,因为它会导致空间的相同旧部分一次又一次地更新。 我们进行了一项小型实验,以根据经验评估效果。为了隔离更新分布的影响,我们使用完全一步预期的表格更新,如(8.1)所定义。 在 统一 的情况下,我们循环遍历所有状态-动作对,更新每个状态,并且在在策略情况下我们模拟回合, 所有回合都以相同的状态开始, 更新当前 \(\varepsilon\) -贪婪的策略(\(\varepsilon=0.1\))下发生的每个状态-动作对。 任务是无折扣的回合任务,随机生成如下。从 \(|\mathcal{S}|\) 的每个状态,两个动作是可能的, 每个动作都导致 \(b\) 个下一个状态中的一个,都是同样可能的,每个状态-动作对的 \(b\) 个状态的随机选择不同。 对于所有状态-动作对,分支因子 \(b\) 是相同的。此外,在所有过渡中,有0.1概率转换到终止状态,结束这一回合。 每个过渡的预期奖励是从高斯分布中选择的,均值为0,方差为1。 在规划过程中的任何一点,人们都可以停止并详尽地计算 \(v_{\tilde{\pi}}\left(\mathcal{S}_{0}\right)\), 即贪婪策略 \(\tilde{\pi}\) 下的起始状态的真实值,由当前的动作-价值函数 \(Q\) 给出, 作为个体在贪婪行动的新回合中的表现(一直假设模型是正确的)。

_images/figure-8.8.png

图8.8:更新的相对效率在整个状态空间内均匀分布,而不是侧重于模拟的策略轨迹,每个轨迹都以相同的状态开始。 结果是随机生成的两种大小和各种分支因子 \(b\) 的任务。

右图的上半部分显示了200个样本任务的平均结果,其中有1000个状态和分支因子为1,3和10。 所找到的策略的质量被绘制为预期更新完成的数量的函数。 在所有情况下,根据在策略分布进行抽样导致最初的规划更快,从长远来看延迟了规划。 效果更强,更快规划的初始阶段更长,分支因子更小。 在其他实验中,我们发现随着状态数量的增加,这些效应也变得更强。 例如,图的下半部分显示了具有10,000个状态,分支因子为1的任务的结果。 在这种情况下,在策略关注的优势是巨大而持久的。

所有这些结果都有意义。在短期内,根据策略分布进行抽样有助于关注接近起始状态后代的状态。 如果有许多状态和一个小的分支因子,这种影响将是巨大的和持久的。 从长远来看,关注策略分布可能会受到影响,因为通常发生的状态都已经有了正确的价值。 对它们进行采样是没用的,而采样其他状态实际上可能会执行一些有用的工作。 这可能就是为什么从长远来看,详尽,不专心的方法会更好,至少对于小问题。 这些结果并不是决定性的,因为它们仅用于以特定的,随机的方式产生的问题, 但它们确实表明根据策略分布进行抽样对于大问题可能是一个很大的优势, 特别是对于一个小子集的问题在策略下访问状态行动空间。

练习8.7 图8.8中的一些图形似乎在它们的早期部分是扇形的,特别是 \(b=1\) 的上图和均匀分布。 你为什么认为这是?所显示数据的哪些方面支持你的假设?

练习8.8(编程) 复制实验,其结果显示在图8.8的下半部分,然后尝试相同的实验,但 \(b=3\)。讨论结果的含义。

8.7 实时动态规划

实时动态规划 (RTDP)是动态规划(DP)的价值迭代算法的策略轨迹采样版本。 由于它与传统的基于扫描的策略迭代密切相关,因此RTDP以特别清晰的方式说明了策略轨迹采样可以提供的一些优势。 RTDP通过(4.10)定义的预期表格价值迭代更新来更新在实际或模拟轨迹中访问的状态价值。 它基本上是产生图8.8所示的在策略结果的算法。

RTDP与传统DP之间的紧密联系使得通过适应现有理论得出一些理论结果成为可能。 RTDP是第4.5节中描述的 异步 DP算法的示例。 异步DP算法不是根据状态集合的系统扫描来组织的;他们以任意顺序更新状态值,使用其他任何可能的状态价值。 在RTDP中,更新顺序由在实际或模拟轨迹中状态访问的顺序决定。

_images/start-relevant-irrelevant-states.png

如果轨迹只能从指定的一组起始状态开始,并且如果您对给定策略的预测问题感兴趣, 那么在策略轨迹采样允许算法完全跳过任何给定策略从任何起始状态无法达到的状态:这些状态与预测问题 不相干。 对于控制问题,其目标是找到最优策略而不是评估给定策略,可能存在任何起始状态的任何最优策略都无法达到的状态, 并且对于这些无关的状态不需要指定最佳动作。所需要的是 最优部分策略,这意味着对于相关状态是最优的策略, 但是对于不相关的状态可以指定任意动作,或者甚至是未定义的动作。

但是,通过在策略轨迹采样控制方法(如Sarsa(第6.4节)) 找到 这样一个最优部分政策, 通常需要访问所有状态-动作对无数次,即使是那些结果不相关的。例如,这可以通过使用探索开始来完成(第5.3节)。 对于RTDP也是如此:对于具有探索开始的回合任务,RTDP是异步价值迭代算法,其收敛于折扣有限MDP的最优策略(以及在特定条件下的未折扣情况)。 与预测问题的情况不同,如果对最优策略的收敛很重要,通常不可能停止更新任何状态或状态-动作对。

RTDP最有趣的结果是,对于满足合理条件的某些类型的问题,RTDP保证找到在相关状态下最优的策略, 而无需经常无限地访问每个状态,或者甚至根本不访问某些状态。实际上,在某些问题中,只需要访问一小部分状态。 对于具有非常大的状态集合的问题,即使单个扫描也可能是不可行的,这可能是一个很大的优势。

该结果所持有的任务是具有吸收目标状态的MDP的未折扣的回合任务,其产生零奖励,如第3.4节所述。 在真实或模拟轨迹的每一步,RTDP选择贪婪动作(随机断开连接)并将期望价值迭代更新操作应用于当前状态。 它还可以在每一步更新任意其他状态集合的价值;例如,它可以从当前状态更新在有限时域前瞻搜索中访问的状态的价值。

对于这些问题,每一回合开始于从一组起始状态中随机选择并以目标状态结束的状态, RTDP以概率 \(1\) 收敛到对所提供的所有相关状态最佳的策略:1)初始值每个目标状态为零, 2)至少存在一个策略,保证从任何开始状态以概率1到达目标状态, 3)从非目标状态转换的所有奖励严格为负,并且4)全部初始值等于或大于其最佳值(可以通过简单地将所有状态的初始值设置为零来满足)。 Barto,Bradtke和Singh(1995)通过将异步DP的结果与关于启发式搜索算法的结果 (称为 学习实时 \(A^*\),源于Korf(1990))结合证明了这一结果。

具有这些属性的任务是 随机最优路径问题 的示例,其通常以成本最小化而不是像我们在此处所做的奖励最大化来表述。 在我们的版本中最大化负回报等同于最小化从开始状态到目标状态的路径的成本。 这种任务的例子是最小时间控制任务,其中达到目标所需的每个时间步骤产生 \(-1\) 的奖励, 或者如第3.5节中的高尔夫示例之类的问题,其目标是以最少的击球进洞。

例8.6:赛车轨迹的RTDP 练习5.12的赛车轨迹问题是一个随机最优路径问题。 在示例赛车轨迹问题上比较RTDP和传统DP价值迭代算法说明了在策略轨迹采样的一些优点。

回想一下练习,个体必须学习如何在转弯处开车,如图5.5所示,并在赛道上尽快越过终点线。 起始状态是起始线上的所有零速状态;目标状态是通过从赛道内部越过终点线可以在一个时间步内到达的所有状态。 与练习5.12不同,这里对车速没有限制,因此状态集合可能是无限的。 但是,可以通过任何策略从一组起始状态到达的状态集是有限的,并且可以被认为是问题的状态集。 每回合以随机选择的起始状态开始,并在汽车越过终点线时结束。每一步的奖励为 \(-1\),直到汽车越过终点线。 如果汽车撞到轨道边界,则它将移回到随机起始状态,并且回合继续。

类似于图5.5左侧的小型赛道的赛道有9,115个状态可以通过任何策略从启动状态到达, 其中只有599个是相关的,这意味着它们可以通过一些最优策略从某个启动状态到达。 (相关状态的数量是通过计算在为 \(10^7\) 个回合执行最佳行动时访问的状态来估算的。)

下表比较了传统DP和RTDP解决此任务的问题。这些结果是超过25次运行的平均值,每次运行都以不同的随机数种子开始。 在这种情况下,常规DP是使用状态集的穷举扫描的价值迭代,其中价值一次更新一个状态, 这意味着每个状态的更新使用其他状态的最新价值 (这是Gauss-Seidel价值迭代的版本,发现大约比Jacobi版本在这个问题上快两倍。见4.8节。) 没有特别注意更新的顺序;其他排序可能会产生更快的收敛。两种方法的每次运行的初始值均为零。 当扫描状态价值的最大变化小于 \(10^{-4}\) 时,DP被判断为收敛, 并且当超过20回合越过终点线的平均时间呈现出稳定在渐近数量的步骤时,判断RTDP已收敛。 此版本的RTDP仅更新了每个步骤的当前状态价值。

DP RTDP
收敛的平均计算量 28次扫描 4000个回合
收敛的平均更新次数 252,784 127,600
每集的平均更新次数 31.9
状态更新 \(\leq 100\) 次的百分比 98.45
状态更新 \(\leq 10\) 次的百分比 80.51
状态更新 \(0\) 次的百分比 3.18

两种方法都产生了平均14到15步之间的策略以跨越终点线,但是RTDP只需要DP的大约一半的更新。 这是RTDP的在策略轨迹采样的结果。虽然每次扫描DP时每个状态的价值都会更新,但RTDP会针对较少的状态重点更新。 在平均运行中,RTDP更新了98.45%的状态值不超过100次,80.51%的状态不超过10次;在平均运行中,大约290个状态的价值根本没有更新。

RTDP的另一个优点是,当价值函数接近最优值函数 \(v_*\) 时, 个体用于生成轨迹的策略接近最优策略,因为它对于当前价值函数总是贪婪的。这与传统价值迭代的情况形成对比。 实际上,当价值函数在扫描中仅改变一小部分时,价值迭代终止,这就是我们如何终止它以获得上表中的结果。 此时,价值函数非常接近 \(v_*\),并且贪婪策略接近最优策略。 但是,在价值迭代终止之前很久,关于最新价值函数的贪婪策略可能是最优的,或几乎是最优的。 (回顾第4章,对于许多不同的价值函数,最优策略可能是贪婪的,而不仅仅是 \(v_*\)。) 在价值迭代收敛之前检查最优策略的出现不是传统DP算法的一部分,并且需要大量额外的计算。

在赛车轨迹示例中,通过在每次DP扫描后运行许多测试回合,根据扫描结果贪婪地选择动作, 可以估计DP计算中最早的点,其中近似的最佳评估函数足够好,因此相应的贪婪策略几乎是最优的。 对于这个赛道,在15次价值迭代之后,或者在136,725次价值迭代更新之后,出现了接近最优的政策。 这远远低于DP收敛到 \(v_*\) 所需的252,784个更新,但仍然超过了RTDP所需的127,600个更新。

尽管这些模拟肯定不是RTDP与传统的基于扫描的价值迭代的明确比较,但它们说明了在策略轨迹采样的一些优点。 传统价值迭代继续更新所有状态的价值,而RTDP强烈关注与问题目标相关的状态子集。 随着学习的继续,这种关注变得越来越窄。 由于RTDP的收敛定理适用于模拟,我们知道RTDP最终只关注相关状态,即构成最佳路径的状态。 RTDP实现了近乎最优的控制,是基于扫描的价值迭代所需的计算量的50%。

8.8 决策时规划

规划可以至少以两种方式使用。我们在本章中到目前为止所考虑的,以动态规划和Dyna为代表, 是基于从模型(样本或分布模型)获得的模拟经验,使用规划逐步改进策略或价值函数。 那么选择动作就是比较从我们迄今为止考虑的表格案例中的表格中获得的当前状态的动作价值, 或者通过评估我们在下面第二部分中考虑的近似方法中的数学表达式。 在为任何当前状态 \(S_t\) 选择一个动作之前,规划已经在改进表条目或数学表达式方面发挥了作用, 为多个状态选择动作所需,包括 \(S_t\)。使用这种方式,规划不关注于当前状态。 我们称以这种方式使用规划为 背景规划(background planning)

使用规划的另一种方法是在遇到每个新状态 \(S_t\) 之后 开始并完成它,作为计算,其输出是单个动作 \(A_t\) 的选择; 在下一步规划中,计划重新开始,使用 \(S_{t+1}\) 生成 \(A_{t+1}\),依此类推。 这种规划使用的最简单,几乎退化的例子是只有状态价值可用时,通过比较每个动作的模型预测的下一个状态的价值来选择一个动作 (或通过比较后续状态的值,如同第1章中的井字棋示例。) 更一般地说,以这种方式使用的规划看起来比一步前瞻更深,并且评估动作选择导致许多不同的预测状态和奖励轨迹。 与首次使用规划不同,此处的规划侧重于特定的状态。我们称之为 决策时规划(decision-time planning)

这两种思考规划的方式──使用模拟经验逐步改进策略或价值函数,或使用模拟经验为当前状态选择动作── 可以以自然和有趣的方式融合在一起,但它们往往是分开研究,这是首先理解它们的好方法。现在让我们仔细看看决策时规划。

即使只在决策时进行规划,我们仍然可以像在8.1节中那样查看它,从模拟经验到更新和价值,最终到政策。 现在,价值和策略是特定于当前状态和可用的动作选择,以至于规划过程创建的价值和策略通常在用于选择当前动作后被丢弃。 在许多应用中,这并不是一个很大的损失,因为有很多状态,我们不太可能长期回到同一个状态。 一般来说,人们可能想要两者兼顾:聚焦规划当前状态 存储计划结果,以便在以后再返回相同状态时更进一步。 决策时规划在不需要快速响应的应用程序中最有用。 例如,在国际象棋游戏程序中,每次移动可以允许一秒钟或几分钟的计算,并且厉害的程序可以在此时间内规划数十次移动。 另一方面,如果低延迟动作选择是优先级,则通常最好在后台进行规划以计算可以快速应用于每个新遇到状态的策略。

8.9 启发式搜索

人工智能中的经典状态空间规划方法是统称为 启发式搜索 的决策时规划方法。 在启发式搜索中,对于遇到的每个状态,考虑一个可能延续的大的树。近似价值函数应用于叶节点,然后备份到根节点的当前状态。 搜索树中的备份与本书中讨论的最大值(maxes)(\(v_*\)\(q_*\) 的更新)预期更新中的相同。 备份在当前状态的状态动作节点处停止。一旦计算出这些节点的备份值,就选择它们中的最佳值作为当前动作,然后丢弃所有备份的值。

在常规的启发式搜索中,没有努力通过改变近似价值函数来保存备份值。 实际上,价值函数通常由人设计,并且不会因搜索而改变。 但是,很自然地考虑允许使用启发式搜索期间计算的备份值或本书中提供的任何其他方法来随时间改进价值函数。 从某种意义上说,我们一直采用这种方法。 我们的贪婪,\(\varepsilon\) -贪婪和UCB(第2.7节)动作选择方法与启发式搜索没有什么不同,虽然规模较小。 例如,为了计算给定模型和状态价值函数的贪婪行为,我们必须看从每个可能的动作到每个可能的下一个状态, 考虑奖励和估计的价值,然后选择最佳动作。就像在常规的启发式搜索中一样,此过程计算可能动作的备份值,但不尝试保存它们。 因此,启发式搜索可以被视为超越一步的贪婪策略思想的扩展。

搜索深度超过一步的重点是获得更好的动作选择。如果一个人有一个完美的模型和一个不完美的动作-价值函数, 那么实际上更深层次的搜索通常会产生更好的策略 [2]。 当然,如果搜索一直到回合的结尾,那么不完美的价值函数的影响消除了,以这种方式确定的动作必定是最佳的。 如果搜索具有足够的深度 \(k\) 使得 \(\gamma^{k}\) 非常小,那么动作将相应地接近最佳。 另一方面,搜索越深,需要的计算越多,通常会导致响应时间变慢。 Tesauro的大师级十五子棋玩家TD-Gammon(第16.1节)提供了一个很好的例子。 该系统使用TD学习通过许多自我游戏来学习一个状态后(afterstate)价值函数,使用一种启发式搜索形式来进行移动。 作为一个模型,TD-Gammon使用了掷骰子概率的先验知识,并假设对手总是选择TD-Gammon认为最佳的动作。 Tesauro发现启发式搜索越深,TD-Gammon的移动越好,但每次移动所需的时间越长。 十五子棋具有较大的分支因子,但必须在几秒钟内完成移动。 只能选择性地向前搜索几个步骤,但即便如此,搜索也会产生明显更好的动作选择。

我们不应忽视启发式搜索关注更新的最明显方式:关注当前状态。 启发式搜索的大部分有效性是由于其搜索树紧紧关注可能紧跟当前状态的状态和动作。 你可能会花更多的时间下国际象棋而不是下跳棋,但是当你玩跳棋时,考虑跳棋和你的特定跳棋位置, 你可能的下一步动作和之后的位置是值得的。无论您如何选择动作,这些状态和动作都是更新的最高优先级, 并且你最迫切希望你的近似价值函数准确无误。你的计算不仅应该优先用于即将发生的事件,而且你的有限内存资源也应如此。 例如,在国际象棋中,存在太多可能的位置以至于不可能为它们中的每一个存储不同的价值估计, 但是基于启发式搜索的国际象棋程序可以容易地存储它们从单个位置向前看的数百万个位置的不同估计。 内存和计算资源对当前决策的高度关注可能是启发式搜索如此有效的原因。

可以以类似的方式更改更新的分布,以关注当前状态及其可能的后继者。 作为一个限制性案例,我们可以使用启发式搜索的方法来构建搜索树,然后从下往上执行单独的一步更新,如图8.9所示。 如果以这种方式对更新进行排序并使用表格表示,那么将实现与深度优先启发式搜索完全相同的整体更新。 可以通过这种方式查看任何状态空间搜索,即将大量单个一步更新拼凑在一起。 因此,通过更深入的搜索观察到的性能改进不是由于使用多步骤更新。相反,这是由于聚焦和专注于当前状态下游的状态和动作的更新。 通过投入大量与候选动作特别相关的计算,决策时计划可以产生比依赖未聚焦更新产生的更好的决策。

_images/figure-8.9.png

图8.9: 启发式搜索可以实现为一系列一步更新(此处以蓝色显示),从叶节点向根备份价值。 此处显示的顺序用于选择性深度优先搜索。

8.10 Rollout算法

Rollout算法是基于应用于模拟轨迹的蒙特卡洛控制的决策时规划算法,所有模拟轨迹都在当前环境状态下开始。 他们通过平均从每个可能的动作开始然后遵循给定的策略的许多模拟轨迹的回报来估计给定策略的行动价值。 当动作价值估计被认为足够准确时,执行具有最高估计值的动作(或动作之一),之后从所得到的下一状态重新执行该过程。 正如Tesauro和Galperin(1997)所解释的那样,他们尝试使用Rollout算法来玩十五子棋游戏, “Rollout”一词来自于估计十五子棋位置的价值,通过随机生成的掷骰子序列多次播放掷出(即“Rollout”)位置知道游戏结束, 其中两个玩家的移动都是由一些固定的策略制定的。

与第5章中描述的蒙特卡洛控制算法不同,Rollout算法的目标 不是为给定的策略估计完整的最优动作价值函数 \(q_*\) 或完整的动作价值函数 \(q_\pi\)。 相反,它们仅针对每个当前状态以及通常称为 rollout策略(rollout policy) 的给定策略生成蒙特卡洛对动作价值的估计。 作为决策时规划算法,Rollout算法立即使用这些行动价值估计,然后丢弃它们。 这使得Rollout算法的实现相对简单,因为不需要为每个状态-动作对采样结果,也不需要在状态空间或状态动作空间上近似函数。

那么Rollout算法能做什么?第4.2节中描述的策略改进定理告诉我们, 给定任何两个政策 \(\pi\)\(\pi^{\prime}\) 相同,除了对于某些状态 \(s\)\(\pi^{\prime}(s)=a\neq\pi(s)\),如果 \(q_{\pi}(s, a)\geq v_{\pi}(s)\), 那么策略 \(\pi^{\prime}\)\(\pi\) 一样好,或者比 \(\pi\) 更好。 而且,如果不等是严格的,那么 \(\pi^{\prime}\) 实际上比 \(\pi\) 更好。 这适用于Rollout算法,其中 \(s\) 是当前状态,\(\pi\) 是rollout策略。 平均模拟轨迹的回报产生每个动作 \(a^{\prime} \in \mathcal{A}(s)\)\(q_{\pi}\left(s, a^{\prime}\right)\) 的估计。 然后,在 \(s\) 中选择一个最大化这些估计值的行动,此后遵循 \(\pi\) 的策略, 是一个改进 \(\pi\) 的策略的良好候选者。 结果类似于4.3节中讨论的动态规划的策略迭代算法的一个步骤 (尽管它更像是第4.5节中描述的 异步 价值迭代的一个步骤,因为它仅改变当前状态的动作)。

换句话说,Rollout算法的目的是改进rollout策略;不是找到最优策略。经验表明,Rollout算法可以令人惊讶地有效。 例如,Tesauro和Galperin(1997)对通过rollout方法产生的十五子棋游戏能力的显着改善感到惊讶。 在某些应用程序中,即使rollout策略完全随机,Rollout算法也可以产生良好的性能。 但改进策略的表现取决于rollout策略的属性以及蒙特卡洛价值估计产生的动作的排名。 直觉表明rollout策略越好,价值估计越准确,Rollout算法产生的策略可能就越好(但参见Gelly和Silver,2007)。

这涉及重要的权衡,因为更好的rollout策略通常意味着需要更多时间来模拟足够的轨迹以获得良好的价值估计。 作为决策时规划方法,Rollout算法通常必须满足严格的时间限制。 Rollout算法所需的计算时间取决于每个决策必须评估的动作数量,获取有用样本回报所需的模拟轨迹中的时间步数, rollout策略制定决策所需的时间,以及获得良好的蒙特卡洛动作价值估计所需的模拟轨迹的数量。

平衡这些因素对于rollout方法的任何应用都很重要,尽管有几种方法可以缓解挑战。 由于蒙特卡洛试验是相互独立的,因此可以在不同的处理器上并行进行多次试验。 另一种方法是截断完整回合之外的模拟轨迹,通过存储的评估函数来纠正截断的回报 (这使得我们所说的关于前面章节中的截断回报和更新的所有内容都发挥作用)。 正如Tesauro和Galperin(1997)所建议的那样,也有可能监控蒙特卡洛模拟并修剪掉那些不太可能成为最佳的候选动作, 或者其价值足够接近当前最佳选择的动作,选择这些动作不会有什么区别(尽管Tesauro和Galperin指出这会使并行实现复杂化)。

我们通常不会将Rollout算法视为 学习 算法,因为它们不会保留对价值或策略的长期记忆。 但是,这些算法利用了我们在本书中强调的强化学习的一些特性。 作为蒙特卡洛控制的实例,他们通过平均样本轨迹集合的回报来估计行动价值,在这种情况下,轨迹是于环境的样本模型模拟交互的轨迹。 通过这种方式,它们就像强化学习算法一样,通过轨迹采样避免了动态规划的彻底扫描, 并且通过依赖于样本而不是预期的更新来避免对分布模型的需求。 最后,Rollout算法通过对估计的动作价值贪婪地行动来利用策略改进属性。

8.11 蒙特卡洛树搜索

蒙特卡洛树搜索 (MCTS)是决策时规划的一个最近且非常成功的例子。 在其基础上,MCTS是如上所述的rollout算法,但通过增加一种累积从蒙特卡洛模拟中获得的价值估计的手段来增强, 以便连续地将模拟引导到更高回报的轨迹。MCTS主要负责将计算机围棋从2005年的弱业余水平提升到2015年的大师级(6段或以上)。 基本算法的许多变体已经开发出来,包括我们在16.6节讨论的变体, 这对于2016年令人惊叹的AlphaGo程序在对18次世界冠军围棋选手中的胜利至关重要。 事实证明,MCTS在各种竞争环境中都很有效,包括一般游戏(例如,参见Finnsson和Björnsson,2008;Genesereth和Thielscher,2014), 但它不仅限于游戏;如果存在一个足够简单的环境模型用于快速多步模拟,那么它对于单个体顺序决策问题是有效的。

在遇到每个新状态后执行MCTS以选择个体对该状态的动作;它会再次执行以选择下一个状态的操作,依此类推。 与rollout算法一样,每次执行都是一个迭代过程,它模拟从当前状态开始并运行到终止状态的许多轨迹 (或直到折扣使得任何进一步的奖励作为对回报的贡献可以忽略不计)。 MCTS的核心思想是通过扩展已经从早期模拟中获得高评价的轨迹的初始部分,从当前状态开始连续聚焦多个模拟。 MCTS不必保留从一个动作选择到下一个动作选择的近似价值函数或策略,但在许多实现中,它保留了可能对其下一次执行有用的选定动作价值。

在大多数情况下,模拟轨迹中的动作是使用简单策略生成的,通常称为rollout策略,因为它适用于更简单的rollout算法。 当rollout策略和模型都不需要大量计算时,可以在短时间内生成许多模拟轨迹。 与任何表格蒙特卡洛方法一样,状态-动作对的价值被估计为该对的(模拟)回报的平均值。 蒙特卡洛值估计仅针对最有可能在几个步骤中达到的状态-动作对的子集维持,这些步骤形成以当前状态为根的树,如图8.10所示。 MCTS通过添加表示看起来很有希望基于模拟轨迹的结果的状态的节点来递增地扩展树。 任何模拟的轨迹都将穿过树,然后在某个叶节点处退出。 在树之外和叶节点处,rollout策略用于动作选择,但是在树内的状态下,可能会更好。 对于这些状态,我们至少对某些行动进行了估值,因此我们可以使用一种称为 树策略 的知情策略来挑选它们,以平衡探索和利用。 例如,树策略可以使用 \(\varepsilon\) -贪婪或UCB选择规则(第2章)来选择动作。

_images/figure-8.10.png

图8.10:蒙特卡洛树搜索。当环境变为新状态时,MCTS在需要选择动作之前执行尽可能多的迭代, 增量构建其根节点表示当前状态的树。每个迭代包括四个操作 选择扩展 (尽管可能在某些迭代中跳过), 模拟备份,如文中所述,并由树中的粗体箭头表示。改编自Chaslot,Bakkes,Szita和Spronck(2008)。

更详细地说,MCTS基本版本的每次迭代都包含以下四个步骤,如图8.10所示:

  1. 选择。 从根节点开始,基于附加到树的边缘的动作价值的 树策略 遍历树以选择叶节点。
  2. 扩展。 在一些迭代(取决于应用程序的细节)上,通过添加从所选节点通过未探测的动作到达的一个或多个子节点,从所选叶子节点扩展树。
  3. 模拟。 从所选节点或其新添加的子节点之一(如果有),使用rollout策略选择的操作运行完整回合的模拟。 结果是蒙特卡洛试验,其中首先由树选择动作策略以及rollout策略以外的树。
  4. 备份。 模拟回合生成的回报被备份以更新或初始化附加到MCTS迭代中树策略所遍历的树的边缘的动作价值。 对于树之外的rollout策略访问的状态和操作,不会保存任何值。 图8.10通过显示从模拟轨迹的终止状态直接到rollout策略开始的树中的状态-动作节点的备份来说明这一点, (尽管通常,模拟轨迹上的整个回报被备份到此状态-动作节点)。

MCTS继续执行这四个步骤,每次从树的根节点开始,直到不再剩下时间,或者某些其他计算资源耗尽。 然后,最后,根据依赖于树中累积的统计信息的某种机制,选择来自根节点的动作(其仍表示环境的当前状态); 例如,它可以是具有从根状态可用的所有动作的最大动作价值的动作,或者可能是具有最大访问计数的动作以避免选择异常值。 这是MCTS实际选择的动作。在环境转换到新状态之后,再次运行MCTS,有时从表示新状态的单个根节点的树开始, 但通常从包含此节点的任何后代的树开始,该节点由前一个MCTS执行构建的树留下;所有剩余节点以及与其关联的动作价值将被丢弃。

MCTS首先被提议用于选择双人竞技游戏程序,例如Go中的移动。对于游戏,每个模拟的回合是游戏的一次完整游戏, 其中两个玩家通过树和rollout策略选择动作。第16.6节描述了AlphaGo程序中使用的MCTS的扩展, 它将MCTS的蒙特卡洛评估与深度人工神经网络通过自我对弈强化学习学习的动作价值相结合。

将MCTS与我们在本书中描述的强化学习原则相关联,可以深入了解它如何实现如此令人印象深刻的结果。 在其基础上,MCTS是一种基于蒙特卡洛控制的决策时规划算法,应用于从根状态开始的模拟; 也就是说,它是一种rollout算法,如上一节所述。因此,它受益于在线,增量,基于样本的价值评估和策略改进。 除此之外,它还可以保存附加到树边缘的动作价值估计,并使用强化学习的采样更新来更新它们。 这具有将蒙特卡洛试验聚焦在轨迹上的效果,其初始段对于先前模拟的高回报轨迹是共同的。 此外,通过递增地扩展树,MCTS有效地增长查找表以存储部分动作价值函数, 其中内存被分配给在高产量样本轨迹的初始段中访问的状态-动作对的估计价值。 因此,MCTS避免了全局逼近动作-价值函数的问题,同时它保留了使用过去的经验来指导探索的好处。

MCTS决策时规划取得的巨大成功深刻影响了人工智能,许多研究人员正在研究用于游戏和单一个体应用程序的基本程序的修改和扩展。

8.12 本章总结

规划需要环境模型。分布模型 包括下一个状态的概率和可能的行动的奖励;样本模型根据这些概率生成单个过渡和奖励。 动态规划需要一个分布模型,因为它使用 预期的更新,这涉及计算所有可能的下一个状态和奖励的期望。 另一方面,样本模型 是模拟与环境交互所需的,在此期间可以使用 样本更新,如许多强化学习算法所使用的那样。 样本模型通常比分布模型更容易获得。

我们提出了一个观点,强调规划最优行为和学习最优行为之间令人惊讶的密切关系。 两者都涉及估计相同的价值函数,并且在两种情况下,在一系列小型备份操作中逐渐更新估计是很自然的。 这使得简单地通过允许两者更新相同的估计价值函数来直接集成学习和规划过程。 此外,任何学习方法都可以简单地通过将它们应用于模拟(模型生成)经验而不是真实经验来转换为规划方法。 在这种情况下,学习和规划变得更加相似;它们可能是在两种不同经验来源上运行的相同算法。

将增量规划方法与行动和模型学习相结合是很简单的。规划,行动和模型学习以循环方式相互作用(如8.2节第一个图所示), 每个都产生了另一个需要改进的东西;他们之间不需要或禁止其他互动。最自然的方法是让所有过程异步并行地进行。 如果过程必须共享计算资源,那么几乎可以任意处理除法──任何组织对于手头的任务最方便和最有效。

在本章中,我们已经触及了状态空间规划方法中的许多变化维度。一个方面是更新大小的变化。 更新越小,规划方法的增量就越多。最小的更新包括一步样本更新,如Dyna。另一个重要方面是更新的分布,即搜索聚焦。 优先清扫的重点是最近价值发生变化的状态的前身。在策略轨迹采样侧重于个体在控制其环境时可能遇到的状态或状态-动作对。 这可以允许计算跳过与预测或控制问题无关的状态空间的部分。实时动态规划是价值迭代的策略轨迹采样版本, 说明了该策略相对于传统的基于扫描的策略迭代的一些优势。

规划还可以从相关状态向前聚焦,例如在个体-环境交互期间实际遇到的状态。 最重要的形式是在决策时进行规划,即作为行动选择过程的一部分。在人工智能中研究的经典启发式搜索就是一个例子。 其他示例是推出算法和蒙特卡洛树搜索,它们受益于在线,增量,基于样本的价值评估和策略改进。

8.13 第一部分总结:维度

本章总结了本书的第一部分。在其中,我们试图将强化学习不是作为单个方法的集合,而是作为跨越方法的一组连贯的思想。 每个想法都可以被视为方法变化的维度。这组维度跨越了大量可能的方法。 通过在维度层面探索这个空间,我们希望获得最广泛和最持久的理解。 在本节中,我们使用方法空间中维度的概念来概括本书到目前为止开发的强化学习的观点。

到目前为止,我们在本书中探讨的所有方法都有三个共同的主要观点:首先,它们都试图估计价值函数; 第二,它们都通过沿实际或可能的状态轨迹备份值来运行;第三,它们都遵循广义策略迭代(GPI)的一般策略, 这意味着它们保持近似价值函数和近似策略,并且它们不断尝试在另一个的基础上改进每个策略。 这三个想法是本书所涉及主题的核心。我们建议价值函数,备份价值更新和GPI是强有力的组织原则, 可能与任何智能模型相关,无论是人工还是自然。

图8.11显示了方法变化的两个最重要的维度。这些维度与用于改进价值函数的更新类型有关。 水平维度是它们是样本更新(基于样本轨迹)还是预期更新(基于可能轨迹的分布)。 预期的更新需要分布模型,而样本更新只需要样本模型,或者可以根据实际经验完成,根本没有模型(变动的另一个维度)。 图8.11的垂直维度对应于更新的深度,即对应的自举(bootstrapping)程度。 在空间的四个角中有三个是估算价值的三种主要方法:动态规划,TD和蒙特卡洛。 沿着空间的左边缘是样本更新方法,从一步TD更新到完全回报蒙特卡洛更新。 在这些之间是包含基于n步更新的方法的谱 (在第12章中,我们将其扩展为n步更新的混合,例如由资格迹实现的 \(\lambda\) -更新)。

_images/figure-8.11.png

图8.11:通过强化学习方法的空间切片,突出显示本书第一部分探讨的两个最重要的维度:更新的深度和宽度。

动态规划方法显示在空间的最右上角,因为它们涉及一步预期的更新。 右下角是预期更新的极端情况,它们一直运行到终止状态(或者,在持续的任务中,直到折扣将任何进一步奖励的贡献减少到可忽略的水平)。 这是穷举搜索的情况。沿着这个维度的中间方法包括启发式搜索和相关方法,这些方法可能有选择地搜索和更新到有限的深度。 还存在沿水平维度中间的方法。这些方法包括混合预期更新和样本更新的方法,以及在单个更新中混合样本和分布的方法的可能性。 填充正方形的内部表示所有这些中间方法的空间。

我们在本书中强调的第三个方面是在策略和离策略方法之间的二元区分。 在前一种情况下,个体学习其当前遵循的策略的价值函数, 而在后一种情况下,它学习不同策略的策略价值函数,通常是个体当前认为最好的策略。 由于需要探索,策略生成行为通常与当前认为最佳的行为不同。该第三维可能被视为垂直于图8.11中页面的平面。

除了刚才讨论的三个维度之外,我们在整本书中还发现了许多其他方面:

回报的定义 任务是回合的还是持续的,折扣的还是未折扣的?

动作价值、状态价值与状态后(afterstate)价值 应该估计什么样的价值?如果仅估计状态价值,则动作选择需要模型或单独的策略(如在演员-评论家方法中)。

动作选择/探索 如何选择行动以确保在探索和利用之间进行适当的权衡?我们只考虑了最简单的方法: \(\varepsilon\) -贪婪,价值的乐观初始化,soft-max和上限置信度。

同步与异步 所有状态的更新是同时执行还是按某种顺序逐个执行?

真实与模拟 应该根据实际经验或模拟经验进行更新吗?如果两者兼而有之,各应该有多少?

更新的位置 应更新哪些状态或状态-行动对?不基于模型方法只能选择实际遇到的状态和状态-动作对, 但基于模型的方法可以任意选择。这里有很多种可能性。

更新时间 是否应该在选择动作时进行更新,或者仅在事后进行更新?

更新的内存 需要保留更新值多长时间?它们应该永久保留,还是仅在计算动作选择时保留,如启发式搜索?

当然,这些方面既不详尽也不相互排斥。各个算法在许多其他方面也有所不同,许多算法存在于几个维度的几个地方。 例如,Dyna方法使用真实和模拟经验来影响相同的价值函数。 保持以不同方式或通过不同状态和动作表示计算的多个价值函数也是完全合理的。 然而,这些维度确实构成了一套连贯的思想,用于描述和探索广泛的可能方法。

这里没有提到的最重要的维度,也没有在本书的第一部分中介绍,是函数逼近的维度。 函数逼近可以被视为可能性的正交,范围从一个极端的表格方法到状态聚合,各种线性方法,然后是一组不同的非线性方法。 第二部分探讨了这个方面。

书目和历史评论

8.1 这里提出的规划和学习的总体观点已经逐渐发展,部分由作者提出 (Sutton,1990,1991a,1991b;Barto,Bradtke和Singh,1991,1995;Sutton和Pinette,1985;Sutton和Barto,1981b); 它受到Agre和Chapman(1990; Agre 1988),Bertsekas和Tsitsiklis(1989),Singh(1993) 以及其他人的强烈影响。作者也受到潜在学习的心理学研究(Tolman,1932)和思想本质的心理学观点的强烈影响 (例如,Galanter和Gerstenhaber,1956; Craik,1943;Campbell,1960; Dennett,1978)。 在本书的第三部分中,第14.6节将基于模型和不基于模型的方法与学习和行为的心理学理论联系起来, 第15.11节讨论了关于大脑如何实现这些类型的方法的想法。

8.2 术语 直接间接,我们用来描述不同类型的强化学习,来自自适应控制文献(例如,Goodwin和Sin,1984), 在这些文献中,它们被用来做出同样的区分。术语 系统识别 用于我们称之为模型学习的自适应控制 (例如,Goodwin和Sin,1984; Ljung和S̈oderstrom,1983; Young,1984)。 Dyna架构应归功于Sutton(1990),本节和下一节的结果均基于那里报道的结果。 Barto and Singh(1990)考虑比较直接和间接强化学习方法的一些问题。 早期的工作将Dyna扩展到线性函数逼近(第9.4节),这些由Sutton,Szepesv́ari,Geramifard和Bowling(2008), 以及Parr,Li,Taylor,Painter-Wakefield和Littman(2008)完成。

8.3 已经有一些基于模型的强化学习的工作,将探索奖金和乐观初始化的概念理解为其逻辑极端, 其中所有未完全探索的选择被假定为最大奖励,并且计算最佳路径以测试它们。 Kearns和Singh的 \(E^3\) 算法(2002)以及Brafman和Tennenholtz(2003)的R-max算法 保证在状态和动作的数量上找到时间多项式的近似最优解。 对于实际算法来说,这通常太慢,但在最坏的情况下可能是最好的。

8.4 Moore和Atkeson(1993)以及Peng和Williams(1993)同时并独立地卡发了优先扫描。 第170页的方框中的结果归于Peng and Williams(1993)。第171页的方框中的结果归Moore和Atkeson所有。 该领域的关键后续工作包括McMahan和Gordon(2005)以及van Seijen和Sutton(2013)。

8.5 本节受Singh(1993)实验的强烈影响。

8.6-7 轨迹采样从一开始就隐含地是强化学习的一部分, 但Barto,Bradtke和Singh(1995)在引入RTDP时最明确地强调了这一点。 他们认识到Korf(1990) 学习实时 \(A^*\)\(\text{LRTA}^*\))算法是一种异步DP算法, 适用于随机问题以及Korf关注的确定性问题。除了 \(\text{LRTA}^*\) 之外, RTDP还包括在执行动作之间的时间间隔内更新许多状态价值的选项。 Barto等人(1995)通过将Korf(1990)的 \(\text{LRTA}^*\) 收敛证明 与Bertsekas(1982)(Bertsekas和Tsitsiklis,1989)的结果相结合,证明了这里描述的收敛结果, 确保在未折扣的案例中收敛异步DP用于随机最短路径问题。将模型学习与RTDP相结合称为 自适应 RTDP, 也由Barto等人(1995)提出,并由Barto(2011)讨论。

8.9 为进一步阅读启发式搜索,鼓励读者查阅Russell和Norvig(2009)和Korf(1988)等文本和调查。 Peng和Williams(1993)探讨了更新的前瞻性重点,正如本节所述。

8.10 Abramson(1990)的预期结果模型是一种应用于双人游戏的Rollout算法,其中两个模拟玩家的游戏都是随机的。 他认为,即使是随机游戏,它也是一种“强大的启发式”,“精确,准确,易于估计,可以高度计算,并且与领域无关。” Tesauro和Galperin(1997)证明了Rollout算法在改善十五子棋程序游戏方面的有效性, 通过下出具有不同随机生成的掷骰子序列的位置,采用术语“Rollout”来评估十五子棋位置。 Bertsekas,Tsitsiklis和Wu(1997)研究了应用于组合优化问题的Rollout算法, Bertsekas(2013)调查了它们在离散确定性优化问题中的应用,并指出它们“通常令人惊讶地有效”。

8.11 MCT的核心思想由Coulom(2006)和Kocsis和Szepesv́ari(2006)介绍。 他们建立在先前使用蒙特卡洛规划算法的研究基础上,这些算法由这些作者审阅。 Browne,Powley,Whitehouse,Lucas,Cowling,Rohlfshagen,Tavener,Perez,Samothrakis和Colton(2012)是对MCTS方法及其应用的极好调查。 David Silver对本节中的想法和演示做出了贡献。

[1]Dyna-Q+个体也以另外两种方式改变。首先,允许在之前框中的表格Dyna-Q算法的规划步骤(f)中 考虑从一个状态以前从未尝试过的动作。其次,这种行为的初始模型是,他们会以零回报率回到同一个状态。
[2]这有一些有趣的例外(参见,例如,Pearl,1984)。

第二部分 近似解决方法

在本书的第二部分,我们扩展了第一部分中介绍的表格方法,以适用于任意大的状态空间的问题。 在我们想要应用强化学习的许多任务中,状态空间是组合的和巨大的;例如,可能的相机图像的数量远大于宇宙中的原子数。 在这种情况下,即使在无限时间和数据的限制下,我们也不能期望找到最优策略或最优值函数; 我们的目标是使用有限的计算资源找到一个好的近似解决方案。在本书的这一部分,我们探讨了这种近似的解决方法。

大状态空间的问题不仅仅是大表格所需的内存,而是准确填充它们所需的时间和数据。 在我们的许多目标任务中,几乎所遇到的每个状态都将永远不会被看到。 为了在这种状态下作出明智的决定,有必要从以前的经验中推广出一些与现有状态相似的不同状态。 换句话说,关键问题是 泛化。如何有效地推广有限状态空间子集的经验,以便在更大的子集上产生良好的近似?

幸运的是,已经广泛研究了来自实例的泛化,并且我们不需要发明用于强化学习的全新方法。 在某种程度上,我们只需要将强化学习方法与现有的泛化方法相结合。 我们需要的泛化类型通常称为 函数近似,因为它从所需函数(例如,价值函数)中获取示例并尝试从它们推广以构造整个函数的近似。 函数逼近是监督学习的一个实例,是机器学习,人工神经网络,模式识别和统计曲线拟合中研究的主要课题。 理论上,在这些领域中研究的任何方法都可以成为强化学习算法中的函数近似器的作用,尽管在实践中,某些方法比其他方法更容易适应这个角色。

具有函数近似的强化学习涉及许多在常规监督学习中通常不会出现的新问题,例如非平稳性,自举和延迟目标。 我们在本部分的五章中先后介绍了这些问题和其他问题。最初,我们将注意力限制在在策略训练上, 处理在第9章中的预测案例,其中给出了策略并且仅对其价值函数进行了近似, 然后在第10章中讨论了控制案例,其中找到了最优策略的近似值。在第11章中讨论了具有函数近似的离策略学习的挑战性问题。 在这三章的每一章中,我们将不得不回到第一原则并重新审视学习的目标,以考虑函数近似。 第12章介绍和分析了 资格迹 的算法机制,在很多情况下,它大大提高了多步强化学习方法的计算性能。 本部分的最后一章探讨了一种不同的控制方法 - 策略梯度方法,它直接近似最优策略,并且永远不需要形成近似价值函数 (如果它们确实接近价值函数和策略,它们可能会更加有效)。

第9章 在策略预测近似方法

在本章中,我们开始研究强化学习中的函数近似,考虑其在从在策略数据中估计状态-价值函数的用途, 即从使用已知策略 \(\pi\) 生成的经验近似 \(v_\pi\)。 本章的新颖之处在于,近似值函数不是用表格表示, 而表示成是具有权重向量 \(\mathbf{w} \in \mathbb{R}^{d}\) 的参数化函数形式。 我们将权重向量 \(\mathbf{w}\) 的状态 \(s\) 的近似值写作 \(\hat{v}(s,\mathbf{w})\approx v_{\pi}(s)\)。 例如,\(\hat{v}\) 可能是状态特征中的线性函数,\(\mathbf{w}\) 是特征权重的向量。 更一般地,\(\hat{v}\) 可以是由多层人工神经网络计算的函数,其中 \(\mathbf{w}\) 是所有层中的连接权重的向量。 通过调整权重,网络可以实现各种不同函数中的任何一种。 或者 \(\hat{v}\) 可以是由决策树计算的函数,其中 \(\mathbf{w}\) 是定义树的分裂点和叶值的所有数字。 通常,权重的数量(\(\mathbf{w}\) 的维数)远小于状态的数量(\(d\ll|\mathcal{S}|\)), 并且改变一个权重会改变许多状态的估计值。因此,当更新单个状态时,更改会从该状态推广到许多其他状态的值。 这种 泛化 使得学习可能更强大,但也可能更难以管理和理解。

也许令人惊讶的是,将强化学习扩展到函数近似也使其适用于部分可观察到的问题,其中个体无法获得完整状态。 如果 \(\hat{v}\) 的参数化函数形式不允许估计值依赖于状态的某些方面,那么就好像这些方面是不可观察的。 实际上,本书这一部分中使用函数近似的方法的所有理论结果同样适用于部分可观察的情况。 然而,函数近似不能做的是用过去观察的记忆来增强状态表示。第17.3节简要讨论了一些可能的进一步扩展。

9.1 价值函数近似

本书中涉及的所有预测方法都被描述为对估计价值函数的更新,该函数将其在特定状态下的值转换为该状态的“备份值”或 更新目标。 让我们使用符号 \(s \mapsto u\) 的表示单独更新,其中 \(s\) 是更新的状态, \(u\)\(s\) 的估计价值转移到的更新目标。 例如,价值预测的蒙特卡洛更新是 \(S_{t} \mapsto G_{t}\), TD(0)更新是 \(S_{t} \mapsto R_{t+1}+\gamma \hat{v}(S_{t+1}, \mathbf{w}_{t})\), n步TD更新为 \(S_{t} \mapsto G_{t:t+n}\)。在DP(动态规划)中策略评估更新, \(s\mapsto\mathbb{E}_{\pi}\left[R_{t+1}+\gamma\hat{v}(S_{t+1},\mathbf{w}_{t})|S_{t}=s\right]\), 任意状态 \(s\) 被更新,而在其他情况下,实际经验中遇到的状态 \(S_t\) 被更新。

将每个更新解释为指定价值函数的所需输入-输出行为的示例是很自然的。 从某种意义上说,更新 \(s \mapsto u\) 表示状态 \(s\) 的估计值应更像更新目标 \(u\)。 到目前为止,实际的更新是微不足道的:\(s\) 的估计值的表条目已经简单地转移到了 \(u\) 的一小部分, 并且所有其他状态的估计值保持不变。现在,我们允许任意复杂和精致方法来实现更新,并在 \(s\) 处进行更新,以便更改许多其他状态的估计值。 学习以这种方式模拟输入输出示例的机器学习方法称为 监督学习 方法,当输出是像 \(u\) 的数字时,该过程通常称为 函数近似。 函数近似方法期望接收它们试图近似的函数的期望输入-输出行为的示例。 我们使用这些方法进行价值预测,只需将每次更新的 \(s \mapsto u\) 作为训练样例传递给它们。 然后,我们将它们产生的近似函数解释为估计价值函数。

以这种方式将每个更新视为传统的训练示例使我们能够使用任何广泛的现有函数近似方法来进行价值预测。 原则上,我们可以使用任何方法进行监督学习,例如人工神经网络,决策树和各种多元回归。 然而,并非所有函数近似方法都同样适用于强化学习。最复杂的人工神经网络和统计方法都假设一个静态训练集,在其上进行多次传递。 然而,在强化学习中,学习能够在线进行,而个体与其环境或其环境模型进行交互是很重要的。 要做到这一点,需要能够从增量获取的数据中有效学习的方法。 此外,强化学习通常需要函数近似方法能够处理非平稳目标函数(随时间变化的目标函数)。 例如,在基于GPI(广义策略迭代)的控制方法中,我们经常寻求在 \(\pi\) 变化时学习 \(q_\pi\)。 即使策略保持不变,如果训练示例的目标值是通过自举方法(DP和TD学习)生成的,则它们也是非平稳的。 不能轻易处理这种非平稳性的方法不太适合强化学习。

9.2 预测目标(\(\overline{\mathrm{VE}}\)

到目前为止,我们尚未指定明确的预测目标。在表格的情况下,不需要连续测量预测质量,因为学习价值函数可以精确地等于真值函数。 此外,每个状态的学习价值都是分离的──一个状态的更新不受其他影响。 但是通过真正的近似,一个状态的更新会影响许多其他状态,并且不可能使所有状态的值完全正确。 假设我们有比权重更多的状态,所以使一个状态的估计更准确总是意味着让其他的不那么准确。 我们有义务说出我们最关心的状态。 我们必须指定状态分布 \(\mu(s)\geq 0,\sum_{s}\mu(s)=1\),表示我们关心每个状态 \(s\) 中的错误的程度。 通过状态 \(s\) 中的误差,我们指的是近似值 \(\hat{v}(s, \mathbf{w})\) 与 真值 \(v_\pi(s)\) 之间的差的平方。 通过 \(\mu\) 对状态空间加权,我们得到一个自然目标函数,均方误差,表示为 \(\overline{\mathrm{VE}}\)

(1)\[\overline{\mathrm{VE}}(\mathbf{w}) \doteq \sum_{s \in \mathcal{S}} \mu(s)\left[v_{\pi}(s)-\hat{v}(s, \mathbf{w})\right]^{2}\]

该度量的平方根(根 \(\overline{\mathrm{VE}}\))粗略地衡量了近似值与真实值的差异,并且通常用于图中。 通常 \(\mu(s)\) 被选择为 \(s\) 中花费的时间的一部分。 在在策略训练中,这被称为 在策略分布;我们在本章中完全关注这个案例。 在持续任务中,在策略分布是 math:pi 下的固定分布。

回合任务中的在策略分布

在一个回合任务中,在策略分布略有不同,因为它取决于如何选择回合的初始状态。 设 ;math:h(s) 表示回合在每个状态 \(s\) 中开始的概率, \(\eta(s)\) 表示在一个回合中状态 \(s\) 中平均花费的时间步数。 如果回合以 \(s\) 开头,或者如果从之前的状态 \(\overline{s}\) 转换为 \(s\),则花费时间在状态 \(s\) 中:

(2)\[\eta(s)=h(s)+\sum_{\overline{s}} \eta(\overline{s}) \sum_{a} \pi(a | \overline{s}) p(s | \overline{s}, a), \text { 对所有 } s \in \mathcal{S}\]

可以针对预期的访问次数 \(\eta(s)\) 求解该方程组。 然后,在策略分布是每个状态所花费的时间的一小部分,标准化和为一:

(3)\[\mu(s)=\frac{\eta(s)}{\sum_{s^{\prime}} \eta(s^{\prime})}, \quad \text { 对所有 } s \in \mathcal{S}\]

这是没有折扣的自然选择。如果存在折扣(\(\gamma<1\)),则应将其视为终止形式, 这可以简单通过在(9.2)的第二项中包含因子 \(\gamma\) 来完成。

这两种情况,即持续的和回合的,表现相似,但近似时必须在形式分析中单独处理, 正如我们将在本书的这一部分中反复看到的那样。这完成了学习目标的规范。

目前还不完全清楚 \(\overline{\mathrm{VE}}\) 是加强学习的正确性能目标。 请记住,我们的最终目的──我们学习价值函数的原因──是找到更好的策略。 用于此目的的最佳价值函数不一定是最小化 \(\overline{\mathrm{VE}}\) 的最佳值。 然而,目前尚不清楚价值预测的更有用的替代目标是什么。目前,我们将专注于 \(\overline{\mathrm{VE}}\)

\(\overline{\mathrm{VE}}\) 而言,理想的目标是找到一个 全局最优值, 一个权重向量 \(\mathbf{w}^{*}\),对于所有可能的 \(\mathbf{w}\)\(\overline{\mathrm{VE}}(\mathbf{w}^{*})\leq\overline{\mathrm{VE}}(\mathbf{w})\)。 对于诸如线性函数近似器之类的简单函数逼近器,有时可以实现这一目标, 但对于诸如人工神经网络和决策树之类的复杂函数近似器来说很少是可能的。 除此之外,复杂函数近似器可以寻求收敛到 局部最优,一个权重向量 \(\mathbf{w}\), 对于 \(\mathbf{w}^{*}\) 的某些邻域中的所有 \(\mathbf{w}\) 满足 \(\overline{\mathrm{VE}}(\mathbf{w}^{*})\leq\overline{\mathrm{VE}}(\mathbf{w})\)。 虽然这种保证只是稍微让人放心,但对于非线性函数近似器来说,它通常是最好的,而且通常它就足够了。 尽管如此,对于许多对强化学习感兴趣的情况,并不能保证收敛到最佳,甚至在最佳的有界距离内。 事实上,有些方法可能会出现发散,其 \(\overline{\mathrm{VE}}\) 极限趋于无穷。

在前两节中,我们概述了一个框架,用于将价值预测的各种强化学习方法与各种函数近似方法相结合,使用前者的更新为后者生成训练样本。 我们还描述了这些方法可能希望最小化的 \(\overline{\mathrm{VE}}\) 性能测量。 可能的函数近似方法的范围太大以至于不能覆盖所有方法,并且无论如何对其中的大多数方法进行可靠的评估或推荐知之甚少。 必要时,我们只考虑几种可能性。在本章的剩余部分,我们将重点放在基于梯度原理的函数近似方法,特别是线性梯度下降方法上。 我们关注这些方法的部分原因是因为我们认为这些方法特别有前途,因为它们揭示了关键的理论问题,同时也因为它们很简单,而且我们的空间有限。

9.3 随机梯度和半梯度方法

我们现在详细地开发一类用于价值预测中的函数近似的学习方法,这些方法基于随机梯度下降(SGD)。 SGD方法是所有函数近似方法中使用最广泛的方法之一,尤其适用于在线强化学习。

在梯度下降方法中,权重向量是具有固定数量的实值分量的 列向量 \(\mathbf{w} \doteq(w_{1}, w_{2}, \ldots, w_{d})^{\top}\) [1], 近似值函数 \(\hat{v}(s, \mathbf{w})\) 是 所有 \(s\in\mathcal{S}\)\(\mathbf{w}\) 的可微函数。 我们将在一系列离散时间 \(t = 0,1,2,3,\dots,\) 的每一个中更新 \(\mathbf{w}\), 因此我们需要符号 \(\mathbf{w}_t\) 表示每一步的权重向量。 现在,让我们假设,在每一步,我们都观察到一个新的样例 \(S_{t} \mapsto v_{\pi}\left(S_{t}\right)\) 由一个(可能是随机选择的)状态 \(S_t\) 和它在策略下的真实值组成。 这些状态可能是与环境交互的连续状态,但是现在我们不这么认为。 即使我们给出了每个 \(S_t\) 的精确而正确的价值 \(v_{\pi}\left(S_{t}\right)\), 这仍然存在一个难题,因为我们的函数近似器具有有限的资源并因此具有有限的进精度(resolution)。 特别是,通常没有 \(\mathbf{w}\) 能够使所有状态,甚至所有样例都完全正确。 此外,我们必须推广到未出现在示例中的所有其他状态。

我们假设状态出现在具有相同分布 \(\mu\) 的样例中, 我们试图通过它来最小化由(9.1)给出的 \(\overline{\mathrm{VE}}\)。 在这种情况下,一个好的策略是尽量减少观察到的样例的错误。 随机梯度下降 (SGD)方法通过在每个样例之后将权重向量向最大程度地减少该示例中的误差的方向少量调整来实现此目的:

\[\begin{split}\begin{aligned} \mathbf{w}_{t+1} & \doteq \mathbf{w}_{t}-\frac{1}{2} \alpha \nabla\left[v_{\pi}\left(S_{t}\right)-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)\right]^{2} & \text{(9.4)} \\ &=\mathbf{w}_{t}+\alpha\left[v_{\pi}\left(S_{t}\right)-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)\right] \nabla \hat{v}\left(S_{t}, \mathbf{w}_{t}\right) & \text{(9.5)} \end{aligned}\end{split}\]

其中 \(\alpha\) 是正步长参数,对于作为向量函数(这里是 \(\mathbf{w}\))的 任何标量表达式 \(f(\mathbf{w})\)\(\nabla f(\mathbf{w})\) 定义为关于向量分量 表达式的偏导数的列向量,向量分量为:

(4)\[\nabla f(\mathbf{w}) \doteq\left(\frac{\partial f(\mathbf{w})}{\partial w_{1}}, \frac{\partial f(\mathbf{w})}{\partial w_{2}}, \dots, \frac{\partial f(\mathbf{w})}{\partial w_{d}}\right)^{\top}\]

该导数向量是 math:f 相对于 \(\mathbf{w}\) 的梯度。SGD方法是“梯度下降”方法, 因为 \(\mathbf{w}_t\) 中的整个步长与示例的平方误差(9.4)的负梯度成比例。这是误差下降最快的方向。 当像这儿仅在单个可能是随机选择的样例上完成更新时,梯度下降方法被称为“随机”。 在许多样例中,采取小步,总体效果是最小化如VE的平均性能测量。

可能不会立即明白为什么SGD在梯度方向上只迈出一小步。难道我们不能一直朝这个方向移动并完全消除样例中的误差吗? 在许多情况下,这可以做到,但通常是不可取的。请记住,我们不会寻找或期望找到一个对所有状态都没有误差的价值函数, 而只是一个平衡不同状态误差的近似值。如果我们在一个步骤中完全纠正每个样例,那么我们就找不到这样的平衡。 事实上,SGD方法的收敛结果假设 \(\alpha\) 随着时间的推移而减少。 如果它以满足标准随机近似条件(2.7)的方式减小,则SGD方法(9.5)保证收敛到局部最优。

我们现在转向第 \(t\) 个训练样例 \(S_{t} \mapsto U_{t}\) 的目标输出 (此处表示为 \(U_{t}\in\mathbb{R}\))不是真值 \(v_\pi(S_t)\) 而是一些(可能是随机的)近似的情况。 例如,\(U_{t}\) 可能是 \(v_\pi(S_t)\) 的噪声损坏版本, 或者它可能是使用上一节中提到的 \(\hat{v}\) 的自举目标之一。 在这些情况下,我们无法执行精确更新(9.5),因为 \(v_\pi(S_t)\) 是未知的, 但我们可以通过用 \(U_t\) 代替 \(v_\pi(S_t)\) 来近似它。 这产生了以下用于状态价值预测的一般SGD方法:

(5)\[\mathbf{w}_{t+1} \doteq \mathbf{w}_{t}+\alpha\left[U_{t}-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)\right] \nabla \hat{v}\left(S_{t}, \mathbf{w}_{t}\right)\]

如果 \(U_t\) 是无偏估计,即,如果对于每个 \(t\)\(\mathbb{E}\left[U_{t} | S_{t}=s\right]=v_{\pi}(S_{t})\), 则 \(\mathbf{w}_t\) 保证对于减小的 \(\alpha\) 在通常的随机近似条件(2.7)下收敛到局部最优值。

例如,假设示例中的状态是通过使用策略 \(\pi\) 与环境交互(或模拟交互)生成的状态。 因为状态的真实值是跟随它的回报的预期值, 所以蒙特卡洛目标 \(U_{t}\doteq G_{t}\) 根据定义是 \(v_\pi(S_t)\) 的无偏估计。 通过这种选择,一般SGD方法(9.7)收敛于 \(v_\pi(S_t)\) 的局部最佳近似。 因此,蒙特卡洛状态价值预测的梯度下降版本保证找到局部最优解。完整算法的伪代码如下框所示。

梯度蒙特卡罗算法估计 \(\hat{v} \approx v_{\pi}\)

输入:要评估的策略 \(\pi\)

输入:可微分函数 \(\hat{v} : \mathcal{S} \times \mathbb{R}^{d} \rightarrow \mathbb{R}\)

算法参数:步长 \(\alpha>0\)

任意初始化价值函数权重 \(\mathbf{w} \in \mathbb{R}^{d}\) (例如,\(\mathbf{w}=\mathbf{0}\)

一直循环(对每一个回合):

使用 \(\pi\) 生成一个回合 \(S_{0}, A_{0}, R_{1}, S_{1}, A_{1}, \ldots, R_{T}, S_{T}\)

对回合的每一步循环,\(t=0,1, \ldots, T-1\)

\(\mathbf{w} \leftarrow \mathbf{w}+\alpha\left[G_{t}-\hat{v}(S_{t}, \mathbf{w})\right] \nabla \hat{v}(S_{t}, \mathbf{w})\)

如果将 \(v_\pi(S_t)\) 的自举估计用作(9.7)中的目标 \(U_t\),则不能获得相同的保证。 自举目标如n步回报 \(G_{t : t+n}\) 或DP目标 \(\sum_{a,s^{\prime},r}\pi(a | S_{t}) p(s^{\prime}, r | S_{t}, a)\left[r+\gamma \hat{v}(s^{\prime}, \mathbf{w}_{t})\right]\) 全部依赖关于权重向量 \(\mathbf{w}_t\) 的当前值,这意味着它们将被偏置并且它们将不会产生真正的梯度下降方法。 一种看待这一点的方法是从(9.4)到(9.5)的关键步骤依赖于目标独立于 \(\mathbf{w}_t\)。 如果使用自举估计代替 \(v_\pi(S_t)\),则该步骤无效。自举方法实际上不是真正的梯度下降的实例(Barnard,1993)。 它们考虑了改变权重向量 \(\mathbf{w}_t\) 对估计的影响,但忽略了它对目标的影响。 它们只包括渐变的一部分,因此,我们将它们称为 半梯度方法

尽管半梯度(自举)方法不像梯度方法那样稳健地收敛,但它们在重要情况下可靠地收敛,例如下一节中讨论的线性情况。 而且,它们提供了重要的优点,使它们通常是明显优选的。 这样做的一个原因是它们通常能够显着加快学习速度,正如我们在第6章和第7章中看到的那样。 另一个原因是它们使学习能够连续和在线,而无需等待回合的结束。这使它们能够用于持续的问题并提供计算优势。 一种原型半梯度方法是半梯度TD(0), 其使用 \(U_{t} \doteq R_{t+1}+\gamma \hat{v}(S_{t+1}, \mathbf{w})\) 作为其目标。 下面的框中给出了该方法的完整伪代码。

半梯度TD(0)估计 \(\hat{v} \approx v_{\pi}\)

输入:要评估的策略 \(\pi\)

输入:可微分函数 \(\hat{v} : \mathcal{S}^{+} \times \mathbb{R}^{d} \rightarrow \mathbb{R}\) 使得 \(\hat{v}(\text{终止}, \cdot)=0\)

算法参数:步长 \(\alpha>0\)

任意初始化价值函数权重 \(\mathbf{w} \in \mathbb{R}^{d}\) (例如,\(\mathbf{w}=\mathbf{0}\)

一直循环(对每一个回合):

初始化 \(S\)

对回合的每一步循环:

选择 \(A \sim \pi(\cdot | S)\)

采取动作 \(A\),观察 \(R\)\(S^{\prime}\)

\(\mathbf{w} \leftarrow \mathbf{w}+\alpha\left[R+\gamma \hat{v}\left(S^{\prime}, \mathbf{w}\right)-\hat{v}(S, \mathbf{w})\right] \nabla \hat{v}(S, \mathbf{w})\)

\(S \leftarrow S^{\prime}\)

直到 \(S\) 终止

状态 聚合 是泛化函数近似的简单形式,其中状态被分组在一起,每个组具有一个估计值(权重向量 \(\mathbf{w}\) 的一个分量)。 状态的值被估计为其组的分量,并且当状态被更新时,仅更新该分量。状态聚合是SGD(9.7)的特例, 其中梯度 \(\nabla \hat{v}(S_{t}, \mathbf{w}_{t})\) 对于 \(S_t\) 的分量为1,对于其他成分为0。

例9.1:1000状态随机行走的状态聚合 考虑1000状态版本的随机行走任务(示例6.2和7.1)。 状态从1到1000,从左到右编号,并且所有回合在中心附近状态500开始。 状态转换从当前状态到其左边的100个邻近状态之一,或者其左边的100个邻近状态之一,都具有相同的概率。 当然,如果当前状态接近边缘,那么在它的那一侧可能少于100个邻居。 在这种情况下,进入那些丢失的邻居的所有概率都会进入在那一侧终止的概率 (因此,状态1有0.5的机会在左边终止,而状态950有0.25的机会在右侧终止)。 像往常一样,左边的终止产生 \(-1\) 的奖励,右边的终止产生 \(+1\) 的奖励。 所有其他过渡奖励都为零。我们在本节中将此任务用作运行示例。

_images/figure-9.1.png

图9.1: 使用梯度蒙特卡罗算法对1000状态随机行走任务进行状态聚合的函数近似。

图9.1显示了此任务的真值函数 \(v_\pi\)。它几乎是一条直线,每端最后100个状态向水平方向略微弯曲。 图还显示了梯度蒙特卡罗算法通过状态聚合学习的最终近似价值函数, 此状态聚合具有步长为 \(\alpha=2×10^{}-5\) 的100,000个回合。 对于状态聚合,1000个状态被分成10组,每组100个状态(即,状态1-100是一组,状态101-200是另一组,等等)。 图中所示的阶梯效应是典型的状态聚合;在每个组中,近似值是恒定的,并且它从一个组突然改变到下一个组。 这些近似值接近 \(\overline{\mathrm{VE}}\) 的全局最小值(9.1)。

通过参考该任务的状态分布 \(\mu\),可以最好地理解近似价值的一些细节,如图的下部所示,标度在右侧。 位于中心的状态500是每个回合的第一个状态,但很少再次访问。平均而言,约有1.37%的时间步花费在开始状态。 从开始状态开始一步到达的状态是访问次数最多的状态,其中每个步骤花费大约0.17%的时间步。 从那里 \(\mu\) 几乎线性地下降,在极端状态1和1000处达到约0.0147%。 分布的最明显效果是在最左边的组上,其值明显偏移到高于组内状态的真实值的未加权平均值,以及在最右边的小组,其价值明显向低的方向移动。 这是由于这些区域中的状态在权重上具有最大的不对称性 \(\mu\)。 例如,在最左边的组中,状态100的加权比状态1强3倍以上。因此,对组的估计偏向于状态100的真实值,其高于状态1的真实值。

9.4 线性方法

函数近似的一个最重要的特殊情况是其中近似函数 \(\hat{v}(\cdot, \mathbf{w})\) 是 权重向量 \(\mathbf{w}\) 的线性函数。对应于每个状态 \(s\),存在实值向量 \(\mathbf{x}(s) \doteq(x_{1}(s), x_{2}(s), \ldots, x_{d}(s))^{\top}\), 具有与 \(\mathbf{w}\) 相同数量的分量。 线性方法通过 \(\mathbf{w}\)\(\mathbf{x}(s)\) 之间的内积近似状态值函数:

(6)\[\hat{v}(s, \mathbf{w}) \doteq \mathbf{w}^{\top} \mathbf{x}(s) \doteq \sum_{i=1}^{d} w_{i} x_{i}(s)\]

在这种情况下,近似价值函数被称为 权重线性(linear in the weights),或简单地称为 线性

向量 \(\mathbf{x}(s)\) 被称为表示状态 \(s\)特征向量\(\mathbf{x}(s)\) 的每个分量 \(x_{i}(s)\) 是 函数 \(x_{i}:\mathcal{S}\rightarrow\mathbb{R}\) 的值。 我们将一个 特征 视为这些函数之一的整体,我们将状态 \(s\) 的一个特征。 对于线性方法,特征是 基函数,因为它们形成近似函数集的线性基。 构造表示状态的 \(d\) 维特征向量与选择一组 \(d\) 基函数相同。 可以用许多不同的方式定义特征;我们将在下一节中介绍几种可能。

很自然地可以使用SGD更新处理线性函数近似。在这种情况下,近似价值函数相对于 \(\mathbf{w}\) 的梯度是

\[\nabla \hat{v}(s, \mathbf{w})=\mathbf{x}(s)\]

因此,在线性情况下,一般SGD更新(9.7)简化为一种特别简单的形式:

\[\mathbf{w}_{t+1} \doteq \mathbf{w}_{t}+\alpha\left[U_{t}-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)\right] \mathbf{x}\left(S_{t}\right)\]

因为它非常简单,线性SGD情况是最有利于数学分析的情况之一。 几乎所有类型的学习系统的有用收敛结果都是线性(或简单)函数近似方法。

特别是,在线性情况下,只有一个最优(或者,在简并情况下,一组同样良好的最优), 因此任何保证收敛到或接近局部最优的方法都会自动保证收敛到或接近全局最优。 例如,如果根据通常条件 \(\alpha\) 随着时间减小, 则在前一部分中呈现的梯度蒙特卡罗算法收敛于线性函数近似下的 \(\overline{\mathrm{VE}}\) 的全局最优。

上一节中介绍的半梯度TD(0)算法也收敛于线性函数近似,但这并不符合SGD的一般结果;一个单独的定理是必要的。 收敛到的权重向量也不是全局最优值,而是接近局部最优值的点。更详细地考虑这一重要案例是有用的,特别是对于持续情况。 每个时间 \(t\) 的更新是

\[\begin{split}\begin{aligned} \mathbf{w}_{t+1} & \doteq \mathbf{w}_{t}+\alpha\left(R_{t+1}+\gamma \mathbf{w}_{t}^{\top} \mathbf{x}_{t+1}-\mathbf{w}_{t}^{\top} \mathbf{x}_{t}\right) \mathbf{x}_{t} & \text{(9.9)} \\ &=\mathbf{w}_{t}+\alpha\left(R_{t+1} \mathbf{x}_{t}-\mathbf{x}_{t}\left(\mathbf{x}_{t}-\gamma \mathbf{x}_{t+1}\right)^{\top} \mathbf{w}_{t}\right) \end{aligned}\end{split}\]

这里我们使用了符号缩写 \(\mathbf{x}_{t}=\mathbf{x}\left(S_{t}\right)\)。 一旦系统达到稳定状态,对于任何给定的 \(\mathbf{w}_t\),下一个权重向量的期望可以写成:

(7)\[\mathbb{E}\left[\mathbf{w}_{t+1} | \mathbf{w}_{t}\right]=\mathbf{w}_{t}+\alpha\left(\mathbf{b}-\mathbf{A} \mathbf{w}_{t}\right)\]

其中

(8)\[\mathbf{b} \doteq \mathbb{E}\left[R_{t+1} \mathbf{x}_{t}\right] \in \mathbb{R}^{d} \quad \text { 和 } \quad \mathbf{A} \doteq \mathbb{E}\left[\mathbf{x}_{t}\left(\mathbf{x}_{t}-\gamma \mathbf{x}_{t+1}\right)^{\top}\right] \in \mathbb{R}^{d} \times \mathbb{R}^{d}\]

从(9.10)可以清楚地看出,如果系统收敛,它必须收敛到权重向量 \(\mathbf{W}_{\mathrm{TD}}\)

\[\begin{split}\begin{aligned} \mathbf{b}-\mathbf{A} \mathbf{w}_{\mathrm{TD}} &=\mathbf{0} \\ \Rightarrow \mathbf{b}&=\mathbf{A} \mathbf{w}_{\mathrm{TD}} \\ \Rightarrow \mathbf{w}_{\mathrm{TD}} &\doteq \mathbf{A}^{-1} \mathbf{b} & \text{(9.12)} \end{aligned}\end{split}\]

该数量称为 TD固定点。事实上,线性半梯度TD(0)收敛到这一点。在框中给出了一些证明其收敛性的理论,以及上述逆的存在性。

线性TD(0)的收敛性证明

什么属性确保线性TD(0)算法(9.9)的收敛?通过重写(9.10)可以获得一些见解

(9)\[\mathbb{E}\left[\mathbf{w}_{t+1} | \mathbf{w}_{t}\right]=(\mathbf{I}-\alpha \mathbf{A}) \mathbf{w}_{t}+\alpha \mathbf{b}\]

注意到矩阵 \(\mathbf{A}\) 乘以权重向量 \(\mathbf{w}_t\) 而不是 \(\mathbf{b}\); 只有 \(\mathbf{A}\) 对收敛很重要。 为了发展直觉,考虑 \(\mathbf{A}\) 是对角矩阵的特殊情况。如果任何对角元素为负, 则 \(\mathbf{I}-\alpha \mathbf{A}\) 的对应对角元素将大于1, 并且 \(\mathbf{w}_t\) 的相应分量将被放大,如果继续则将导致发散。 另一方面,如果 \(\mathbf{A}\) 的对角线元素都是正的,那么可以选择 \(\alpha\) 小于它们中的最大值, 使得 \(\mathbf{I}-\alpha \mathbf{A}\) 是对角矩阵,所有对角线元素在0和1之间。 在这种情况下,第一个更新期限趋于缩小 \(\mathbf{w}_t\),并确保稳定性。 通常,无论何时 \(\mathbf{A}\)正定 时, 意味着对于任何实数向量 \(y \neq 0\)\(y^{\top} \mathbf{A} y>0\)\(\mathbf{w}_t\) 将减小到零。 正定性也确保存在逆 \(\mathbf{A}^{-1}\)

对于线性TD(0),在 \(\gamma<1\) 的连续情况下,\(\mathbf{A}\) 矩阵(9.11)可以写为:

\[\begin{split}\begin{aligned} \mathbf{A} &=\sum_{s} \mu(s) \sum_{a} \pi(a | s) \sum_{r, s^{\prime}} p\left(r, s^{\prime} | s, a\right) \mathbf{x}(s)\left(\mathbf{x}(s)-\gamma \mathbf{x}\left(s^{\prime}\right)\right)^{\top} \\ &=\sum_{s} \mu(s) \sum_{s^{\prime}} p\left(s^{\prime} | s\right) \mathbf{x}(s)\left(\mathbf{x}(s)-\gamma \mathbf{x}\left(s^{\prime}\right)\right)^{\top} \\ &=\sum_{s} \mu(s) \mathbf{x}(s)\left(\mathbf{x}(s)-\gamma \sum_{s^{\prime}} p\left(s^{\prime} | s\right) \mathbf{x}\left(s^{\prime}\right)\right)^{\top} \\ &=\mathbf{X}^{\top} \mathbf{D}(\mathbf{I}-\gamma \mathbf{P}) \mathbf{X} \end{aligned}\end{split}\]

其中 \(\mu(s)\)\(\pi\) 下的平稳分布, \(p\left(s^{\prime} | s\right)\) 是在策略 \(\pi\) 下从 \(s\) 过渡到 \(s^{\prime}\) 的概率, \(\mathbf{P}\) 是这些概率的 \(|\mathcal{S}|\times|\mathcal{S}|\) 矩阵, \(\mathbf{D}\)\(|\mathcal{S}|\times|\mathcal{S}|\) 对角线矩阵,其对角线上有 \(\mu(s)\)\(\mathbf{X}\)\(|\mathcal{S}|\times d\) 矩阵,其中 \(\mathbf{x}(s)\) 为行。 从这里可以清楚地看出,内矩阵 \(\mathbf{D}(\mathbf{I}-\gamma \mathbf{P})\) 是确定 \(\mathbf{A}\) 的正定性的关键。

对于这种形式的关键矩阵(key matrix),如果所有列的总和为非负数,则确定是正定的。 Sutton(1988,p.27)基于两个先前建立的定理证明了这一点。 一个定理说,当且仅当对称矩阵 \(\mathbf{S}=\mathbf{M}+\mathbf{M}^{\top}\) 是正定时, 任何矩阵 \(\mathbf{M}\) 都是正定的(Sutton 1988,附录)。 第二个定理说任何对称实矩阵 \(\mathbf{S}\) 是正定的, 如果它的所有对角线条目都是正的并且大于相应的非对角线条目的绝对值之和(Varga 1962,第23页)。 对于我们的关键矩阵 \(\mathbf{D}(\mathbf{I}-\gamma \mathbf{P})\), 对角线条目是正的,非对角线条目是负的,所以我们要显示的是每个行和加上相应的列和是正的。 行和都是正数,因为 \(\mathbf{P}\) 是一个随机矩阵且 \(\gamma<1\)。因此,它只是表明列和是非负的。 注意,任何矩阵 \(\mathbf{M}\) 的列和的行向量可以写为 \(\mathbf{1}^{\top} \mathbf{M}\), 其中 \(\mathbf{1}\) 是所有分量等于1的列向量。 令 \(\mathbf{\mu}\) 表示 \(\mu(s)\)\(|\mathcal{S}|\) -向量, 其中 \(\mathbf{\mu}=\mathbf{P}^{\top} \mathbf{\mu}\),因为 \(\mu\) 是固定分布。 然后,我们的关键矩阵的列总和是:

\[\begin{split}\begin{aligned} \mathbf{1}^{\top} \mathbf{D}(\mathbf{I}-\gamma \mathbf{P}) &=\boldsymbol{\mu}^{\top}(\mathbf{I}-\gamma \mathbf{P}) \\ &=\boldsymbol{\mu}^{\top}-\gamma \boldsymbol{\mu}^{\top} \mathbf{P} \\ &=\boldsymbol{\mu}^{\top}-\gamma \boldsymbol{\mu}^{\top} \quad \text{(因为} \mu \text{是固定分布)} \\ &=(1-\gamma) \boldsymbol{\mu}^{\top} \end{aligned}\end{split}\]

所有分量都是正的。因此,关键矩阵及其 \(\mathbf{A}\) 矩阵是正定的,并且在策略TD(0)是稳定的。 (需要附加条件和随时间推移减少 \(\alpha\) 的时间表来证明收敛概率为1。)

在TD固定点,已经证明(在持续情况下) \(\overline{\mathrm{VE}}\) 在最低可能误差的有限扩展内:

(10)\[\overline{\mathrm{VE}}\left(\mathbf{w}_{\mathrm{TD}}\right) \leq \frac{1}{1-\gamma} \min _{\mathbf{w}} \overline{\mathrm{VE}}(\mathbf{w})\]

也就是说,TD方法的渐近误差不超过最小可能误差的 \(\frac{1}{1-\gamma}\) 倍,这是通过蒙特卡罗方法达到的极限值。 因为 \(\gamma\) 通常接近1,所以这个扩展因子可能非常大,因此TD方法的渐近性能存在很大的潜在损失。 另一方面,回想一下,与蒙特卡罗方法相比,TD方法的方差通常大大减少,因此更快,正如我们在第6章和第7章中看到的那样。 哪种方法最好取决于近似和问题的性质,以及学习的持续时间。

类似于(9.14)的约束也适用于其他在策略自举方法。例如,线性半梯度DP(等式9.7 \(U_{t}\doteq\sum_a\pi(a|S_t)\sum_{s^{\prime},r}p(s^{\prime},r|S_t,a)[r+\gamma\hat{v}(s^{\prime},\mathbf{w}_{t})]\)) 根据在策略分布进行更新也将收敛到TD固定点。一步半梯度 动作价值 方法, 例如下一章中介绍的半梯度Sarsa(0)会收敛到类似的固定点和类似的边界。 对于回合任务,存在一个稍微不同但相关的界限(参见Bertsekas和Tsitsiklis,1996)。 步长参数的奖励,特征和减少也有一些技术条件,我们在此省略。 完整的细节可以在原始论文中找到(Tsitsiklis和Van Roy,1997)。

这些收敛结果的关键是根据在策略分布更新状态。对于其他更新分布,使用函数近似的自举方法实际上可能会发散到无穷大。 第11章给出了这方面的例子以及对可能的解决方法的讨论。

例9.2:1000个状态随机行走中的自举 状态聚合是线性函数近似的一种特殊情况, 所以让我们回到1000个状态随机行走来说明本章所做的一些观察。 图9.2的左侧面板显示了使用与例9.1中相同的状态聚合,通过半梯度TD(0)算法(9.3节)学习的最终价值函数。 我们看到近似渐近的TD近似确实比图9.1中所示的蒙特卡罗近似的真实值更远。

_images/figure-9.2.png

图9.2: 在1000个状态随机行走任务上使用状态聚合进行自举。 左图:半梯度TD的渐近值比图9.1中的渐近蒙特卡罗值差。 右图:具有状态聚合的n步方法的性能与具有表格表示的方法非常相似(参见图7.2)。 这些数据是100次运行的平均值。

然而,TD方法在学习速率方面保留了很大的潜在优势,并且推广了蒙特卡罗方法,正如我们在第7章中用n步TD方法完全研究的那样。 图9.2的右图显示了采用n步半梯度TD方法的结果在1000状态随机行走上使用状态聚合,这与我们之前使用表格方法和19个状态随机行走走获得的状态非常相似(图7.2)。 为了获得这种定量相似的结果,我们将状态聚合切换为20组,每组50个状态。然后,这20个小组在数量上接近表格问题的19个状态。 特别是,回想一下状态转换是向左或向右的100个状态。然后典型的转换将是向右或向左的50个状态,这在数量上类似于19状态表格系统的单状态转换。 为了完成匹配,我们在这里使用相同的性能度量──在所有状态和前10回合中的RMS误差的未加权平均值── 而不是 \(\overline{\mathrm{VE}}\) 目标,否则在使用函数近似时更合适。

在上面的例子中使用的半梯度n步TD算法是第7章中给出的表格n步TD算法对半梯度函数近似的自然扩展。伪代码在下面的框中给出。

n步半梯度TD估计 \(\hat{v} \approx v_{\pi}\)

输入:要评估的策略 \(\pi\)

输入:可微分函数 \(\hat{v} : \mathcal{S}^{+} \times \mathbb{R}^{d} \rightarrow \mathbb{R}\) 使得 \(\hat{v}(\text{终止}, \cdot)=0\)

算法参数:步长 \(\alpha>0\),正整数 \(n\)

任意初始化价值函数权重 \(\mathbf{w}\) (例如,\(\mathbf{w}=\mathbf{0}\)

所有存储和访问操作(\(S_{t+1}\)\(R_{t+1}\))都可以使用它们的索引 \(mod n+1\)

对每一个回合一直循环:

初始化并存储 \(S_0 \ne \text{终止}\)

\(T \leftarrow \infty\)

\(t=0,1,2, \ldots\) 循环:

如果 \(t<T\) 则:

根据 \(\pi(\cdot|S_t)\) 采取行动

观察并将下一个奖励存储为 \(R_{t+1}\),将下一个状态存储为 \(S_{t+1}\)

如果 \(S_{t+1}\) 终止,则 \(T \leftarrow t+1\)

\(\tau \leftarrow t - n + 1\)\(\tau\) 是状态估计正在更新的时间)

如果 \(\tau \geq 0\)

\(G \leftarrow \sum_{i=\tau+1}^{\min (\tau+n, T)} \gamma^{i-\tau-1} R_{i}\)

如果 \(\tau + n < T\), 则 \(G \leftarrow G+\gamma^{n} \hat{v}\left(S_{\tau+n}, \mathbf{w}\right)\) \(\quad\quad\quad\) \(\left(G_{\tau : \tau+n}\right)\)

\(\mathbf{w} \leftarrow \mathbf{w}+\alpha\left[G-\hat{v}\left(S_{\tau}, \mathbf{w}\right)\right] \nabla \hat{v}\left(S_{\tau}, \mathbf{w}\right)\)

直到 \(\tau = T - 1\)

类似于(7.2),这个算法的关键方程是

(11)\[\mathbf{w}_{t+n} \doteq \mathbf{w}_{t+n-1}+\alpha\left[G_{t : t+n}-\hat{v}\left(S_{t}, \mathbf{w}_{t+n-1}\right)\right] \nabla \hat{v}\left(S_{t}, \mathbf{w}_{t+n-1}\right), \quad 0 \leq t<T\]

其中n步回报从(7.1)推广到

(12)\[G_{t : t+n} \doteq R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^{n-1} R_{t+n}+\gamma^{n} \hat{v}\left(S_{t+n}, \mathbf{w}_{t+n-1}\right), \quad 0 \leq t \leq T-n\]

练习9.1 展示本书第一部分中介绍的表格方法是线性函数近似的一种特殊情况。特征向量是什么?

9.5 线性方法的特征构造

线性方法因其收敛性保证而很有意思,但也因为在实践中它们在数据和计算方面都非常有效。 这是否如此关键取决于如何用特征来表示状态,我们在这一大部分中进行了研究。 选择适合任务的特征是将先前领域知识添加到强化学习系统的重要方法。 直观地,这些特征应该对应于状态空间的各个方面,沿着这些方面可以适用泛化。 例如,如果我们对几何对象进行评估,我们可能希望为每种可能的形状,颜色,大小或功能提供特征。 如果我们重视移动机器人的状态,那么我们可能希望获得位置,剩余电池电量,最近的声纳读数等功能。

线性形式的限制是它不能考虑特征之间的任何相互作用,例如特征 \(i\) 的存在仅在缺少特征 \(j\) 时才是好的。 例如,在杆平衡任务(例3.4)中,高角速度可以是好的也可以是坏的,取决于角度。如 果角度很高,那么高角速度意味着即将发生坠落的危险──一种不好的状态,而如果角度较低,那么高角速度意味着杆本身正好──一个良好的状态。 如果其特征针对角度和角速度单独编码,则线性值函数不能表示这一点。相反,或者另外,它需要用于这两个基础状态维度的组合的特征。 在以下小节中,我们考虑了许多种一般的方法。

9.5.1 多项式

许多问题的状态最初表示为数字,例如杆平衡任务(例3.4)中的位置和速度, 杰克汽车租赁问题(例4.2)中每个汽车的数量,或赌徒问题(例4.3)中赌徒的资本。 在这些类型的问题中,强化学习的函数近似与常见的插值和回归任务有很多共同之处。 通常用于插值和回归的各种特征族也可用于强化学习。多项式构成了用于插值和回归的最简单的特征系列之一。 虽然我们在这里讨论的基本多项式特征不像强化学习中的其他类型的特征那样有效,但它们是一个很好的介绍,因为它们简单而且熟悉。

例如,假设强化学习问题具有两个数值维度的状态。对于单个代表状态 \(s\), 让它的两个数字是 \(s_{1} \in \mathbb{R}\)\(s_{2} \in \mathbb{R}\)。 你可以选择仅通过它的两个状态维度来表示 \(s\),这样 \(\mathbf{x}(s)=(s_1,s_2)^{\top}\), 但是你无法考虑这些维度之间的任何相互作用。另外,如果 \(s_1\)\(s_2\) 都为零,那么近似值也必须为零。 通过用四维特征向量 \(\mathbf{x}(s)=(1,s_1,s_2,s_1 s_2)^{\top}\), 可以克服这两个限制。初始的 \(1\) 特征允许在原始状态编号中表示仿射函数,最后的乘积特征 \(s_1 s_2\) 允许考虑交互。 或者你可以选择使用更高维的特征向量,如 \(\mathbf{x}(s)=(1, s_{1}, s_{2}, s_{1} s_{2}, s_{1}^{2}, s_{2}^{2}, s_{1} s_{2}^{2}, s_{1}^{2} s_{2}, s_{1}^{2} s_{2}^{2})^{\top}\) 来考虑更复杂的交互。这样的特征向量使近似成为状态数的任意二次函数──即使近似在必须学习的权重中仍然是线性的。 将这个例子从 \(2\) 个数到 \(k\) 个数推广,我们可以表示问题的状态维度之间的高度复杂的相互作用:

注解

假设每个状态 \(s\) 对应于 \(k\) 个数,\(s_1,s_2,\ldots,s_k\),每个 \(s_{i} \in \mathbb{R}\)。 对于这个 \(k\) 维状态空间,每个有阶-n(order-n)多项式基特征 \(x_i\) 可以写为

(13)\[x_{i}(s)=\Pi_{j=1}^{k} s_{j}^{c_{i, j}}\]

其中每个 \(c_{i,j}\) 是集合 \(\{0,1, \ldots, n\}\) 中的整数,\(n>0\)。 这些特征构成维数 \(k\) 的阶-n多项式基,其中包含 \((n+1)^k\) 个不同的特征。

高阶多项式基允许更准确地近似更复杂的函数。 但是因为阶-n多项式基中的特征数量随自然状态空间的维数 \(k\) 呈指数增长(如果 \(n>0\)), 通常需要选择它们的子集用于函数近似。这可以使用关于要近似的函数的性质的先验信念来完成, 并且可以调整为多项式回归开发的一些自动选择方法以处理强化学习的增量和非平稳性质。

练习9.2 为什么(9.17)为维度 \(k\) 定义 \((n+1)^k\) 个不同的特征?

练习9.2 什么 \(n\)\(c_{i,j}\) 产生特征向量 \(\mathbf{x}(s)=(1, s_{1}, s_{2}, s_{1} s_{2}, s_{1}^{2}, s_{2}^{2}, s_{1} s_{2}^{2}, s_{1}^{2} s_{2}, s_{1}^{2} s_{2}^{2})^{\top}\)

9.5.2 傅立叶基

另一种线性函数近似方法基于历时(time-honored)傅立叶级数,其表示周期函数为不同频率的正弦和余弦基函数(特征)的加权和。 (如果 \(f(x)=f(x+\tau)\) 对于所有 \(x\) 和一些周期 \(\tau\) 成立, 则函数 \(f\) 是周期函数。) 傅立叶级数和更一般的傅立叶变换在应用科学中被广泛使用,部分原因是如果要近似的函数是已知的, 基函数权重由简单公式给出,并且,具有足够的基函数,基本上任何函数都可以根据需要精确地近似。 在强化学习中,要近似的函数是未知的,傅里叶基函数是有意义的,因为它们易于使用并且可以在一系列强化学习问题中表现良好。

首先考虑一维情况。具有周期 \(\tau\) 的一维函数的通常傅立叶级数表示为正弦和余弦函数的线性组合的函数, 每个函数周期性地均衡分割 \(\tau\) 的周期(换句话说,其频率是整数乘以基频 \(1/\tau\))。 但是如果你对近似有界区间定义的非周期函数感兴趣,那么你可以使用这些傅里叶基特征,并将 \(\tau\) 设置为区间的长度。 因此,感兴趣的函数只是正弦和余弦特征的周期线性组合的一个周期。

此外,如果将 \(\tau\) 设置为感兴趣区间长度的两倍并将注意力限制在半区间 \([0,\tau/2]\) 的近似值上, 则可以仅使用余弦特征。这是可能的,因为你可以只用余弦基表示任何 函数,即任何与原点对称的函数。 因此,半周期 \([0,\tau/2]\) 上的任何函数都可以根据需要用足够的余弦特征近似。 (说“任何函数”并不完全正确,因为函数必须在数学上表现良好,但我们在这里省略了这个技术性。) 或者,可以使用正弦特征,其线性组合总是 函数,是关于原点反对称的函数。 但通常更好的是保持余弦特征,因为“半偶数”函数往往比“半奇”函数更容易近似,因为后者在原点通常是不连续的。 当然,这并不排除使用正弦和余弦特征来近似区间 \([0,\tau/2]\),这在某些情况下可能是有利的。

遵循这个逻辑并让 \(\tau=2\) 使得特征在半 \(\tau\) 区间 \([0,1]\) 上定义, 一维阶n傅里叶余弦基由 \(n+1\) 个特征组成

\[x_{i}(s)=\cos (i \pi s), \quad s \in[0,1]\]

\(i=0, \dots, n\)。图9.3显示了一维傅立叶余弦特征 math:x_{i}, i=1,2,3,4\(x_0\) 是常数函数。

_images/figure-9.3.png

图9.3: 一维傅里叶余弦基特征 math:x_{i}, i=1,2,3,4,用于近似区间 \([0,1]\) 上的函数。 在Konidaris等人之后(2011年)。

同样的推理适用于下面方框中描述的多维情况下的傅立叶余弦序列近似。

注解

假设每个状态 \(s\) 对应于 \(k\) 个数的矢量, \(\mathbf{s}=(s_{1},s_{2},\ldots,s_{k})^{\top}\),每个 \(s_{i}\in[0,1]\)。 然后可以写出阶n傅里叶余弦基的第 \(i\) 个特征

(14)\[x_{i}(s)=\cos (\pi \mathbf{s}^{\top} \mathbf{c}^{i})\]

其中 \(\mathbf{c}^{i}=(c_{1}^{i}, \ldots, c_{k}^{i})^{\top}\), 其中对 \(j=1, \dots, k\)\(i=1, \dots,(n+1)^{k}\)\(c_{j}^{i} \in\{0, \dots, n\}\) 。 这为 \((n+1)^{k}\) 个可能的整数向量 \(\mathbf{c}^{i}\) 中的每一个定义了一个特征。 内积 \(\mathbf{s}^{\top} \mathbf{c}^{i}\) 具有在 \(\{0, \dots, n\}\) 中 分配整数到 \(\mathbf{s}\) 的每个维度的效果。 与在一维情况下一样,此整数确定沿该维度的特征频率。 当然,可以移动和缩放特征以适应特定应用的有界状态空间。

作为示例,考虑 \(k=2\) 的情况,其中 \(\mathbf{s}=(s_{1}, s_{2})^{\top}\), 其中每个 \(\mathbf{c}^{i}=(c_{1}^{i}, c_{2}^{i})^{\top}\)。 图9.4显示了六个傅里叶余弦特征的选择,每个特征由定义它的向量 \(\mathbf{c}^{i}\) 标记 (\(s_1\) 是水平轴,\(\mathbf{c}^{i}\) 显示为省略索引 \(i\) 的行向量)。 \(\mathbf{c}\) 中的任何零表示该特征沿该状态维度是恒定的。 因此,如果 \(\mathbf{c}=(0,0)^{\top}\),则该特征在两个维度上都是恒定的; 如果 \(\mathbf{c}=(c_{1}, 0)^{\top}\),特征在第二维上是恒定的,并且随着频率的变化而变化, 取决于 \(c_1\);并且对于 \(\mathbf{c}=(0, c_{2})^{\top}\) 也类似。 当 \(\mathbf{c}=(c_{1}, c_{2})^{\top}\)\(c_{j}=0\) 时, 特征沿两个维度变化并表示两个状态变量之间的相互作用。 \(c_1\)\(c_2\) 的值确定沿每个维度的频率,它们的比率给出了相互作用的方向。

_images/figure-9.4.png

图9.4: 选择六个二维傅立叶余弦特征,每个特征由定义它的矢量 \(\mathbf{c}\) 标记 (\(s_1\) 是水平轴,\(\mathbf{c}^{i}\) 显示为省略索引 \(i\))。 在Konidaris等人之后(2011年)。

当使用傅立叶余弦特征和学习算法(如(9.7),半梯度TD(0)或半梯度Sarsa)时,为每个特征使用不同的步长参数可能会有所帮助。 如果 \(\alpha\) 是基本的步长参数,那么Konidaris,Osentoski和Thomas(2011)建议 将特征 \(x_i\) 的步长参数设置为 \(\alpha_i = \alpha / \sqrt{(c_{1}^{i})^{2}+\cdots+(c_{k}^{i})^{2}}\) (除非每个 \(c_j^i=0\),在这种情况下 \(\alpha_{i}=\alpha\))。

与其他几个基函数集合(包括多项式和径向基函数)相比,Sarsa的傅立叶余弦特征可以产生良好的性能。 然而,毫不奇怪,傅里叶特征在不连续性方面存在问题,因为除非包括非常高频率的基函数,否则很难避免在不连续点周围“转圈”。

阶n傅里叶基的特征数量随着状态空间的维数呈指数增长,但如果该尺寸足够小(例如,\(k \leq 5\)), 那么可以选择 \(n\) 以便所有的 \(n\) 阶傅立叶数特征可以使用。 这使得特征的选择或多或少是自动的。但是,对于高维状态空间,有必要选择这些特征的子集。 这可以使用关于要近似的函数的性质的先前信念来完成,并且可以调整一些自动选择方法以处理强化学习的增量和非平稳性质。 在这方面,傅里叶基本特征的优点在于,通过设置 \(\mathbf{c}^{i}\) 向量来解释状态变量之间可疑的相互作用, 并通过限制 \(\mathbf{c}^{i}\) 向量中的值以便近似可以滤除被认为是噪音的高频分量,可以很容易地选择特征。 另一方面,由于傅立叶特征在整个状态空间上都是非零的(除了少数零),它们代表状态的全局属性,这使得很难找到表示局部属性的好方法。

图9.5显示了在1000状态随机行走示例中比较傅立叶基和多项式的学习曲线。通常,我们不建议使用多项式进行在线学习 [2]

_images/figure-9.5.png

图9.5: 1000状态随机行走的傅立叶基与多项式对比。 展示了具有5,10和20阶傅立叶和多项式基的梯度蒙特卡罗方法的学习曲线。 对于每种情况粗略地优化步长参数:对于多项式,\(\alpha=0.0001\),对于傅立叶基,\(\alpha=0.00005\)。 性能度量(y轴)是均方根值误差(9.1)。

9.5.3 粗编码(Coarse Coding)

考虑一个任务,其中状态集的自然表示是连续的二维空间。这种情况的一种表示由与状态空间中的圆相对应的特征组成,如右侧所示。 如果状态在圆圈内,则相应的特征具有值1并且可以说是 存在(present);否则该特征为0并且可以说 不存在(absent)。 这种1-0值的特征称为 二元特征。给定状态,其二元特征存在指示状态位于圆内,并因此粗略地编码其位置。 表示具有以这种方式重叠的特征的状态(尽管它们不必是圆形或二元)被称为 粗编码

_images/figure-9.6.png

图9.6: 粗编码。从状态 \(s\) 到状态 \(s_{\prime}\) 的泛化取决于其感受域(在这种情况下,圆圈)重叠的特征的数量。 这些状态有一个共同的特征,因此它们之间会有轻微的泛化。

假设线性梯度下降函数近似,考虑圆的大小和密度的影响。对应于每个圆圈是受学习影响的单个重量(\(\mathbf{w}\) 的分量)。 如果我们在一个状态,即空间中的一个点进行训练,那么与该状态相交的所有圆的权重都将受到影响。 因此,通过(9.8),近似价值函数将在圆的并集内的所有状态中受到影响,一个点与状态“共同”的圆圈越多,效果越大,如图9.6所示。 如果圆是小的,则泛化将在短距离上,如图9.7(左),而如果它们很大,它将在很大的距离上,如图9.7(中间)。 而且,特征的形状将决定泛化的性质。例如,如果它们不是严格的圆形,而是在一个方向上伸长,则可以类似地进行泛化,如图9.7(右)所示。

_images/figure-9.7.png

图9.7: 线性函数近似方法的泛化由特征的感受域的大小和形状决定。所有这三种情况的特征数量和密度大致相同。

具有大的感受域的特征给出了广泛的泛化,但似乎也可能将学习的函数限制为粗略的近似,不能使区分比感受域的宽度更精细。 令人高兴的是,事实并非如此。 从一个点到另一个点的初步泛化确实受到感受域的大小和形状的控制, 但最终可能的最佳辨别力的敏锐性更多地受到特征总数的控制。

例9.3:粗编码的粗糙度 这个例子说明了粗编码中学习感受域大小的影响。 基于粗编码的线性函数近似和(9.7)用于学习一维方波函数(如图9.8顶部所示)。 该函数的值用作目标 \(U_t\)。只有一个维度,感受域是间隔而不是圆圈。 重复学习有三种不同大小的间隔:窄,中和宽,如图的底部所示。 所有三个案例都具有相同的特征密度,在所学习的函数范围内约为50。在此范围内随机均匀地生成训练样例。 步长参数是 \(\alpha=\frac{0.2}{n}\),其中 \(n\) 是一次出现的特征数。 图9.8显示了在整个学习过程中在所有三种情况下学到的函数。请注意,特征的宽度在学习的早期具有很强的影响力。 具有广泛的特征,泛化趋于广泛;具有狭窄特征,只有每个训练点的邻近被改变,导致学习的函数更加颠簸。 但是,学习的最终函数仅受到特征宽度的轻微影响。感受域形状往往对泛化有很强的影响,但对渐近解的质量影响不大。

_images/figure-9.8.png

图9.8: 特征宽度对初始泛化(第一行)的强烈影响和对渐近精度(最后一行)的弱影响的示例。

9.5.4 铺片编码(Tile Coding)

平铺编码是多维连续空间的粗编码形式,其灵活且计算效率高。它可能是现代顺序数字计算机最实用的特征表示。

在平铺编码中,特征的感受域被分组为状态空间的分区。每个这样的分区称为 平铺(tiling),分区的每个元素称为 铺片(tile)。 例如,二维状态空间的最简单平铺是均匀网格,如图9.9左侧所示。这里的铺片或感受野是方形,而不是图9.6中的圆圈。 如果仅使用这个单一的平铺,那么白点所指示的状态将由其所在的单个特征表示;泛化将完成同一个铺片内的所有状态,并且不存在于其外的状态。 只有一个平铺,我们不会有粗编码,只是一个状态聚合的情况。

_images/figure-9.9.png

图9.9: 在有限的二维空间上的多个重叠网格平铺。这些平铺在每个维度上彼此偏移均匀的量。

为了获得粗编码的优势,需要重叠的感受域,并且根据定义,分区的铺片不重叠。 为了使用铺片编码获得真正的粗编码,使用多个平铺,每个平铺由铺片宽度的一小部分组成。 图9.9右侧显示了一个带有四个倾斜的简单箱子。每个状态,例如由白点指示的状态,在四个铺片中的每一个中恰好落入一个铺片中。 这四个图块对应于在状态发生时变为活动的四个特征。 具体地,特征向量 \(\mathbf{x}(s)\) 对于每个平铺中的每个铺片具有一个分量。 在这个例子中有 \(4 \times 4 \times 4 = 64\) 个分量, 除了与 \(s\) 落入的铺片相对应的四个分量外,所有分量都是0。 图9.10显示了1000状态随机行走示例中多个偏移平铺(粗编码)相较于单个平铺的优点。

_images/figure-9.10.png

图9.10: 为什么我们使用粗编码。所示为1000状态随机行走示例的学习曲线,用于具有单个平铺和多个平铺的梯度蒙特卡罗算法。 1000个状态的空间被视为单个连续维度,覆盖有每200个状态宽的铺片。多个铺片相互偏移4个状态。 设置步长参数,使得两种情况下的初始学习率相同,单个平铺为 \(\alpha=0.0001\),50个铺片为 \(\alpha=0.0001/50\)

铺片编码的直接实际优点在于,因为它适用于分区,所以一次激活的特征的总数对于任何状态都是相同的。 每个平铺中都存在一个特征,因此存在的特征总数始终与平铺数相同。这允许以简单,直观的方式设置步长参数 \(\alpha\)。 例如,选择 \(\alpha=\frac{1}{n}\),其中 \(n\) 是平铺的数量,从而产生精确的一次尝试(one-trial)学习。 如果是示例 \(s \mapsto v\) 训练,然后 无论先前的估计 \(\hat{v}(s, \mathbf{w}_t)\) 是多少, 新的估计将是 \(\hat{v}(s, \mathbf{w}_{t+1})=v\)。 通常人们希望改变比这更慢,以允许目标输出的泛化和随机变化。 例如,可以选择 \(\alpha=\frac{1}{10n}\),在这种情况下,训练状态的估计值将在一次更新中移动到目标的十分之一, 并且邻近状态将移动得更少,与它们共同的铺片数量成比例。

通过使用二元特征向量,铺片编码也获得了计算优势。因为每个分量都是0或1,所以构成近似价值函数(9.8)的加权和几乎是微不足道的。 与其执行 \(d\) 维乘法和加法,只需简单地计算 \(n \ll d\) 个活动特征的分片(indices), 然后将权重向量的 \(n\) 个相应分量相加。

如果这些状态落入任何相同的铺片内,则会对除训练的状态以外的状态进行泛化,与共同的铺片数成比例。 即使选择如何相互设置平铺也影响泛化。如果它们在每个维度上均匀分布,如图9.9所示,那么不同的状态可以以不同的方式泛化,如图9.11的上半部分所示。 八个子图中的每一个都显示了从训练状态到附近点的泛化模式。 在这个例子中,有八个平铺,因此一个铺片内的64个子区域明显地泛化,但都根据这八个模式之一。 请注意,在许多模式中,均匀偏移如何沿对角线产生强烈的效果。 如果平铺是不对称的,则可以避免这些伪影(artifacts),如图的下半部分所示。 这些较低的泛化模式更好,因为它们都很好地集中在训练状态,没有明显的不对称性。

_images/figure-9.11.png

图9.11: 为什么在铺片编码中优选铺片非对称偏移。所显示的是从训练状态(由小黑加号表示)到附近状态的泛化的强度,对八个平铺的情况。 如果平铺均匀地偏移(上方),那么在对于泛化而言存在对角伪影和实质变化,而对于非对称偏移平铺,泛化更加球形和均匀。

在所有情况下,平铺在每个尺寸中相互偏移铺片宽度的一小部分。 如果 \(w\) 表示铺片宽度并且 \(n\) 表示平铺的数量,则 \(\frac{w}{n}\) 是基本单位。 在一侧的小方块 \(\frac{w}{n}\) 内,所有状态都激活相同的铺片,具有相同的特征表示和相同的近似值。 如果状态在任何笛卡尔方向上被移动 \(\frac{w}{n}\),则特征表示将更改一个分量/铺片。 均匀偏移平铺恰好相互偏移该单位距离。对于二维空间,我们说每个平铺都被位移矢量 \((1,1)\) 偏移, 这意味着它与之前的平铺偏移了 \(\frac{w}{n}\) 乘以此向量。在这些术语中, 图9.11下部所示的非对称偏移平铺偏移了 \((1,3)\) 的位移矢量。

对不同位移矢量对铺片编码泛化的影响进行了广泛的研究 (Parks和Militzer,1991;An,1991;An,Miller和Parks,1991;Miller,An,Glanz和Carter,1990), 评估它们对于对角伪影的本质和倾向,如 \((1,1)\) 位移矢量所见。 基于这项工作,Miller和Glanz(1996)建议使用由第一个奇数整数组成的位移矢量。 特别是,对于维数 \(k\) 的连续空间,一个很好的选择是使用第一个奇数整数(\(1,3,5,7, \ldots, 2 k-1\)), 其中 \(n\) (平铺数)设置为大于或等于 \(4k\) 的2的整数幂。 这就是我们在图9.11的下半部分中产生平铺所做的工作, 其中 \(k=2\)\(n=2^3 \ge 4k\),位移矢量是 \((1,3)\)。 在三维情况下,前四个平铺将从基准位置总计偏移 \((0,0,0)\)\((1,3,5)\)\((2,6,10)\)\((3,9,15)\)。 开源软件可以很容易地为任何 \(k\) 做出像这样的平铺。

在选择平铺策略时,必须选择平铺的数量和平铺的形状。 平铺的数量以及铺片的大小决定了渐近近似的分辨率或精度,如通常的粗编码和图9.8所示。 铺片的形状将决定泛化的性质,如图9.7所示。方形铺片将在每个维度中大致相等,如图9.11(下图)所示。 沿一维延伸的铺片,如图9.12(中间)中的条纹倾斜,将促进沿该维度的泛化。 图9.12(中间)中的铺片在左侧也更密集和更薄,从而沿着该维度在较低值处促进沿水平维度的区分(discrimination)。 图9.12(右)中的平铺纹拼接将促进沿一个对角线的泛化。 在更高的维度中,轴对齐的条纹对应于忽略一些平铺中的一些尺寸,即,对于超平面切片。 如图9.12(左)所示的不规则平铺也是可能的,尽管在实践中很少见,并且超出了标准软件的能力范围。

_images/figure-9.12.png

图9.12: 平铺不必是网格。它们可以是任意形状和非均匀的,但在许多情况下仍然具有计算上的计算效率。

在实践中,通常希望在不同的平铺中使用不同形状的铺片。例如,可以使用一些垂直条纹平铺和一些水平条纹平铺。 这将鼓励沿任何一个方面进行泛化。然而,仅使用条纹平铺,不可能学到水平坐标和垂直坐标的特定连接具有独特的值 (无论学到什么,它将流入具有相同水平和垂直坐标的状态)。为此,需要连续的矩形瓷砖,如图9.9所示。 有多个平铺──一些是水平的,一些是垂直的,一些是连接的──我们可以得到一切: 偏好沿着每个维度进行泛化,但是能够学习连接的特定值(参见Sutton,1996的例子)。 平铺的选择决定了泛化,并且在这种选择可以有效地自动化之前,重要的是,铺片编码使得能够以对人们有意义的方式灵活地进行选择。

_images/one-tile-with-four-subtiles.png

减少内存需求的另一个有用技巧是 散列(hashing) ──将大型平铺的一致伪随机分解成更小的铺片集。 散列产生的铺片由随机分布在整个状态空间中的不连续的不相交区域组成,但仍然形成一个全面的分区。 例如,一个铺片可能包含右侧所示的四个子铺片。通过散列,内存需求通常会被减低很大因子而几乎不会降低性能。 这是可能的,因为仅在状态空间的一小部分中需要高分辨率。 散列将我们从维度的诅咒中解放出来,因为内存需求不需要在维度数量上呈指数级别,而只需要匹配任务的实际需求。 铺片编码的开源实现通常包括高效散列。

练习9.4 假设我们认为两个状态维度中的一个更可能对价值函数产生影响而不是另一个维度,那么泛化应该主要跨越这个维度而不是沿着它。 可以使用什么样的平铺来利用这种先验知识?

9.5.5 径向基函数

径向基函数(RBF)是粗编码到连续值特征的自然泛化。 相较于每个特征都是0或1,它可以是区间 \([0,1]\) 中的任何值,反映特征所存在的不同 程度。 典型的RBF特征 \(x_i\) 具有高斯(钟形)响应 \(x_i(s)\), 其仅取决于状态 \(s\) 与特征的原型或中心状态 \(c_i\) 之间的距离,以及相对于特征的宽度 \(\sigma_i\)

\[x_{i}(s) \doteq \exp \left(-\frac{\|s-c_{i}\|^{2}}{2 \sigma_{i}^{2}}\right)\]

当然,范数或距离度量可以以最适合于手头的状态和任务的任何方式来选择。下图显示了具有欧几里德距离度量的一维示例。

_images/figure-9.13.png

图9.13: 一维径向基函数

RBF相对于二元特征的主要优点是它们产生的近似函数平滑变化且可微。虽然这很吸引人,但在大多数情况下它没有实际意义。 然而,在铺片编码的背景下已经对分级响应函数(例如RBF)进行了广泛的研究 (An,1991;Miller等,1991;An等,1991;Lane,Handelman和Gelfand,1992)。 所有这些方法都需要相当大的额外计算复杂度(通过铺片编码),并且当存在多于两个状态维度时通常会降低性能。 在高维度中,铺片的边缘更加重要,并且已经证明难以在边缘附近获得良好控制的分级铺片激活。

RBF网络 是使用RBF作为其特征的线性函数近似器。等式(9.7)和(9.8)定义学习,与其他线性函数近似器完全相同。 此外,RBF网络的一些学习方法也改变了特征的中心和宽度,使它们进入非线性函数近似的领域。非线性方法可以更精确地拟合目标函数。 RBF网络,特别是非线性RBF网络的缺点是计算复杂度更高,并且通常在学习之前进行更多的手动调整是健壮且有效的。

9.6 手动选择步长参数

大多数SGD方法都要求设计者选择合适的步长参数 \(\alpha\)。 理想情况下,这种选择将是自动化的,并且在某些情况下一直是这样,但在大多数情况下,通常的做法是手动设置它。 要做到这一点,并且为了更好地理解算法,开发对步长参数作用的直觉是很有用的。我们可以说一般应该如何设置呢?

遗憾的是,理论上的考虑没什么帮助。随机近似理论给出了缓慢递减的步长序列的条件(2.7),这些序列足以保证收敛,但这些往往导致学习太慢。 在表格MC方法中产生样本平均值的经典选择 \(\alpha_t=1/t\) 不适用于TD方法,非平稳问题或任何使用函数近似的方法。 对于线性方法,存在设置最佳 矩阵 步长的递归最小二乘法,并且这些方法可以扩展到时序差分学习,如第9.8节中描述的LSTD方法, 但这些方法需要 \(O\left(d^{2}\right)\) 步长参数,或者比我们学习的参数多 \(d\) 倍。 出于这个原因,我们将它们排除在最需要函数近似的大型问题上。

为了直观地了解如何手动设置步长参数,最好立即回到表格例子。 在那里我们可以理解,步长为 \(\alpha=1\) 将导致在一个目标之后完全消除样本误差(参见(2.4)步长为1)。 正如第9.3节所讨论的,我们通常希望学习比这更慢。 在表格的情况下,步长为 \(\alpha=\frac{1}{10}\) 将需要大约10个经验到大致收敛到它们的平均目标, 如果我们想要在100个经验中学习,我们将使用 \(\alpha=\frac{1}{100}\)。 一般来说,如果 \(\alpha=\frac{1}{\tau}\), 那么一个状态的表格估计在关于状态的 \(\tau\) 次经验后将接近其目标的均值,最近的目标效果最好。

对于一般函数近似,没有关于状态的经验 数量 的这种明确概念,因为每个状态可能与所有其他状态在不同程度上相似和不相似。 然而,在线性函数近似的情况下,存在类似的规则。假设你想在 \(\tau\) 个经验内用大致相同的特征向量来学习。 然后,设置线性SGD方法的步长参数的一个好的经验法则是

(15)\[\alpha \doteq\left(\tau \mathbb{E}\left[\mathbf{x}^{\top} \mathbf{x}\right]\right)^{-1}\]

其中,\(\mathbf{x}\) 是从与SGD中的输入矢量相同的分布中选择的随机特征向量。 如果特征向量的长度变化不大,则此方法效果最佳;理想情况下,\(\mathbf{x}^{\top} \mathbf{x}\) 是常数。

练习9.5 假设你正在使用铺片编码将七维连续状态空间转换为二元特征向量, 以估计状态价值函数 \(\hat{v}(s,\mathbf{w})\approx v_\pi(s)\)。 你认为维度不会强烈相互作用,因此你决定分别使用每个维度的八个平铺(条纹平铺),共 \(7 \times 8=56\) 个平铺。 此外,如果维度之间存在一些成对的相互作用, 你还可以采用所有 \(\left(\begin{array}{l}{7}\\{2}\end{array}\right)=21\) 对维度,并将每对维度与矩形铺片相连。 你为每对维度进行两次平铺,总计 \(21 \times 2 + 56 = 98\) 个平铺。 对于这些特征向量,你怀疑你仍然需要平均一些噪音,因此你决定要学习循序渐进,在学习接近渐近线之前,用相同的特征向量进行大约10次展示。 你应该使用什么步长参数?为什么?

9.7 非线性函数近似:人工神经网络

人工神经网络(ANN)广泛用于非线性函数近似。ANN是一个互联单元的网络,具有神经元的某些特性,神经元是神经系统的主要组成部分。 人工神经网络历史悠久,最新的深层人工神经网络(深度学习)训练是机器学习系统中最令人印象深刻的能力,包括强化学习系统。 在第16章中,我们描述了使用ANN函数近似的强化学习系统的几个令人印象深刻的例子。

图9.14显示了一个通用的前馈ANN,意味着网络中没有环路,也就是说,网络中没有路径可以通过单元的输出影响其输入。 图中的网络具有由两个输出单元组成的输出层,具有四个输入单元的输入层和两个“隐藏层”:既不是输入层也不是输出层的层。 实值权重与每个链接相关联。权重大致对应于真实神经网络中突触连接的流动性(参见第15.1节)。 如果ANN在其连接中至少有一个循环,则它是一个循环而不是前馈ANN。 虽然前馈和循环人工神经网络都已用于强化学习,但在这里我们只考虑更简单的前馈情况。

_images/figure-9.14.png

图9.14: 具有四个输入单元,两个输出单元和两个隐藏层的通用前馈ANN。

单元(图9.14中的圆圈)通常是半线性单单元,这意味着它们计算输入信号的加权和, 然后将非线性函数(称为 激活函数)应用于结果,以生成单元的输出或激活。 使用了不同的激活函数,但它们通常是S形或sigmoid,例如逻辑函数 \(f(x)=1 /\left(1+e^{-x}\right)\), 尽管有时使用整流非线性 \(f(x)=\max (0, x)\)。 如果 \(x\geq\theta\),则阶梯函数如 \(f(x)=1\),否则为0,得到具有阈值 \(\theta\) 的二进制单元。 网络输入层中的单元在将其激活设置为外部提供的值时有些不同,这些值是网络近似的函数的输入。

前馈ANN的每个输出单元的激活是网络输入单元上的激活模式的非线性函数。这些函数由网络的连接权重参数化。 没有隐藏层的ANN只能代表可能的输入输出函数的一小部分。 然而,具有单个隐藏层的ANN包含足够大的有限数量的S形单元,可以在网络输入空间的紧凑区域上近似任何连续函数, 达到任何精确度(Cybenko,1989)。对于满足温和条件的其他非线性激活函数也是如此,但非线性是必不可少的: 如果多层前馈ANN中的所有单元都具有线性激活函数,则整个网络相当于没有隐藏层的网络(因为线性函数的线性函数本身是线性的)。

尽管单隐藏层人工神经网络具有这种“通用近似”特性,但经验和理论都表明, 近似许多人工智能任务所需的复杂函数变得更加容易──实际上可能需要抽象,这些抽象是多层低级的分层组合, 即由具有许多隐藏层的人工神经网络等深层架构产生的抽象。(参见Bengio,2009,进行彻底的复习。) 深层ANN的连续层计算网络“原始”输入的逐渐抽象表示,每个单元提供有助于网络的整体输入-输出功能的分层表示的特征。

因此,训练ANN的隐藏层是一种自动创建适合于给定问题的特征的方法,从而可以在不依赖于手工选择的特征的情况下生成分层表示。 这对人工智能来说一直是一个持久的挑战,并解释了为什么具有隐藏层的人工神经网络的学习算法多年来受到如此多的关注。 人工神经网络通常通过随机梯度法学习(第9.3节)。每个权重的调整方向旨在改善网络的整体性能,如通过目标函数测量的最小化或最大化。 在最常见的监督学习案例中,目标函数是一组标记的训练样例的预期误差或损失。 在强化学习中,人工神经网络可以使用TD误差来学习价值函数,或者他们的目标是最大化预期奖励,如梯度老虎机(第2.8节)或策略梯度算法(第13章)。 在所有这些情况下,有必要估计每个连接权重的变化将如何影响网络的整体性能,换句话说,估计目标函数相对于每个权重的偏导数,给定网络权重的所有当前值。 梯度是这些偏导数的矢量。

对于具有隐藏层的人工神经网络(如果单元具有不可激活的激活函数),最成功的方法是反向传播算法,它包括通过网络的交替前向和后向传递。 在给定网络输入单元的当前激活的情况下,每个前向传递计算每个单元的激活。在每次前进之后,后向传递有效地计算每个权重的偏导数。 (与其他随机梯度学习算法一样,这些偏导数的向量是对真实梯度的估计。) 在15.10节中,我们讨论了使用强化学习原理而不是反向传播来训练具有隐藏层的ANN的方法。 这些方法不如反向传播算法有效,但它们可是能更接近真实神经网络的学习方式。

反向传播算法可以为具有1或2个隐藏层的浅网络产生良好的结果,但是对于更深的ANN可能不能很好地工作。 实际上,训练具有 \(k+1\) 个隐藏层的网络实际上可能导致比使用 \(k\) 个隐藏层的网络训练更差的性能, 即使更深的网络可以代表更浅网络的所有功能(Bengio,2009)。解释这些结果并不容易,但有几个因素很重要。 首先,典型深度ANN中的大量权重使得难以避免过度拟合的问题,即,未能正确地泛化到网络未训练过的情况的问题。 其次,反向传播对于深度神经网络效果不佳,因为其向后传递计算的偏导数 要么快速衰减到网络的输入端,使得深层学习极慢,要么偏导数快速向输入侧增长,使学习不稳定。 处理这些问题的方法是使用深度神经网络的系统所取得的许多令人印象深刻的最新结果的主要原因。

过拟合是任何函数近似方法的问题,该方法基于有限的训练数据调整具有多个自由度的函数。 对于不依赖有限训练集的在线强化学习而言,这不是一个问题,但有效泛化仍然是一个重要问题。 过拟合一般是人工神经网络的问题,但对于深度人工神经网络尤其如此,因为它们往往具有非常大的权重。 已经开发了许多方法来减少过度拟合。这些包括在不同于训练数据(交叉验证)的验证数据上性能开始下降时停止训练, 修改目标函数以阻止近似的复杂性(正则化),以及引入权重之间的依赖性以减少自由度的数量(例如,权重分享)。

一种用于减少深度神经网络过度拟合的特别有效的方法是由Srivastava,Hinton,Krizhevsky,Sutskever和Salakhutdinov(2014)引入的dropout方法。 在训练期间,单元及其连接随机从网络中删除。这可以被认为是训练大量“稀疏”网络。在测试时结合这些稀疏网络的结果是提高泛化性能的一种方法。 dropout方法通过将单元的每个输出权重乘以训练期间保留该单元的概率来有效地近似该组合。 Srivastava等人发现这种方法显着提高了泛化性能。它鼓励个别隐藏单元学习与其他特征的随机集合配合良好的特征。 这增加了由隐藏单元形成的特征的多功能性,使得网络不会过度专注于很少发生的情况。

Hinton,Osindero和Teh(2006)在深度信念网络,与这里讨论的深层人工神经网络密切相关的分层网络中, 在解决深层人工神经网络深层训练问题上迈出了重要一步。在他们的方法中,使用无监督学习算法一次一个地训练最深层。 在不依赖于整体目标函数的情况下,无监督学习可以提取捕获输入流的统计规律的特征。 首先训练最深层,然后通过该训练层提供输入,训练下一个最深层,依此类推,直到网络层中所有或多个层中的权重设置为现在作为初始的值用于监督学习。 然后通过关于整体目标函数的反向传播来微调网络。研究表明,这种方法通常比使用随机值初始化的权重的反向传播更好。 以这种方式初始化的权重训练的网络的更好性能可能是由于许多因素造成的, 但是一种想法是该方法将网络置于权重空间区域中,基于梯度的算法可以从中获得良好的进展。

批量标准化 (Ioffe和Szegedy,2015)是另一种可以更容易地训练深度人工神经网络的技术。 人们早就知道,如果网络输入被标准化,则ANN学习更容易,例如,通过将每个输入变量调整为具有零均值和单位方差。 用于训练深度ANN的批量标准化将深层的输出在进入下一层之前进行标准化。 Ioffe和Szegedy(2015)使用来自训练样例的子集或“小批量”的统计来归一化这些层间信号,以提高深度ANN的学习率。

另一种用于训练深度ANN的技术是 深度残差学习 (He,Zhang,Ren和Sun,2016)。有时,学习函数与恒等函数的区别比学习函数本身更容易。 然后将该差值,即残差函数添加到输入产生所需的函数。 在深度人工神经网络中,只需在块周围添加快捷方式或跳过连接,就可以制作一个层块来学习残差函数。 这些连接将块的输入添加到其输出,并且不需要额外的权重。He等人(2016)使用深度卷积网络评估该方法, 该网络具有围绕每对相邻层的跳过连接,在没有基准图像分类任务上的跳过连接的情况下发现对网络的实质性改进。 批量标准化和深度残差学习都用于我们在第16章中描述的围棋游戏的强化学习应用程序。

已经证明在应用中非常成功的一种深度ANN,包括令人印象深刻的强化学习应用(第16章),是 深度卷积网络。 这种类型的网络专门用于处理以空间阵列(例如图像)排列的高维数据。 它的灵感来自早期视觉处理在大脑中的运作方式(LeCun,Bottou,Bengio和Haffner,1998)。 由于其特殊的结构,深度卷积网络可以通过反向传播进行训练,而无需采用上述方法来训练深层。

图9.15说明了深度卷积网络的体系结构。这个例子来自LeCun等人(1998),旨在识别手写字符。 它由交替的卷积和子采样层组成,接着是几个完全连接的最终层。每个卷积层产生许多特征映射。 特征映射是对单元阵列的活动模式,其中每个单元对其感受域中的数据执行相同的操作, 该感受域是从前一层(或第一卷积层的情况下来自外部输入)中“看到”的数据的一部分。 特征映射的单元彼此相同,只是它们的感受域(大小和形状都相同)被移动到输入数据数组上的不同位置。 同一特征映射中的单元共享相同的权重。这意味着无论在输入数组中的哪个位置,特征映射都会检测到相同的特征。 例如,在图9.15的网络中,第一个卷积层产生6个特征映射,每个映射由 \(28 \times 28\) 个单元组成。 每个特征映射中的每个单元都有一个 \(5 \times 5\) 的感受域,这些感受域重叠(在这种情况下是四列四行)。 因此,6个特征映射中的每一个仅由25个可调整权重指定。

_images/figure-9.15.png

图9.15: 深度卷积网络。经过IEEE会议论文的许可,重新发布,从基于梯度的学习应用于文档识别, LeCun,Bottou,Bengio和Haffner,第86卷,1998年;通过Copyright Clearance Center, Inc传达许可。

深度卷积网络的子采样层降低了特征映射的空间分辨率。子采样层中的每个特征映射由在前一个卷积层的特征映射中的单元的感受域上平均的单元组成。 例如,图9.15的网络的第一个子采样层中的6个特征映射中的每一个中的每个单元 在由第一卷积层产生的特征映射之一上的 \(2 \times 2\) 非重叠感受域上平均,产生六个 \(14 \times 14\) 特征映射。 子采样层降低了网络对检测到的特征的空间位置的敏感度,也就是说,它们有助于使网络的响应在空间上不变。 这很有用,因为在图像中的某个位置检测到的特征也可能在其他地方有用。

人工神经网络的设计和训练的进展──我们只提到了一些,都有助于强化学习。 虽然目前的强化学习理论主要局限于使用表格或线性函数近似方法的方法, 但值得注意的强化学习应用的令人印象深刻的表现很大程度上归功于多层人工神经网络的非线性函数近似。 我们将在第16章讨论其中的几个应用程序。

9.8 最小二乘TD

到目前为止我们在本章中讨论过的所有方法都要求每个时步的计算与参数的数量成比例。 然而,通过更多计算,人们可以做得更好。在本节中,我们提出了一种线性函数近似的方法,可以说是这种情况下最好的方法。

正如我们在9.4节TD(0)中建立的线性函数近似渐近收敛(适当减小步长)到TD固定点:

\[\mathbf{w}_{\mathrm{TD}}=\mathbf{A}^{-1} \mathbf{b}\]

其中

\[\mathbf{A} \doteq \mathbb{E}\left[\mathbf{x}_{t}\left(\mathbf{x}_{t}-\gamma \mathbf{x}_{t+1}\right)^{\top}\right] \quad \text { 以及 } \quad \mathbf{b} \doteq \mathbb{E}\left[R_{t+1} \mathbf{x}_{t}\right]\]

有人可能会问,为什么我们必须迭代地计算这个解决方案?这浪费了数据! 通过计算 \(\mathbf{A}\)\(\mathbf{b}\) 的估计值,然后直接计算TD固定点,可能会做得更好吗? 最小二乘TD 算法,通常称为LSTD,就是这样做的。它形成了自然估计

(16)\[\widehat{\mathbf{A}}_{t} \doteq \sum_{k=0}^{t-1} \mathbf{x}_{k}\left(\mathbf{x}_{k}-\gamma \mathbf{x}_{k+1}\right)^{\top}+\varepsilon \mathbf{I} \quad \text { 和 } \quad \widehat{\mathbf{b}}_{t} \doteq \sum_{k=0}^{t-1} R_{k+1} \mathbf{x}_{k}\]

其中 \(\mathbf{I}\) 是单位矩阵,对于一些小 \(\varepsilon>0\)\(\varepsilon\mathbf{I}\) 确保 \(\widehat{\mathbf{A}}_{t}\) 始终是可逆的。 似乎这些估计值都应该除以 \(t\),实际上它们应该是; 如这里定义的, 这些实际上是 \(t\) \(\mathbf{A}\)\(t\) \(\mathbf{b}\) 的估计。 然而,当LSTD使用这些估计来估计TD固定点时,额外的 \(t\) 因子抵消了

(17)\[\mathbf{w}_{t} \doteq \widehat{\mathbf{A}}_{t}^{-1} \widehat{\mathbf{b}}_{t}\]

该算法是线性TD(0)的最具数据效率的形式,但它在计算上也更昂贵。 回想一下,半梯度TD(0)需要仅仅 \(O(d)\) 的内存和每步计算。

LSTD有多复杂?如上所述,复杂性似乎随着 \(t\) 增加,但是(9.20)中的两个近似 可以使用我们之前介绍的技术(例如,在第2章中)逐步实现,以便它们每步可以在恒定时间内完成。 即便如此,\(\widehat{\mathbf{A}}_{t}\) 的更新将涉及外积(列向量乘以行向量),因此将是矩阵更新; 其计算复杂度为 \(O(d^2)\),当然保存 \(\widehat{\mathbf{A}}_{t}\) 矩阵 所需的内存为 \(O(d^2)\)

一个潜在的更大问题是我们的最终计算(9.21)使用 \(\widehat{\mathbf{A}}_{t}\) 的逆, 并且一般逆计算的计算复杂度是 \(O(d^3)\)。 幸运的是,我们的特殊形式矩阵的逆矩阵──外积的总和,也可以仅通过 \(O(d^2)\) 计算逐步更新,即

\[\begin{split}\begin{aligned} \widehat{\mathbf{A}}_{t}^{-1} &=\left(\widehat{\mathbf{A}}_{t-1}+\mathbf{x}_{t-1}\left(\mathbf{x}_{t-1}-\gamma \mathbf{x}_{t}\right)^{\top}\right)^{-1} & \text{从(9.20)}\\ &=\widehat{\mathbf{A}}_{t-1}^{-1}-\frac{\widehat{\mathbf{A}}_{t-1}^{-1} \mathbf{x}_{t-1}\left(\mathbf{x}_{t-1}-\gamma \mathbf{x}_{t}\right)^{\top} \widehat{\mathbf{A}}_{t-1}^{-1}}{1+\left(\mathbf{x}_{t-1}-\gamma \mathbf{x}_{t}\right)^{\top} \widehat{\mathbf{A}}_{t-1}^{-1} \mathbf{x}_{t-1}} & \text{(9.22)} \end{aligned}\end{split}\]

对于 \(t>0\)\(\widehat{\mathbf{A}}_{0}\doteq\varepsilon\mathbf{I}\)。 虽然称为 Sherman-Morrison公式 的恒等式(9.22)表面上很复杂, 但它只涉及矢量-矩阵和矢量-矢量乘法,因此只有 \(O(d^2)\)。 因此,我们可以存储逆矩阵 \(\widehat{\mathbf{A}}_{t}^{-1}\),用(9.22)计算它, 然后在(9.21)中使用它,所有都只有 \(O(d^2)\) 内存和每步计算。完整的算法在下面的框中给出。

LSTD估计 \(\hat{v}=\mathbf{w}^{\top} \mathbf{x}(\cdot) \approx v_{\pi}\)\(O(d^2)\) 版本)

输入:特征表示 \(\mathbf{x} : \mathcal{S}^{+} \rightarrow \mathbb{R}^{d}\) 使得 \(\mathbf{x}(终止)=0\)

算法参数:小 \(\varepsilon>0\)

\(\widehat{\mathbf{A}^{-1}} \leftarrow \varepsilon^{-1} \mathbf{I}\),一个 \(d\times d\) 矩阵

\(\widehat{\mathbf{b}} \leftarrow \mathbf{0}\),一个 \(d\) 维度向量

对每一回合循环:

初始化 \(S\)\(\mathbf{x} \leftarrow \mathbf{x}(S)\)

对回合的每一步循环:

选择并采取动作 \(A \sim \pi(\cdot | S)\),观察 \(R, S^{\prime}\)\(\mathbf{x}^{\prime} \leftarrow \mathbf{x}(S^{\prime})\)

\(\mathbf{v} \leftarrow \widehat{\mathbf{A}^{-1}}^{\top} \left(\mathbf{x}-\gamma \mathbf{x}^{\prime}\right)\)

\(\widehat{\mathbf{A}^{-1}} \leftarrow \widehat{\mathbf{A}^{-1}}-\left(\widehat{\mathbf{A}^{-1}} \mathbf{x}\right) \mathbf{v}^{\top} /\left(1+\mathbf{v}^{\top} \mathbf{x}\right)\)

\(\widehat{\mathbf{b}} \leftarrow \widehat{\mathbf{b}}+R \mathbf{x}\)

\(\mathbf{w} \leftarrow \widehat{\mathbf{A}^{-1}} \widehat{\mathbf{b}}\)

\(S \leftarrow S^{\prime}\)\(\mathbf{x} \leftarrow \mathbf{x}^{\prime}\)

直到 \(S^{\prime}\) 终止

当然,\(O(d^2)\) 仍然比半梯度TD的 \(O(d)\) 消耗更多。 LSTD的更高数据效率是否值得计算花费取决于 \(d\) 的大小,快速学习的重要性以及系统其他部分的费用。 LSTD不需要步长参数的事实有时也被吹捧,但这可能被夸大了。LSTD不需要步长,但它确实需要 \(\varepsilon\); 如果 \(\varepsilon\) 选择得太小,逆的序列可能变化很大,如果 \(\varepsilon\) 选择得太大,那么学习速度会慢。 此外,LSTD缺乏步长参数意味着它永远不会忘记。这有时是可取的,但如果目标策略 \(\pi\) 在强化学习和GPI中发生变化则存在问题。 在控制应用中,LSTD通常必须与其他一些机制相结合,以引起遗忘,模糊不需要步长参数的任何初始优势。

9.9 基于内存的函数近似

到目前为止,我们已经讨论了近似价值函数的 参数 方法。 在该方法中,学习算法调整用于在问题的整个状态空间上近似价值函数的函数形式的参数。 每次更新 \(s \mapsto g\) 是学习算法用于改变参数的训练样例,目的是减少近似误差。 更新后,可以丢弃训练样例(尽管可以保存它以便再次使用)。当需要状态的近似价值(我们将称之为 查询状态)时, 使用学习算法产生的最新参数在该状态下简单地评估该函数。

基于内存的函数近似方法非常不同的。他们只需将训练样例保存在内存中(或者至少保存一部分样例)而不更新任何参数。 然后,每当需要查询状态的价值估计时,从内存检索一组样例并用于计算查询状态的价值估计。 这种方法有时被称为 延迟学习,因为处理训练样例被推迟,直到查询系统以提供输出。

基于内存的函数近似方法是 非参数 方法的主要示例。与参数方法不同,近似函数的形式不限于固定的参数化函数类, 例如线性函数或多项式,而是由训练样本本身确定,以及将它们组合到输出查询状态的估计值的一些方法。 随着越来越多的训练样例在内存中累积,人们希望非参数方法能够生成越来越准确的任何目标函数的近似值。

有许多不同的基于内存的方法,具体取决于如何选择存储的训练样例以及如何使用它们来响应查询。 在这里,我们关注 局部学习(local-learning) 方法,这些方法仅在当前查询状态的邻域中本地近似价值函数。 这些方法从内存中检索一组训练样例,其状态被判断为与查询状态最相关,其中相关性通常取决于状态之间的距离: 训练样例的状态越接近查询状态,它就被认为是越相关,其中距离可以以许多不同的方式定义。在给查询状态赋值之后,丢弃局部近似。

基于内存的方法的最简单示例是 最近邻(nearest neighbor) 方法, 其仅在内存中找到其状态最接近查询状态的样例,并将该样例的值作为查询状态的近似价值返回。 换句话说,如果查询状态是 \(s\)\(s^{\prime} \mapsto g\) 是内存中的样例, 其中 \(s^{\prime}\) 是与 \(s\) 最接近的状态,则 \(g\) 作为 \(s\) 的近似价值返回。 稍微复杂的是 加权平均 方法,其检索一组最近邻居样例并返回其目标值的加权平均值, 其中权重通常随着其状态与查询状态之间的距离增加而减小。 局部加权回归 是类似的,但它通过参数近似方法将表面拟合到一组最近状态的值, 该方法最小化加权误差测量,如(9.1),其中权重取决于与查询状态的距离。 返回的值是在查询状态下对局部拟合曲面的求值,之后丢弃局部近似曲面。

作为非参数的,基于内存的方法具有优于参数方法的优点,所述参数方法不限制对预先指定的函数形式的近似。 随着更多数据的累积,这可以提高准确性。基于内存的局部近似方法具有其他属性,使其非常适合强化学习。 由于轨迹采样在强化学习中非常重要,如第8.6节所述,基于内存的局部方法可以将函数近似集中在实际或模拟轨迹中访问的状态(或状态-动作对)的局部邻域上。 可能不需要全局近似,因为状态空间的许多区域将永远(或几乎从未)到达。 此外,与参数方法需要逐步调整全局近似的参数相比,基于内存的方法允许个体的经验对当前状态附近的价值估计具有相对直接的影响。

避免全局近似也是解决维度诅咒的一种方法。 例如,对于具有 \(k\) 维的状态空间,存储全局近似的表格方法需要内存为 \(k\) 的指数。 另一方面,在存储用于基于内存的方法的样例时,每个样例需要与 \(k\) 成比例的内存, 并且存储例如 \(n\) 个样例所需的内存关于 \(n\) 是线性的。\(k\)\(n\) 中没有任何指数。 当然,关键的剩余问题是基于内存的方法是否能够足够快地回答查询以对个体有用。 一个相关的问题是随着内存大小的增长速度如何降低。在大型数据库中查找最近邻居可能需要很长时间才能在许多应用程序中实用。

基于内存的方法的支持者已经开发出加速最近邻搜索方法。 使用并行计算机或专用硬件是一种方法;另一种是使用特殊的多维数据结构来存储训练数据。 为该应用研究的一种数据结构是 \(k-d\) 树(\(k\) 维树的简称), 其递归地将 \(k\) 维空间分成组织为二叉树的节点的区域。 根据数据量及其在状态空间中的分布情况,使用 \(k-d\) 树的最近邻搜索可以在搜索邻居时快速消除空间的大区域, 使搜索在一些简单(naive)搜索也会花费长时间的问题上变得可行。

局部加权回归还需要快速方法来进行局部回归计算,必须重复这些回归计算以回答每个查询。 研究人员已经开发出许多方法来解决这些问题,包括忘记条目的方法,以便将数据库的大小保持在限定范围内。 本章末尾的书目和历史评论部分指出了一些相关文献,包括一些描述基于内存的学习应用于强化学习的论文。

9.10 基于核的函数近似

基于内存的方法,例如上述加权平均和局部加权回归方法,取决于在数据库中为示例 \(s^{\prime} \mapsto g\) 分配权重, 取决于 \(s^{\prime}\) 和查询状态 \(s\) 之间的距离。分配这些权重的函数称为 核函数,或简称为 。 在加权平均和局部加权回归方法中,例如, 核函数 \(k : \mathbb{R} \rightarrow \mathbb{R}\) 为状态之间的距离分配权重。 更一般地说,权重不必取决于距离;它们可以依赖于状态之间的一些其他相似性度量。 在这种情况下,\(k : \mathcal{S} \times \mathcal{S} \rightarrow \mathbb{R}\), 因此 \(k(s, s^{\prime})\) 是关于 \(s^{\prime}\) 的数据的权重, 其对回答关于 \(s\) 的查询的影响。

从略微不同的角度来看,\(k(s, s^{\prime})\) 是从 \(s^{\prime}\)\(s\) 的泛化强度的度量。 核函数以数字方式表达任何状态对任何其他状态的 相关 知识。 作为示例,图9.11中所示的铺片编码的泛化的强度对应于由均匀和非对称铺片偏移导致的不同核函数。 虽然铺片编码在其操作中没有明确地使用核函数,但是它根据一个进行了泛化。 实际上,正如我们在下面讨论的那样,线性参数函数近似导致的泛化强度总是可以用核函数来描述。

核回归 是基于内存的方法,它计算存储在内存中的 所有 示例的目标的核加权平均值,将结果分配给查询状态。 如果 \(\mathcal{D}\) 是存储示例的集合, 并且 \(g(s^{\prime})\) 表示存储示例中状态 \(s^{\prime}\) 的目标, 则核回归近似目标函数,在这种情况下是取决于 \(\mathcal{D}\) 的价值函数,即

(18)\[\hat{v}(s, \mathcal{D})=\sum_{s^{\prime} \in \mathcal{D}} k\left(s, s^{\prime}\right) g\left(s^{\prime}\right)\]

上述加权平均方法是一种特殊情况,其中 \(k(s, s^{\prime})\) 仅在 \(s\)\(s^{\prime}\) 彼此接近时才为非零,因此不需要在所有 \(\mathcal{D}\) 上计算总和。

常见的核是在第9.5.5节中描述的RBF函数近似中使用的高斯径向基函数(RBF)。 在那里描述的方法中,RBF是其中心和宽度从一开始就是固定的特征,其中心可能集中在预期许多示例落下的区域中,或者在学习期间以某种方式调整。 除非调整中心和宽度的方法,这是一种线性参数方法,其参数是每个RBF的权重,通常通过随机梯度或半梯度下降来学习。 近似的形式是预定RBF的线性组合。使用RBF核的核回归在两个方面与此不同。 首先,它是基于内存的:RBF以存储的示例的状态为中心。其次,它是非参数的:没有要学习的参数;对查询的响应由(9.23)给出。

当然,对于核回归的实际实现,必须解决许多问题,这些问题超出了我们简短讨论的范围。 然而,事实证明,任何线性参数回归方法,如我们在9.4节中描述的那样, 状态由特征向量 \(\mathbf{x}(s)=(x_{1}(s), x_{2}(s), \ldots, x_{d}(s))^{\top}\) 表示, 可以重铸为核回归,其中 \(k(s, s^{\prime})\)\(s\)\(s^{\prime}\) 的 特征向量表示的内积;即

(19)\[k\left(s, s^{\prime}\right)=\mathbf{x}(s)^{\top} \mathbf{x}\left(s^{\prime}\right)\]

使用此核函数的核回归产生与线性参数方法相同的近似值,如果它使用这些特征向量并使用相同的训练数据进行学习。

我们跳过了数学上的理由,这可以在任何现代机器学习文本中找到,例如Bishop(2006),并简单地指出一个重要的含义。 与其为线性参数函数近似器构造特征,我们可以直接构造核函数而不必完全引用特征向量。 并非所有核函数都可以表示为(9.24)中的特征向量的内积,但是可以表示为这样的核函数可以提供优于等效参数方法的显着优势。 对于许多特征向量集,(9.24)具有紧凑的函数形式,无需在 \(d\) 维特征空间中进行任何计算即可对其进行求值。 在这些情况下,核回归远不如使用带有特征向量表示的状态的线性参数方法复杂。 这就是所谓的“核技巧”,它允许在广阔的特征空间的高维度上有效地工作,同时实际上只使用存储的训练示例集。 核技巧是许多机器学习方法的基础,研究人员已经展示了它有时如何有利于强化学习。

9.11 深入研究在策略学习:兴趣和重点

我们在本章中到目前为止所考虑的算法已经同等地处理了所有遇到的状态,就像它们都同样重要。 但是,在某些情况下,我们对某些状态比其他状态更感兴趣。 例如,在折扣的回合问题中,我们可能更有兴趣准确评估回合中的早期状态,而不是后期状态, 在这些状态下,折扣可能使得奖励对起始状态的价值不那么重要。 或者,如果正在学习动作价值函数,那么准确评估价值远低于贪婪行为的不良行为可能就不那么重要了。 函数近似资源总是有限的,如果它们以更有针对性的方式使用,那么性能可以得到改善。

我们同等对待遇到的所有状态的一个原因是,我们正在根据在策略分布进行更新,对此,半梯度方法可获得更强的理论结果。 回想一下,在策略分布被定义为在遵循目标策略的同时在MDP中遇到的状态分布。现在我们将大大泛化这一概念。 我们将拥有许多在策略分布,而不是为MDP提供一个在策略分布。 所有这些都将具有共同点,即它们是在遵循目标策略的同时在轨迹中遇到的状态分布,但它们在某种意义上的轨迹如何开始会有所不同。

我们现在介绍一些新概念。首先,我们引入一个非负标量度量,一个称为 兴趣 的随机变量 \(I_t\), 表示我们对在时间 \(t\) 准确评估状态(或状态-动作对)感兴趣的程度。 如果我们根本不关心状态,那么兴趣应该是零;如果我们完全关心,它可能是一,虽然它被正式允许采取任何非负值。 兴趣可以以任何因果关系设定;例如,它可以取决于直到时间 \(t\) 的轨迹或在时间 \(t\) 的学习参数。 然后将 \(\overline{\mathrm{VE}}\) (9.1)中的分布 \(\mu\) 定义为 在遵循目标策略时遇到的状态分布,由兴趣加权。 其次,我们引入另一个非负标量随机变量,称为 重点 \(M_t\)。 该标量乘以学习更新,从而强调或不强调在时间 \(t\) 完成的学习。替换(9.15)的一般n步学习规则是

(20)\[\mathbf{w}_{t+n} \doteq \mathbf{w}_{t+n-1}+\alpha M_{t}\left[G_{t : t+n}-\hat{v}\left(S_{t}, \mathbf{w}_{t+n-1}\right)\right] \nabla \hat{v}\left(S_{t}, \mathbf{w}_{t+n-1}\right), \quad 0 \leq t<T\]

由(9.16)给出的n步回报,并且通过以下方式从兴趣中递归确定重点:

(21)\[M_{t}=I_{t}+\gamma^{n} M_{t-n}, \quad 0 \leq t<T\]

其中对于所有 \(t<0\)\(M_t\doteq 0\)。这些等式被认为包括蒙特卡罗情况, 其中 \(G_{t:t+n}=G_{t}\),所有更新都在回合结束时进行,\(n=T-t\),并且 \(M_{t}=I_{t}\)

例9.4说明了兴趣和重点如何能够产生更准确的价值估计。

例9.4 兴趣和重点

要了解使用兴趣和重点的潜在好处,请考虑以下所示的四状态马尔可夫奖励流程:

_images/four-state-markov-reward-process.png

回合从最左边的状态开始,然后在每一步上向右转换一个状态,奖励为+1,直到达到终点状态。 因此,第一状态的真实值是4,第二状态真实值是3,依此类推,如每个状态下所示。 这些都是真正的价值;估计值只能接近这些值,因为它们受参数化的约束。 参数矢量 \(\mathbf{w}=\left(w_{1}, w_{2}\right)^{\top}\) 有两个分量,参数化是在每个状态内写入的。 前两个状态的估计值仅由 \(w_1\) 给出,因此即使它们的真值不同,也必须相同。 类似地,第三和第四状态的估计值仅由 \(w_2\) 给出,即使它们的真实值不同,也必须相同。 假设我们有兴趣仅准确评估最左边的状态;如上所述,我们为其分配1的兴趣,而所有其他状态的兴趣为0。

首先考虑应用梯度蒙特卡罗算法来解决这个问题。 本章前面介绍的算法没有考虑到兴趣和重点(在(9.7)和(9.3)的方框中) 会收敛(用于减小步长)到参数向量 \(\mathbf{w}_{\infty}=(3.5,1.5)\), 这给出了第一个状态_我们唯一感兴趣的一个,值为3.5(即介于第一和第二状态的真值之间)。 另一方面,本节中提出的使用兴趣和重点的方法将正确地学习第一个状态的价值; \(w_1\) 将收敛到4,而 \(w_2\) 永远不会更新,因为除了最左边的所有状态,重点为零。

现在考虑应用两步半梯度TD方法。 本章前面没有兴趣和重点的方法(在(9.15)和(9.16)以及(9.4)的方框中) 将再次收敛到 \(\mathbf{w}_{\infty}=(3.5,1.5)\), 而有兴趣和重点的方法收敛到 \(\mathbf{w}_{\infty}=(4,2)\)。 后者为第一个状态和第三个状态(第一个状态自举来源)产生完全正确的值,并不对应于第二或第四状态进行任何更新。

9.12 总结

如果强化学习系统要适用于人工智能或大型工程应用,则必须能够进行 泛化。 为了实现这一点,可以简单地通过将每个更新视为训练样例,使用用于 监督学习函数近似 的任何广泛的现有方法。

也许最合适的监督学习方法是使用 参数化函数近似 的方法,其中策略由权向量 \(\mathbf{w}\) 参数化。 虽然权重向量有很多分量,但状态空间仍然大得多,我们必须找到一个近似的解决方案。 我们将 均方值误差 \(\overline{VE}(\mathbf{w})\) 定义为 在策略分布 \(\mu\) 下 权重向量 \(\mathbf{w}\) 的值 \(v_{\pi_{\mathbf{w}}}(s)\) 中的误差的度量。 \(\overline{VE}\) 为我们提供了一种明确的方法,可以在在策略案例中对不同的价值函数近似进行排序。

为了找到一个好的权重向量,最流行的方法是 随机梯度下降 (SGD)的变化。 在本章中,我们重点关注具有 固定策略在策略 案例,也称为策略评估或预测; 这种情况下的自然学习算法是 n步半梯度TD,其包括梯度蒙特卡罗和半梯度TD(0)算法 作为 \(n=\infty\)\(n=1\) 的特殊情况。半梯度TD方法不是真正的梯度方法。 在这种自举方法(包括DP)中,权重向量出现在更新目标中,但在计算梯度时不考虑这一点──因此它们是 梯度方法。 因此,他们不能依赖于经典的SGD结果。

然而,在 线性 函数近似的特殊情况下,半梯度方法可以获得良好的结果, 其中价值估计是特征的总和乘以相应的权重。线性情况在理论上是最容易理解的,并且在提供适当特征时在实践中工作良好。 选择特征是将先前领域知识添加到强化学习系统的最重要方法之一。 它们可以被选择为多项式,但是这种情况在通常在强化学习中考虑的在线学习设置中很难感化。 更好的是根据傅立叶基选择特征,或者根据稀疏重叠感受域的某种形式的粗编码。 铺片编码是粗编码的一种形式,其特别具有计算效率和灵活性。 径向基函数对于一维或二维任务非常有用,其中平滑变化的响应很重要。 LSTD是数据最有效的线性TD预测方法,但需要与权重数的平方成比例的计算,而所有其他方法在权重数量上具有线性复杂性。 非线性方法包括通过反向传播训练的人工神经网络和SGD的变化;这些方法近年来以 深度强化学习 的名义变得非常流行。

对于所有 \(n\),线性半梯度n步TD保证在标准条件下 收敛到最佳误差范围内的 \(\overline{VE}\) (通过蒙特卡罗方法渐近实现)。 对于更高的n,这个界限总是更紧,并且对于 \(n \rightarrow \infty\) 来说接近零。 然而,在实践中,非常高的n导致学习非常缓慢,并且一定程度的自举(\(n<\infty\))通常是可取的, 正如我们在第7章中的表格n步法和和第5章中表格TD和蒙特卡罗方法的比较中所看到的那样。

书目和历史评论

泛化和函数逼近似一直是强化学习的一个组成部分。Bertsekas和Tsitsiklis(1996),Bertsekas(2012) 和Sugiyama等(2013)介绍了强化学习中函数近似的最新技术。本节末尾讨论了强化学习中函数近似的一些早期工作。

9.3 用于最小化监督学习中的均方误差的梯度下降方法是众所周知的。 Widrow和Hoff(1960)引入了最小均方(LMS)算法,该算法是原型增量梯度下降算法。许多文本中提供了该算法和相关算法的细节 (例如,Widrow和Stearns,1985;Bishop,1995;Duda和Hart,1973)。

Sutton(1984,1988)首先探讨了半梯度TD(0),作为我们将在第12章中讨论的线性TD(\(\lambda\))算法的一部分。 描述这些自举方法的术语“半梯度”是新出现在本书的第二版。

在强化学习中最早使用状态聚合可能是Michie和Chambers的BOXES系统(1968)。 强化学习中的状态聚合理论由Singh,Jaakkola和Jordan(1995)以及Tsitsiklis和Van Roy(1996)开发。 状态聚合从一开始就被用于动态规划(例如,Bellman,1957a)。

9.4 Sutton(1988)证明了对于特征向量 \(\{\mathbf{x}(s) : s \in \delta\}\) 线性无关的情况, 平均线性TD(0)与最小 \(\overline{\mathrm{VE}}\) 解的收敛性。 几个研究人员几乎同时证明了概率为1的收敛性(Peng,1993;Dayan和Sejnowski,1994;Tsitsiklis,1994;Gurvits,Lin和Hanson,1994)。 此外,Jaakkola,Jordan和Singh(1994)证明了在线更新下的融合。 所有这些结果都假设线性独立的特征向量,这意味着至少与 \(\mathbf{w}_t\) 有状态一样多的分量。 Dayan(1992)首先展示了一般(依赖)特征向量的更重要情况的收敛性。 Tsitsiklis和Van Roy(1997)证明了Dayan结果的重大泛化和强化。 他们证明了本节提出的主要结果,即线性自举方法的渐近误差的界限。

9.5 我们对线性函数近似的可能性范围的介绍是基于Barto(1990)的。

9.5.2 Konidaris,Osentoski和Thomas(2011)以简单的形式介绍了傅里叶基, 该形式适用于具有多维连续状态空间和不必是周期函数的强化学习问题。

9.5.3 粗编码 一词是由Hinton(1984)提出的,而我们的图9.6是基于他的一个数字。 Waltz和Fu(1965)在强化学习系统中提供了这种函数近似的早期例子。

9.5.4 Albus(1971,1981)介绍了铺片编码,包括散列。 他用他的“小脑模型咬合架控制器”或CMAC来描述它,因为铺片编码有时在文献中已知。 术语“铺片编码”是本书第一版的新内容,尽管用这些术语描述CMAC的想法来自Watkins(1989)。 铺片编码已被用于许多强化学习系统(例如,Shewchuk和Dean,1990;Lin和Kim,1991; Miller,Scalera和Kim,1994;Sofge和White,1992;Tham,1994;Sutton,1996;Watkins,1989) 以及其他类型的学习控制系统(例如,Kraft和Campagna,1990; Kraft,Miller和Dietz,1992)。 本节重点介绍了Miller和Glanz(1996)的工作。用于铺片编码的通用软件有多种语言版本 (例如,参见http://incompleteideas.net/tiles/tiles3.html)。

9.5.5 使用径向基函数的函数近似自Broomhead和Lowe(1988)与人工神经网络相关以来一直受到广泛关注。 Powell(1987)回顾了RBF的早期用途,并且Poggio和Girosi(1989,1990)广泛开发并应用了这种方法。

9.6 自适应步长参数的方法包括RMSprop(Tiele-man和Hinton,2012),Adam(Kingma和Ba,2015), 随机元下降方法,如Delta-Bar-Delta(Jacobs,1988),其增量泛化(Sutton,1992b,c; Mahmood等,2012), 以及非线性泛化(Schraudolph,1999,2002)。明确设计用于强化学习的方法包括AlphaBound(Dabney和Barto,2012), SID和NOSID(Dabney,2014),TIDBD(Kearney等,准备中)以及 随机元下降在策略梯度学习中的应用( Schraudolph,Yu和Aberdeen,2006)。

9.6 由McCulloch和Pitts(1943)引入阈值逻辑单元作为抽象模型神经元是人工神经网络的开始。 作为分类或回归学习方法的人工神经网络的历史经历了几个阶段: 粗略地,Perceptron(Rosenblatt,1962)和ADALINE(ADAptive LINear Element) (Widrow和Hoff,1960)的单层人工神经网络学习阶段, 多层人工智能学习的误差反向传播阶段(LeCun,1985; Rumelhart,Hinton和Williams,1986), 以及当前深度学习阶段,强调表征学习 (例如,Bengio,Courville和Vincent, 2012; Goodfellow,Bengio和Courville,2016)。 关于人工神经网络的许多书籍的例子是Haykin(1994),Bishop(1995)和Ripley(2007)。

人工神经网络作为强化学习的函数近似可以追溯到Farley和Clark(1954)的早期工作, 他使用类似强化的学习来修改代表策略的线性阈值函数的权重。 Widrow,Gupta和Maitra(1973)提出了一种类似神经元的线性阈值单元,它实现了一种学习过程, 他们称之为 学习与批评或选择性自举适应,ADALINE算法的强化学习变体。 Werbos(1987,1994)开发了一种预测和控制方法,该方法使用通过误差反向训练训练的ANN来使用类似TD的算法来学习策略和价值函数。 Barto,Sutton和Brouwer(1981)以及Barto和Sutton(1981b)将联想记忆网络 (例如,Kohonen,1977; Anderson,Silverstein,Ritz和Jones,1977)的观点扩展到强化学习。 Barto,Anderson和Sutton(1982)使用双层ANN来学习非线性控制策略,并强调了第一层学习合适表示的作用。 Hampson(1983,1989)是学习价值函数的多层人工神经网络的早期支持者。 Barto,Sutton和Anderson(1983)以人工神经网络学习的形式提出了一种演员评论算法来平衡模拟极点(见第15.7和15.8节)。 Barto和Anandan(1985)引入了随机版Widrow等人(1973)的选择性自举算法, 称为 关联奖励惩罚\(A_{R-P}\)算法。Barto(1985,1986)和Barto和Jordan(1987) 描述了由 \(A_{R-P}\) 单元组成的多层ANN,该 \(A_{R-P}\) 单元用全局广播强化信号训练, 以学习不可线性分离的分类规则。Barto(1985)讨论了人工神经网络的这种方法,以及当时这类学习规则与文献中的其他规则有何关联。 (关于训练多层人工神经网络的这种方法的其他讨论,请参阅第15.10节。) Anderson(1986,1987,1989)评估了多种训练多层人工神经网络的方法, 并展示了演员和评论家都在其中实施的演员评论算法通过误差反向传播训练的双层人工神经网络在Hanoi任和杆平衡中优于单层人工神经网络。 Williams(1988)描述了几种可以将反向传播和强化学习结合起来用于训练人工神经网络的方法。 Gullapalli(1990)和Williams(1992)设计了具有连续而非二元输出的神经元样单元的强化学习算法。 Barto,Sutton和Watkins(1990)认为人工神经网络可以在近似求解顺序决策问题所需的函数方面发挥重要作用。 Williams(1992)将REINFORCE学习规则(第13.3节)与用于训练多层人工神经网络的误差反向传播方法联系起来。 Tesauro的TD-Gammon(Tesauro 1992,1994;第16.1节)有效地展示了TD(\(\lambda\))算法的学习能力, 其中多层ANN在学习玩十五子棋时具有函数逼近。 Silver等人的AlphaGo,AlphaGo Zero和AlphaZero程序(2016,2017a,b; 16.6节)使用深度卷积神经网络的强化学习, 在围棋游戏中取得了令人瞩目的成果。Schmidhuber(2015)回顾了人工神经网络在强化学习中的应用,包括递归人工神经网络的应用。

9.8 LSTD应归功于Bradtke和Barto(见Bradtke,1993,1994; Bradtke和Barto,1996;Bradtke,Ydstie和Barto,1994), 并由Boyan(1999,2002),Nedi c和Bertsekas(2003)和Yu(2010)进一步发展。 至少自1949年以来已知逆矩阵的增量更新(Sherman和Morrison,1949)。Lagoudakis和Parr(2003; Buşoniu,Lazaric,Ghavamzadeh,Munos,Babŭska和De Schutter,2012)介绍了最小二乘法控制的扩展。

9.9 我们对基于内存的函数近似的讨论主要基于Atkeson,Moore和Schaal(1997)对局部加权学习的回顾。 Atkeson(1992)讨论了在基于内存的机器人学习中使用局部加权回归,并提供了涵盖该思想历史的广泛参考书目。 Stanfill和Waltz(1986)对人工智能中基于内存的方法的重要性进行了有影响力的论证,特别是考虑到随后可用的并行架构,例如连接机器。 Baird和Klopf(1993)引入了一种新的基于内存的方法,并将其用作应用于杆平衡任务的Q-learning的函数近似方法。 Schaal和Atkeson(1994)将局部加权回归应用于机器人杂耍控制问题,用于学习系统模型。 Peng(1995)使用杆平衡任务来试验几种最近邻方法,用于近似价值函数,策略和环境模型。 Tadepalli和Ok(1996)通过局部加权线性回归获得了有希望的结果,以学习模拟自动引导车辆任务的价值函数。 Bottou和Vapnik(1992)在一些模式识别任务中证明了与非局部算法相比,几种局部学习算法的惊人效率,讨论了局部学习对泛化的影响。

Bentley(1975)引入了k-d树,并报告了在n个记录上观察最近邻搜索的 \(O(\log n)\) 的平均运行时间。 Friedman,Bentley和Finkel(1977)阐述了使用k-d树进行最近邻搜索的算法。 Omohundro(1987)讨论了使用k-d树等分层数据结构实现的效率提升。 Moore,Schneider和Deng(1997)介绍了使用k-d树进行有效的局部加权回归。

9.10 核回归的起源是Aizerman,Braverman和Rozonoer(1964)*潜在函数的方法*。 他们将数据比作指向空间分布的各种符号和数量的电荷。通过对点电荷的电位求和而产生的在空间上产生的电势对应于插值曲面。 在这个类比中,核函数是点电荷的势能,它作为距电荷距离的倒数而下降。 Connell和Utgoff(1987)将一个演员评论方法应用于杆平衡任务,其中评论家使用具有反距离加权的核回归来近似值函数。 由于对机器学习中核回归的广泛兴趣,这些作者没有使用术语核,而是提到了“Shepard的方法”(Shepard,1968)。 其他基于核的强化学习方法包括Ormoneit和Sen(2002),Dietterich和Wang(2002), Xu,Xie,Hu和Lu(2005),Taylor和Parr(2009),Barreto,Precup和Pineau (2011年), Bhat,Farias和Moallemi(2012年)。

9.11 对于Emphatic-TD方法,请参阅第11.8节的书目注释。

我们知道函数近似方法用于学习价值函数的最早的例子是Samuel的跳棋运动员(1959,1967)。 Samuel遵循Shannon(1950)的建议,即价值函数不必精确地成为选择游戏中移动的有用指南,并且它可能通过线性特征组合来近似。 除了线性函数近似之外,Samuel还尝试使用称为签名表的查找表和分层查找表 (Grith,1966,1974; Page,1977; Biermann,Fairfield,and Beres,1982)。

与Samuel的工作大致相同,Bellman和Dreyfus(1959)提出使用函数近似方法和DP。 (很有可能认为Bellman和Samuel彼此之间有一些影响,但我们知道在两者的工作中都没有提到另一个。) 现在有关于函数近似方法和DP的相当广泛的文献,例如多重网格方法,以及使用样条和正交多项式的方法。 (例如,Bellman和Dreyfus,1959;Bellman,Kalaba和Kotkin,1973;Daniel,1976; Whitt,1978;Reetz,1977; Schweitzer和Seidmann,1985;Chow和Tsitsiklis,1991; Kushner和Dupuis,1992;Rust,1996)。

Holland(1986)分类器系统使用选择性特征匹配技术来泛化跨状态-动作对的评估信息。 每个分类器匹配具有特征子集的指定值的状态子集,其余特征具有任意值(“通配符”)。 然后将这些子集用于传统的状态聚合方法中以进行函数近似。 Holland的想法是使用遗传算法来发展一组分类器,这些分类器共同实现一个有用的动作-价值函数。 荷兰的思想影响了作者对强化学习的早期研究,但我们关注的是函数逼近的不同方法。 作为函数近似器,分类器在几个方面受到限制。首先,它们是状态聚合方法,在缩放和高效表示平滑函数方面具有相应的限制。 此外,分类器的匹配规则只能实现与特征轴平行的聚合边界。 也许传统分类器系统最重要的限制是分类器是通过遗传算法学习的,这是一种进化方法。 正如我们在第1章中讨论的那样,在学习过程中可以获得有关如何学习的更多详细信息,而不是进化方法可以使用的信息。 这种观点使我们改为采用监督学习方法来强化学习,特别是梯度下降和人工神经网络方法。 Holland的方法和我们的方法之间的这些差异并不令人惊讶,因为Holland的思想是在人工神经网络被普遍认为计算能力太弱而无用的时期发展起来的, 而我们的工作是在这个时期开始时广泛质疑一般常识。结合这些不同方法的各个方面仍有很多机会。

Christensen和Korf(1986)用国际象棋游戏中的线性值函数近似修正系数的回归方法进行了实验。 Chapman和Kaelbling(1991)和Tan(1991)采用决策树方法来学习价值函数。 基于解释的学习方法也适用于学习价值函数,产生紧凑的表示 (Yee,Saxena,Utgoff和Barto,1990;Dietterich和Flann,1995)。

[1]\(^{\top}\) 表示转置,此处需要将文本中的水平行向量转换为垂直列向量; 在本书中,除非明确地水平写入或转置,否则向量通常被认为是列向量。
[2]有些多项式族比我们讨论的更复杂,例如,正交多项式的不同族,这些可能更好, 但目前在强化学习中几乎没有经验。

第10章 在策略控制近似方法

在本章中,我们回到控制问题,现在使用动作-价值函数 \(\hat{q}(s,a,\mathbf{w})\approx q_{*}(s, a)\) 的参数近似, 其中 \(\mathbf{w} \in \mathbb{R}^{d}\) 是有限维权重向量。我们继续只关注在策略情况,将离策略方法留给第11章。 本章以半梯度Sarsa算法为特征,将半梯度TD(0)(最后一章)自然延伸到动作价值和策略控制。 在回合案例中,扩展是直截了当的,但在持续的情况下,我们必须向后退几步并重新审视我们如何使用折扣来定义最优策略。 令人惊讶的是,一旦我们有真正的函数近似,我们就必须放弃折扣并转而使用新的“差异”价值函数来控制问题的新“平均回报”表达式。

首先从回合案例开始,我们将上一章中提出的函数近似思想从状态值扩展到动作价值。 然后我们扩展它们以控制遵循策略GPI的一般模式,使用 \(\varepsilon\) 贪婪进行动作选择。 我们在陡坡汽车问题上显示n步线性Sarsa的结果。然后我们转向持续的情况并对于具有不同价值的平均奖励案例重复开发这些想法。

10.1 回合半梯度控制

将第9章的半梯度预测方法扩展到动作价值是很简单的。在这种情况下,它是近似动作价值函数 \(\hat{q} \approx q_{\pi}\), 其表示为具有权重向量 \(\mathbf{w}\) 的参数化函数形式。 而在我们考虑 \(S_{t} \mapsto U_{t}\) 形式的随机训练示例之前, 现在我们考虑 \(S_{t}, A_{t} \mapsto U_{t}\) 形式的例子。 更新目标 \(U_{t}\) 可以是 \(q_{\pi}\left(S_{t}, A_{t}\right)\) 的任何近似值,包括通常的备份值, 例如完整的蒙特卡罗回报(\(G_{t}\))或任何n步Sarsa回报(7.4)。动作价值预测的一般梯度下降更新是

(1)\[\mathbf{w}_{t+1} \doteq \mathbf{w}_{t}+\alpha\left[U_{t}-\hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t}\right)\right] \nabla \hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t}\right)\]

例如,一步Sarsa方法的更新是

(2)\[\mathbf{w}_{t+1} \doteq \mathbf{w}_{t}+\alpha\left[R_{t+1}+\gamma \hat{q}\left(S_{t+1}, A_{t+1}, \mathbf{w}_{t}\right)-\hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t}\right)\right] \nabla \hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t}\right)\]

我们将这种方法称为 回合半梯度一步Sarsa。对于常量策略,此方法以与TD(0)相同的方式收敛, 具有相同类型的误差边界(9.14)。

为了形成控制方法,我们需要将这些动作价值预测方法与策略改进和行动选择技术相结合。 适用于连续动作或来自大型离散集的动作的适当技术是正在进行的研究主题,但尚未明确解决。 另一方面,如果动作集是离散的并且不是太大,那么我们可以使用前面章节中已经开发的技术。 也就是说,对于当前状态 \(S_t\) 中可用的每个可能动作, 我们可以计算 \(\hat{q}\left(S_{t}, a, \mathbf{w}_{t}\right)\), 然后找到贪婪动作 \(A_t^*=\arg\max _{a} \hat{q}(S_t,a,\mathbf{w}_{t-1})\)。 然后通过将估计策略更改为贪婪策略(例如 \(\varepsilon\) -贪婪策略)的软近似来完成策略改进 (在本章中处理的在策略案例中)。根据相同的策略选择动作。完整算法的伪代码于下框中给出。

回合半梯度Sarsa估计 \(\hat{q} \approx q_*\)

输入:可微分的动作价值函数参数化 \(\hat{q} : \mathcal{S} \times \mathcal{A} \times \mathbb{R}^{d} \rightarrow \mathbb{R}\)

算法参数:步长 \(\alpha>0\),小 \(\varepsilon>0\)

任意初始化价值函数权重 \(\mathbf{w} \in \mathbb{R}^{d}\) (比如 \(\mathbf{w}=\mathbf{0}\)

对每个回合循环:

\(S, A \leftarrow\) 初始回合状态和动作(比如 \(\varepsilon\) -贪婪)

对回合每一步循环:

采取动作 \(A\),观察 \(R, S^{\prime}\)

如果 \(S^{\prime}\) 不是终点:

\(\mathbf{w} \leftarrow \mathbf{w}+\alpha[R-\hat{q}(S, A, \mathbf{w})] \nabla \hat{q}(S, A, \mathbf{w})\)

进入下一个回合

选择 \(A^{\prime}\) 作为 \(\hat{q}\left(S^{\prime}, \cdot, \mathbf{w}\right)\) 的函数(比如 \(\varepsilon\) -贪婪)

\(\mathbf{w} \leftarrow \mathbf{w}+\alpha\left[R+\gamma \hat{q}\left(S^{\prime}, A^{\prime}, \mathbf{w}\right)-\hat{q}(S, A, \mathbf{w})\right] \nabla \hat{q}(S, A, \mathbf{w})\)

\(S \leftarrow S^{\prime}\)

\(A \leftarrow A^{\prime}\)

例10.1:陡坡汽车任务 考虑如图10.1左上图所示,在陡峭的山路上驾驶动力不足的汽车的任务。 困难在于重力比汽车的发动机强,即使在全油门时,汽车也无法陡坡加速。 唯一的解决方案是首先远离目标并向左边相反的斜坡上移动。 然后,通过应用全油门,汽车可以建立足够的惯性,以便将其带到陡坡上,即使它在整个过程中减速。 这是一个连续控制任务的简单示例,在某种意义上,事物必须变得更糟(离目标更远)才能变得更好。 除非得到人类设计师的明确帮助,否则许多控制方法对于此类任务都有很大的困难。

_images/figure-10.1.png

图10.1: 陡坡汽车任务(左上图)和一次运行中学习的成本函数 \(-\max _{a} \hat{q}(s, a, \mathbf{w})\)

这个问题的奖励在所有时步都是 \(-1\),直到汽车越过山顶的目标位置,结束了这一回合。 有三种可能的动作:全油门前进(\(+1\)),全油门倒车(\(-1\))和零油门(\(0\))。 汽车根据简化的物理学运动。 它的位置 \(x_t\) 和速度 \(\dot{x}_{t}\),由更新

\[\begin{split}\begin{array}{l} {x_{t+1} \doteq \text{bound}\left[x_{t}+\dot{x}_{t+1}\right]} \\ {\dot{x}_{t+1} \doteq \text{bound}\left[\dot{x}_{t}+0.001 A_{t}-0.0025 \cos \left(3 x_{t}\right)\right]} \end{array}\end{split}\]

其中 \(\text{bound}\) 操作强制 \(-1.2 \leq x_{t+1} \leq 0.5\)\(-0.07 \leq \dot{x}_{t+1} \leq 0.07\)。 另外,当 \(\dot{x}_{t+1}\) 到达左边界时,\(\dot{x}_{t+1}\) 被重置为零。 当它到达右边界时,达到了目标并且回合终止了。每回合从随机位置 \(x_{t} \in[-0.6,-0.4)\) 和零速度开始。 为了将两个连续状态变量转换为二进制特征,我们使用了网格平铺,如图9.9所示。 我们使用8个铺片,每个铺片覆盖每个维度中有界距离的1/8,并且如第9.5.4节所述的非对称偏移 [1]。 然后通过铺片编码创建的特征向量 \(\mathbf{x}(s, a)\) 与线性组合,用于近似动作价值函数的参数向量:

(3)\[\hat{q}(s, a, \mathbf{w}) \doteq \mathbf{w}^{\top} \mathbf{x}(s, a)=\sum_{i=1}^{d} w_{i} \cdot x_{i}(s, a)\]

对于每对状态 \(s\) 和动作 \(a\)

图10.1显示了在学习使用这种形式的函数近似来解决此任务时通常会发生的情况 [2]。 显示的是在单次运行中学习的价值函数(成本(cost- to-go) 函数)的负数。 初始动作值均为零,这是乐观的(在此任务中所有真值均为负值),即使探测参数 \(\varepsilon\) 为0,也会导致进行大量探索。 这可以在中间的顶部面板中看到,图中标有“Step 428”。此时甚至没有一个回合完成,但是汽车在山谷中来回摆动,沿着状态空间的圆形轨迹。 所有经常访问的状态都比未开发状态更糟糕,因为实际的奖励比(不切实际的)预期更糟糕。 这会不断推动个体远离任何地方,探索新的状态,直到找到解决方案。

图10.2显示了此问题的半梯度Sarsa的几条学习曲线,具有不同的步长。

_images/figure-10.2.png

图10.2: 具有铺片编码函数近似和 \(\varepsilon\) -贪婪动作选择的半梯度Sarsa方法的陡坡汽车任务学习曲线。

10.2 半梯度n步Sarsa

我们可以通过在半梯度Sarsa更新方程(10.1)中使用n步回报作为更新目标来获得回合半梯度Sarsa的n步版本。 n步回报立即从其表格形式(7.4)推广到函数近似形式:

(4)\[G_{t : t+n} \doteq R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^{n-1} R_{t+n}+\gamma^{n} \hat{q}\left(S_{t+n}, A_{t+n}, \mathbf{w}_{t+n-1}\right), \quad t+n<T\]

其中 \(G_{t:t+n}=G_{t}\) 如果 \(t+n \geq T\),像往常一样。 n步更新方程是

(5)\[\mathbf{w}_{t+n} \doteq \mathbf{w}_{t+n-1}+\alpha\left[G_{t : t+n}-\hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t+n-1}\right)\right] \nabla \hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t+n-1}\right), \quad 0 \leq t<T\]

完整的伪代码在下面的框中给出:

回合半梯度n步Sarsa估计 \(\hat{q} \approx q_*\)\(q_\pi\)

输入:可微分的动作价值函数参数化 \(\hat{q} : \mathcal{S} \times \mathcal{A} \times \mathbb{R}^{d} \rightarrow \mathbb{R}\)

输入:一个策略 \(\pi\) (如果估计 \(q_\pi\)

算法参数:步长 \(\alpha>0\),小 \(\varepsilon>0\),一个正整数 \(n\)

任意初始化价值函数权重 \(\mathbf{w} \in \mathbb{R}^{d}\) (比如 \(\mathbf{w}=\mathbf{0}\)

所有存储和访问操作(\(S_t\)\(A_t\)\(R_t\))都可以使用它们的索引 \(mod n+1\)

对每个回合循环:

初始化并存储 \(S_0 \ne\) 终点

选择并存储动作 \(A_0 \sim \pi(\cdot | S_0)\) 或者关于 \(\hat{q}(S_{0}, \cdot, \mathbf{w})\) \(\varepsilon\) -贪婪

\(S, A \leftarrow\) 初始回合状态和动作(比如 \(\varepsilon\) -贪婪)

\(T \leftarrow \infty\)

\(t=0,1,2,cdots\) 循环:

如果 \(t<T\),则:

采取动作 \(A_t\)

观察和存储下一个奖励为 \(R_{t+1}\) 和下一个状态为 \(S_{t+1}\)

如果 \(S_{t+1}\) 是终点,则:

\(T=t+1\)

否则:

选择并存储动作 \(A_{t+1} \sim \pi(\cdot | S_{t+1})\) 或者关于 \(\hat{q}(S_{t+1}, \cdot, \mathbf{w})\) \(\varepsilon\) -贪婪

\(\tau \leftarrow t-n+1\)\(\tau\) 是其估算值正在更新的时间)

如果 \(\tau \geq 0\)

\(G \leftarrow \sum_{i=\tau+1}^{\min (\tau+n, T)} \gamma^{i-\tau-1} R_{i}\)

如果 \(\tau+n<T\)\(G\leftarrow G+\gamma^n \hat{q}\left(S_{\tau+n}, A_{\tau+n}, \mathbf{w}\right) \quad\)\(G_{\tau:\tau+n}\)

\(\mathbf{w} \doteq \mathbf{w}+\alpha\left[G-\hat{q}\left(S_{t}, A_{t}, \mathbf{w}\right)\right] \nabla \hat{q}\left(S_{\tau}, A_{\tau}, \mathbf{w}\right)\)

直到 \(\tau=T-1\)

正如我们之前看到的,如果使用中等级别的自举,性能最佳,对应于大于1的n。 图10.3显示了该算法陡坡汽车任务中在 \(n=8\) 时比在 \(n=\infty\) 处更快地学习并获得更好的渐近性能。 图10.4显示了参数 \(\alpha\)\(n\) 对该任务学习率的影响的更详细研究结果。

_images/figure-10.3.png

图10.3: 陡坡汽车任务中一步与八步半梯度Sarsa的表现。使用了良好的步长: \(n=1\)\(\alpha=0.5/8\)\(n=8\)\(\alpha=0.3/8\)

_images/figure-10.4.png

图10.4: \(\alpha\)\(n\) 对陡坡汽车任务的n步半梯度Sarsa和铺片编码函数近似的早期性能的影响。 像往常一样,中等的自举(\(n=4\))表现最佳。这些结果用于选定的 \(\alpha\) 值,以对数刻度,然后通过直线连接。 对于 \(n=16\),标准误差范围从 \(n=1\) 时0.5(小于线宽)到大约 \(n=16\) 时4,因此主要影响都是统计上显着的。

练习10.1 在本章中,我们没有明确考虑或给出任何蒙特卡罗方法的伪代码。他们会是什么样的? 为什么不为它们提供伪代码是合理的?他们将如何在陡坡汽车任务上表现?

练习10.2 给出关于控制的半梯度一步 预期 Sarsa提供伪代码。

练习10.3 为什么图10.4中显示的结果在大 \(n\) 处比在小 \(n\) 处具有更高的标准误差?

10.3 平均奖励:持续任务的新问题设置

我们现在引入第三个经典设置──与回合和折扣设置一起,用于制定马尔可夫决策问题(MDP)中的目标。 与折扣设置一样,平均奖励 设置适用于持续存在的问题,即个体与环境之间的交互在没有终止或启动状态的情况下持续进行的问题。 然而,与那种情况不同的是,没有折扣──个体对延迟奖励的关注与对即时奖励的关注一样多。 平均奖励设置是经典动态规划理论中常用的主要设置之一,在强化学习中较少见。 正如我们在下一节中讨论的那样,折扣设置在功能近似方面存在问题,因此需要平均奖励设置来替换它。

在平均奖励设置中,策略 \(\pi\) 的质量被定义为平均奖励率,或简称为 平均奖励, 同时遵循该策略,我们将其表示为 \(r(\pi)\)

\[\begin{split}\begin{aligned} r(\pi) & \doteq \lim _{h \rightarrow \infty} \frac{1}{h} \sum_{t=1}^{h} \mathbb{E}\left[R_{t} | S_{0}, A_{0 : t-1} \sim \pi\right] && \text{(10.6)}\\ &=\lim _{t \rightarrow \infty} \mathbb{E}\left[R_{t} | S_{0}, A_{0 : t-1} \sim \pi\right] && \text{(10.7)}\\ &=\sum_{s} \mu_{\pi}(s) \sum_{a} \pi(a | s) \sum_{s^{\prime}, r} p\left(s^{\prime}, r | s, a\right) r \end{aligned}\end{split}\]

期望取决于初始状态 \(S_0\),以及按照 \(\pi\) 的 后续动作 \(A_{0}, A_{1}, \dots, A_{t-1}\)\(\mu_\pi\) 是稳态分布, \(\mu_{\pi}(s) \doteq \lim_{t \rightarrow \infty} Pr\left\{S_{t}=s | A_{0:t-1} \sim \pi\right\}\), 假设存在于任何 \(\pi\) 并且独立于 \(S_0\)。关于MDP的这种假设被称为 遍历性(ergodicity)。 这意味着MDP启动或个体做出的任何早期决策只会产生暂时影响;从长远来看,处于一个状态的期望仅取决于策略和MDP转移概率。 遍历性足以保证上述等式中存在极限。

在未折现的持续情况中,可以在不同类型的最优性之间进行微妙的区分。 然而,对于大多数实际目的而言,简单地根据每个时间步的平均奖励来订购策略可能就足够了,换句话说,根据他们的 \(r(\pi)\)。 如(10.7)所示,该数量基本上是 \(\pi\) 下的平均回报。 特别是,我们认为所有达到 \(r(\pi)\) 最大值的策略都是最优的。

请注意,稳态分布是特殊分布,在该分布下,如果根据 \(\pi\) 选择动作,则保留在同一分布中。也就是说,为此

(6)\[\sum_{s} \mu_{\pi}(s) \sum_{a} \pi(a | s) p\left(s^{\prime} | s, a\right)=\mu_{\pi}\left(s^{\prime}\right)\]

在平均奖励设置中,回报是根据奖励与平均奖励之间的差来定义的:

(7)\[G_{t} \doteq R_{t+1}-r(\pi)+R_{t+2}-r(\pi)+R_{t+3}-r(\pi)+\cdots\]

这称为 差分 回报,相应的值函数称为 差分 价值函数。 它们以相同的方式定义,我们将一如既往地使用相同的符号: \(v_{\pi}(s) \doteq \mathbb{E}_{\pi}\left[G_{t} | S_{t}=s\right]\)\(q_{\pi}(s, a) \doteq \mathbb{E}_{\pi}\left[G_t|S_{t}=s, A_{t}=a\right]\) (类似于 \(v_*\)\(q_*\))。 差分价值函数也有Bellman方程,与我们之前看到的略有不同。 我们只是删除所有 \(\gamma s\) 并通过奖励和真实平均奖励之间的差替换所有奖励

\[\begin{split}\begin{array}{l} {v_{\pi}(s)=\sum_{a} \pi(a | s) \sum_{r, s^{\prime}} p\left(s^{\prime}, r | s, a\right)\left[r-r(\pi)+v_{\pi}\left(s^{\prime}\right)\right]} \\ {q_{\pi}(s, a)=\sum_{r, s^{\prime}} p\left(s^{\prime}, r | s, a\right)\left[r-r(\pi)+\sum_{a^{\prime}} \pi\left(a^{\prime} | s^{\prime}\right) q_{\pi}\left(s^{\prime}, a^{\prime}\right)\right]} \\ {v_{*}(s)=\max _{a} \sum_{r, s^{\prime}} p\left(s^{\prime}, r | s, a\right)\left[r-\max _{\pi} r(\pi)+v_{*}\left(s^{\prime}\right)\right], \text { 以及 }} \\ {q_{*}(s, a)=\sum_{r, s^{\prime}} p\left(s^{\prime}, r | s, a\right)\left[r-\max _{\pi} r(\pi)+\max _{a^{\prime}} q_{*}\left(s^{\prime}, a^{\prime}\right)\right]} \end{array}\end{split}\]

(参见(3.14),练习3.17,(3.19)和(3.20))。

还存在两种TD误差的差分形式:

(8)\[\delta_{t} \doteq R_{t+1}-\overline{R}_{t}+\hat{v}\left(S_{t+1}, \mathbf{w}_{t}\right)-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)\]

以及

(9)\[\delta_{t} \doteq R_{t+1}-\overline{R}_{t}+\hat{q}\left(S_{t+1}, A_{t+1}, \mathbf{w}_{t}\right)-\hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t}\right)\]

其中 \(\overline{R}_{t}\) 是平均奖励 \(r(\pi)\) 在时间 \(t\) 的估计值。 通过这些替代定义,我们的大多数算法和许多理论结果都可以在不改变的情况下进行平均奖励设置。

例如,半梯度Sarsa的平均奖励版本定义如(10.2),除了TD误差版本的不同。也就是说

(10)\[\mathbf{w}_{t+1} \doteq \mathbf{w}_{t}+\alpha \delta_{t} \nabla \hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t}\right)\]

由(10.11)给出的 \(t\)。完整算法的伪代码在下框中给出。

差分半梯度Sarsa估计 \(\hat{q} \approx q_*\)

输入:可微分的动作价值函数参数化 \(\hat{q} : \mathcal{S} \times \mathcal{A} \times \mathbb{R}^{d} \rightarrow \mathbb{R}\)

算法参数:步长 \(\alpha,\beta>0\)

任意初始化价值函数权重 \(\mathbf{w} \in \mathbb{R}^{d}\) (比如 \(\mathbf{w}=\mathbf{0}\)

任意初始化平均奖励估计 \(\overline{R} \in \mathbb{R}\) (比如 \(\overline{R}=0\)

初始化动作 \(S\),状态 \(A\)

对每个回合循环:

采取动作 \(A\),观察 \(R, S^{\prime}\)

选择 \(A^{\prime}\) 作为 \(\hat{q}\left(S^{\prime}, \cdot, \mathbf{w}\right)\) 的函数(比如 \(\varepsilon\) -贪婪)

\(\delta \leftarrow R-\overline{R}+\hat{q}\left(S^{\prime}, A^{\prime}, \mathbf{w}\right)-\hat{q}(S, A, \mathbf{w})\)

\(\overline{R} \leftarrow \overline{R}+\beta \delta\)

\(\overline{R} \leftarrow \overline{R}+\beta \delta\)

\(\mathbf{w} \leftarrow \mathbf{w}+\alpha \delta \nabla \hat{q}(S, A, \mathbf{w})\)

\(S \leftarrow S^{\prime}\)

\(A \leftarrow A^{\prime}\)

练习10.4 为半梯度Q-learning的差分版本提供伪代码。

练习10.5 需要哪些方程式(除了10.10)来指定TD(0)的差分版本?

练习10.6 假设有一个MDP在任何策略下产生确定性的奖励序列 \(+1,0,+1,0,+1,0, \dots\) 一直继续下去。 从技术上讲,这是不允许的,因为它违反了遍历性;没有静态极限分布 \(\mu_\pi\),并且不存在极限(10.7)。 然而,平均奖励(10.6)是明确的;它是什么?现在考虑这个MDP中的两个状态。 从 A 开始,奖励序列完全如上所述,从 \(+1\) 开始, 而从 B 开始,奖励序列以 \(0\) 开始,然后继续 \(+1,0,+1,0, \ldots\)。 对于这种情况,差分回报(10.9)没有很好地定义,因为不存在限制。为了修复这个问题,可以交替地将状态值定义为

(11)\[v_{\pi}(s) \doteq \lim _{\gamma \rightarrow 1} \lim _{h \rightarrow \infty} \sum_{t=0}^{h} \gamma^{t}\left(\mathbb{E}_{\pi}\left[R_{t+1} | S_{0}=s\right]-r(\pi)\right)\]

根据这个定义,状态 AB 的值是多少?

练习10.7 考虑马尔可夫奖励过程,该过程由三个状态 ABC 组成, 状态转换确定性地围绕环。到达 A 时会收到 \(+1\) 的奖励,否则奖励为 \(0\)。 使用(10.13)的三个状态的差分值是多少?

练习10.8 本节的方框中的伪代码使用 \(\delta_t\) 作为误差而 不是简单的 \(R_{t+1}-\overline{R}_{t}\) 更新 \(\overline{R}_{t}\)。 这两个误差都有效,但使用 \(\delta_t\) 更好。要了解原因,请考虑练习10.7中三个状态的环形MRP。 平均奖励的估计应倾向于其真实值 \(\frac{1}{3}\)。 假设它已经存在并被卡在那里。 \(R_{t+1}-\overline{R}_{t}\) 误差的序列是什么? \(\delta_{t}\) 误差的序列是什么(使用(10.10))? 如果允许估计价值因误差而改变,哪个误差序列会产生更稳定的平均回报估计值? 为什么?

例10.2:访问控制排队任务 这是一个涉及对一组10台服务器的访问控制的决策任务。 有四个不同优先级的客户到达一个队列。如果允许访问服务器,则客户向服务器支付1,2,4或8的奖励, 具体取决于他们的优先级,优先级较高的客户支付更多。 在每个时步中,队列头部的客户被接受(分配给其中一个服务器)或被拒绝(从队列中移除,奖励为零)。 在任何一种情况下,在下一个时步中,将考虑队列中的下一个客户。队列永远不会清空,队列中客户的优先级随机分布。 当然,如果没有免费服务器,则无法提供服务;在这种情况下,客户总是被拒绝。 每个繁忙的服务器在每个时步都变为空闲,概率 \(p=0.06\)。 虽然我们刚刚将它们描述为明确,但让我们假设到达和离开的统计数据是未知的。 任务是根据优先级和免费服务器的数量来决定是接受还是拒绝下一个客户,以便最大化长期奖励而不折扣。

在这个例子中,我们考虑这个问题的表格解决方案。虽然状态之间没有泛化, 但我们仍然可以在通用函数近似设置中考虑它,因为此设置泛化了表格设置。 因此,我们对每对状态(空闲服务器的数量和队列头部的客户的优先级)和操作(接受或拒绝)进行了不同的动作-价值估计。 图10.5显示了差分半梯度Sarsa求解的解, 参数 \(\alpha=0.01\)\(\beta=0.01\)\(\varepsilon=0.1\)。 初始动作价值和 \(\overline{R}\) 为零。

_images/figure-10.5.png

图10.5:差分半梯度一步法Sarsa在200万步后的访问控制排队任务中找到的策略和价值函数。 图表右侧的下降可能是由于数据不完善;许多这些状态从未经历过。\(\overline{R}\) 学习的价值约为2.31。

10.4 弃用折扣设置

在表格案例中,持续的折扣问题表达非常有用,其中每个状态的回报可以单独识别和平均。 但在大致情况下,是否应该使用这个问题的表述是值得怀疑的。

要了解原因,考虑无限的回报序列,没有开始或结束,也没有明确标识的状态。 状态可能仅由特征向量表示,这可能对于将状态彼此区分起来几乎没有作用。 作为特殊情况,所有特征向量可以是相同的。因此,实际上只有奖励序列(和行动),并且必须纯粹从这些评估表现。 怎么可能呢?一种方法是通过长时间间隔的平均奖励──这是平均奖励设置的想法。 如何使用折扣?那么,对于每个时步,我们可以衡量折扣回报。 有些回报会很小而且有些大,所以我们必须在很长的时间间隔内对它们进行平均。 在持续设置中没有开始和结束,也没有特殊的时步,因此没有其他任何事情可以做。 但是,如果你这样做,结果是折扣回报的平均值与平均回报成正比。 事实上,对于策略 \(\pi\),折扣回报的平均值总是 \(r(\pi)/(1-\gamma)\), 也就是说,它基本上是平均回报 \(r(\pi)\)。 特别是,平均折扣回报设置中所有策略的 排序 与平均奖励设置中的排序完全相同。 因此,折扣率 \(\gamma\) 对问题的表述没有影响。它实际上可能为 ,排名将保持不变。

这个令人惊讶的事实已在下面的框中得到证实,但基本思想可以通过对称论证来看到。 每个时步与其他步骤完全相同。通过折扣,每个奖励在某些回报中只会出现在每个位置一次。 第 \(t\) 次奖励将在第 \(t-1\) 次回报中显示为未折扣, 在第 \(t-2\) 次回报中折扣一次,在第 \(t-1000\) 次回报中折扣999次。 第 \(t\) 次奖励的权重是 \(1+\gamma+\gamma^{2}+\gamma^{3}+\cdots=1/(1-\gamma)\)。 因为所有的状态都是相同的,所以它们都由此加权, 因此回报的平均值将是此权重乘以平均奖励,或 \(r(\pi)/(1-\gamma)\)

持续问题中折扣的无用性

也许可以通过选择一个目标来节省折扣,该目标将折扣值与策略下发生状态的分布相加:

\[\begin{split}\begin{aligned} J(\pi) &=\sum_{s} \mu_{\pi}(s) v_{\pi}^{\gamma}(s) & \text { (其中 } v_{\pi}^{\gamma} \text { 是折扣价值函数) } \\ &=\sum_{s} \mu_{\pi}(s) \sum_{a} \pi(a | s) \sum_{s^{\prime}} \sum_{r} p\left(s^{\prime}, r | s, a\right)\left[r+\gamma v_{\pi}^{\gamma}\left(s^{\prime}\right)\right] &\text {(Bellman 方程)} \\ &=r(\pi)+\sum_{s} \mu_{\pi}(s) \sum_{a} \pi(a | s) \sum_{s^{\prime}} \sum_{r} p\left(s^{\prime}, r | s, a\right) \gamma v_{\pi}^{\gamma}\left(s^{\prime}\right) &\text{(由10.7)} \\ &=r(\pi)+\gamma \sum_{s^{\prime}} v_{\pi}^{\gamma}\left(s^{\prime}\right) \sum_{s} \mu_{\pi}(s) \sum_{a} \pi(a | s) p\left(s^{\prime} | s, a\right) &\text{(由3.4)} \\ &=r(\pi)+\gamma \sum_{s^{\prime}} v_{\pi}^{\gamma}\left(s^{\prime}\right) \mu_{\pi}\left(s^{\prime}\right) &\text{(由10.8)} \\ &=r(\pi)+\gamma J(\pi) \\ &=r(\pi)+\gamma r(\pi)+\gamma^{2} J(\pi) \\ &=r(\pi)+\gamma r(\pi)+\gamma^{2} r(\pi)+\gamma^{3} r(\pi)+\cdots \\ &=\frac{1}{1-\gamma} r(\pi) \end{aligned}\end{split}\]

提出的折扣目标要求策略与未折现(平均奖励)目标相同。折扣率 \(\gamma\) 不影响排序!

此示例和框中更一般的参数表明,如果我们优化了在策略分布上的折扣值, 那么效果将与优化 未折扣 的平均奖励相同;\(\gamma\) 的实际值将无效。 这有力地表明,在函数竟是的控制问题的定义中,折扣没有任何作用。 然而,人们可以继续在解决方案中使用折扣。折扣参数 \(\gamma\) 从问题参数更改为解决方法方法参数! 不幸的是,具有函数近似的折扣算法不会优化在策略分布上的折扣值,因此不能保证优化平均奖励。

折扣控制设置的困难的根本原因是,通过函数近似,我们已经失去了策略提升定理(第4.2节)。 如果我们改变策略以提高一个状态的折扣值,那么我们就可以保证在任何有用的意义上改善整体策略。 这种保证是我们强化学习控制方法理论的关键。随着函数近似我们失去了它!

事实上,缺乏策略提升定理也是总回合和平均奖励设置的理论空白。 一旦我们引入函数近似,我们就无法再保证任何设置的提升。 在第13章中,我们介绍了基于参数化策略的另一类强化学习算法, 并且我们有一个理论上的保证称为“策略梯度定理”,其作用与策略提升定理类似。 但是对于学习动作价值的方法,我们似乎目前没有局部改进保证(Perkins和Precup(2003)采用的方法可能提供答案的一部分)。 我们确实知道 \(\varepsilon\) -贪婪化有时可能导致低劣的策略, 因为策略可能会在好的策略之间振动而不是收敛(Gordon,1996a)。这是一个有多个开放理论问题的领域。

10.5 差分半梯度n步Sarsa

为了推广到n步自举,我们需要一个TD误差的n步版本。我们首先将n步回报(7.4)推广到其差分形式,并使用函数近似:

(12)\[G_{t : t+n} \doteq R_{t+1}-\overline{R}_{t+n-1}+\cdots+R_{t+n}-\overline{R}_{t+n-1}+\hat{q}\left(S_{t+n}, A_{t+n}, \mathbf{w}_{t+n-1}\right)\]

其中 \(\overline{R}\)\(r(\pi)\) 的一个估计,\(n\geq 1\)\(t+n<T\)。 如果 \(t+n \geq T\) 则我们如通常一样定义 \(G_{t : t+n} \doteq G_{t}\)。 则n步TD误差为

(13)\[\delta_{t} \doteq G_{t : t+n}-\hat{q}\left(S_{t}, A_{t}, \mathbf{w}\right)\]

之后我们可以应用我们通常的半梯度Sarsa更新(10.12)。框中给出了完整算法的伪代码。

差分半梯度n步Sarsa估计 \(\hat{q} \approx q_\pi\)\(q_*\)

输入:可微分函数 \(\hat{q} : \mathcal{S} \times \mathcal{A} \times \mathbb{R}^{d} \rightarrow \mathbb{R}\),策略 \(\pi\)

任意初始化价值函数权重 \(\mathbf{w} \in \mathbb{R}^{d}\) (比如 \(\mathbf{w}=\mathbf{0}\)

任意初始化平均奖励估计 \(\overline{R} \in \mathbb{R}\) (比如 \(\overline{R}=0\)

算法参数:步长 \(\alpha,\beta>0\),正整数 \(n\)

所有存储和访问操作(\(S_t\)\(A_t\)\(R_t\))都可以使用它们的索引 \(mod n+1\)

初始化动作 \(S_0\),状态 \(A_0\)

\(t=0,1,2, \ldots\) 每步循环:

采取动作 \(A_t\)

观察和存储下一个奖励为 \(R_{t+1}\) 和下一个状态为 \(S_{t+1}\)

选择并存储动作 \(A_{t+1} \sim \pi(\cdot | S_{t+1})\) 或者关于 \(\hat{q}(S_{t+1}, \cdot, \mathbf{w})\) \(\varepsilon\) -贪婪

\(\tau \leftarrow t-n+1\)\(\tau\) 是其估算值正在更新的时间)

如果 \(\tau>0\)

\(\delta \leftarrow \sum_{i=\tau+1}^{\tau+n}\left(R_{i}-\overline{R}\right)+\hat{q}\left(S_{\tau+n}, A_{\tau+n}, \mathbf{w}\right)-\hat{q}\left(S_{\tau}, A_{\tau}, \mathbf{w}\right)\)

\(\overline{R} \leftarrow \overline{R}+\beta \delta\)

\(\mathbf{w} \leftarrow \mathbf{w}+\alpha \delta \nabla \hat{q}\left(S_{\tau}, A_{\tau}, \mathbf{w}\right)\)

练习10.9 在差分半梯度n步Sarsa算法中,平均奖励的步长参数 \(\beta\) 需要非常小, 以便 \(\overline{R}\) 成为平均奖励的良好长期估计。 不幸的是,\(\overline{R}\) 会因许多步骤的初始值而产生偏差,这可能会使学习变得无用。 或者,我们可以使用 \(\overline{R}\) 观察到的奖励的样本平均值。 这最初会迅速适应,但从长远来看也会缓慢适应。 随着策略的缓慢变化,\(\overline{R}\) 也会发生变化;这种长期非平稳性的可能性使得采样平均方法不适合。 实际上,平均奖励的步长参数是使用练习2.7中无偏的恒定步长技巧的理想场所。 描述上面的框中差分半梯度n步Sarsa的算法使用此技巧所需的具体变化。

10.6 总结

在本章中,我们将前一章介绍的参数化函数近似和半梯度下降的思想扩展到控制。 对于回合案例,延期是即时的,但对于持续的情况,我们必须基于最大化每个时步的 平均奖励设置 来引入全新的问题公式。 令人惊讶的是,折扣设置不能在存在近似值的情况下进行控制。在大致情况下,大多数策略不能用价值函数表示。 剩下的任意策略需要排序,标量平均奖励 \(r(\pi)\) 提供了一种有效的方法。

平均奖励公式包括价值函数的新 差分 版本,Bellman方程和TD误差,但所有这些都与旧的并行,并且概念变化很小。 对于平均奖励情况,还有一组新的并行的差分算法。

书目和历史评论

10.1 Rummery和Niranjan(1994)首次探讨了具有函数近似的半梯度Sarsa。 具有 \(\varepsilon\) -贪婪动作选择的线性半梯度Sarsa在通常意义上并不收敛, 但确实进入了最佳解决方案附近的有界区域(Gordon,1996a,2001)。 Pupcup和Perkins(2003)展示出在可微分作用选择中表现出收敛性。 可参见Perkins和Pendrith(2002)以及Melo,Meyn和Ribeiro(2008)。 陡坡汽车的例子是基于Moore(1990)研究的类似任务,但这里使用的确切形式来自Sutton(1996)。

10.2 回合n步半梯度Sarsa基于van Seijen(2016)的前向Sarsa(\(\lambda\))算法。 此处显示的实证结果是本文第二版的新内容。

10.3 已经描述了动态规划的平均奖励表述(例如,Puterman,1994)和强化学习的观点 (Mahadevan,1996;Tadepalli和Ok,1994; Bertsekas和Tsitsiklis,1996;Tsitsiklis和Van Roy,1999年)。 这里描述的算法是Schwartz(1993)引入的“R-learning”算法的在策略类比。 R-learning的名称可能是Q-learning的字母继承者,但我们更愿意将其视为学习差分或 相对 价值的参考。 Carlstr̈om和Nordstr̈om(1997)的工作提出了访问控制排队的例子。

10.4 在本文第一版出版后不久,作者对作为具有函数近似的强化学习问题的表述的限制的认识变得明显。 Singh,Jaakkola和Jordan(1994)可能是第一个在印刷品中注意到它的人。

[1]特别地,我们使用了铺片编码软件,可从http://incompleteideas.net/tiles/tiles3.html获得, 其中 \(\text{int}=\operatorname{IHT}(4096)\)\(\text{tiles}(\text{iht}, 8,[8*x/(0.5+1.2), 8*xdot/(0.07+0.07)], A)\) 得到状态 \((x,xdot)\) 和动作 \(A\) 的特征向量中的索引。
[2]这个数据实际上来自“半梯度Sarsa(\(\lambda\))”算法,直到第12章我们都不会遇到,但是半梯度Sarsa的行为类似。

第11章 *离策略近似方法

自第5章以来,本书主要将处理在策略和离策略学习方法作为处理广义策略迭代学习形式中固有的利用与探索之间冲突的两种替代方法。 前面的两章已经用函数近似处理了在策略情况,在本章中我们用函数近似来处理离策略情况。 与在策略学习相比,函数近似的扩展与离策略学习相比显着不同且更难。 第6章和第7章中提出的表格式离策略方法很容易扩展到半梯度算法,但这些算法并没有像在策略训练下那样强大地收敛。 在本章中,我们将探讨收敛问题,仔细研究线性函数近似理论,引入可学性概念,然后讨论具有更强收敛性保证的新算法。 最后,我们将采用改进的方法,但理论结果不会像在策略学习那样强大,也不会像实验结果一样令人满意。 在此过程中,我们将更深入地了解强化学习中的近似值,以用于在策略学习和离策略学习。

回想一下,在离策略学习中,我们寻求学习 目标策略 \(\pi\) 的价值函数,给定数据由于不同的 行为策略 \(b\)。 在预测案例中,两个策略都是静态的并已知,我们试图学习状态价值 \(\hat{v} \approx v_{\pi}\) 或动作值 \(\hat{q} \approx q_{\pi}\)。 在控制案例中,学习动作价值,并且两种策略通常在学习过程中发生变化── \(\pi\) 是关于 \(\hat{q}\) 的贪婪策略, 而 \(b\) 是更具探索性的东西,例如关于 \(\hat{q}\)\(\varepsilon\) -贪婪策略。

离策略学习的挑战可以分为两部分,一部分出现在表格案例中,另一部分出现在函数近似中。 挑战的第一部分与更新的目标有关(不要与目标策略混淆),第二部分与更新的分布有关。 第5章和第7章中提出的与重要性采样相关的技术涉及第一部分; 这些可能会增加方差,但在所有成功的算法,不管是表格的还是近似的都需要。 这些技术在函数近似中的扩展将在本章的第一部分中快速讨论。

由于函数近似的离策略学习挑战的第二部分需要更多的东西,因为离策略情况下的更新分布不是根据在策略分布。 在策略分布对半梯度方法的稳定性很重要。已经探索了两种一般方法来解决这个问题。 一种是再次使用重要性采样方法,这次将更新分布转回到在策略上的分布,以便保证半梯度方法收敛(在线性情况下)。 另一种是开发真正的梯度方法,不依赖于任何特殊的稳定性分布。 我们提出了基于这两种方法的方法。这是一个前沿的研究领域,目前尚不清楚这些方法中哪一个在实践中最有效。

11.1 半梯度方法

我们首先描述在前面的章节中为离策略案例开发的方法作为半梯度方法,如何容易地扩展到函数近似。 这些方法解决了离策略学习挑战的第一部分(更改更新目标),而不是第二部分(更改更新分布)。 因此,这些方法在某些情况下可能会发散,并且在这种意义上不是合理的,但它们仍然经常被成功使用。 请记住,对于表格情况,这些方法保证稳定且渐近无偏,这对应于函数近似的特殊情况。 因此,仍然可以将它们与特征选择方法相结合,使得组合系统可以保证稳定。无论如何,这些方法很简单,因此是一个很好的起点。

在第7章中,我们描述了各种表格式离策略算法。 为了将它们转换为半梯度形式,我们只需使用近似价值函数(\(\hat{v}\)\(\hat{q}\)) 及其梯度将更新替换为数组(\(V\)\(Q\))以更新权重向量(\(\mathbf{w}\))。 其中许多的算法使用每步重要性采样率:

(1)\[\rho_{t} \doteq \rho_{t : t}=\frac{\pi\left(A_{t} | S_{t}\right)}{b\left(A_{t} | S_{t}\right)}\]

例如,一步状态价值算法是半梯度离策略TD(0),这与相应的在策略算法(第203页9.3节)类似,除了添加 \(\rho_t\)

(2)\[\mathbf{w}_{t+1} \doteq \mathbf{w}_{t}+\alpha \rho_{t} \delta_{t} \nabla \hat{v}\left(S_{t}, \mathbf{w}_{t}\right)\]

其中 \(\rho_t\) 的定义取决于问题是否是回合的和折扣的,还是使用平均奖励持续的和未折扣:

(3)\[\delta_{t} \doteq R_{t+1}+\gamma \hat{v}\left(S_{t+1}, \mathbf{w}_{t}\right)-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right), \text { 或者 }\]
(4)\[\delta_{t} \doteq R_{t+1}-\overline{R}_{t}+\hat{v}\left(S_{t+1}, \mathbf{w}_{t}\right)-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)\]

对于动作价值,一步算法是半梯度预期Sarsa:

\[\begin{split}\begin{array}{l} {\mathbf{w}_{t+1} \doteq \mathbf{w}_{t}+\alpha \delta_{t} \nabla \hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t}\right), \text { 以及 }} \\ {\delta_{t} \doteq R_{t+1}+\gamma \sum_{a} \pi\left(a | S_{t+1}\right) \hat{q}\left(S_{t+1}, a, \mathbf{w}_{t}\right)-\hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t}\right), \text { or } \quad \text { (回合的) }} \\ {\delta_{t} \doteq R_{t+1}-\overline{R}_{t}+\sum_{a} \pi\left(a | S_{t+1}\right) \hat{q}\left(S_{t+1}, a, \mathbf{w}_{t}\right)-\hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t}\right) . \quad \text { (持续的) }} \end{array}\end{split}\]

请注意,此算法不使用重要性采样。在表格情况下,很明显这是恰当的,因为唯一的示例动作是 \(A_t\), 在学习它的价值时,我们不必考虑任何其他动作。 对于函数近似,它不太清楚,因为一旦它们都对相同的整体近似有贡献,我们可能想要对不同的状态-动作对进行不同的加权。 正确解决这个问题等待对强化学习中函数近似理论的更透彻理解。

在这些算法的多步泛化中,状态价值和动作价值算法都涉及重要性采样。例如,半梯度Sarsa的n步版本是

(5)\[\mathbf{w}_{t+n} \doteq \mathbf{w}_{t+n-1}+\alpha \rho_{t+1} \cdots \rho_{t+n-1}\left[G_{t : t+n}-\hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t+n-1}\right)\right] \nabla \hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t+n-1}\right)\]

以及

\[\begin{split}\begin{aligned} G_{t : t+n} &\doteq R_{t+1}+\cdots+\gamma^{n-1} R_{t+n}+\gamma^{n} \hat{q}\left(S_{t+n}, A_{t+n}, \mathbf{w}_{t+n-1}\right), \text { 或者 } &(\text { 持续的 })\\ G_{t : t+n} &\doteq R_{t+1}-\overline{R}_{t}+\cdots+R_{t+n}-\overline{R}_{t+n-1}+\hat{q}\left(S_{t+n}, A_{t+n}, \mathbf{w}_{t+n-1}\right) &(\text { 持续的 }) \end{aligned}\end{split}\]

在这里,我们在处理回合的结尾时略显非正式。 在第一个等式中,\(k \geq T\) 是该回合的最后一个时步)时 \(\rho_{k} \mathbf{S}\) 应该取为1, 而如果 \(t+n \geq T\)\(G_{t:n}\) 应该取 \(G_{t}\)

回想一下,我们在第7章中还提出了一种不涉及重要性采样的离策略算法:n步树备份算法。这是它的半梯度版本:

(6)\[\mathbf{w}_{t+n} \doteq \mathbf{w}_{t+n-1}+\alpha\left[G_{t : t+n}-\hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t+n-1}\right)\right] \nabla \hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t+n-1}\right)\]
(7)\[G_{t : t+n} \doteq \hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t-1}\right)+\sum_{k=t}^{t+n-1} \delta_{k} \prod_{i=t+1}^{k} \gamma \pi\left(A_{i} | S_{i}\right)\]

其中 \(\rho_t\) 在本页顶部为预期的Sarsa定义。 我们还在第7章中定义了一种统一所有动作价值算法的算法:n步Q(\(\sigma\))。 我们保留该算法的半梯度形式,以及n步状态价值算法,作为读者的练习。

练习11.1 将n步离策略TD(7.9)的等式转换为半梯度形式。提供关于回合和持续情况的回报的附带定义。 练习11.2 将n步Q(\(\sigma\))(7.11和7.17)的方程转换为半梯度形式。给出涵盖情节和持续情况的定义。

11.2 离策略发散例子

在本节中,我们将开始讨论使用函数近似的离策略学习挑战的第二部分──更新的分布与在策略上的分布不匹配。 我们描述了一些有针对性的离策略学习反例,即半梯度和其他简单算法不稳定和发散的情况。

为了建立直觉,最好先考虑一个非常简单的例子。假设,可能作为较大MDP的一部分,存在两个状态, 其估计价值是函数形式 \(w\)\(2w\), 其中参数矢量 \(\mathbf{w}\) 仅由单个分量 \(w\) 组成。 如果两个状态的特征向量都是简单数(单分量向量),在这种情况下为1和2,则在线性函数近似下发生这种情况。 在第一个状态中,只有一个动作可用,并且它在转移中确定性地导致第二个状态,奖励0:

_images/simple_MDP.png

其中两个圆圈内的表达式表示两个状态的值。

假设最初 \(w=10\),然后转变将从估计值10的状态变为估计值20的状态。 它将看起来像是良好的转变,并且将增加 \(w\) 以提高第一状态的估计值。 如果 \(\gamma\) 接近1,那么TD误差将接近10,并且, 如果 \(\alpha=0.1\),则在尝试减小TD误差时 \(w\) 将增加到接近11。 然而,第二个状态的估计值也将增加到接近22。如果转移再次发生,那么它将从估计值 \(\approx 1\) 的状态到 估计值 \(\approx 22\) 的状态,TD误差为 \(\approx 11\) ──比以前更大,而不是更小。 它看起来更像是第一个状态被低估了,它的价值将再次增加,这次是 \(\approx 12.1\)。 这看起来很糟糕,事实上随着进一步的更新,\(w\) 会发散到无穷大。

要明确地看到这一点,我们必须更仔细地查看更新顺序。两个状态之间转移的TD误差是

\[\delta_{t}=R_{t+1}+\gamma \hat{v}\left(S_{t+1}, \mathbf{w}_{t}\right)-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)=0+\gamma 2 w_{t}-w_{t}=(2 \gamma-1) w_{t}\]

并且离策略半梯度TD(0)更新(来自(11.2))是

\[w_{t+1}=w_{t}+\alpha \rho_{t} \delta_{t} \nabla \hat{v}\left(S_{t}, w_{t}\right)=w_{t}+\alpha \cdot 1 \cdot(2 \gamma-1) w_{t} \cdot 1=(1+\alpha(2 \gamma-1)) w_{t}\]

请注意,重要抽样比率 \(\rho_{t}\) 在此转移时为1,因为第一个状态只有一个可用的操作, 因此其在目标和行为策略下的概率必须均为1。在上面的最后更新中,新参数是旧参数乘以标量常量 \(1+\alpha(2 \gamma-1)\)。 如果此常数大于1,则系统不稳定,\(w\) 将根据其初始值转为正或负无穷大。 每当 \(\gamma>0.5\) 时,此常数大于1。请注意,稳定性不依赖于特定的步长,只要 \(\alpha>0\)。 较小或较大的步长会影响 \(w\) 变为无穷大时的速率,但不会影响它是否存在。

此示例的关键是一次转移重复发生,而 \(w\) 不会在其他转移上更新。 这可以在离策略训练下进行,因为行为策略可能会选择针对目标策略永远不会进行的其他转移的操作。 对于这些转移,\(\rho_{t}\) 将为零,不会进行更新。然而,在在策略训练下,\(\rho_{t}\) 总是一。 每次从 \(w\) 状态转移到 \(2w\) 状态,增加 \(w\) 时,也必须从 \(2w\) 状态转移出来。 这种转变将减少 \(w\),除非它是一个价值高于(因为 \(\gamma=1\)\(2w\) 的状态, 然后该状态必须接着一个更高价值的状态,否则 \(w\) 将会再次减少。 每个状态只有通过创造更高的期望才能支持这个状态。最终费用必须承担(Eventually the piper must be paid)。 在在策略情况中,必须保留未来奖励的承诺,并对系统进行控制。 但是在离策略情况中,可以做出承诺,然后在采取行动后,目标策略永远不会,忘记和原谅。

这个简单的例子说明了离策略训练可能导致发散的大部分原因,但它并不完全令人信服,因为它不完整──它只是完整MDP的一个片段。 真的有一个完整的系统不稳定吗?发散的一个简单完整的例子是 Baird的反例。考虑图11.1中所示的回合七状态两动作MDP。 虚线 动作使系统以相同的概率进入六个上边状态中的一个,而 实线 动作将系统带到第七个状态。 行为策略 \(b\) 以概率 \(\frac{6}{7}\)\(\frac{1}{7}\) 选择虚线和实线动作, 使得其下的下一状态分布是均匀的(对于所有非终结状态相同),这也是每回合的起始分布。 目标策略 \(\pi\) 总是采取实线的行动,因此在策略的分布(对于 \(\pi\))集中在第七个状态。 所有转移的奖励都是零。折扣率 \(\gamma=0.99\)

_images/figure-11.1.png

图11.1: Baird的反例。该马尔可夫过程的近似状态价值函数具有每个状态内的线性表达式所示的形式。 实线 动作通常导致第七状态,并且 虚线 动作通常导致其他六个状态中的一个,每个状态具有相等的概率。奖励总是零。

考虑估计由每个状态圆中所示的表达式指示的线性参数化下的状态值。 例如,最左边状态的估计值是 \(2 w_{1}+w_{8}\), 其中下标对应于总权重向量 \(\mathbf{w} \in \mathbb{R}^{8}\) 的分量; 这对应于第一状态的特征向量是 \(\mathbf{x}(1)=(2,0,0,0,0,0,0,1)^{\top}\)。 所有转移的奖励为零,因此对于所有 \(s\),真值函数是 \(v_{\pi}(s)=0\), 如果 \(\mathbf{w}=\mathbf{0}\),则可以精确近似。 事实上,有许多解决方案,因为有更多的分量权重向量(8)比非终止状态(7)。 此外,该组特征向量的集合 \(\{\mathbf{x}(s) : s \in \mathcal{S}\}\) 是线性独立。 在所有这些方面,该任务似乎是线性函数近似的有利情况。

如果我们将半梯度TD(0)应用于此问题(11.2),则权重会发散到无穷大,如图11.2(左)所示。 任何正步长都会出现不稳定性,无论多小。 事实上,如果在动态规划(DP)中完成预期的更新,甚至会发生这种情况,如图11.2(右)所示。 也就是说,如果使用DP(基于期望的)目标,以半梯度方式同时为所有状态更新权重向量 \(\mathbf{w}_{k}\)

(8)\[\mathbf{w}_{k+1} \doteq \mathbf{w}_{k}+\frac{\alpha}{|\mathcal{S}|} \sum_{s}\left(\mathbb{E}_{\pi}\left[R_{t+1}+\gamma \hat{v}\left(S_{t+1}, \mathbf{w}_{k}\right) | S_{t}=s\right]-\hat{v}\left(s, \mathbf{w}_{k}\right)\right) \nabla \hat{v}\left(s, \mathbf{w}_{k}\right)\]

在这种情况下,没有随机性,也没有异步,就像在传统的DP更新中一样。 除了使用半梯度函数近似之外,该方法是常规的。但系统仍然不稳定。

_images/figure-11.2.png

图11.2: Baird反例的不稳定性证明。示出了两个半梯度算法的参数矢量 \(\mathbf{w}\) 的分量的演变。 步长为 \(\alpha=0.01\),初始重量为 \(\mathbf{w}=(1,1,1,1,1,1,10,1)^{\top}\)

如果我们只改变Baird反例中DP更新的分布,从均匀分布到在策略分布(通常需要异步更新),那么收敛就保证了一个误差受限于(9.14)的解决方案。 这个例子很引人注目,因为所使用的TD和DP方法可以说是最简单和最好理解的自举方法,所使用的线性,半梯度方法可以说是最简单和最容易理解的函数近似。 该示例表明,如果不根据策略分布进行更新,即使最简单的自举和函数近似组合也可能不稳定。

还有一些类似于Baird的反例,显示出Q-learning的发散。这引起关注,因为不然的话Q-learning具有所有控制方法的最佳收敛保证。 相当多的努力已经尝试找到解决这个问题的方法,或者获得一些较弱但仍然可行的保证。 例如,只要行为策略足够接近目标策略,例如,当它是 \(\varepsilon\) -贪婪策略时,就有可能保证Q-learning的收敛。 据我们所知,在这种情况下,Q-learning从来没有发现过发散,但是没有理论分析。在本节的其余部分,我们提出了其他一些已被探索过的想法。

假设在Baird的反例中,我们实际上将价值函数一直改为最佳的最小二乘近似,而不是在每次迭代中只朝着预期的一步回报迈出一步。 这会解决不稳定问题吗?当然,如果特征向量 \(\{\mathbf{x}(s) : s \in \mathcal{S}\}\) 形成一个线性独立的集合, 就像在Baird的反例中那样,因为那样在每次迭代时都可以进行精确近似,并且该方法简化为标准的表格DP 。 但当然,这里的重点是考虑 无法 获得精确解决方案的情况。在这种情况下,即使在每次迭代时形成最佳近似值,也不能保证稳定性,如示例所示。

_images/example-11.1.png

例11.1:Tsitsiklis和Van Roy的反例 这个例子表明,即使在每一步找到最小二乘解,线性函数近似也不适用于DP。 通过将 \(w \text{-to-} 2w\) 示例(来自本节前面部分)扩展为具有终止状态来形成反例,如右图所示。 如前所述,第一状态的估计值是 \(w\),第二状态的估计值是 \(2w\)。 所有转换的奖励为零,因此两个状态的真值均为零,\(w=0\) 时可以正确表示。 如果我们在每一步设置 \(w_{k+1}\), 以便最小化估计值与预期的一步回报之间的 \(\overline{\mathrm{VE}}\),然后我们有

\[\begin{split}\begin{aligned} w_{k+1} &=\underset{w \in \mathbb{R}}{\arg\min} \sum_{s \in \mathcal{S}}\left(\hat{v}(s, w)-\mathbb{E}_{\pi}\left[R_{t+1}+\gamma \hat{v}\left(S_{t+1}, w_{k}\right) | S_{t}=s\right]\right)^{2} \\ &=\underset{w \in \mathbb{R}}{\arg\min}\left(w-\gamma 2 w_{k}\right)^{2}+\left(2 w-(1-\varepsilon) \gamma 2 w_{k}\right)^{2} \\ &=\frac{6-4 \varepsilon}{5} \gamma w_{k} & \text{(11.10)} \end{aligned}\end{split}\]

\(\gamma>\frac{5}{6-4 \varepsilon}\)\(w_{0} \neq 0\) 时 序列 \(\left\{w_{k}\right\}\) 收敛。

另一种尝试防止不稳定的方法是使用特殊方法进行函数近似。 特别是,对于不从观察到的目标推断的函数近似方法,保证了稳定性。 这些方法称为 平均器(averagers),包括最近邻方法和局部加权回归,但不是流行的方法,如铺片编码和人工神经网络(ANN)。

练习11.3(编程) 将一步半梯度Q-learning应用于Baird的反例,并凭经验证明其权重不同。

11.3 致命的三元组

到目前为止,我们的讨论可以总结为,只要我们将以下三个要素结合起来,构成我们称之为 致命的三元组,就会产生不稳定和分歧的危险:

函数近似 从比内存和计算资源(例如,线性函数近似或ANN)大得多的状态空间泛化的强大和可扩展的方式。

自举 更新目标包括现有估计(如动态编程或TD方法),而不是完全依赖实际奖励和完整回报(如MC方法)。

离策略训练 除了目标策略产生的转移分布之外的训练。扫描状态空间并统一更新所有状态,如动态规划, 不遵循目标策略,是离策略训练的一个例子。

特别要注意的是,危险 不是 由于控制或广义策略迭代造成的。 这些案例的分析比较复杂,但只要包含致命三元组的所有三个要素,就会在更简单的预测案例中产生不稳定性。 危险也 不是 由于学习或对环境的不确定性造成的,因为它在规划方法中同样强烈地发生,例如动态规划,其中环境是完全已知的。

如果存在致命三元组的任何两个元素,但不是全部三个元素,则可以避免不稳定。 那么,检查三者来看是否有任何可以放弃的东西是很自然的。

在这三者中,函数近似 最明显不能放弃。我们需要能够扩展到大问题和极具表现力的方法。 我们至少需要具有许多特征和参数的线性函数近似。 状态聚合或非参数方法的复杂性随着数据的增长而变得太弱或太昂贵。 诸如LSTD的最小二乘法具有二次复杂性,因此对于大问题而言太昂贵。

在没有 自举 的情况下,可以以计算和数据效率为代价。也许最重要的是计算效率的损失。 蒙特卡罗(非自举)方法需要内存来保存在进行每次预测和获得最终返回之间发生的所有结果,并且一旦获得最终返回就完成所有计算。 这些计算问题的成本在串行冯·诺依曼计算机上并不明显,但是在专用硬件上明显。 使用自举和资格迹(第12章),可以在生成数据的时间和地点处理数据,然后再也不需要再使用。 通过自举实现的通信和内存节省是非常好的。

放弃 自举 对数据效率的损失也很大。我们已经反复看到过这种情况,例如第7章(图7.2)和第9章(图9.2), 其中某些程度的自举比随机行走预测任务上的蒙特卡罗方法表现要好得多, 而在第10章中,相同的是在陡坡汽车控制任务中看到(图10.4)。 许多其他问题表明使用自举更快地学习(例如,见图12.14)。 自举通常会导致更快的学习,因为它允许学习利用状态属性,即在返回状态时识别状态的能力。 另一方面,自举可能会削弱对状态表示不佳的问题的学习并导致泛化效果差。 (例如,俄罗斯方块似乎就是这种情况,参见Şim̧sek,Alg orta和Kothiyal,2016)。 不佳的状态表示也可能导致偏差;这就是自举方法渐近近似质量较差的原因(公式9.14)。 总的来说,自举能力必须被认为是非常有价值的。 有时可能会选择不使用它而选择长n步更新(或大的自举参数,\(\lambda \approx 1\);参见第12章),但通常自举会大大提高效率。 这是我们非常希望保留在我们的工具包中的能力。

最后,是 离策略学习;我们可以放弃吗?在策略方法通常是充足的。 对于不基于模型的强化学习,人们可以简单地使用Sarsa而不是Q-learning。 离策略方法从目标策略中释放行为。这可以被认为是一种吸引人的便利,但不是必需的。 但是,离策略学习对于其他预期的用例至关重要,我们在本书中尚未提及但可能对创建强大智能个体的更大目标很重要。

在这些用例中,个体不仅学习单个价值函数和单个策略,而且并行学习大量这些数据。 有广泛的心理证据表明人和动物学会预测许多不同的感官事件,而不仅仅是奖励。 我们可以对不寻常的事件感到惊讶,并纠正我们对它们的预测,即使它们具有中性效价(既不好也不坏)。 这种预测可能是世界预测模型的基础,例如用于规划的模型。 我们预测在转动眼球后我们会看到什么,走回家需要多长时间,在篮球中跳投的可能性,以及我们从承担新项目中获得的满足感。 在所有这些情况下,我们想要预测的事件取决于我们以某种方式行事。要同时学习它们,需要从一种经验中学习。 有许多目标策略,因此一种行为策略不能与所有策略相等。 然而,并行学习在概念上是可能的,因为行为策略可能部分地与许多目标策略重叠。要充分利用这一点,需要进行离策略学习。

11.4 线性价值函数几何

为了更好地理解离策略学习的稳定性挑战,有必要更加抽象思考价值函数近似,以及学习是如何独立地完成的。 我们可以想象所有可能的状态价值函数的空间──从状态到实数的所有函数 \(v:\mathcal{S}\rightarrow\mathbb{R}\)。 这些价值函数中的大多数都与任何策略都不对应。对我们来说更重要的是大多数都不能用函数近似器表示,它在设计上的参数远远少于状态。

给定状态空间的枚举 \(\mathcal{S}=\{s_{1}, s_{2}, \ldots, s_{|\mathcal{S}|}\}\), 任何值函数 \(v\) 对应于按顺序列出每个状态的价值的向量 \(\left[v(s_{1}), v(s_{2}), \ldots, v(s_{|S|})\right]^{\top}\)。 价值函数的这个向量表示具有与状态一样多的分量。在我们想要使用函数近似的大多数情况下,这将是太多的分量来明确地表示向量。 然而,这个向量的想法在概念上是有用的。在下文中,我们可以互换地处理价值函数及其向量表示。

为了发展直觉,考虑具有三个状态 \(\mathcal{S}=\left\{s_{1}, s_{2}, s_{3}\right\}\) 和两个参数 \(\mathbf{w}=\left(w_{1}, w_{2}\right)^{\top}\) 的情况。 然后,我们可以将所有价值函数/向量视为三维空间中的点。参数在二维子空间上提供替代坐标系。 任何权重向量 \(\mathbf{w}=\left(w_{1}, w_{2}\right)^{\top}\) 是二维子空间中的点, 因此也是将值分配给所有三个状态的完整价值函数 \(v_{\mathbf{w}}\)。 对于一般函数近似,可表示函数的全空间和子空间之间的关系可能很复杂, 但在 线性 价值-函数近似的情况下,子空间是一个简单的平面,如图11.3所示。

_images/figure-11.3.png

图11.3: 线性价值-函数近似几何。展示了三个状态上的所有价值函数的三维空间,而显示为平面的是所有价值函数的子空间, 其可由具有参数 \(\mathbf{w}=\left(w_{1}, w_{2}\right)^{\top}\) 的线性函数近似表示。 真值函数 \(v_\pi\) 在较大的空间中, 可以向下投影(在子空间中,使用投影算子 \(\Pi\))到价值误差(VE)意义上的最佳近似值。 Bellman误差(BE),投影Bellman误差(PBE)和时序差分误差(TDE)意义的最佳近似值都可能不同,并在右下方显示。 (VE,BE和PBE都被视为该图中的相应向量。)Bellman算子将平面中的价值函数带到一个外部,然后可以将其投射回去。 如果你在空间外迭代地应用Bellman算子(如上面的灰色所示),你将获得真值函数,就像在传统的动态规划中一样。 相反,如果你在每个步骤中保持投射回子空间,如灰色所示的下部步骤,则不动点将是向量零PBE的点。

现在考虑一个单一的固定策略 \(\pi\)。我们假设它的真值函数 \(v_\pi\) 太复杂而不能完全表示为近似值。 因此 \(v_\pi\) 不在子空间中;在图中,它被描绘为在可表示函数的平面子空间之上。

如果 \(v_\pi\) 无法准确表示,那么最接近它的可表示的价值函数是什么?这是一个含有多个答案的微妙问题。 首先,我们需要测量两个价值函数之间的距离。给定两个值函数 \(v_1\)\(v_2\), 我们可以讨论它们之间的向量差 \(v=v_1-v_2\)。如果 \(v\) 很小,则两个价值函数彼此接近。 但是我们如何衡量这种差向量的大小呢?传统的欧几里德范数是不合适的,因为如9.2节所述, 某些状态比其他状态更重要,因为它们更频繁地发生或者因为我们对它们更感兴趣(第9.11节)。 如第9.2节所述,让我们使用分布 \(\mu : \mathcal{S} \rightarrow[0,1]\) 指定我们关心不同状态被准确估价的程度(通常被视为在策略上的分布)。然后我们可以使用范数定义价值函数之间的距离

(9)\[\|v\|_{\mu}^{2} \doteq \sum_{s \in \mathcal{S}} \mu(s) v(s)^{2}\]

请注意,9.2节中的 \(\overline{\mathrm{VE}}\) 可以简单地使用此范数表示, 因为 \(\overline{\mathrm{VE}}(\mathbf{w})=\left\|v_{\mathbf{w}}-v_{\pi}\right\|_{\mu}^{2}\)。 对于任何价值函数 \(v\),在可表示价值函数的子空间中找到其最接近的价值函数的操作是投影操作。 我们定义一个投影算子 \(\Pi\),它将任意价值函数带到我们范数中最接近的可表示函数:

(10)\[\Pi v \doteq v_{\mathbf{w}} \quad \text { 其中 } \quad \mathbf{w}=\underset{\mathbf{w} \in \mathbb{R}^{d}}{\arg\min}\left\|v-v_{\mathbf{w}}\right\|_{\mu}^{2}\]

因此,最接近真值函数 \(v_\pi\) 的可表示价值函数是其投影 \(\Pi_{v_\pi}\),如图11.3所示。 这是蒙特卡罗方法渐近发现的解决方案,尽管通常非常缓慢。投影操作将在下面的框中更全面地讨论。

投影矩阵

对于线性函数近似器,投影操作是线性的,这意味着它可以表示为 \(|\mathcal{S}|\times|\mathcal{S}|\) 矩阵:

(11)\[\Pi \doteq \mathbf{X}\left(\mathbf{X}^{\top} \mathbf{D} \mathbf{X}\right)^{-1} \mathbf{X}^{\top} \mathbf{D}\]

其中,如9.4节所示,\(\mathbf{D}\) 表示 \(|\mathcal{S}|\times|\mathcal{S}|\) 对角线矩阵,\(\mu(s)\) 在对角线上, \(\mathbf{X}\) 表示 \(|\mathcal{S}|\times d\) 矩阵,其行是特征向量 \(\mathbf{x}(s)^{\top}\),每个状态 \(s\) 有一个。 如果(11.14)中的逆不存在,则替换伪逆。使用这些矩阵,可以写出向量的平方范数

(12)\[\|v\|_{\mu}^{2}=v^{\top} \mathbf{D} v\]

并且可以写出近似线性价值函数

(13)\[v_{\mathbf{w}}=\mathbf{X} \mathbf{w}\]

TD方法找到不同的解决方案。为了理解它们的基本原理,请回想一下价值函数 \(v_\pi\) 的Bellman方程

(14)\[v_{\pi}(s)=\sum_{a} \pi(a | s) \sum_{s^{\prime}, r} p\left(s^{\prime}, r | s, a\right)\left[r+\gamma v_{\pi}\left(s^{\prime}\right)\right], \quad \text { 对所有 } s \in \mathcal{S}\]

真值函数 \(v_\pi\) 是唯一能够精确求解(11.13)的价值函数。 如果用近似价值函数 \(v_{\mathbf{w}}\) 代替 \(v_\pi\), 则修改的方程的右侧和左侧之间的差可以用作 \(v_{\mathbf{w}}\)\(v_\pi\) 的距离的度量。 我们称之为状态 \(s\)Bellman误差

\[\begin{split}\begin{aligned} \overline{\delta}_{\mathbf{w}}(s) & \doteq\left(\sum_{a} \pi(a | s) \sum_{s^{\prime}, r} p\left(s^{\prime}, r | s, a\right)\left[r+\gamma v_{\mathbf{w}}\left(s^{\prime}\right)\right]\right)-v_{\mathbf{w}}(s) & \text{(11.17)} \\ &=\mathbb{E}_{\pi}\left[R_{t+1}+\gamma v_{\mathbf{w}}\left(S_{t+1}\right)-v_{\mathbf{w}}\left(S_{t}\right) | S_{t}=s, A_{t} \sim \pi\right] & \text{(11.18)} \end{aligned}\end{split}\]

这清楚地表明了Bellman误差与TD误差的关系(11.3)。Bellman误差是TD误差的期望。

在所有状态下,所有Bellman误差的向量 \(\overline{\delta}_{\mathbf{w}} \in \mathbb{R}^{|\mathcal{S}|}\) 被称为 Bellman误差向量 (在图11.3中显示为BE)。 这个向量的总体大小,在范数中,是价值函数中误差的总体度量,称为 均方Bellman误差

(15)\[\overline{\mathrm{BE}}(\mathbf{w})=\left\|\overline{\delta}_{\mathbf{w}}\right\|_{\mu}^{2}\]

通常不可能将 \(\overline{\mathrm{BE}}\) 减小到零(此时 \(v_{\mathbf{w}}=v_\pi\)), 但是对于线性函数近似,存在 \(\mathbf{w}\) 的唯一值,\(\overline{\mathrm{BE}}\) 被最小化。 可表示函数子空间中的这一点(图11.3中标记为 \(\min \overline{\mathrm{BE}}\)) 与通常最小化 \(\overline{\mathrm{VE}}\) (显示为 \(\Pi v_{\pi}\))的点不同。 寻求最小化 \(\overline{\mathrm{BE}}\) 的方法将在接下来的两节中讨论。

Bellman误差向量如图11.3所示,作为应用 Bellman算子 \(B_{\pi}:\mathbb{R}^{|\mathcal{S}|}\rightarrow\mathbb{R}^{|\mathcal{S}|}\) 到近似价值函数的结果。Bellman算子的定义是

(16)\[\left(B_{\pi} v\right)(s) \doteq \sum_{a} \pi(a | s) \sum_{s^{\prime}, r} p\left(s^{\prime}, r | s, a\right)\left[r+\gamma v\left(s^{\prime}\right)\right]\]

对于所有 \(s\in\mathcal{S}\)\(v:\mathcal{S} \rightarrow \mathbb{R}\)\(v\) 的Bellman误差向量可以写成 \(\overline{\delta}_{\mathbf{w}}=B_{\pi} v_{\mathbf{w}}-v_{\mathbf{w}}\)

如果Bellman算子应用于可表示子空间中的价值函数,则通常会产生一个位于子空间之外的新价值函数,如图所示。 在动态规划中(没有函数近似),该算子被重复应用于可表示空间之外的点,如图11.3顶部的灰色箭头所示。 最终,该过程收敛于真值函数 \(v_\pi\),这是Bellman算子唯一的不动点,是唯一的价值函数

(17)\[v_{\pi}=B_{\pi} v_{\pi}\]

这只是 \(\pi\) (11.13)的Bellman方程的另一种写法。

然而,利用函数近似,不能表示位于子空间之外的中间价值函数。 无法遵循图11.3上半部分中的灰色箭头,因为在第一次更新(暗线)之后,必须将价值函数投影回可表示的内容。 然后,下一次迭代在子空间内开始;Bellman算子再次在子空间之外取价值函数,然后由投影算子映射回来,如图中下半部分灰色箭头和线所示。 在这些箭头之后是具有近似的类似DP的过程。

在这种情况下,我们感兴趣的是将Bellman误差向量投影回可表示的空间。 这是投影的Bellman误差向量 \(\Pi \overline{\delta}_{v_{\mathbf{w}}}\),如图11.3所示为PBE。 在正常情况下,该向量的大小是近似价值函数中的另一个误差度量。对于任何近似价值函数 \(v\), 我们定义 均方投影Bellman误差,表示为 \(\overline{\mathrm{PBE}}\) 如下

(18)\[\overline{\mathrm{PBE}}(\mathbf{w})=\left\|\Pi \overline{\delta}_{\mathbf{w}}\right\|_{\mu}^{2}\]

对于线性函数近似,总是存在具有零 \(\overline{\mathrm{PBE}}\) 的近似价值函数(在子空间内); 这是第9.4节中介绍的TD的不动点 \(\mathbf{w}_{TD}\)。 正如我们所看到的,在半梯度TD方法和离策略训练下,这一点并不总是稳定的。 如图所示,该价值函数通常不同于最小化 \(\overline{\mathrm{VE}}\)\(\overline{\mathrm{BE}}\) 的函数。 保证收敛于它的方法在第11.7节和第11.8节中讨论。

11.5 Bellman误差中的梯度下降

通过更好地理解价值函数近似及其各种目标,我们现在回到了离策略学习的稳定性挑战。 我们希望应用随机梯度下降(SGD,第9.3节)的方法,其中依据期望等于目标函数的负梯度进行更新。 这些方法总是在目标中下坡(期望),因此通常具有优异的收敛特性。 在本书到目前为止研究的算法中,只有蒙特卡罗方法才是真正的SGD方法。 这些方法在在策略和离策略训练以及一般非线性(可微分)函数近似器之间健壮地收敛, 尽管它们通常比不是SGD方法的具有自举的半梯度方法慢。 正如我们在本章前面所见,半梯度方法可能在离策略训练中, 以及在非线性函数近似的设计案例(Tsitsiklis和Van Roy,1997)中偏离。 使用真正的SGD方法,这种偏离是不可能的。

SGD的吸引力是如此之大,以至于已经付出了巨大的努力来寻找一种利用它进行强化学习的实用方法。 所有这些努力的起点是选择要优化的误差或目标函数。 在本节和下一节中,我们将探讨最受欢迎的目标函数的起源和局限,它基于上一节中介绍的 Bellman误差。 虽然这是一种流行且有影响力的方法,但我们在这里得出的结论是它是一个失误并且没有产生好的学习算法。 另一方面,这种方法以一种有趣的方式失败,提供了可能构成一种好方法的洞察力。

首先,让我们考虑不是Bellman错误,而是更直接和天真的东西。时序差分学习由TD误差驱动。 为什么不将TD误差的预期平方最小化作为目标?在一般函数近似的情况下,带折扣的一步TD误差是

\[\delta_{t}=R_{t+1}+\gamma \hat{v}\left(S_{t+1}, \mathbf{w}_{t}\right)-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)\]

那么一个可能的目标函数是人们可能称之为 均方TD误差

\[\begin{split}\begin{aligned} \overline{\operatorname{TDE}}(\mathbf{w}) &=\sum_{s \in \mathcal{S}} \mu(s) \mathbb{E}\left[\delta_{t}^{2} | S_{t}=s, A_{t} \sim \pi\right] \\ &=\sum_{s \in \mathcal{S}} \mu(s) \mathbb{E}\left[\rho_{t} \delta_{t}^{2} | S_{t}=s, A_{t} \sim b\right] \\ &=\mathbb{E}_{b}\left[\rho_{t} \delta_{t}^{2}\right] & \text{(如果} \mu \text{是} b \text{下遇到的分布)} \end{aligned}\end{split}\]

最后一个等式是SGD所需的形式;它将目标作为可以从经验中抽样的期望(记住经验是由于行为策略 \(b\))。 因此,遵循标准SGD方法,可以基于此预期值的样本推导出每步更新:

\[\begin{split}\begin{aligned} \mathbf{w}_{t+1} &=\mathbf{w}_{t}-\frac{1}{2} \alpha \nabla\left(\rho_{t} \delta_{t}^{2}\right) \\ &=\mathbf{w}_{t}-\alpha \rho_{t} \delta_{t} \nabla \delta_{t} \\ &=\mathbf{w}_{t}+\alpha \rho_{t} \delta_{t}\left(\nabla \hat{v}\left(S_{t}, \mathbf{w}_{t}\right)-\gamma \nabla \hat{v}\left(S_{t+1}, \mathbf{w}_{t}\right)\right) \end{aligned}\end{split}\]

你将认识到与半梯度TD算法(11.2)相同,除了额外的最终项。 该项完成了梯度,使其成为真正的SGD算法,具有出色的收敛保证。 让我们称这个算法为 朴素残差梯度 算法(在Baird,1995之后)。 尽管朴素残差梯度算法健壮地收敛,但它不一定会收敛到理想的位置。

例11.2:A分裂示例,显示了朴素残差梯度算法的天真

_images/example-11.2.png

考虑右侧所示的三态情景MRP。回合从状态 A 开始,然后随机“分裂”, 一半时间到达 B (然后总是以奖励1结束)和一半时间进入状态 C (然后总是以零奖励结束)。 A 中的第一次转移的奖励总是为零,无论回合如何。由于这是一个回合问题,我们可以认为 \(\gamma\) 是1。 我们还假设在在策略上进行训练,因此 \(\rho_t\) 总是1,并且使用表格函数近似, 因此学习算法可以自由地给所有三个状态提供任意的,独立的价值。因此,这应该是一个容易的问题。

这些价值应该是什么?从 A 开始,一半的时间回报是1,一半的时间回报是0;A 应该具有值 \(\frac{1}{2}\)。 从 B 开始,回报始终为1,因此其值应为1,类似于 C,回报始终为0,因此其值应为0。 这些是真值,因为这是一个表格问题,所有方法都呈现以前完全收敛于他们。

然而,朴素残差梯度算法找到 BC 的不同值。 它收敛于值为 \(\frac{3}{4}\) 的B和值为 \(\frac{1}{4}\) 的C(A正确收敛到 \(\frac{1}{2}\))。 事实上,这些是最小化 \(\overline{\mathrm{TDE}}\) 的值。

让我们计算这些值的 \(\overline{\mathrm{TDE}}\)。 每回合的第一次转移是向上从 A\(\frac{1}{2}\)B\(\frac{3}{4}\),变化为 \(\frac{1}{4}\), 或向下从 A\(\frac{1}{2}\)C\(\frac{1}{4}\),变化为 \(-\frac{1}{4}\)。 因为在这些转移上奖励为零,并且 \(\gamma=1\),所以这些改变 TD误差,因此在第一次转移时平方TD误差始终为 \(\frac{1}{16}\)。 第二次转移是类似的;它要么从 B\(\frac{3}{4}\) 升到1的奖励(终止状态值0), 或从 C\(\frac{1}{4}\) 下降到0的奖励(同样具有值0的终端状态)。 因此,TD误差总是 \(\pm\frac{1}{4}\),第二步的平方误差为 \(\frac{1}{16}\)。 因此,对于这组值,两个步骤的TDE均为 \(\frac{1}{16}\)

现在让我们计算真实值的 \(\overline{\mathrm{TDE}}\)B 为1,C 为0,A 为1)。 在这种情况下,第一次转移是从 \(\frac{1}{2}\) 到在 B 的1,,或从 \(\frac{1}{2}\) 到在 C 的0; 在任何一种情况下,绝对误差为 \(\frac{1}{2}\),平方误差为 \(\frac{1}{4}\)。 第二个转移的误差为零,因为起始值(1或0取决于转移是来自 B 还是 C)始终与立即奖励和回报完全匹配。 因此,平方TD误差在第一次转移时为 \(\frac{1}{4}\),在第二次转移时为0,对于两次转移为 \(\frac{1}{8}\) 的平均奖励。 由于 \(\frac{1}{8}\) 大于 \(\frac{1}{16}\),根据 \(\overline{\mathrm{TDE}}\),这种解决方案更糟糕。 在这个简单的问题上,真值没有最小的 \(\overline{\mathrm{TDE}}\)

在A分裂示例中使用表格表示,因此可以精确地表示真实状态值,但是朴素残差梯度算法找到不同的值, 并且这些值具有比真实值更低的 \(\overline{\mathrm{TDE}}\)。 最小化 \(\overline{\mathrm{TDE}}\) 是天真的;通过惩罚所有TD误差,它实现了比准确预测更像时序平滑的东西。

一个更好的想法似乎是最小化Bellman误差。如果学习了确切的值,则Bellman误差在任何地方都为零。 因此,Bellman误差最小化算法应该没有A分裂示例的麻烦。 我们不能指望一般实现Bellman误差,因为它将涉及找到真值函数,我们假设它在可表示值函数的空间之外。 但接近这个理想是一个看似自然的目标。正如我们所看到的,Bellman误差也与TD误差密切相关。 状态的Bellman误差是该状态下的预期TD误差。因此,让我们用预期的TD误差重复上面的推导 (这里的所有期望都隐含地以 \(S_t\) 为条件):

\[\begin{split}\begin{aligned} \mathbf{w}_{t+1} &=\mathbf{w}_{t}-\frac{1}{2} \alpha \nabla\left(\mathbb{E}_{\pi}\left[\delta_{t}\right]^{2}\right) \\ &=\mathbf{w}_{t}-\frac{1}{2} \alpha \nabla\left(\mathbb{E}_{b}\left[\rho_{t} \delta_{t}\right]^{2}\right) \\ &=\mathbf{w}_{t}-\alpha \mathbb{E}_{b}\left[\rho_{t} \delta_{t}\right] \nabla \mathbb{E}_{b}\left[\rho_{t} \delta_{t}\right] \\ &=\mathbf{w}_{t}-\alpha \mathbb{E}_{b}\left[\rho_{t}\left(R_{t+1}+\gamma \hat{v}\left(S_{t+1}, \mathbf{w}\right)-\hat{v}\left(S_{t}, \mathbf{w}\right)\right)\right] \mathbb{E}_{b}\left[\rho_{t} \nabla \delta_{t}\right] \\ &=\mathbf{w}_{t}+\alpha\left[\mathbb{E}_{b}\left[\rho_{t}\left(R_{t+1}+\gamma \hat{v}\left(S_{t+1}, \mathbf{w}\right)\right)\right]-\hat{v}\left(S_{t}, \mathbf{w}\right)\right]\left[\nabla \hat{v}\left(S_{t}, \mathbf{w}\right)-\gamma \mathbb{E}_{b}\left[\rho_{t} \nabla \hat{v}\left(S_{t+1}, \mathbf{w}\right)\right]\right] \end{aligned}\end{split}\]

该更新和各种采样方法被称为 残差梯度算法。如果你只是在所有预期中使用样本值,那么上面的等式几乎精确地减少到(11.23),即朴素残差梯度算法 [1]。 但这是天真的,因为上面的等式涉及下一个状态 \(S_{t+1}\),出现在两个相乘法的期望中。 为了获得乘积的无偏差样本,需要两个下一状态的独立样本,但在与外部环境的正常交互期间,仅获得一个。 可以对一个期望或另一个期望进行采样,但不能同时采样。

有两种方法可以使残差梯度算法起作用。 一种是确定性环境。如果到下一状态的转换是确定性的,那么两个样本必然是相同的,并且朴素算法是有效的。 另一种方法是从 \(S_t\) 获得下一个状态 \(S_{t+1}\)两个 独立样本,一个用于第一个期望,另一个用于第二个期望。 在与环境的真实交互中,这似乎是不可能的,但是当与模拟环境交互时,它就是可能的。 可以简单地回滚到先前的状态并在从第一个下一个状态前进之前获得备用的下一个状态。 在这些情况中的任何一种情况下,保证残差梯度算法在步长参数的通常条件下收敛到 \(\overline{\mathrm{BE}}\) 的最小值。 作为一种真正的SGD方法,这种收敛是健壮的,适用于线性和非线性函数近似器。 在线性情况下,始终收敛到最小化 \(\overline{\mathrm{BE}}\) 的唯一 \(\mathbf{w}\)

然而,仍然存在至少三种方式,其中残余梯度方法的收敛不令人满意。 第一个是经验上它是缓慢的,比半梯度方法慢得多。实际上,这种方法的支持者已经提出通过最初将其与更快的半梯度方法相结合来提高其速度, 然后逐渐切换到残差梯度以获得收敛保证(Baird和Moore,1999)。 残差梯度算法不令人满意的第二种方式是它似乎仍然收敛到错误的值。 它确实在所有表格情况下得到了正确的值,例如A分裂示例,正如对于那些可能的Bellman方程的精确解决方案。 但是如果我们用真正的函数近似来检验例子, 那么残差梯度算法,实际上是 \(\overline{\mathrm{BE}}\) 目标,似乎找到了错误的值函数。 其中一个最有说服力的例子是A分裂示例的变化,称为A 分割示例,如下面的框所示, 其中残差梯度算法找到与其朴素版本相同的差劲的解决方案。 该示例直观地示出了最小化 \(\overline{\mathrm{BE}}\) (残差梯度算法确实如此)可能不是期望的目标。

例11.3:A预分割示例,\(\overline{\mathrm{BE}}\) 的反例

_images/example-11.3.png

考虑右侧所示的三状态回合MRP:回合以 A1A2 开始,概率相等。 这两个状态看起来与函数近似器完全相同,就像单个状态 A 一样, 其特征表示与其他两个状态 BC 的特征表示不同且无关,它们也彼此不同。 具体地,函数近似器的参数具有三个分量,一个给出状态 B 的值,一个给出状态 C 的值,一个给出状态 A1A2 的值。 除了选择初始状态之外,系统是确定性的。如果它从 A1 开始,那么它转换为 B,奖励为0,然后转为终止,奖励为1。 如果它从 A2 开始,则转换为 C,然后转为终止,两个奖励均为零。

对于仅查看特征的学习算法,系统看起来与A分裂示例相同。系统似乎总是从 A 开始, 然后是概率相等的 BC,然后以1或0终止,具体取决于先前的状态。 如在A分裂示例中,BC 的真实值是1和0,并且通过对称性,A1A2 的最佳共享值是 \(\frac{1}{2}\)

因为此问题在外部与A分裂示例相同,所以我们已经知道算法将找到哪些值。 半梯度TD收敛到刚刚提到的理想值,而朴素残差梯度算法分别收敛于 BC 的值 \(\frac{3}{4}\)\(\frac{1}{4}\)。 所有状态转换都是确定性的,因此非朴素残差梯度算法也将收敛到这些值(在这种情况下是相同的算法)。 接下来,这种“天真”的解决方案也必须是最小化 \(\overline{\mathrm{BE}}\) 的解决方案,因此它也是如此。 在确定性问题上,Bellman误差和TD误差都是相同的, 因此 \(\overline{\mathrm{BE}}\) 总是与 \(\overline{\mathrm{TDE}}\) 相同。 在此示例中优化 \(\overline{\mathrm{BE}}\) 会产生与A分裂示例中的朴素残差梯度算法相同的失败模式。

残差梯度算法的收敛性不令人满意的第三种方法将在下一节中解释。 与第二种方式一样,第三种方式也是 \(\overline{\mathrm{BE}}\) 目标本身的问题,而不是用于实现它的任何特定算法。

11.6 Bellman误差是不可学习的

我们在本节中介绍的可学习性概念与机器学习中常用的概念不同。 在机器学习中,如果一个假设具有 高效(effciently) 可学性,则可以说它是“可学习的”,这意味着它可以在多项式而不是指数个例子中学习。 在这里,我们以更基本的方式使用该术语,意味着可以学习,具有任何经验。 事实证明,即使从无限量的经验数据中也无法学习许多对强化学习的明显兴趣。 这些数量是明确定义的,并且可以在了解环境内部结构的情况下计算,但不能从观察到的特征向量,动作和奖励序列中计算或估计 [2]。 我们说它们不可 学习。 事实证明,在这两个部分中引入的Bellman误差目标(\(\overline{\mathrm{BE}}\))在这个意义上是不可学习的。 无法从可观察数据中学习Bellman误差目标可能是不寻求它的最强烈理由。

为了明确可学习性的概念,让我们从一些简单的例子开始。考虑下面的两个马尔科夫奖励过程 [3] (MRP):

_images/two-markov-reward-processes.png

在两条边离开状态的情况下,假设两个转换以相同的概率发生,并且数字表示所获得的奖励。 所有的状态都是一样的;它们都产生相同的单分量特征向量 \(x=1\) 并具有近似值 \(w\)。 因此,数据轨迹的唯一变化部分是奖励序列。左MRP保持相同状态并随机发出0和2的无穷无尽的流,每个具有0.5概率。 在每一步中,正确的MRP要么保持当前状态,要么以相同的概率切换到另一个状态。 奖励在该MRP中是确定性的,从一个状态始终是0并且从另一个状态始终是2, 但是因为每个步骤的每个状态都是相同的,所以可观察数据再次是随机的0和2的无穷无尽的流,相同由左MRP产生的。 (我们可以假设正确的MRP以相同的概率随机地以两种状态之一开始。) 因此,即使给出无限量的数据,也不可能分辨出这两个MRP中的哪一个正在生成它。 特别是,我们无法判断MRP是否有一个或两个状态,是随机的还是确定的。这些东西是不可学习的。

这对MRP还说明 \(\overline{\mathrm{VE}}\) 目标(9.1)是不可学习的。 如果 \(\gamma=0\),则从左到右的三个状态(在两个MRP中)的真实值分别为1,0和2。 假设 \(w = 1\)。然后左侧MRP的 \(\overline{\mathrm{VE}}\) 为0,右侧MRP的VE为1。 由于 \(\overline{\mathrm{VE}}\) 在这两个问题上不同, 但生成的数据具有相同的分布,因此无法学习 \(\overline{\mathrm{VE}}\)\(\overline{\mathrm{VE}}\) 不是数据分布的唯一函数。 如果无法学习,那么 \(\overline{\mathrm{VE}}\) 怎么可能有用作学习的目标?

如果无法学习目标,那确实会使其效用受到质疑。然而,就 \(\overline{\mathrm{VE}}\) 而言,还有一条出路。 注意,对于上述两个MRP,相同的解决方案 \(w=1\) 是最佳的(假设对于右MRP中的两个不可区分的状态,\(\mu\) 是相同的)。 这是巧合,还是通常情况下,具有相同数据分布的所有MDP也具有相同的最佳参数向量? 如果这是真的──我们接下来会证明它是──那么 \(\overline{\mathrm{VE}}\) 仍然是一个可用的目标。 \(\overline{\mathrm{VE}}\) 是不可学习的,但优化它的参数是!

要理解这一点,引入另一个自然目标函数是有用的,这次是一个明显可以学习的函数。 始终可观察到的一个错误差是每次的估计值与该时间的返回值之间的误差。 均方根回报误差 (表示为 \(\overline{\mathrm{RE}}\))是该误差平方在 \(\mu\) 的期望。 在在策略案例中,\(\overline{\mathrm{RE}}\) 可以被写成

\[\begin{split}\begin{aligned} \overline{\operatorname{RE}}(\mathbf{w}) &=\mathbb{E}\left[\left(G_{t}-\hat{v}\left(S_{t}, \mathbf{w}\right)\right)^{2}\right] \\ &=\overline{\operatorname{VE}}(\mathbf{w})+\mathbb{E}\left[\left(G_{t}-v_{\pi}\left(S_{t}\right)\right)^{2}\right] & \text{(11.24)} \end{aligned}\end{split}\]

因此,除了不依赖于参数向量的方差项之外,这两个目标是相同的。 因此,这两个目标必须具有相同的最佳参数值 \(\mathbf{w}^{*}\)。总体关系总结在图11.4的左侧。

_images/figure-11.4.png

图11.4: 数据分布,MDP和各种目标之间的因果关系。 左,蒙特卡洛目标: 两个不同的MDP可以产生相同的数据分布,但也产生不同的 \(\overline{\mathrm{VE}}\), 证明 \(\overline{\mathrm{VE}}\) 目标不能从数据中确定并且不可学习。 但是,所有这些 \(\overline{\mathrm{VE}}\) 必须具有相同的最佳参数向量,\(\mathbf{w}^{*}\)! 此外,这个相同的 \(\mathbf{w}^{*}\) 可以从另一个目标 \(\overline{\mathrm{RE}}\) 确定,该目标是从数据分布中唯一确定的。 因此即使 \(\overline{\mathrm{VE}}\) 不是,\(\mathbf{w}^{*}\)\(\overline{\mathrm{RE}}\) 也是可学习的。 右,引导目标: 两个不同的MDP可以产生相同的数据分布,但也产生不同的 \(\overline{\mathrm{BE}}\) 并具有不同的最小化参数向量; 这些都无法从数据分布中学习。\(\overline{\mathrm{PBE}}\)\(\overline{\mathrm{TDE}}\) 目标及其(不同的)最小值可以直接根据数据确定,因此是可学习的。

练习11.4 证明(11.24)。提示:将 \(\overline{\mathrm{RE}}\) 写为 对 \(S_t=s\) 的平方误差期望的可能状态 \(s\) 的期望。 然后从误差中加上和减去状态 \(s\) 的真值(在平方之前),将减去的真值与返回分组,并将增加的真值与估计值分组。 然后,如果你展开平方,最复杂的项将最终为零,剩下则是(11.24)。

现在让我们回到 \(\overline{\mathrm{BE}}\)\(\overline{\mathrm{BE}}\) 就像 \(\overline{\mathrm{VE}}\) 一样, 它可以根据MDP的知识进行计算,但不能从数据中学习。 但它不像 \(\overline{\mathrm{RE}}\),因为它的最小解决方案是不可学习的。 下面的框显示了一个反例──两个MRP生成相同的数据分布,但其最小化参数向量不同,证明最佳参数向量不是数据的函数,因此无法从中学习。 我们已经考虑的其他引导目标, 即 \(\overline{\mathrm{PBE}}\)\(\overline{\mathrm{TDE}}\), 可以从数据(可学习的)确定,并确定通常彼此不同的最佳解决方案和 \(\overline{\mathrm{BE}}\) 最小值。 一般情况总结在图11.4的右侧。

例11.4:Bellman误差可学习性的反例

为了展示各种可能性,我们需要一个稍微复杂的马尔可夫奖励过程(MRP),而不是之前考虑的那些。考虑以下两个MRP:

_images/example-11.4.png

在两条边离开状态的情况下,假设两个转换以相同的概率发生,并且数字表示所接收的奖励。 左边的MRP有两个明确表示的状态。右边的MRP有三种状态,其中两种状态 BB’ 看起来相同,必须给出相同的近似值。 具体而言,\(\mathbf{w}\) 具有两个分量,状态 A 的值由第一个分量给出,BB’ 的值由第二个给出。 第二个MRP被设计成在所有三个状态中花费相等的时间,因此对于所有 \(s\),我们可以取 \(\mu(s)=1\)

请注意,两个MRP的可观察数据分布是相同的。在这两种情况下,个体都会看到单次出现的 A 后跟一个0, 然后是一些明显的B,每个后跟一个 -1,除了最后一个,然后是1,然后我们再次从 A 后跟一个0重新开始,等等。 所有的统计细节都是一样的;在两个MRP中,一串 \(k\) 个B的概率是 \(2^{-k}\)

现在假设 \(\mathbf{w}=\mathbf{0}\)。在第一个MRP中,这是一个精确解,并且 \(\overline{\mathrm{BE}}\) 为零。 在第二MRP中,该解决方案在 BB’ 均产生1的平方误差, 使得 \(\overline{\mathrm{BE}}=\mu(\mathrm{B}) 1+\mu\left(\mathrm{B}^{\prime}\right) 1=\frac{2}{3}\)。 这两个产生相同个数据分布的MRP具有不同的 \(\overline{\mathrm{BE}}\)\(\overline{\mathrm{BE}}\) 不可学习。

此外(并且与 \(\overline{\mathrm{VE}}\) 的早期示例不同),对于两个MRP,\(\mathbf{w}\) 的最小值是不同的。 对于第一个MRP,\(\mathbf{w}=\mathbf{0}\) 可以最小化任何 \(\overline{\mathrm{BE}}\)。 对于第二个MRP,最小化 \(\mathbf{w}\) 是一个复杂的函数 \(\gamma\), 但在极限情况下,为 \(\gamma \rightarrow 1\),它是 \(\left(-\frac{1}{2}, 0\right)^{\top}\)。 因此,不能仅从数据中估计出最小化 \(\overline{\mathrm{BE}}\) 的解决方案;需要超出数据中显示的MRP知识。 从这个意义上说,原则上不可能将BE作为学习的目标。

令人惊讶的是,在第二MRP中,A\(\overline{\mathrm{BE}}\) 最小化值远离零。 回想一下 A 具有专用权重,因此其值不受函数近似的约束。A 之后是0的奖励并转换到值接近0的状态, 这表明 \(v_{\mathbf{w}}(A)\) 应为0;为什么它的最佳值基本上是负的而不是0? 答案是当从 B 到达 A 时,使 \(v_{\mathbf{w}}(A)\) 为负减少了误差。 这个确定性转变的回报是1,这意味着 B 应该具有比 A 大1的值。 因为 B 的值近似为零,所以 A 的值被驱动为 -1。 \(\overline{\mathrm{BE}}\) 最小化 A 的值为 \(\approx-\frac{1}{2}\) 是在减少离开和进入 A 时的误差之间的折衷。

因此,\(\overline{\mathrm{BE}}\) 是不可学习的;它不能从特征向量和其他可观察数据估计。 这将 \(\overline{\mathrm{BE}}\) 限制为基于模型的设置。 可能没有算法可以最小化 \(\overline{\mathrm{BE}}\) 而无法访问特征向量之外的基础MDP状态。 残差梯度算法只能最小化 \(\overline{\mathrm{BE}}\), 因为它允许从同一状态加倍采样──不是具有相同特征向量的状态,而是保证为相同基础状态的状态。 我们现在可以看到,没有办法解决这个问题。最小化 \(\overline{\mathrm{BE}}\) 需要对名义上的MDP进行一些此类访问。 这是超出第例11.3中A预分割示例中所确定的 \(\overline{\mathrm{BE}}\) 的一个重要限制。 所有这些都引起了对 \(\overline{\mathrm{PBE}}\) 的更多关注。

11.7 梯度TD方法

我们现在考虑用于最小化 \(\overline{\mathrm{PBE}}\) 的SGD方法。 作为真正的SGD方法,即使在非策略训练和非线性函数近似下,这些 梯度-TD方法 也具有稳健的收敛特性。 请记住,在线性情况下,始终存在精确解, 即TD固定点 \(\mathbf{W}_{\mathrm{TD}}\)\(\overline{\mathrm{PBE}}\) 为零。 这种解决方案可以通过最小二乘法(第9.8节)找到,但只能通过参数数量的二次 \(O\left(d^{2}\right)\) 复杂度的方法找到。 我们寻求一种SGD方法,该方法应该是 \(O(d)\) 并且具有稳健的收敛特性。 梯度-TD方法接近于实现这些目标,代价是计算复杂度大幅加倍。

为了得到 \(\overline{\mathrm{PBE}}\) 的SGD方法(假设线性函数近似),我们首先用矩阵术语扩展和重写目标(11.22):

\[\begin{split}\begin{aligned} \overline{\mathrm{PBE}}(\mathbf{w}) &=\left\|\Pi \overline{\delta}_{\mathbf{w}}\right\|_{\mu}^{2} \\ &=\left(\Pi \overline{\delta}_{\mathbf{w}}\right)^{\top} \mathbf{D} \Pi \overline{\delta}_{\mathbf{w}} & \text{(从(11.15)得出)}\\ &=\overline{\delta}_{\mathbf{w}}^{\top} \Pi^{\top} \mathbf{D} \Pi \overline{\delta}_{\mathbf{w}} \\ &=\overline{\delta}_{\mathbf{w}}^{\top} \mathbf{D} \mathbf{X}\left(\mathbf{X}^{\top} \mathbf{D} \mathbf{X}\right)^{-1} \mathbf{X}^{\top} \mathbf{D} \overline{\delta}_{\mathbf{w}} & \text{(11.25)} \\ &\text { (使用 }(11.14) \text { 和单位矩阵 } \Pi^{\top} \mathbf{D} \Pi=\mathbf{D} \mathbf{X}\left(\mathbf{X}^{\top} \mathbf{D} \mathbf{X}\right)^{-1} \mathbf{X}^{\top} \mathbf{D} ) \\ &=\left(\mathbf{X}^{\top} \mathbf{D} \overline{\delta}_{\mathbf{w}}\right)^{\top}\left(\mathbf{X}^{\top} \mathbf{D} \mathbf{X}\right)^{-1}\left(\mathbf{X}^{\top} \mathbf{D} \overline{\delta}_{\mathbf{w}}\right) &\text{(11.26)} \end{aligned}\end{split}\]

关于 \(\mathbf{w}\) 的梯度是

\[\nabla \overline{\mathrm{PBE}}(\mathbf{w})=2 \nabla\left[\mathbf{X}^{\top} \mathbf{D} \overline{\delta}_{\mathbf{w}}\right]^{\top}\left(\mathbf{X}^{\top} \mathbf{D} \mathbf{X}\right)^{-1}\left(\mathbf{X}^{\top} \mathbf{D} \overline{\delta}_{\mathbf{w}}\right)\]

要将此转换为SGD方法,我们必须在每个具有此数量作为其预期值的时间步骤上进行采样。 让我们把 \(\mu\) 作为行为策略下访问的状态的分布。 然后,上述所有三个因子都可以根据此分布的期望来书写。例如,最后一个因子可以写成

\[\mathbf{X}^{\top} \mathbf{D} \overline{\delta}_{\mathbf{w}}=\sum_{s} \mu(s) \mathbf{x}(s) \overline{\delta}_{\mathbf{w}}(s)=\mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right]\]

这只是半梯度TD(0)更新(11.2)的期望。第一个因子是此更新的梯度的转置:

\[\begin{split}\begin{aligned} \nabla \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right]^{\top} &=\mathbb{E}\left[\rho_{t} \nabla \delta_{t}^{\top} \mathbf{x}_{t}^{\top}\right] \\ &=\mathbb{E}\left[\rho_{t} \nabla\left(R_{t+1}+\gamma \mathbf{w}^{\top} \mathbf{x}_{t+1}-\mathbf{w}^{\top} \mathbf{x}_{t}\right)^{\top} \mathbf{x}_{t}^{\top}\right] & (\text{使用回合} \delta_{t}) \\ &=\mathbb{E}\left[\rho_{t}\left(\gamma \mathbf{x}_{t+1}-\mathbf{x}_{t}\right) \mathbf{x}_{t}^{\top}\right] \end{aligned}\end{split}\]

最后,中间因子是特征向量的期望外积矩阵的逆:

\[\mathbf{X}^{\top} \mathbf{D X}=\sum_{s} \mu(s) \mathbf{x}_{s} \mathbf{x}_{s}^{\top}=\mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]\]

将这些期望替换为我们表达 \(\overline{\mathrm{PBE}}\) 梯度的三个因子,我们得到了

(19)\[\nabla \overline{\mathrm{PBE}}(\mathbf{w})=2 \mathbb{E}\left[\rho_{t}\left(\gamma \mathbf{x}_{t+1}-\mathbf{x}_{t}\right) \mathbf{x}_{t}^{\top}\right] \mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]^{-1} \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right]\]

我们通过以这种形式编写梯度来取得任何进展可能并不明显。它是三个表达式的乘积,第一个和最后一个不是独立的。 它们都依赖于下一个特征向量 \(\mathbf{x}_{t+1}\);我们不能简单地对这两个期望进行抽样,然后将样本相乘。 这将为我们提供梯度的有偏估计,就像在朴素残差梯度算法中一样。

另一个想法是分别估计三个期望值,然后将它们组合起来产生梯度的无偏估计。 这将起作用,但需要大量的计算资源,特别是存储前两个期望值,即 \(d \times d\) 矩阵,并计算第二个的逆。 这个想法可以改进。如果估计并存储了三个期望中的两个,则可以对第三个期望进行采样并与两个存储的量一起使用。 例如,您可以存储后两个量的估计值(使用第9.8节中的增量逆更新技术),然后对第一个表达式进行采样。 不幸的是,整体算法仍然具有二次复杂度( \(O\left(d^{2}\right)\) 阶)。

分别存储一些估计然后将它们与样本组合的想法是一个很好的想法,也用在梯度-TD方法中。 梯度-TD方法估计并存储第二个因子的 乘积 (11.27)。 这些因子是 \(d \times d\) 矩阵和 \(d\) 维向量,因此它们的乘积只是一个 \(d\) 维向量, 就像 \(\mathbf{w}\) 本身一样。我们将第二个学习的向量表示为 \(\mathbf{v}\)

(20)\[\mathbf{v} \approx \mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]^{-1} \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right]\]

这种形式对于线性监督学习的学生来说是熟悉的。 它是线性最小二乘问题的解决方案,试图从特征中近似 \(\rho_{t} \delta_{t}\)。 用于递增地找到最小化预期平方误差 \((\mathbf{v}^{\top} \mathbf{x}_{t}-\rho_{t} \delta_{t})^{2}\) 的向量 \(\mathbf{v}\) 的标准SGD方法被称为最小均方(LMS)规则(这里增加了重要性采样率):

\[\mathbf{v}_{t+1} \doteq \mathbf{v}_{t}+\beta \rho_{t}\left(\delta_{t}-\mathbf{v}_{t}^{\top} \mathbf{x}_{t}\right) \mathbf{x}_{t}\]

其中 \(\beta>0\) 是另一个步长参数。我们可以使用这种方法有效地实现(11.28) \(O(d)\) 存储和每步计算。

给定存储的估计 \(\mathbf{v}_{t}\) 近似(11.28), 我们可以使用基于(11.27)的SGD方法更新我们的主参数向量 \(\mathbf{w}_{t}\)。最简单的这样的规则是

\[\begin{split}\begin{aligned} \mathbf{w}_{t+1} &=\mathbf{w}_{t}-\frac{1}{2} \alpha \nabla \overline{\mathrm{PBE}}\left(\mathbf{w}_{t}\right) & \text{(一般的SGD规则)}\\ &=\mathbf{w}_{t}-\frac{1}{2} \alpha 2 \mathbb{E}\left[\rho_{t}\left(\gamma \mathbf{x}_{t+1}-\mathbf{x}_{t}\right) \mathbf{x}_{t}^{\top}\right] \mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]^{-1} \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right] & \text{(由(11.27))}\\ &=\mathbf{w}_{t}-\frac{1}{2} \alpha 2 \mathbb{E}\left[\rho_{t}\left(\gamma_{t}-\gamma \mathbf{x}_{t+1}\right) \mathbf{x}_{t}^{\top}\right] \mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]^{-1} \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right] & \text{(11.29)}\\ & \approx \mathbf{w}_{t}+\alpha \mathbb{E}\left[\rho_{t}\left(\mathbf{x}_{t}-\gamma \mathbf{x}_{t+1}\right) \mathbf{x}_{t}^{\top}\right] \mathbf{V}_{t} & \text{(基于(11.28))}\\ & \approx \mathbf{w}_{t}+\alpha \rho_{t}\left(\mathbf{x}_{t}-\gamma \mathbf{x}_{t+1}\right) \mathbf{x}_{t}^{\top} \mathbf{v}_{t} & \text{(采样)} \end{aligned}\end{split}\]

该算法称为 GTD2。 注意,如果首先完成最终内积(\(\mathbf{x}_{t}^{\top} \mathbf{v}_{t}\)), 则整个算法具有 \(O(d)\) 复杂度。

在替换 \(\mathbf{v}_{t}\) 之前,可以通过执行一些更多的分析步骤来导出稍微更好的算法。 从(11.29)继续:

\[\begin{split}\begin{aligned} \mathbf{w}_{t+1} &=\mathbf{w}_{t}+\alpha \mathbb{E}\left[\rho_{t}\left(\mathbf{x}_{t}-\gamma \mathbf{x}_{t+1}\right) \mathbf{x}_{t}^{\top}\right] \mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]^{-1} \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right] \\ &=\mathbf{w}_{t}+\alpha\left(\mathbb{E}\left[\rho_{t} \mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]-\gamma \mathbb{E}\left[\rho_{t} \mathbf{x}_{t+1} \mathbf{x}_{t}^{\top}\right]\right) \mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]^{-1} \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right] \\ &=\mathbf{w}_{t}+\alpha\left(\mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]-\gamma \mathbb{E}\left[\rho_{t} \mathbf{x}_{t+1} \mathbf{x}_{t}^{\top}\right]\right) \mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]^{-1} \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right] \\ &=\mathbf{w}_{t}+\alpha\left(\mathbb{E}\left[\mathbf{x}_{t} \rho_{t} \delta_{t}\right]-\gamma \mathbb{E}\left[\rho_{t} \mathbf{x}_{t+1} \mathbf{x}_{t}^{\top}\right] \mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]^{-1} \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right]\right) \\ &\approx \mathbf{w}_{t}+\alpha\left(\mathbb{E}\left[\mathbf{x}_{t} \rho_{t} \delta_{t}\right]-\gamma \mathbb{E}\left[\rho_{t} \mathbf{x}_{t+1} \mathbf{x}_{t}^{\top}\right] \mathbf{v}_{t}\right) & \text{(基于(11.28))} \\ &\approx \mathbf{w}_{t}+\alpha \rho_{t}\left(\delta_{t} \mathbf{x}_{t}-\gamma \mathbf{x}_{t+1} \mathbf{x}_{t}^{\top} \mathbf{v}_{t}\right) & \text{(采样)} \end{aligned}\end{split}\]

如果最终内积(\(\mathbf{x}_{t}^{\top} \mathbf{v}_{t}\))首先完成,则再次为 \(O(d)\)。 该算法被称为 具有梯度校正(TDC)的TD(0),或者作为 GTD(0)

图11.5显示了Baird反例中TDC的样本和预期行为。 按照预期,\(\overline{\mathrm{PBE}}\) 降至零,但请注意参数向量的各个分量不接近零。 事实上,对于所有 \(s\),这些值仍远不是最优解,\(\hat{v}(s)=0\), 其中 \(\mathbf{w}\) 必须与 \((1,1,1,1,1,1,4,-2)^{\top}\) 成比例。 在1000次迭代之后,我们仍然远离最佳解决方案,正如我们可以从 \(\overline{\mathrm{VE}}\) 看到的那样,它几乎保持为2。 系统实际上正在收敛到最优解,但是由于 \(\overline{\mathrm{PBE}}\) 已经接近于零,因此进展非常缓慢。

_images/figure-11.5.png

图11.5: 关于Baird反例的TDC算法的行为。在左侧显示典型的单次运行,在右侧显示该算法的预期行为, 如果更新是同步完成的(类似于(11.9),除了两个TDC参数向量)。 步长为 \(\alpha=0.005\)\(\beta=0.05\)

GTD2和TDC都涉及两个学习过程, 一个用于 \(\mathbf{w}\) 的主要学习过程和一个用于 \(\mathbf{v}\) 的次要学习过程。 主要学习过程的逻辑依赖于已经完成的次要学习过程,至少近似,而次要学习过程在不受第一个的影响的情况下进行。 我们将这种不对称依赖称为 级联。在级联中,我们经常假设次要学习过程进展得更快, 因此始终处于渐近值,准备好并准确地协助主要学习过程。 这些方法的收敛证明经常明确地做出这个假设。这些被称为 两次时间尺度(two-time-scale) 的证明。 快速时间尺度是次要学习过程的时间尺度,较慢的时间尺度是主要学习过程的时间尺度。 如果 \(\alpha\) 是主要学习过程的步长,\(\beta\) 是次要学习过程的步长, 那么这些收敛证明通常要求极限 \(\beta \rightarrow 0\)\(\frac{\alpha}{\beta} \rightarrow 0\)

梯度-TD方法是目前最容易理解和广泛使用的稳定离策略方法。行动价值和控制的扩展(GQ,Maei等,2010), 资格迹(GTD(\(\lambda\))和GQ(\(\lambda\)),Maei,2011;Maei和Sutton,2010), 以及非线性函数近似(Maei等,2009)。在半梯度TD和梯度TD之间还提出了混合算法(Hackman,2012;White and White,2016)。 混合TD算法在目标和行为策略非常不同的状态下表现得像梯度-TD算法,并且在目标和行为策略相同的状态下表现得像半梯度算法。 最后,将梯度TD思想与近端方法和控制变量的思想相结合,以产生更有效的方法(Mahadevan等,2014;Du等,2017)。

11.8 强调TD方法(Emphatic-TD)

我们现在转向第二个主要策略,该策略已被广泛探索,以获得具有函数近似的廉价且有效的离策略学习方法。 回想一下线性半梯度TD方法在策略分布下训练时是有效和稳定的, 我们在9.4节中说明这与矩阵 \(\mathbf{A}\) (9.11) [4] 的正定性 和目标策略下的策略状态分布 \(\mu_{\pi}\) 和状态转移概率 \(p(s | s, a)\) 之间的匹配有关。 在离策略学习中,我们使用重要性采样重新调整状态转换,以便它们适合于了解目标策略,但状态分布仍然是行为策略的分布。 有一个不匹配。一个自然的想法是以某种方式重新调整状态,强调一些并且不再强调其他状态,以便将更新的分布返回到在策略的分布。 然后会有一个匹配,稳定性和收敛将来自现有结果。这是强调-TD方法的概念,首先在第9.11节中引入了在策略培训。

实际上,“在策略的分布”这个概念并不完全正确,因为有许多在策略分布,其中任何一个都足以保证稳定。 考虑一个没有折扣的情回合问题。回合终止的方式完全取决于转换概率,但回合可能有几种不同的方式开始。 然而,如果所有状态转换都是由目标策略引起的,则回合开始,然后产生的状态分布是在策略分布。 在结束回合之前,您可能会开始接近终端状态并且仅访问几个具有高概率的状态。 或者你可能会在很远的地方开始并在终止之前通过许多状态。 两者都是在策略分布,并且使用线性半梯度方法对两者进行的训练将保证稳定。 但是,只要所有遇到的状态都更新到终止,该过程就会启动,就会产生在策略分发。

如果存在折扣,则可以将其视为部分或概率性终止以用于这些目的。如果 \(\gamma=0.9\), 那么我们可以考虑概率为0.1,该过程在每个时步终止,然后立即在转换到的状态重新启动。 折扣问题是在每一步都以概率 \(1-\gamma\) 连续终止和重新启动的问题。 这种考虑折扣的方式是一个更普遍的 伪终止 概念的例子,它不影响状态转换的顺序,但确实会影响学习过程和学习的数量。 这种伪终止对于离策略学习非常重要,因为重启是可选的──记住我们可以以任何方式启动──并且终止可以减少在策略分布中保持包括遇到状态的需要。 也就是说,如果我们不将新状态视为重启,那么快速折扣会给我们带来有限的在策略分布。

用于学习回合状态值的一步法强调TD算法定义如下:

\[\begin{split}\begin{array}{l} {\delta_{t}=R_{t+1}+\gamma \hat{v}\left(S_{t+1}, \mathbf{w}_{t}\right)-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)} \\ {\mathbf{w}_{t+1}=\mathbf{w}_{t}+\alpha M_{t} \rho_{t} \delta_{t} \nabla \hat{v}\left(S_{t}, \mathbf{w}_{t}\right)} \\ {M_{t}=\gamma \rho_{t-1} M_{t-1}+I_{t}} \end{array}\end{split}\]

其中兴趣 \(I_t\) 任意和重点 \(M_t\) 被初始化为 \(M_{t-1}=0\)。 这个算法如何在Baird的反例上表现?图11.6显示了期望参数矢量分量的轨迹(对于所有 \(t\)\(I_t=1\) 的情况)。 有一些振荡,但最终一切都收敛,\(\overline{\mathrm{VE}}\) 变为零。 这些轨迹是通过迭代计算参数矢量轨迹的期望而获得的,而没有任何由于过渡和奖励的采样引起的变化。 我们没有直接显示应用强调TD算法的结果,因为它在Baird的反例上的方差很高,以至于在计算实验中几乎不可能获得一致的结果。 该算法在理论上收敛于该问题的最优解,但实际上并没有。我们将在下一节中讨论减少所有这些算法的方差的主题。

_images/figure-11.6.png

图11.6: 一步强调TD算法对Baird反例的期望的行为。步长为 \(\alpha=0.03\)

11.9 减小误差

与在策略学习相比,离策略学习本质上具有更大的差异。 这并不奇怪;如果你收到与策略关系不太密切的数据,您应该期望减少对策略价值的学习。 在极端情况下,人们可能无法学到任何东西。例如,你不能期望通过烹饪晚餐学习如何开车。 只有当目标和行为策略相关时,如果他们访问类似的状态并采取类似的行动,你才能够在离策略训练方面取得重大进展。

另一方面,任何策略都有许多邻居,许多类似的策略,在所访问的状态和所选择的行动中存在相当大的重叠,但这些策略并不相同。 离策略学习的存在理由是能够推广到大量相关但不相同的策略。问题仍然是如何充分利用这种经验。 现在我们有一些稳定的期望值的方法(如果步长设置正确),注意力自然会转向减少估计的方差。 有许多可能的想法,我们可以在这个介绍性文本中触及其中的一些。

为什么控制方差在基于重要性采样的离策略方法中尤其重要?正如我们所看到的,重要性采样通常涉及策略比率的乘积。 比率总是一个期望值(5.13),但它们的实际值可能非常高或低至零。 连续比率是不相关的,因此它们的乘积也总是具有期望价值,但它们可能具有非常高的方差。 回想一下,这些比率乘以SGD方法中的步长,因此高方差意味着采取大小差异很大的步骤。 这对于SGD来说是有问题的,因为偶尔会有非常大的步骤。它们不能太大,以至于将参数带到具有非常不同梯度的空间的一部分。 SGD方法依赖于对多个步骤进行平均以获得对梯度的良好感觉,并且如果它们从单个样本中进行大的移动,则它们变得不可靠。 如果将步长参数设置得足够小以防止这种情况,那么预期的步骤可能会非常小,导致学习速度非常慢。 Polyak-Ruppert求平均(Polyak,1990;Ruppert,1988;Polyak和Juditsky,1992)的动量概念(Derthick,1984),或者这些想法的进一步扩展可能会有很大帮助。 自适应地设置参数矢量的不同分量的单独步长的方法也是相关的(例如,Jacobs,1988;Sutton,1992b,c), Karampatziakis和Langford(2010)的“重要性权重意识”更新也是如此。

在第5章中,我们看到加权重要性采样如何表现得更好,与普通重要性采样相比,方差更新更低。 然而,使加权重要性采样适应函数近似是具有挑战性的,并且可能只能在 \(O(d)\) 复杂度下进行(Mahmood和Sutton,2015)。

树备份算法(第7.5节)表明,可以在不使用重要性采样的情况下执行一些离策略学习。 这个想法已经扩展到离策略案例,以便生成稳定且更有效的方法,该方法由Munos,Stepleton,Harutyunyan和Bellemare(2016)以及Mahmood,Yu和Sutton(2017)提出。

另一种补充策略是允许目标策略部分地由行为策略决定,以至于它与创建大的重要性采样比率永远不会如此不同。 例如,可以通过参考行为策略来定义目标策略,如在Precup等人(2006年)提出的“识别器”中那样。

11.10 总结

离策略学习是一个诱人的挑战,测试我们在设计稳定和有效的学习算法方面的独创性。 表格式Q-learning使得离策略学习看起来很容易,并且它对预期的Sarsa和树备份算法有自然的概括。 但正如我们在本章中所看到的,将这些思想扩展到显着的函数近似,甚至线性函数近似,都涉及新的挑战,并迫使我们加深对强化学习算法的理解。

为什么要这么长?寻求离策略算法的一个原因是为处理探索和开发之间的权衡提供灵活性。 另一个是自由行为学习,并避免目标策略的独裁。 TD学习似乎提供了并行学习多个事物的可能性,即使用一种经验流同时解决许多任务。 我们当然可以在特殊情况下这样做,但不是在我们想要的每种情况下,或者我们希望的那样。

在本章中,我们将离策略学习的挑战分为两部分。 第一部分,纠正行为策略的学习目标,直接使用前面为表格案例设计的技术来处理,虽然代价是增加更新的方差,从而减慢学习。 高方差可能永远是对离策略学习的挑战。

离策略学习挑战的第二部分出现在涉及自举的半梯度TD方法的不稳定性中。 我们寻求强大的函数近似,离策略学习以及自举TD方法的效率和灵活性, 但是将这个 致命三元组 的所有三个方面组合在一个算法中而不引入不稳定的可能性是具有挑战性的。 有过几次尝试。最受欢迎的是寻求在Bellman误差中执行真正的随机梯度下降(SGD)(也就是Bellman残差)。 然而,我们的分析得出结论,在许多情况下这不是一个吸引人的目标,并且无论如何使用学习算法是不可能实现的── \(\overline{\mathrm{BE}}\) 的梯度不能从仅显示特征向量而非基础状态的经验中学习。 另一种方法,梯度TD方法,在 投影 的Bellman误差中执行SGD。 \(\overline{\mathrm{PBE}}\) 的梯度可以用 \(O(d)\) 复杂度来学习,但是以具有第二步长的第二参数矢量为代价。 最新的方法系列,强调TD方法,改进了重新权重更新的旧观念,强调了一些并且不再强调其他方法。 通过这种方式,他们通过计算简单的半梯度方法恢复了使在策略学习稳定的特殊属性。

整个离策略学习领域相对较新且不稳定。哪种方法最佳或甚至足够尚不清楚。 本章末尾介绍的新方法的复杂性是否真的有必要?哪些可以与方差减少方法有效结合? 离策略学习的潜力仍然很诱人,实现这一目标的最佳途径仍然是个谜。

书目和历史评论

11.1 第一种半梯度方法是线性TD(\(\lambda\))(Sutton,1988)。 “半梯度”这个名字是最近的(Sutton,2015a)。 在Sutton,Mahmood和White(2016)之前,可能尚未明确说明具有一般重要性采样率的半梯度离策略TD(0), 但行动价值形式由Precup,Sutton和Singh(2000年)引入 ),他们也做了这些算法的资格跟踪形式(见第12章)。 他们持续的,不折扣的形式尚未得到重大探索。这里给出的n步形式是新的。

11.2 最早的 \(w-\text{to}-2w\) 例子由Tsitsiklis和Van Roy(1996)提供, 他们也在第263页的框中介绍了具体的反例。Baird的反例是由于Baird(1995),尽管我们在这里提出的版本略有修改。 Gordon(1995,1996b)开发了函数近似的平均方法。 Boyan和Moore(1995)给出了使用离策略DP方法和更复杂的函数近似方法的不稳定性的其他例子。 Bradtke(1993)给出了一个例子,其中在线性二次调节问题中使用线性函数近似的Q-learning收敛于不稳定策略。

11.3 致命的三元组首先由Sutton(1995b)确定,并由Tsitsiklis和Van Roy(1997)进行了彻底的分析。 “致命三元组”这个名字归功于Sutton(2015a)。

11.4 这种线性分析由Tsitsiklis和Van Roy(1996; 1997)开创,包括动态规划算子。 图11.3中的图由Lagoudakis和Parr(2003)引入。 我们所谓的Bellman算子,用 \(B_{\pi}\) 表示,更常见的是 \(I^{\pi}\),称为“动态规划算子”, 而广义形式,表示为 \(T^{(\lambda)}\), 称为“TD(\(\lambda\))算子”(Tsitsiklis和范罗伊,1996年,1997年)。

11.5 \(\overline{\mathrm{BE}}\) 最初是作为Schweitzer和Seidmann(1985)的 动态规划的目标函数提出的。Baird(1995,1999)将其扩展到基于随机梯度下降的TD学习。 在文献中,\(\overline{\mathrm{BE}}\) 最小化通常被称为Bellman残差最小化。

最早的A分裂例子是由于Dayan(1992)。这里给出的两种形式由Sutton等人介绍。 (2009年a)。

11.6 本节内容是本书的新内容。

11.7 Sutton,Szepesvari和Maei(2009b)介绍了梯度-TD方法。 Sutton等(2009a)和Mahmood等(2014)介绍了本节中强调的方法。 Mahadevan等(2014)开发了近端TD方法的主要扩展。 迄今为止对梯度-TD和相关方法进行的最敏感的实证研究由Geist和Scherrer(2014),Dann,Neumann和Peters(2014),White(2015) 以及Ghiassian,Patterson,White,Sutton和White(2018)给出。 Yu(2017)提出了梯度-TD方法理论的最新发展。

11.8 Sutton,Mahmood和White(2016)介绍了强调-TD方法。 Yu(2015; 2016; Yu,Mahmood和Sutton,2017),Hallak,Tamar和Mannor(2015) 以及Hallak,Tamar,Munos和Mannor(2016)后来建立了完整的收敛证明和其他理论。

[1]对于状态价值,重要性采样率 \(\rho_t\) 的处理仍存在小的差异。 在类似于动作价值的情况下(这是控制算法最重要的情况),残差梯度算法将精确地减少到朴素版本。
[2]当然,如果观察到 状态 序列而不是仅观察相应的特征向量,则可以估计它们。
[3]所有状态都可以将所有MRP视为单一行动的MDP;我们对MRP的总结也适用于MDP。
[4]在离策略情况下,矩阵 \(\mathbf{A}\) 通常定义为 \(\mathbb{E}_{s \sim b}\left[\mathbf{x}(s) \mathbb{E}\left[\mathbf{x}\left(S_{t+1}\right)^{\top} | S_{t}=s, A_{t} \sim \pi\right]\right]\)

第12章 资格迹(Eligibility Traces)

资格迹是强化学习的基本机制之一。例如,在流行的TD(\(\lambda\))算法中,\(\lambda\) 指的是使用资格迹。 几乎任何时序差分(TD)方法,例如Q-learning或Sarsa,都可以与资格迹相结合,以获得可以更有效地学习的更通用的方法。

资格迹统一并泛化了TD和蒙特卡罗方法。当TD方法用资格迹进行增强时,它们会产生一系列方法, 这些方法跨越一端具有蒙特卡罗方法(\(\lambda=1\))的光谱,而另一端(\(\lambda=0\))具有一步法TD方法。 介于两者之间的中间方法通常比任何一种极端方法都要好。 资格迹还提供了一种在线实施蒙特卡罗方法以及在没有事件的情况下继续解决问题的方法。

当然,我们已经看到了统一TD和蒙特卡罗方法的一种方法:第7章的n步TD方法。 除此之外的资格迹提供了一种优雅的算法机制,具有显着的计算优势。 该机制是短期记忆向量,资格迹 \(\mathbf{z}_{t} \in \mathbb{R}^{d}\), 其与长期权重向量 \(\mathbf{w}_{t} \in \mathbb{R}^{d}\) 平行。 粗略的想法是,当 \(\mathbf{w}_{t}\) 的一个分量参与产生估计值时, \(\mathbf{z}_{t}\) 的相应分量被提升然后开始逐渐消失。 如果在迹线回落到零之前发生非零TD误差,则将在 \(\mathbf{w}_{t}\) 的该分量中进行学习。 迹线衰减参数 \(\lambda \in[0,1]\) 确定迹线下降的速率。

与n步方法相比,资格迹的主要计算优势是仅需要单个迹线向量而不是最后n个特征向量的存储。 学习也会在时间内不断和均匀地发生,而不是被延迟,然后在回合结束时赶上。 此外,学习可以发生并且在遇到状态之后立即影响行为而不是延迟n步。

资格迹说明学习算法有时可以以不同的方式实现以获得计算优势。 许多算法最自然地被公式化并理解为基于在多个未来时间步骤之后遵循该状态的事件的状态值的更新。 例如,蒙特卡罗方法(第5章)基于所有未来奖励更新状态,n步TD方法(第7章)基于未来的n个奖励和状态n步骤进行更新。 基于对更新状态的期待,这些表述被称为 前向视图。前向视图实现起来总是有点复杂,因为更新取决于当时不可用的后续内容。 但是,正如我们在本章中所示,通常可以使用当前TD误差的算法实现几乎相同的更新(有时 完全 相同的更新), 使用资格迹向后查看最近访问的状态。这些查看和实现学习算法的替代方法称为 后向视图。 向后视图,前向视图和向后视图之间的转换以及它们之间的等同性,可以追溯到时序差分学习的引入,但自2014年以来变得更加强大和复杂。 在这里,我们展示了现代视图的基础知识。

像往常一样,首先我们充分发展状态值和预测的想法,然后将它们扩展到行动价值和控制。 我们首先为在策略案例开发它们,然后将它们扩展到离策略学习。 我们的处理特别关注线性函数近似的情况,其中具有资格迹的结果更强。 所有这些结果也适用于表格和状态聚合情况,因为这些是线性函数近似的特殊情况。

12.1 \(\lambda\) 回报

在第7章中,我们将n步回报定义为前n个奖励的总和加上在n个步骤中达到的状态的估计值,每个步骤都适当地折扣(7.1)。 对于任何参数化函数近似器,该等式的一般形式是

(1)\[G_{t : t+n} \doteq R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^{n-1} R_{t+n}+\gamma^{n} \hat{v}\left(S_{t+n}, \mathbf{w}_{t+n-1}\right), \quad 0 \leq t \leq T-n\]

其中 \(\hat{v}(s, \mathbf{w})\) 是给定权重向量 \(\mathbf{w}\) (第9章)的 状态 \(s\) 的近似值,\(T\) 是回合终止的时间(如果有的话)。 我们在第7章中注意到,对于 \(n \ge 1\),每个 \(n\) 步回报是表格学习更新的有效更新目标, 就像用于近似SGD学习更新一样,如(9.7)。

现在我们注意到,有效更新不仅可以针对任何 \(n\) 步回报, 而且可以针对不同 \(n\) 的任何平均 \(n\) 步返回。 例如,可以对目标进行更新,该目标是两步回报的一半和四步回报的一半: \(\frac{1}{2} G_{t : t+2}+\frac{1}{2} G_{t : t+4}\)。 任何一组 \(n\) 步返回都可以用这种方式平均,即使是无限集,只要分量返回的权重为正并且总和为1。 合成回报具有类似于单个n步回报(7.3)的误差减少属性,因此可用于构造具有保证收敛属性的更新。 平均产生了大量新的算法。例如,可以平均一步和无限步回报以获得另一种相互关联TD和蒙特卡罗方法的方法。 原则上,人们甚至可以使用DP更新来平均基于经验的更新,以获得基于经验和基于模型的方法的简单组合(参见第8章)。

_images/the-compound-update.png

平均更简单分量更新的更新称为 复合更新(compound update)。 复合更新的备份图包含每个分量更新的备份图,其上方有一条水平线,下面是加权分数。 例如,本节开头提到的案例的复合更新,将两步回报的一半和四步回报的一半混合在一起,如右图所示。 复合更新只能在最长的分量更新完成时完成。例如,右边的更新只能在时间 \(t+4\) 进行,以便在时间 \(t\) 形成估计。 通常,由于更新中的相应延迟,人们希望限制最长分量更新的长度。

TD(\(\lambda\))算法可以理解为平均 \(n\) 步更新的一种特定方式。 该平均值包含所有 \(n\) 步更新,每个更新按比例加权到 \(\lambda^{n-1}\) (其中 \(\lambda \in[0,1]\)),并按因子 \(1-\lambda\) 归一化,以确保权重总和为1(图12.1)。 结果更新是针对回报,称为 \(\lambda\) 回报,以其基于状态的形式定义

(2)\[G_{t}^{\lambda} \doteq(1-\lambda) \sum_{n=1}^{\infty} \lambda^{n-1} G_{t : t+n}\]
_images/figure-12.1.png

图12.1: TD(\(\lambda\))的备份图。 如果 \(\lambda=0\),则整体更新减少到其第一个分量,即一步TD更新, 而如果 \(\lambda=0\),则整体更新减少到其最后一个分量,即蒙特卡洛更新。

_images/figure-12.2.png

图12.2: 每个 \(n\) 步回报的 \(\lambda\) 回报给出的加权。

图12.2进一步说明了 \(\lambda\) 回报中 \(n\) 步回报序列的加权。 一步回报给出最大权重,\(1-\lambda\);两步返回给出下一个最大权重,\((1-\lambda) \lambda\); 三步返回给出重量 \((1-\lambda) \lambda^{2}\);等等。 每增加一步,权重就会减去 \(\lambda\)。在达到终止状态之后,所有后续的n步回报等于传统的返回 \(G_t\)。 如果我们想要,我们可以将这些终止后的项与主要总和分开,产生

(3)\[G_{t}^{\lambda}=(1-\lambda) \sum_{n=1}^{T-t-1} \lambda^{n-1} G_{t+t+n}+\lambda^{T-t-1} G_{t}\]

正如图所示。这个等式使得当 \(\lambda=1\) 时会发生什么更清楚。 在这种情况下,主要总和变为零,并且剩余的项减少到传统的回报。 因此,对于 \(\lambda=1\),根据 \(\lambda\) 回报的更新是蒙特卡罗算法。 另一方面,如果 \(\lambda=0\),那么 \(\lambda\) 回报减少到 \(G_{t:t+1}\),即一步返回。 因此,对于 \(\lambda=0\),根据 \(\lambda\) 回报的更新是一步TD方法。

练习12.1 正如回报可以按照第一个奖励和一步之后(3.9)递归写入,同样 \(\lambda\) 回报也可以。 从(12.2)和(12.1)得出类似的递归关系。

练习12.2 该参数 \(\lambda\) 表征图12.2中的指数加权下降的速度, 以及因此 \(\lambda\) 回报算法在确定其更新时所看到的未来的距离。 但是速率因素比如 \(\lambda\) 有时是表征衰变速度的尴尬方式。 出于某些目的,最好指定时间常数或半衰期。 什么是与 \(\lambda\) 和半衰期 \(\mathcal{T}_{\lambda}\), 即加权序列将落到其初始值的一半的时间相关的等式?

我们现在准备基于 \(\lambda\) 回报定义我们的第一个学习算法:离线 \(\lambda\) 回报算法。 作为一种离线算法,它在回合期间不会改变权重向量。 然后,在回合结束时,根据我们通常的半梯度规则,使用 \(\lambda\) 回报作为目标,进行整个序列的更新:

(4)\[\mathbf{w}_{t+1} \doteq \mathbf{w}_{t}+\alpha\left[G_{t}^{\lambda}-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)\right] \nabla \hat{v}\left(S_{t}, \mathbf{w}_{t}\right), \quad t=0, \ldots, T-1\]

\(\lambda\) 回报为我们提供了一种在蒙特卡罗和一步TD方法之间平滑移动的替代方法,可以与第7章中开发的n步自举方式进行比较。 我们评估了19个状态随机行走任务的有效性(例子7.1,第144页)。 图12.3显示了该任务的离线 \(\lambda\) 回报算法与n步方法的性能(从图7.2重复)。 实验正如前面所述,除了对于 \(\lambda\) 回报算法我们改变 \(\lambda\) 而不是n。 使用的性能度量是在回合结束时测量的每个状态的正确值和估计值之间的估计均方根误差,在前10回合和19个状态中取平均值。 注意,离线 \(\lambda\) 回报算法的整体性能与n步算法的性能相当。 在这两种情况下,我们使用自举参数的中间值获得最佳性能,n步方法获得n和离线 \(\lambda\) 回报算法获得 \(\lambda\)

_images/figure-12.3.png

图12.3: 19个状态随机行走结果(例7.1):与n步TD方法一致的离线 \(\lambda\) 回报算法的性能。 在这两种情况下,自举参数(或n)的中间值执行得最好。 使用离线 \(\lambda\) 回报算法的结果在 \(\alpha\)\(\lambda\) 的最佳值 以及高 \(\alpha\) 处稍微好一些。。

到目前为止,我们采用的方法是我们称之为学习算法的理论或 前向 视图。 对于每个访问过的状态,我们及时期待所有未来的奖励,并决定如何最好地将它们结合起来。 如图12.4所示,我们可能会想象自己会骑着各状态,从每个状态向前看以确定其更新。 在向前看并更新一个状态之后,我们继续前进到下一个状态,再也不必使用前一个状态。 另一方面,未来状态从其前面的每个有利位置重复查看和处理。

_images/figure-12.4.png

图12.4: 前向视图。我们决定如何通过期待未来的奖励和状态来更新每个状态。

12.2 TD(\(\lambda\))
12.3 \(n\) 步截断 \(\lambda\) 回报方法
12.4 重做更新:在线 \(\lambda\) 回报算法
12.5 真正的在线TD(\(\lambda\))
12.6 蒙特卡洛学习中的Dutch迹
12.7 Sarsa(\(\lambda\))
12.8 变量 \(\lambda\)\(\gamma\)
12.9 具有控制变量的离策略迹
12.10 Watkins的Q(\(\lambda\))到Tree-Backup(\(\lambda\))
12.11 具有迹的稳定离策略方法
12.12 实施问题
12.13 结论
书目和历史评论

第13章 策略梯度方法

在本章中,我们考虑一些新内容。到目前为止,在本书中几乎所有的方法都是 动作价值方法。 他们了解了动作的价值,然后根据他们估计的行动价值选择行动 [1];如果没有动作价值估计,他们的策略甚至将不存在。 在本章中,我们考虑的方法是学习 参数化策略,该策略可以选择动作而无需咨询价值函数。 价值函数仍可用于 学习 策略参数,但动作选择不是必需的。 我们使用 \(\mathbf{\theta} \in \mathbb{R}^{d^{\prime}}\) 表示策略的参数向量。 因此假设环境在时间 \(t\) 时处于状态 \(s\),且参数为 \(\mathbf{\theta}\), 则在时间 \(t\) 采取动作 \(a\) 的概率为 \(\pi(a | s, \mathbf{\theta})={Pr}\{A_{t}=a | S_{t}=s, \mathbf{\theta}_{t}=\mathbf{\theta}\}\)。 如果一种方法也使用学习的值函数,则该值函数的权重向量将通常表示为 \(\mathbf{w} \in \mathbb{R}^{d}\), 如 \(\hat{v}(s, \mathbf{w})\) 所示。

在本章中,我们考虑基于一些基于标量性能指标 \(J(\mathbf{\theta})\) 梯度的相对于策略参数的学习策略参数的方法。 这些方法试图使性能 最大化,因此它们的更新近似 \(J\) 中的梯度 上升

(1)\[\mathbf{\theta}_{t+1}=\mathbf{\theta}_{t}+\alpha \widehat{\nabla J\left(\mathbf{\theta}_{t}\right)}\]

其中 \(\widehat{\nabla J\left(\mathbf{\theta}_{t}\right)} \in \mathbb{R}^{d^{\prime}}\) 是一个随机估计, 其期望近似于性能度量相对于其参数 \(\mathbf{\theta}_{t}\) 的梯度。 遵循此一般模式的所有方法,我们都称为 策略梯度方法,无论它们是否也学习近似值函数。 学习策略和值函数的近似值的方法通常称为 演员-评论家 方法,其中“演员”是指所学策略,而“评论家”是指所学习的值函数,通常是状态价值函数。 首先,我们处理回合案例,其中性能定义为参数化策略下的开始状态的值, 然后再继续考虑持续案例,其中性能定义为平均奖励率,如10.3节所述。 最后,我们能够以非常相似的形式表达两种情况的算法。

13.1 策略近似及其优势

在策略梯度方法中,只要 \(\pi(a|s,\boldsymbol{\theta})\) 相对于其参数是可微的, 即只要 \(\nabla \pi(a|s,\boldsymbol{\theta})\) (\(\pi(a|s,\boldsymbol{\theta})\) 相对于 \(\boldsymbol{\theta}\) 的偏导数的列向量) 存在且对于所有 \(s \in \mathcal{S}\)\(a \in \mathcal{A}(s)\)\(\boldsymbol{\theta} \in \mathbb{R}^{d^{\prime}}\) 是有限的。 在实践中,为了确保探索,我们通常要求策略永远不要具有确定性 (即,对于所有 \(s\)\(a\)\(\boldsymbol{\theta}\),有 \(\pi(a | s, \boldsymbol{\theta}) \in (0,1)\))。 在本节中,我们介绍离散动作空间的最常见参数化方法,并指出其相对于动作值方法的优势。 基于策略的方法还提供了处理连续动作空间的有用方法,这将在后面的13.7节中介绍。

如果动作空间是离散的并且不是太大,那么自然和常见的一种参数化将是为每个状态-动作对形成参数化的数值偏好(preferences)。 \(h(s, a, \boldsymbol{\theta}) \in \mathbb{R}\)。 在每个状态下,具有最高偏好的动作被赋予最高的选择概率,例如,根据指数soft-max分布:

(2)\[\pi(a | s, \boldsymbol{\theta}) \doteq \frac{e^{h(s, a, \boldsymbol{\theta})}}{\sum_{b} e^{h(s, b, \boldsymbol{\theta})}}\]

其中 \(e \approx 2.71828\) 是自然对数的底数。请注意,这里的分母是所需要的,因此每种状态下的动作概率总和为1。 我们将这种策略参数化称为 动作偏好soft-max (soft-max in action preferences)。

动作偏好本身可以任意设置。例如,它们可以由深度人工神经网络(ANN)计算,其中 \(\boldsymbol{\theta}\) 是网络所有连接权重的向量(如第16.6节中所述的AlphaGo系统)。 或者简单地,偏好可以在特征上是线性的,

(3)\[h(s, a, \boldsymbol{\theta})=\boldsymbol{\theta}^{\top} \mathbf{x}(s, a)\]

使用通过第9.5节中所述的任何方法构造的特征向量 \(\mathbf{x}(s, a) \in \mathbb{R}^{d^{\prime}}\)

根据动作偏好中的soft-max参数化策略的一个优点是,近似策略可以接近确定性策略, 而基于动作选择的 \(\varepsilon\) 贪婪总是有 \(\varepsilon\) 可能性选择随机动作。 当然,人们可以根据基于动作值的soft-max分布进行选择,但是仅此一项就无法使该策略接近确定性策略。 取而代之的是,动作值估算将收敛到其对应的真实值,这会与之相差一个有限值,转化为除0和1之外的特定概率。 如果soft-max分布包含温度参数,则温度可以随着时间的推移降低达到确定, 但是在实践中没有比我们想像的更多的先验知识,我们很难选择减少策略,甚至是初始温度。 动作偏好不同,因为它们不接近特定的值;相反,它们被驱使产生最优的随机策略。 如果最优策略是确定性的,则最优动作的偏好将无限地高于所有次优动作(如果参数化允许)。

根据动作偏好中的soft-max参数化策略的第二个优点是,它可以选择具有任意概率的动作。 在具有近似函数逼近的问题中,最佳近似策略可能是随机的。例如,在信息不完善的纸牌游戏中, 最佳玩法通常是用特定的概率来做两种不同的事情,例如在扑克中诈(bluffing)。 动作值方法没有找到随机最优策略的自然方法,而策略逼近方法却可以,如示例13.1所示。

例13.1:带有切换动作的短廊

考虑下图所示的小走廊网格世界。与往常一样,奖励为每步 \(-1\)。在这三个非终结状态的每一个中,只有两个动作,即 向右向左 。 这些动作在第一状态和第三状态中具有通常的结果(在第一状态中 向左 则不移动),但是在第二状态中,它们是相反的,因此右移 向左 ,左移 向右 。 问题是困难的,因为在函数近似下所有状态看起来都相同。特别地,我们为所有 \(s\) 定义 \(\mathbf{x}(s, \text { right })=[1,0]^{\top}\)\(\mathbf{x}(s, \text { left })=[0,1]^{\top}\)。 具有 \(\varepsilon\) 贪婪动作选择的动作值方法被迫在两个策略之间进行选择: 在所有步骤上以高概率 \(1-\varepsilon / 2\) 选择 向右 或在所有时步上以相同的高概率选择左。 如果 \(\varepsilon=0.1\),则这两个策略达到的值(在开始状态下)分别小于 \(-44\)\(-82\),如图所示。 如果一种方法可以学习选择 向右 的特定概率,则可以做得更好。最佳概率约为0.59,最后值大约为 \(-11.6\)

_images/example-13.1.png

相比于动作值参数化,策略参数化可能具有的最简单的优势是策略可能是一种做近似更简单的函数。 问题的策略和行动价值函数的复杂性各不相同。 对于某些来说,动作值函数更简单,因此更容易近似。对于其他,策略更简单。 在后一种情况下,基于策略的方法通常将学习得更快,并产生更好的渐近策略 (如俄罗斯方块;请参见Şimşek, Algórta和Kothiyal,2016年)。

最后,我们注意到,策略参数化的选择有时是将有关所需策略形式的先验知识注入强化学习系统的好方法。 这通常是使用基于策略的学习方法的最重要原因。

练习13.1 用你对网格世界及其动力学的知识来确定一个精确的符号表达式,以获取示例13.1中选择 向右 动作的最佳概率。

13.2 策略梯度定理
13.3 强化:蒙特卡罗策略梯度
13.4 带基线强化
13.5 演员-评论家方法
13.6 持续问题的策略梯度
13.7 持续动作的策略参数化
13.8 总结
书目和历史评论
[1]唯一的例外是第2.8节中的梯度赌博机算法。实际上,在单状态赌博机的情况下,该部分将执行许多相同的步骤,就像我们在这里进行完整的MDP一样。 复习该部分将为充分理解本章做好充分的准备。

第三部分 深入研究

本书的最后一部分超出了前两部分提出的标准强化学习思想的范畴。 该部分简要地介绍了它们与心理学和神经科学的关系、强化学习应用的一些案例,以及未来强化学习研究的一些前沿领域。

第14章 心理学

在前面的章节中,我们仅从计算的角度讨论了各种算法。在本章中,我们从其他角度来探讨这些算法:心理学的角度以及对动物如何学习的研究。 首先讨论强化学习的思想和算法与心理学家发现的有关动物学习方法的关联,其次解释强化学习对研究动物如何学习的影响。 通过强化学习的清晰的形式化表达,将任务、回报和算法系统化,这对于理解实验数据、提出新的实验以及指出可能对实验操作和测量至关重要的因素而言,都是非常有用的。 优化长期回报是强化学习的核心,这有助于我们理解一些动物学习和行为的谜团。

强化学习与心理学理论之间的一些对应关系并不令人感到惊讶,因为强化学习的发展受到了心理学理论的启发。 然而,正如本书中所介绍的,强化学习是从人工智能研究者或工程师的角度探索理想化的情况,目的是用有效的算法解决计算问题,而不是复制或详细解释动物如何学习。 因此,我们描述的一些对应关系将在各自领域中独立出现的想法联系起来。 我们相信这些关系是特别有意义的,因为它们揭示了学习的重要计算原理,无论是通过人工系统还是自然系统进行学习。

在大多数情况下,与强化学习相对应的心理学习理论是为了解释动物,如老鼠、鸽子和兔子,如何在受控的实验室中学习而提出的。 20世纪,进行了数千个这样的实验,其中许多实验在今天仍在进行。 尽管这些实验有时候被忽视,因为它们与很多更广泛的心理学问题无关,但是这些实验揭示了动物学习的细微特性,而且往往受具体的理论问题的驱动。 随着心理学研究把焦点转移到更多的行为认知方面,即思维和推理等心理过程,动物学习实验在心理学中的作用就不如以前那么大了。 但是,这些实验使我们发现了动物中广泛使用的基本学习原理,这些原理在设计人工学习系统时不应该被忽略。 另外,我们将会看到,认知处理的某些方面很自然地与强化学习提供的计算视角相关联。

本章的最后一部分不仅包括了我们已经讨论的这些关联的参考资料,也包括了我们在论中没有涉及的一些关联关系的参考资料。 我们希望本章能够鼓励读者更深入地探讨两者的联系。在最后一节,我们还讨论了强化学习和心理学中使用的术语的关联。 强化学习中使用的许多术语和短语都是从动物学习理论中借鉴的,但这些术语和短语的计算/工程意义并不总是与它们在心理学上的含义相吻合。

14.1 预测与控制

我们在本书中描述的算法分为两大类:预测 算法和 控制 算法 [1]。 这个分类在第3章介绍的强化学习问题的解决方法中已经很自然地体现出来了。 这些类别分别对应于心理学家广泛研究的学习类别:经典(或巴甫洛夫)条件反射和工具性(或操作性)条件反射。 考虑到心理学对强化学习的影响,有这些对应关系并不足为奇,但是由于它们将来源于不同目标的思想联系起来了,所以还是很令人惊讶的。

本书中介绍的预测算法估计的值取决于智能体所处环境的特征如何在未来展开。 特别地,我们专注于估计智能体与环境交互时期望获得的回报。 从这个角度来看,预测算法是一种 策略评估算法,它们是策略改进算法中不可或缺的组成部分。 但预测算法不限于预测未来的收益,它们可以预测环境的任何特征(例如,参见 Modayil、 White和 Sutton,2014)。 预测算法与经典条件反射之间的关联源于它们的共同特性,即预测将会到来的外部刺激,无论这些刺激是否有收益(或惩罚)。

工具性(或者操作性)条件反射实验的情况则不同。 这种实验一般被设置为根据动物的表现决定给动物它们喜欢的东西(收益)或者不喜欢的东西(惩罚)动物会逐渐倾向于增加产生收益的行为,而降低导致惩罚的动作。 在工具性条件反射中,强化刺激信号被认为是 偶发的 影响动物的行为, 而在经典条件反射中则不是(尽管在经典条件反射实验中也很难完全消除所有的行为偶发性的影响)。 工具性条件反射实验类似于我们在第1章中简单讨论过的受 Thorndike“效应定律”(Law of Effect)启的实验。 控制 是这种学习形式的核心,它与强化学习中的策略改进算法的做法相对应。

从预测的角度思考经典条件反射,从控制的角度考虑工具性条件反射,是将强化学习的计算视角与动物学习联系起来的一个起点,但实际的情况比这更复杂。 经典条件反射一般不仅仅是预测,它也会涉及动作,因此也可以将它看作一种控制模式,有时被称为 巴甫洛夫控制。 更进一步,经典条件反射和工具性条件反射可能会相互交叉,在大多数实验情况下两种学习模式可能都存在。 尽管存在这些复杂性,但将经典条件反射/工具性条件反射与预测/控制分别对应是将强化学习与动物学习联系起来的一个方便的初步近似。

[1]对我们来说,“控制”一词的含义与它在动物学习理论中的含义是不同的。 在动物学习理论中,其意思是环境控制智能体,而不是反过来。参见本章结尾处的术语说明。

在心理学中,术语“强化”用于描述经典条件反射和工具性条件反射中的学习。 最初只是指加强某种行为模式,现在它通常也被用来指对某种行为模式的削弱。 引起动物行为改变的刺激被称为强化剂,无论它是否依赖于动物先前的行为。 在本章最后,我们将更详细地讨论这个术语,以及它与机器学习中使用的术语之间的关系。

14.2 经典条件反射

俄罗斯著名生理学家伊凡·巴甫洛夫在研究消化系统活动时发现,动物对某些特定刺激因素的先天反应可以被其他无关的因素所激发。 他以狗作为实验对象,并对它们进行手术以便于准确测量其唾液反射的强度。 在他记录的一个实验中,狗只会在给其提供食物约5秒之后的几秒内分泌大约6滴唾液,而在其余时间内不产生唾液。 然而,如果在给狗食物前的较短时间内给予它另一种与食物无关的刺激, 如节拍器的声音,经过多次重复实验后,当狗听到节拍器的声音后,也会产生对食物一样的唾液反应。 “唾液腺的分泌功能就这样被声音的刺激激活了,尽管这是与食物完全不同的刺激”(Pavlov,1927,第22页), 巴甫洛夫这样总结这一发现的意义:

显然,在自然条件下,正常的动物不仅要对自身直接有利或有害的刺激做出必要的反应, 而且还要对其他物理或化学介质如声波、光线等做出反应,尽管这些信号本身只是提示刺激的迫近。 就像正在捕食野兽的身影和吼叫并不会对其他小动物造成实质性的伤害,真正的危险隐藏在它的牙齿和利爪中(Pavlov,1927,第14页)。

这种将新的刺激与先天的反射联系在一起的方式被称为经典条件反射或巴甫洛夫反射。 巴甫洛夫(确切地说是他的译者)将先天反应(如前述的分泌唾液)称为“无条件反射”(unconditioned response,UR), 其天然的刺激因素(如食物)称为“无条件刺激”(unconditioned stimuli,US)。 同时,他将由预先指定刺激所触发的反射(同样是分泌唾液)称为“条件反射”(conditioned response CR), 而在先天条件下不会引起强烈反应的中性刺激(如节拍器的声音)则被称为“条件刺激”(conditioned stimulu,CS), 在经过反复的训练之后,动物会认为条件刺激是无条件刺激的预示,因此会对条件刺激产生条件反射。 这些术语仍然用于描述传统的条件反射实验(更确切地说应该是“条件制约的”和“无条件制约的”,而不是条件的和无条件的)。 由于US强化了CR对CS的反应,因此我们将US称为强化剂。

_images/delay_conditioning_trace_conditioning.png

右图显示了条件反射实验中的两种实现方式,分别为 延迟条件反射痕迹条件反射。 在延迟条件反射中,我们将CS产生与US产生之间的时间间隔称为刺激间隔(interstimulus interval ISI) ,CS贯穿了整个刺激间隔(在通常情况下,US和CS同时结束,如右图所示)。 而在痕迹条件反射中,Us在CS结束后才开始产生,而从CS结束到US产生的时间间隔被称为痕迹间隔。

巴甫洛夫的狗在听到节拍器声音后分泌唾液只是经典条件反射的一个例子, 人们在多种动物的不同反射系统中,都对这种现象进行了深入的研究。 无条件反射往往是动物对某种情况的准备措施,如狗分泌唾液,或者是对某种情况的防御措施, 例如在眼睛受到刺激时会进行眨眼反射,在看到捕食者时动物的身躯会变僵硬等。 在一系列的实验中,动物逐渐学习到,CS的产生通常预示着US的产生, 因此动物就会根据Cs产生CR来面对之后到来的US进行准备或防御工作一些CR与UR类似, 但是往往产生时间更早,并且提高效率的方式有所不同。如在一个以家兔为对象的深入实验中, 在声音刺激(CS)后向家兔眼睛中吹气(US),家兔会产生反射,其眼内的瞬膜会闭合来保护自己的眼睛不受到伤害(UR)。 在多次训练之后,声音刺激会触发瞬膜闭合的条件反射,该反射最初发生在向家兔眼睛吹气之前,但是最终会在最有可能吹气的时间点产生闭合反射。 这个CR通过对吹气时间的预期进行同步启动,相较于对US简单的闭合反应,它更能够起到保护作用。 通过学习刺激之间的预测关系来预测事件发生的能力对于动物是非常有益的,这也在动物世界中广泛存在。

14.2.1 阻塞与高级条件反射

我们可以在实验中观察到经典条件反射的许多有趣特性。 除了CR的预期性质之外,在经典条件反射模型的发展中还有两个显著的特点:阻塞和高级条件反射。 当一个潜在的CS与之前曾用于激发动物产生该CR的另一个CS一起呈现时,若动物未能学习到该CR,则产生阻塞。 如,在家兔瞬膜闭合反射阻塞实验的第一阶段中,家兔首先被声音(CS)以及向眼中吹气(US)所刺激。 实验的第二阶段包括一个额外的训练,在这个训练中增加了新的刺激因素, 例如灯光,与声音一同组成了声音/光的复合条件刺激,在这个条件刺激之后,依然向家兔眼中吹气,作为无条件刺激。 在实验的第三个阶段,只用灯光作为CS来对家兔进行条件刺激,发现家兔很少或几乎没有产生瞬膜闭合的条件反射。 对光刺激的条件反射学习被之前对声音的条件反射学习所 阻塞[2]。 实验中阻塞的结果挑战了条件反射的形成只取决于简单的时间接近性这一结论,即产生条件反射的充分必要条件是US频繁地紧随在CS后面。 在下一节我门将讲述Rescorla–Wagner模型(Rescorla and Wagner,1972),该模型对阻塞提出了一种很有影响力的解释。

如果我们将之前用作条件反射的CS作为另外一个中性的刺激因素的US进行条件作用时,则会形成高级条件反射。 巴甫洛夫曾经描述过这样一个实验:他的助手首先使一只狗对节拍器的声音产生分泌唾液的条件反射。 在形成这一阶段的条件反射之后,他进行了一系列的实验,将一个黑色的方块放置在狗的视线内, 然后跟着产生节拍器的声音,不过在放置黑色方块的时候并不给狗提供食物。 起初,狗对这个黑色方块表现出漠不关心的态度,但是在仅10次实验后,狗在看到这个黑色方块后就开始分泌唾液,尽管在这个过程中并没有食物的出现。 在这个实验中,黑色方块为CS,节拍器的声音作为US,激发了狗对CS的条件反射。这就是次级条件反射。 同理,如果黑色方块被当作US去进一步建立狗对其他CS的条件反射,这就被称为三级条件反射,依此类推。 但在实际中,高级条件反射较难实现,特别是在次级以上的情况下。 部分原因是在高级的条件作用实验中,高级的强化刺激后面没有原始US的作用,使其失去了强化的效果。 但是在适当的条件下,例如,将一级条件作用实验与高级条件作用实验相结合, 或给予实验对象通用的激励刺激时,次级条件反射以上的高级条件反射是可以表现出来的。 正如我们下面将要讲述的 TD条件反射模型,使用了自我引导的思想,这也是我们方法的核心, 通过纳入具有预期特性的CR和高级条件反射,它扩展了 Rescorla-Wagner模型对于阻塞的描述。

高级工具性条件反射也会发生。经过长期进化,动物自身会具有本能的趋利避害的强化过程,我们称这样的强化过程为初级强化。 而能够一致性地预测初级强化过程的刺激物则被称为强化剂。 依此类推,若某种刺激物预示着强化剂的出现,则称其为 次级强化剂 或者更普遍地称为 高级强化剂或者条件强化剂 ── 当被预示的强化刺激本身为次级强化剂或者更高级的强化剂时,后面的术语更加准确。 条件强化剂会引发一个 条件强化 过程:即条件收益或条件惩罚。 条件强化与初级强化一样,增加了动物采用会获得条件收益的行为的倾向, 减少了动物采用会导致条件惩罚行为的倾向(见本章末对我们使用的术语与心理学术语区别的注释)。

由此看来,条件强化是一个关键现象,例如,为什么我们要努力工作来获得金钱这个强化剂,它的价值完全来自于人们对拥有金钱后的预期。 在13.5节描述的“行动器评判器”方法中(同样在15.7节和15.8节里讨论过)评判器使用TD方法来评估一个行动器的策略, 它所估计的价值给行动器提供了条件强化,使得行动器可以据此来改进它的策略。 这种对于高级工具性条件反射的模拟有助于解决1.7节提到的功劳分配问题。 因为当基础的收益信号被延迟时,评判器会给行动器提供每个时刻的强化。 我们将在14.4节中进一步讨论这个问题。

[2]与控制组进行对照实验是十分有必要的,这可以充分说明之前声音的条件作用阻塞了动物对光照刺激的学习。 在对照组的实验中,动物没有接受声音的条件作用,对光照条件的学习没有受到阻塞。 Moore和 Schmajuk(2008)对这个实验做出了充分的说明。
14.2.2 Rescorla-Wagner模型

Rescorla和Wagner创建这个模型的主要目的是解决阻塞问题。 Rescorla-Wagner-模型的核心思想是动物只有在事件违背其预期时才会学习, 换句话说就是当动物感到惊讶时(尽管不一定意味着任何有 意识的 预期与情绪)。 我们首先使用 Rescorla和 Wagner自己的术语和符号来描述一下他们的模型,然后再使用我们在讲述TD模型时使用的术语和符号。

Rescorla和 Wagner是这样描述他们的模型的。 该模型会调整复合CS中每个子刺激物的“关联强度”,关联强度是表示相应子刺激物预测一个US出现的强度和准确程度的数值。 当使用一个由多种刺激物组成的复合CS进行经典条件反射的实验时,每种子刺激物的关联强度不仅仅取决于自身, 还在某种程度上取决于整个复合CS的关联强度,即“聚合关联强度”。

Rescorla和Wagners假设了一个复合CS AX,它由刺激A和X组成,其中动物可能已经经历过刺激A,但是没有经历过刺激X。 令 \(V_{A}\)\(V_{X}\)\(V_{AX}\) 分别表示刺激物A,X以及复合刺激物AX的关联强度。 假设在某个实验中,复合CS AX作用于实验对象后,紧接着用US对实验对象进行刺激, 这里我们将US标注为刺激物Y。则复合刺激CS中每个部分的关联强度变化的公式如下:

\[\begin{split}\begin{array}{l}{ \Delta V_{A}=\alpha_{A} \beta_{Y}\left(R_{Y}-V_{AX}\right)} \\ {\Delta V_{X}=\alpha_{X} \beta_{Y}\left(R_{Y}-V_{AX}\right) }\end{array}\end{split}\]

其中,\(\alpha_{A} \beta_{Y}\)\(\alpha_{X} \beta_{Y}\) 是步长参数, 它们取决于US以及CS的各个组成部分,\(R_{Y}\) 是US Y可以支持的关联强度渐近水平 (Rescorla和 Wagner在这里用 \(\lambda\) 来代替 \(R\), 但是在这里我们依然使用 \(R\) 以避免混淆,因为我们通常认为 \(R\) 表示收益信号的大小。 但需要说明的是,US在经典条件反射中不一定是收益或者惩罚)。 Hescorla-Wagner模型的一个重要假设是认为聚合关联强度 \(V_{AX}\)\(V_{A}+V_{X}\) 是相等的。 而由这些 \(\Delta s\) 改变的关联强度则会成为一轮试验时的初始关联强度。

出于完整性考虑,模型还需要一个反应生成机制这个机制能够将 \(V\) 的值映射到 CR 中。 由于这种映射可能会取决于实验中的各种细节,Rescorla 和 Wagner 并没有详细说明这种映射关系, 仅仅简单地假定 \(V\) 的值越大,越有可能产生 CR,若 \(V\) 的值为负数,则不会产生任何 CR。

Rescorla-Wagner模型考虑了如何获得CR,这在一定程度上解释了阻塞的产生。 只要复合刺激物的聚合关联强度 \(V_{AX}\) 低于US Y所支持的关联强度渐近水平 \(R_{Y}\),则预测误差 \(R_{Y}-V_{AX}\)\(V_{X}\) 持续增加, 直到聚合关联强度 \(V_{AX}\)\(R_{Y}\) 相等为止,此时,子刺激物的关联水平不再变化(除非US变)。 若动物已经对某种复合CS产生条件反射,那么再向这种复合CS中添加新的刺激物形成增强的CS, 但是由于预测误差的值已经被减小到0或极低的值,因此增强的CS在被进一步的条件作用时,新添加刺激物的关联强度就会增加很少或者完全不增加。 因为之前的CS已经可以几乎完美地预测出US的出现,所以新的刺激物出现所引起的误差或意外就变得很小,这就表明之前的知识阻塞了对新刺激物的学习。

为了从 Rescorla-Wagner 模型过渡到经典条件反射TD模型(我们称之为TD模型),我们首先根据本书中使用的概念来重塑这个模型。 具体而言,将用于学习线性函数逼近(9.4节)的符号匹配到这个模型中, 并且我们认为条件作用的过程是一种在复合CS的基础上对“US的大小”的预测学习实验,US Y的大小就是 Rescorla-Wagner 模型在上面给出的 \(R_{Y}\)。 同时,我们还要引入一些状态。因为 Rescorla-Wagner-模型是一个 试验层面 的模型, 也就是说它通过连续不断地试验来确定关联强度的变化而不考虑两个试验之间发生的任何细节变化。 在讲述完整个TD模型之前,无须考虑状态在一次试验中是如何变化的。我们现在只需要把状态看成一种标记方法就可以了,它标记了试验中的复合CS的组成。

因此,我们假定试验的类型或者状态 \(s\) 由一个实数特征向量 \(\mathbf{x}(s)=\left(x_{1}(s), x_{2}(s), \ldots, x_{d}(s)\right)^{\top}\) 描述, 其中,如果复合CS第 \(i\) 个组成成分 \(CS_i\) 在一次试验中存在,则 \(x_{i}(s)=1\) ,否则为0。 设 \(d\) 维的关联强度向量为 \(mathbf{w}\),则状态 \(s\) 的聚合关联强度为

(1)\[\hat{v}(s, \mathbf{w})=\mathbf{w}^{\top} \mathbf{x}(s)\]

这与强化学习中的 价值估计 相对应,我们将其视为对 US的预测

现在,我们暂时让 \(t\) 表示完整试验的总数,而不是它的通常含义时刻(当我们讲述下面的TD模型时,我们依然使用t的通常含义)。 同时,\(S+t\) 是对应于试验 \(t\) 的状态。 条件作用试验 \(t\) 按照如下公式将关联强度向量 \(\mathbf{w}_{t}\) 更新为 \(\mathbf{w}_{t+1}\)

(2)\[\mathbf{w}_{t+1}=\mathbf{w}_{t}+\alpha \delta_{t} \mathbf{x}\left(S_{t}\right)\]

其中,\(\alpha\) 是步长参数,因为我们正在描述 Rescorla-Wagner 模型,所以这里 \(\delta_{t}\)预测误差

(3)\[\delta_{t}=R_{t}-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)\]

\(R_{t}\) 是试验 \(t\) 的预测目标,即 US 的大小,用 Rescorla 和 Wagner 的话来说就是 US 在试验中可以支持的关联强度。 我们可以注意到,由于式(14.2)中存在因子 \(\mathbf{x}(S_{t})\),所以在复合CS中,只有在试验中出现的子刺激物的关联强度才会在一次试验后被调整。 我们可以将预测误差视为对意外程度的度量,而聚合关联强度可以被视为动物的某种期望值,当它不符合目标 US 强度时就意味着动物的期望被违背了。

从机器学习的角度来看, Rescorla-Wagner 模型是一个基于误差纠正的监督学习模型。 它本质上与最小均方(LMS)或 Widrow-Hoff(Widrow 和 Hoff, 1960)学习规则一样, 通过调整权重使得误差的均方差尽可能接近于0,在这个模型中,权重就是关联强度。 这种“曲线拟合”或者回归算法被广泛地应用于工程和科学应用当中(参见9.4节) [3]

Rescorla-Wagner 模型在动物学习理论的历史上是非常有影响力的,因为它表明,“机械”理论可以解释关于阻塞的主要事实,而不用诉诸于更复杂的认知学理论。 例如当动物已经明确感知到另外一种子刺激物出现时,它会根据其之前的短期记忆来评估刺激物与US之间的预测关系。 Rescorla-Wagner 模型表明了条件反射的连续性理论(即刺激的时间连续性是学习的充分必要条件)经过简单的调整可以用来解释阻塞现象(Moore and Schmajuk, 2008)。

Rescorla-Wagner 模型对阻塞现象以及条件反射的其他特征做出了简单的解释,但是这并不是一个针对条件反射最完整或最好的模型。 对于目前所观察到的效应也有许多不同的理论给出了解释,并且为了理解经典条件反射的许多微妙之处,相关方面仍在不断发展。 我们在下面即将讲解的TD模型,虽然也不是最好或最完整的条件反射模型,但它扩展了 Rescorla-Wagner 模型, 对试验内和试验间的刺激时序关系对学习效果的影响做出了解释,同时也解释了高级条件反射可能的出现原因。

[3]LMS 规则和 Rescorl-Wagner 模型的唯一区别是,对于 LMS,输入向量 \(\mathbf{x}_{t}\) 可以由任意多的实数组成, 并且 \(\alpha\) 不依赖于输入向量以及刺激物的特性(至少在最简单的 LMS 规则中是这样的)。
14.2.3 TD模型

与 Rescorla-Wagner 相反,TD模型不是一个试验层面的模型,而是一个 实时 模型。 在 Rescorla-Wagner 模型中,\(t\) 每增加1则表示经过了一个完整的条件反射试验,因此该模型不适合对试验进程中发生的细节进行描述。 在每次试验中,动物可能会经历各种在特定时刻产生并持续特定时长的刺激,这些时间关系会对动物的学习效果产生显著的影响。 同时, Rescorla-Wagner 模型也没有考虑高级条件反射的机制,但是对于TD模型来说,高级条件反射是TD模型的核心思想——自举思想的自然结果。

我们从 Rescorla-Wagner 模型的结构开始讲述TD模型,但是从现在开始 \(t\) 表示试验中或两次试验之间的时刻,而不是一次完成的试验。 我们将 \(t\)\(t+1\) 之间的时间视为一个很小的时间间隔,例如 0.01 秒,将一次试验视为一个状态序列,每个状态对应于一个时刻。 因此,每个 \(t\) 对应的状态表示了在 \(t\) 这个时刻的刺激物的各种细节,而不仅仅是在一次试验中CS各种组成部分出现的标记。 实际上,我们可以完全抛弃以一次试验为单位的想法。从动物的视角来看,动物与其所处环境之间的交互是连续的,一次试验仅仅是这种连续体验的一个片段。 按照我们对智能体与其所处环境交互的观点,假设动物正在经历一系列无限的状态 \(s\),每个状态由一个特征向量 \(mathbf{x}(s)\) 表示。 这也就是说,我们可以将多次试验视为一个大的试验中的若干时间片段,刺激模式不断在这些时间片段中重复,这样做往往十分方便。

状态特征不仅可以描述动物所经历的外部刺激,还可以描述外部刺激在动物大脑中产生的神经活动模式, 而这些模式是历史相关的,这意味着可以通过一系列外部刺激来形成持久的神经活动模式。 当然,我们并不知道这些模式的具体内容是什么,但是诸如TD模型这样的实时模型可以让我们探究各种关于外部刺激的内部表征的学习假说所呈现的结果。 综上所述,TD模型并不会确定任何一种特定的状态刺激表示。此外,由于TD模型包含了跨越不同刺激时间间隔的折扣和资格迹, 因此,该模型还可以让我们探究折扣和资格迹是如何与刺激物的表示进行交互的,这些交互可以用于预测经典条件反射试验的结果。

下面我们来描述一些与TD模型一起使用的状态表示及其含义,但是我们暂且还不知道状态表示的具体内容, 因此我们假设每个状态 \(s\) 都是由一个特征向量 \(\mathbf{x}(s)=\left(x_{1}(s), x_{2}(s), \ldots, x_{n}(s)\right)^{\top}\) 来表示的。 那么与状态 \(s\) 对应的聚合关联强度和 Rescorla Wagner 相同,都由式(14.1)给出。 但是TD模型对于关联强度向量 \(\mathbf{w}\) 的更新方式是不同的。由于参数 \(t\) 目前表示的是一个时刻而不是一次完整的试验,因此TD模型根据如下公式进行更新

(4)\[\mathbf{w}_{t+1}=\mathbf{w}_{t}+\alpha \delta_{t} \mathbf{z}_{t}\]

上式将 Rescorla-Wagner 模型更新公式(14.2)中的 \(\mathbf{x}_t(S_t)\) 替换为 \(\mathbf{z}_t\)\(\mathbf{z}_t\) 是一个资格迹向量。 同时,这里的 \(\delta_{t}\) 与式(14.3)中的不同,其代表TD误差。

(5)\[\delta_{t}=R_{t+1}+\gamma \hat{v}\left(S_{t+1}, \mathbf{w}_{t}\right)-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)\]

其中, \(\gamma\) 是折扣系数(介于0和1之间),\(R_t\) 是在 \(t\) 时刻的预测目标, \(\hat{v}\left(S_{t+1}, \mathbf{w}_{t}\right)\)\(\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)\) 是在 \(t+1\) 时刻与 \(t\) 时刻对应的聚合关联强度,如式(14.1)中所定义的。

资格迹向量 \(\mathbf{z}_t\) 的每个分量 \(i\) 根据特征向量 \(x_i(S_t)\) 分量 \(\mathbf{x}(S_t)\) 进行增加或减少,其余的资格迹向量根据系数 \(\gamma\lambda\) 进行衰减

(6)\[\mathbf{z}_{t+1}=\gamma \lambda \mathbf{z}_{t}+\mathbf{x}\left(S_{t}\right)\]

这里的 \(\lambda\) 是资格迹的衰减系数。

这里注意,如果 \(\gamma=0\),那么TD模型就会退化为 Rescorla-Wagner 模型, 但是不同之处在于 \(t\) 的含义(在 Rescorla-Wagner 模型中表示一次试验,在TD模型中表示某个时刻)。 同时,在TD模型中,预测目标 \(R\) 要多出一步TD模型相当于线性函数逼近(第12章)中半梯度 \(TD(\lambda)\) 算法的后向视图, 但区别在于当使用TD算法学习价值函数来进行策略改进时,\(R_t\) 不必是收益信号。

第15章 神经科学

神经科学是对神经系统的多学科研究的总称,主要包括:如何调节身体功能,如何控制行为, 由发育、学习和老化所引起的随着时间的变化,以及细胞和分子机制如何使这些功能成为可能。 强化学习的最令人兴奋的方面之一是来自神经科学的越来越多的证据表明, 人类和许多其他动物的神经系统实施的算法和强化学习算法在很多方面是一一对应的。 本章主要解释这些相似之处,以及他们对动物的基于收益的学习的神经基础的看法。

强化学习和神经科学之间最显著的联系就是多巴胺,它是一种哺乳动物大脑中与收益处理机制紧密相关的化学物质。 多巴胺的作用就是将TD误差传达给进行学习和决策的大脑结构。 这种相似的关系被表示为 多巴胺神经元活动的收益预测误差假说,这是由强化学习和神经科学实验结果引出的一个假设。 在本章中我们将讨论这个假设,引出这个假设的神经科学发现,以及为什么它对理解大脑收益系统有重要作用。 我们还会讨论强化学习和神经科学之间的相似之处,虽然这种相似不如多巴胺/TD误差之间的相似那么明显, 但它提供了有用的概念工具,用于研究动物的基于收益的学习机制。 强化学习的其他元素也有可能会影响神经系统的研究,但是本章对它们与神经科学之间的联系相对讨论得不多。 我们在本章只讨论一些我们认为随着时间的推移会变得重要的联系。

正如我们在本书第1章的强化学习的早期历史部分(1.7节)所概述的,强化学习的许多方面都受到神经科学的影响。 本章的第二个目标是向读者介绍有关脑功能的观点,这些观点对强化学习方法有所贡献。 从脑功能的理论来看,强化学习的一些元素更容易理解。 对于“资格迹”这一概念尤其如此,资格迹是强化学习的基本机制之一起源于突触的一个猜想性质(突触是神经细胞与神经元之间相互沟通的结构)。

在本章,我们并没有深入研究动物的基于收益学习的复杂神经系统,因为我们不是神经科学家。 我们并不试图描述(甚至没有提及)许多大脑结构,或任何分子机制,即使它们都被认为参与了这些过程。 我们也不会对与强化学习非常吻合的假设和模型做出评判。神经科学领域的专家之间有不同的看法是很正常的。 我们仅仅想给读者讲好有吸引力和建设性的例子。 我们希望这一章给读者展现多种将强化学习及其理论基础与动物的基于收益学习的神经科学理论联系起来的渠道。

许多优秀的著作介绍了强化学习与神经科学之间的联系,我们在本章的最后一节中引用了其中的一些。 我们的方法和这些方法不太相似因为我们假设读者熟悉本书前面几章所介绍的强化学习,但是不了解有关神经科学的知识。 因此我们首先简要介绍神经科学的概念,以便让你有基本的理解。

15.1 神经科学基础

了解一些关于神经系统的基本知识有助于理解本章的内容。我们后面提到的术语用楷体表示。 如果你已经有神经科学方面的基本知识,则可以跳过这一节。

神经元 是神经系统的主要组成部分,是专门用于电子和化学信号的处理及信息传输的细胞。 它们以多种形式出现,但神经元通常具有细胞体、树突 和单个 轴突。 树突是从细胞体分叉出来,以接收来自其他神经元的输入(或者在感觉神经元的情况下还接收外部信号)的结构。 神经元的轴突是将神经元的输出传递给其他神经元(或肌肉、腺体)的纤维。 神经元的输出由被称为 动作电位 的电脉冲序列构成,这些电脉冲沿着轴突传播。 动作电位也被称为 尖峰,而神经元在产生尖峰时被认为是触发的。 在神经网络模型中,通常使用实数来表示神经元的 放电速率,即每单位时间的平均放电次数。

神经元的轴突可以分很多叉,使神经元的动作电位达到许多目标。神经元轴突的分叉结构部分被称为神经元的 轴突中枢。 因为动作电位的传导是一个主动过程,与导火索的燃烧不同,所以当动作电位到达轴突的分叉点时, 它会“点亮”所有输出分支上的动作电位(尽管有时会无法传播到某个分支)。 因此,具有大型轴突中枢的神经元的活动可以影响许多目标位置。

突触 通常是轴突分叉终止处的结构,作为中介调整一个神经元与另一个神经元之间的通信。 突触将信息从 突触前 神经元的轴突传递到 突触后 神经元的树突或细胞体。 除少数例外,当动作电位从突触前神经元传输到突触的时候突触会释放化学 神经递质 (但有时神经元之间有直接电耦合的情况,但是在这里我们不涉及这些)从突触的前侧释放的神经递质分子会弥漫在 突触间隙, 即突触前侧的末端和突触后神经元之间的非常小的空间, 然后与突触后神经元表面的受体结合,以激发或抑制其产生尖峰的活性,或以其他方式调节其行为。 一种特定的神经递质可能与几种不同类型的受体结合,每种受体在突触后神经元上产生不同的反应。 例如,神经递质多巴胺至少可以通过五种不同类型的受体来影响突触后神经元。 许多不同的化学物质已被确定为动物神经系统中的神经递质。

神经元的 背景 活动指的是“背景”情况下的活动水平,通常是它的放电速率。 所谓“背景情况”是指神经元的活动不是由实验者指定的任务相关的突触输入所驱动的, 例如,当神经元的活动与作为实验的一部分传递给被试者的刺激无关时,我们就认为其活动是背景活动。 背景活动可能由于输入来自于更广泛的网络而具有不规则性,或者由于神经或突触内的噪声而显得不规则。 有时背景活动是神经元固有的动态过程的结果。与其背景活动相反,神经元的 阶段性 活动通常由突触输入引起的尖峰活动冲击组成。 对于那些变化缓慢、经常以分级的方式进行的活动,无论是否是背景活动,都被称为神经元的 增补 活动。

突触释放的神经递质对突触后神经元产生影响的强度或有效性就是突触的 效能。 一种利用经验改变神经系统的方式就是通过改变突触的效能来改变神经系统, 这个“效能”是突触前和突触后神经元的活动的组合产生的结果,有时也来自于神经调节剂产生的结果。 所谓 神经调节剂,就是除了实现直接的快速兴奋或抑制之外,还会产生其他影响的神经递质。

大脑含有几个不同的神经调节系统,由具有广泛分叉的树状轴突神经元集群组成,每个系统使用不同的神经递质。 神经调节可以改变神经回路的功能、中介调整的动因、唤醒、注意力、记忆、心境、情绪、睡眠和体温。 这里重要的是,神经调节系统可以分配诸如强化信号之类的标量信号以改变突触的操作, 这些突触往往广泛分布在不同地方但对神经元的学习具有关键作用。

突触效能变化的能力被称为 突触的可塑性。 这是学习活动的主要机制之一通过学习算法调整的参数或权重对应于突触的效能(synaptic efficacies)正如我们下面要详细描述的, 通过神经调节剂多巴胺对突触可塑性进行调节是大脑实现学习算法的一种机制,就像本书所描述的那些算法一样。

15.2 收益信号、强化信号、价值和预测误差

神经科学和计算型的强化学习之间的联系始于大脑信号和在强化学习理论与算法中起重要作用的信号之间的相似性。 在第3章中,我们提到,任何对目标导向的行为进行学习的问题描述都可以归结为具有代表性的三种信号:动作、状态和收益。 然而,为了解释神经科学和强化学习之间的联系,我们必须更加具体地考虑其他强化学习的信号,这些信号以特定的方式与大脑中的信号相对应。 除了收益信号以外,还包含强化学习信号(我们认为这些信号不同于收益信号)、价值信号和传递预测误差的信号。 当我们以某种方式用对应函数来标记一个信号的时候,我们就在强化学习理论的语境之下把信号和某个公式或算法中的一项对应起来。 另一方面,当我们提到大脑中的一个信号时,也是想表示一个生理事件,比如动作电位的突变或者神经递质的分泌。 把一个神经信号标记为对应函数,比如把一个多巴胺神经元相位活动称为一个强化信号,意味着我们推测这个神经信号的作用与强化学习理论中的信号作用类似。

找到这些对应关系的证据面临诸多挑战。与收益处理过程相关的神经活动几乎可以在大脑的每一个部分找到, 但是由于不同的信号通常具有高度相关性,因此我们很难清楚地解释结果。 我们需要设计严谨的实验来把一种类型的收益相关信号和其他类型的收益信号区别开来,或者和其他与收益过程无关的大量信号区别开来。 尽管存在这些困难,但我们已经进行了许多实验来使强化学习理论和算法与神经信号对应起来,并建立一些具有说服力的联系。 为了在后续章节中说明这些联系,在本节的后面我们将告诉读者各种收益相关的信号与强化学习理论中信号的对应关系。

在第14章末介绍术语时,我们说到的 \(R_{t}\) 更像动物大脑中的收益信号,而非动物环境中的物体或事件。 收益信号(以及智能体的环境)定义了强化学习智能体正试图解决的问题。 就这一点而言,\(R_{t}\) 就像动物大脑中的一个信号,定义收益在大脑各个位置的初始分布。 但是在动物的大脑中不可能存在像 \(R_{t}\) 这样的统一的收益信号。 我们最好把 \(R_{t}\) 看作一个概括了大脑中许多评估感知和状态奖惩性质的系统产生的大量神经信号整体效应的抽象。

强化学习中的 强化信号 与收益信号不同。强化信号的作用是在一个智能体的策略、价值估计或环境模型中引导学习算法做出改变。 对于时序差分方法,例如,\(t\) 时刻的强化信号是TD误差 \(\delta_{t-1}=R_{t}+\gamma V(S_{t})-V(S_{t-1})\) [1]。 某些算法的强化信号可能仅仅是收益信号,但是大多数是通过其他信息调整过的收益信号,例如TD误差中的价值估计。

状态价值函数或动作价值函数的估计,即 \(V\)\(Q\),指明了在长期内对智能体来说什么是好的,什么是坏的。 它们是对智能体未来期望积累的总收益的预测。智能体做出好的决策, 就意味着选择合适的动作以到达具有最大估计状态价值的状态,或者直接选择具有最大估计动作价值的动作。

[1]如我们在6.1节中介绍的,在我们的符号体系下 \(\delta_{t}\) 被定义为 \(R_{t+1}+\gamma V(S_{t+1})-V(S_{t})\), 所以,只有到了 \(t+1\) 时刻才能得到 \(\delta_{t}\)。 则 \(t\) 时刻的TD误差实际是 \(\delta_{t-1}=R_{t}+\gamma V\left(S_{t}\right)-V\left(S_{t-1}\right)\)。 因为我们通常认为每个时间步长是非常小甚至有时可以认为是无限小的,以对于定义上面这样的单个时刻的偏移不需要过分解读它的重要性。

预测误差衡量期望和实际信号或感知之间的差异。收益预测误差(reward prediction errors,RPE)衡量期望和实际收到的收益信号之的差异, 当收益信号大于期望时为正值,否则为负值。像式(6.5)中的TD误差是特殊类的RE,它表示当前和早先的长期回报期望之间的差异。 当神经科学家提到RPE时,他们一般(但不总是)指 TD RPE,在本章中我们简单地称之为TD误差。 在本章中TD误差通常不依赖于动作,不同于在 Sarsa和Q-学习算法中学习动作价值时的TD误差。 这是因为最明显的与神经科学的联系是用动作无关的TD误差来表述的,但是这并不意味着不存在与动作相关的TD误差的联系 (用于预测收益以外信号的TD误差也是有用的,但我们不加以考虑,这类例子可以参考 Modayil、 White和 Sutton,2014)。

关于神经科学数据与这些从理论上定义的信号之间的联系,我们可以提很多问题。 比如,观测到的信号更像一个收益信号、价值信号预测误差、强化信号,还是一个完全不同的东西? 如果是误差信号,那是收益预测误差(RE)、TD误差,还是像 Rescorla-Wagner误差(式14.3)这样的更简单的误差? 如果是TD误差,那是否是动作相关的“Q学习”或 Sarsa 等误差?如上所述,通过探索大脑来回答这样的问题是非常困难的。 但实验证据表明,一种神经递质,特别是多巴胺,表示RPE信号,而且生产多巴胺的神经元的相位活动事实上会传递TD误差(见15.1节节关于相位活动的定义)。 这个证据引出了 多巴胺神经元活动的收益预测误差假说,我们将在下面描述。

15.3 收益预测误差假说

多巴胺神经元活动的收益预测误差假说 认为,哺乳动物体内产生多巴胺的神经元的相位活动的功能之一, 就是将未来的期望收益的新旧估计值之间的误差传递到整个大脑的所有目标区域。 Montague、 Dayan和 Sejnowski1996)首次明确提出了这个假说(虽然没有用这些确切的词语), 他们展示了强化学习中的TD误差概念是如何解释哺乳动物中多巴胺神经元相位活动各种特征的。 引出这一假说的实验于20世纪80年代、90年代初在神经科学家沃尔夫拉姆·舒尔茨的实验室进行。 15.4节描述了这些重要实验,15.6节解释了这些实验的结果与TD误差的一致性, 本章末尾的参考文献和历史评注部分包含了记录这个重要假设发展历程的文献。

Montague等人(1996)比较了经典条件反射下时序差分模型产生的TD误差和经典条件反射环境下产生多巴胺的神经元的相位活动。 回顾14.2节,经典条件反射下的时序差分模型基本上是线性函数逼近的半梯度下降TD(\(\lambda\))算法。 Montague等人做了几个假设来进行对比。首先,由于TD误差可能是负值,但神经元不能有负的放电速率, 所以他们假设与多巴胺神经元活动相对应的量是 \(\delta_{t-1}+b_{t}\),其中 \(b_t\) 是神经元的背景放电速率。 负的TD误差对应于多巴胺神经元低于其背景放电速率的放电速率降低量 [2]

第二个假说是关于每次经典条件反射试验所访问到的状态以及它们作为学习算法的输入量的表示方式的。 我们在14.2.4中针对时序差分模型讨论过这个问题。 Montague等人选择了全串行复合刺激表示(CSC),如图141左边一列所示,但略有不同的是, 短期内部信号的序列一直持续到US开始出现,而这里就是非零收益信号到达的地方。 这种表示方式使得TD误差能够模仿这样一种现象:多巴胺神经元活动不仅能预测未来收益,也对收到预测线索之后,收益 何时 可以达成是敏感的。 我们必须有一些方法来追踪感官线索和收益达成之间的间隔时间。 如果一个刺激对其后会继续产生的内部信号的序列进行了初始化,并且它们在刺激结束之后的每个时刻都产生不同的信号, 那么在每个时刻,我们可以用不同的状态来表示这些信号。因此,依赖于状态的TD误差对试验中事件发生的时间是敏感的。

有了这些关于背景放电速率和输入表示的假说,在15.5节的模拟试验中,时序差分模型的TD误差与多巴胺神经元的相位活动就十分相似了。 在15.5节中我们对这些相似性细节进行了描述,TD误差与多巴胺神经元的下列特征是相似的: 1)多巴胺神经元的相位反应只发生在收益事件不可预测时; 2)在学习初期,在收益之前的中性线索不会引起显著的相位多巴胺反应,但是随着持续的学习,这些线索获得了预测值并随即引起了相位多巴胺反应; 3)如果存在比已经获得预测值的线索更早的可靠线索,则相位多巴胺反应将会转移到更早的线索,并停止寻找后面的线索; 4)如果经过学习之后,预测的收益事件被遗漏,则多巴胺神经元的反应在收益事件的期望时间之后不久就会降低到其基准水平之下。

虽然在 Schultz等人的实验中,并不是每一个被监测到的多巴胺神经元都有以上这些行为, 但是大多数被监测神经元的活动和TD误差之间惊人的对应关系为收益预测误差假说提供了强有力的支持。 然而,仍存在一些情况基于假设的预测与实验中观察到的不一致。 输入表示的选择对于TD误差与多巴胺神经元活动某些细节之间的匹配程度来说至关重要,特别是多巴胺神经元的反应时间的细节。 为了使二者更加吻合,有一些关于输入表示和时序差分学习其他特征的不同思想被提了出来, 我们会在下面讨论一些,但主流的表示方法还是 Montague等人的CSC表示方法。 总体而言,收益预测误差假说已经在研究收益学习的神经科学家中被广泛接受,并且已经被证明能适应来自神经科学实验的更多结果。

为描述支持收益预测误差假说的神经科学实验,我们会提供一些背景使得假设的重要性更容易被理解。 我们接下来介绍一些关于多巴胺的知识,和它影响的大脑结构,以及它们是如何参与收益学习过程的。

[2]多巴胺神经元活动相关的TD误差中的 \(\delta_t\) 与 我们的 \(\delta_{t-1}=R_{t}+\gamma V(S_{t})-V(S_{t-1})\) 是类似的。
15.4 多巴胺

多巴胺是神经元产生的一种神经递质,其细胞体主要位于哺乳动物大脑的两个神经元群中:黑质致密部(SNpc)和腹侧被盖区(VTA)。 多巴胺在哺乳动物大脑的许多活动中起着重要的作用。其中突出的是动机、学习、行动选择、大多数形式的成瘾、精神分裂症和帕金森病。 多巴胺被称为神经调节剂,因为除了直接快速使靶向神经元兴奋或抑制靶向神经元之外,多巴胺还具有许多功能。 虽然多巴胺的很多功能和细胞效应的细节我们仍不清楚,但显然它在哺乳动物大脑收益处理过程中起着基础性的作用。 多巴胺不是参与收益处理的唯一神经调节剂,其在厌恶情况下的作用(惩罚)仍然存在争议。 多巴胺也可以在非哺乳动物中发挥作用。但是在包括人类在内的哺乳动物的收益相关过程中,多巴胺起到的重要作用毋庸置疑。

一个早期的传统观点认为,多巴胺神经元会向涉及学习和动机的多个大脑区域广播收益信号。 这种观点来自詹姆斯·奥尔德斯(James Olds)和彼得米尔纳(Peter Milner)他们在1954年著名的论文中描述了电刺激对老鼠大脑某些区域的影响。 他们发现,对特定区域的电刺激对控制老鼠的行为方面有极强的作用: “……通过这种收益对动物的行为进行控制是极有效的,可能超过了以往所有用于动物实验的收益”(olds和 Milner,1954)。 后来的研究表明,这些对最敏感的位点的刺激所激发的多巴胺通路, 通常就是直接或间接地被自然的收益刺激所激发的多巴胺通路在人类被试者中也观察到了与老鼠类似的效应。 这些观察结果有效表明多巴胺神经元活动携带了收益信息。

但是,如果收益预测误差假说是正确的,即使它只解释了多巴胺神经元活动的某些特征, 那么这种关于多巴胺神经元活动的传统观点也不完全正确:多巴胺神经元的相位反应表示了收益预测误差,而非收益本身。 在强化学习的术语中,时刻 \(t\) 的多巴胺神经元相位反应 对应于 \(\delta_{t-1}=R_{t}+\gamma V(S_{t})-V(S_{t-1})\),而不是 \(R_t\)

强化学习的理论和算法有助于一致性地解释“收益-预测-误差”的观点与传统的信号收益的观点之间的关系。 在本书讨论的许多算法中,作为一个强化信号,\(\delta\) 是学习的主要驱动力。 例如,\(\delta\) 是经典条件反射时序差分模型中的关键因素, 也是在“行动器-评判器”框架中学习价值函数和策略的强化信号(13.5节和15.7节)。 \(\delta\) 的动作相关的形式是Q学习和Sarsa的强化信号。 收益信号 \(R_t\)\(\delta_{t-1}\) 的重要组成部分,但不是这些算法中强化效应的完全决定因素。 附加项 \(\gamma V(S_{t})-V(S_{t-1})\)\(\delta_{t-1}\) 的次级强化部分, 即使有收益(\(R_{t} \neq 0\))产生,如果收益可以被完全预测,则TD误差也可以是没有任何影响的(15.6节详细解释)。

事实上,仔细研究Olds和 Milner1 1954年的论文可以发现,这主要是工具性条件反射任务中电刺激的强化效应。 电刺激不仅能激发老鼠的行为通过多巴胺对动机的作用,还导致老鼠很快学会通过按压杠杆来刺激自己,而这种刺激会长时间频繁进行。 电刺激引起的多巴胺神经元活动强化了老鼠的杠杆按压动作。

最近使用光遗传学方法的实验证实了多巴胺神经元的相位反应作为强化信号的作用。 这些方法允许神经科学家在清醒的动物中以毫秒的时间尺度精确地控制所选的特定类型的神经元活动。 光遗传学方法将光敏蛋白质引入选定类型的神经元中,使这些神经元可以通过激光闪光被激活或静默。 第一个使用光遗传学方法研究多巴胺神经元的实验显示,使小鼠产生多巴胺神经元相位激活的光遗传刺激会使小鼠更喜欢房间里接受刺激的一侧 (在房间的另一侧它们没有收到或只收到低频率的刺激(Tsai et al,2009)。 在另一个例子中, Steinberg等人(2013)利用多巴胺神经元的光遗传对老鼠身上的多巴胺神经元活动进行人为激活, 这时本该发生收益刺激但实际没有,多巴胺神经元活动通常暂停。 人为激活后,响应持续并由于缺少强化信号(在消退试验中)而正常地衰减, 由于收益已经被正确预测,所以学习通常会被阻塞(阻塞示例见本书14.2.1节)。

_images/single_neuron_producing_dopamine.png

单个神经元的轴突生成多巴胺作为神经递质。这些轴突通过突触和脑中目标区域的大量神经元树突进行信息传递。

引自: The Journal of Neurosctence, Matsuda, Furuta, Nakamura, Hioki. Fujiyama, Arai, and Kaneko, volume 29, 2009, page 451.

多巴胺强化作用的另外证据来自果蝇的光遗传学实验,尽管这些动物中多巴胺的作用与哺乳动物中的作用相反: 至少对多巴胺神经元活化的群体来说,多巴胺神经元活性的光学触发像对脚电击一样来强化“回避行为”(Claridge-Chang-等,2009)。 虽然这些光遗传学实验都没有显示多巴胺神经元相位活动特别像TD误差, 但是它们有力地证明了多巴胺神经元相位活动像 \(\delta\) 在强化信号预测(经典条件反射)和 控制(工具性条件反射)中那样起着重要作用(或许对果蝇来说像 \(minus \delta\) 的作用)。

多巴胺神经元特别适合于向大脑的许多区域广播强化信号。 这些神经元具有巨大的轴突,每一个都能在比普通轴突多100~1000倍的突触位点上释放多巴胺。 右图显示了单个多巴胺神经元的轴突,其细胞体位于老鼠大脑的SNpc中。 每个spc或VTA多巴胺神经元的轴突在靶向大脑区域中的神经元树突上产生大约500 000个突触。

如果多巴胺神经元像强化学习 \(\delta\) 那样广播强化信号,那么由于这是一个标量信号,即单个数字, 所以在SNpc和VTA中的所有多巴胺神经元会被预期以相同的方式激活,并以近似同步的方式发送相同的信号到所有轴突的目标位点。 尽管人们普遍认为多巴胺神经元确实能够像这样一起行动,但最新证据指出, 多巴胺神经元的不同亚群对输入的响应取决于它们向其发送信号的目标位点的结构,以及信号对目标位点结构的不同作用方式。 多巴胺具有传导RPE以外的功能。而且即使是传导RPE信号的多巴胺神经元,多巴胺也会将不同的RPE发送到不同的结构去, 这个发送过程是根据这些结构在产生强化行为中所起的作用来进行的。 这超出了我们讨论的范围,但无论如何,矢量值RPE信号从强化学习的角度看是有意义的, 尤其是当决策可以被分解成单独的子决策时,或者更一般地说,处理结构化的功劳分配问题时就更是如此。 所谓 结构化功劳分配问题 是指:如何为众多影响决策的结构成分分配成功的功劳收益(或失败的惩罚)? 我们会在15.10节中详细讨论这一点。

大多数多巴胺神经元的轴突与额叶皮层和基底神经节中的神经元发生突触接触,涉及自主运动、决策、学习和认知功能的大脑区域。 由于大多数关于多巴胺强化学习的想法都集中在基底神经节,而多巴胺神经元的连接在那里特密集,所以我们主要关注基底神经节。 基底神经节是很多神经元组(又称“神经核”)的集合,位置在前脑的基底。基底节的主要输入结构称为纹状体。 基本上所有的大脑皮层以及其他结构,都为纹状体提供输入。皮层神经元的活动传导关于感官输入、内部状态和运动活动的大量信息。 皮层神经元的轴突在纹状体的主要输入/输出神经元的树突上产生突触接触,称为中棘神经元。 纹状体的输出通过其他基底神经核和丘脑回到皮质的前部区域和运动区域,使得纹状体可能影响运动、抽象决策过程和收益处理。 纹状体的两个主要分叉对于强化学习来说十分重要:背侧纹状体,主要影响动作选择;和腹侧纹状体,在收益处理的不同方面起关键作用,包括为各类知觉分配有效价值。

中棘神经元的树突上覆盖着“棘”,该皮质神经元的尖端轴突有突触之间信息传递的功能。 这些棘也会参与突触之间的信息传递──在这种情况下连接的是脊柱茎,其是多巴胺神经元的轴突(图15.1)。 这样就将皮层神经元的突触前活动、中棘神经元的突触后活动和多巴胺神经元的输入汇集在一起。 实际上这些发生在脊柱茎上的过程很复杂,还没有被完全弄清楚。 图15.1通过显示两种类型的多巴胺受体──谷氨酸受体(谷氨酸受体的神经递质),以及各种信号相互作用的方式说明了这种活动的复杂性。 但有证据表明,神经科学家称之为皮质纹状体突触的从皮层到纹状体突触相关性的变化,取决于恰当时机的多巴胺信号。

_images/figure-15.1.png

图15.1 纹状神经元的脊柱茎的输入来自于皮层神经元和多巴胺神经元。 皮层神经元轴突通过纹状体突触影响纹状神经元,神经递质谷氨酸在棘端覆盖纹状神经元树突。 一个VTA或SNpc多巴胺神经元的轴突在脊柱茎旁边(图的右下方)。 轴突上的“多巴胺膨体”在脊柱茎或附近释放多巴胺,在将皮层突触前输入、纹状体神经元突触后活动和多巴胺结合起来的组织方式中, 这使得可能有几种类型的学习规则共同支配皮质纹状突触的可塑性。 多巴胺神经元的每个轴突与大约500 000个脊柱茎的突触发生信息传递。 其他神经递质传递途径和多种受体类型不在我们讨论范围,如D1和D2多胺受,多巴胺可以在脊柱和其他突触后位点产生不同的效应。 引自: Journal of Neurophysiology,w. Schultz vol.80,1998,page10.

15.5 收益预测误差假说的实验支持

多巴胺神经元以激烈、新颖或意想不到的视觉、听觉刺激来触发眼部和身体的运动,但它们的活动很少与运动本身有关。 这非常令人惊讶,因为多巴胺神经元的功能衰退是帕金森病的一个原因,其症状包括运动障碍,尤其是自发运动中的缺陷。 Romo和 Schultz(1990)以及Schultz和Romo(1990)通过记录猴子移动手臂时多巴胺神经元和肌肉的活动开始向收益预测误差假说迈出第一步。

他们训练了两只猴子,当猴子看见并听到门打开的时候,会把手从静止的地方移动到一个装有苹果、饼干或葡萄干的箱子里。 然后猴子可以抓住食物并吃到嘴里。当猴子学会这么做之后,它又接受另外两项任务的训练。 第一项任务的目的是看当运动是自发时多巴胺神经元的作用。箱子是敞开的,但上面被覆盖着,猴子不能看到箱子里面的东西,但可以从下面伸手进去。 预先没有设置触发刺激当猴子够到并吃完食物后,实验者通常(虽然并非总是)在猴子没看见的时候悄悄将箱中的食物粘到一根坚硬的电线上。 在这里,Romo和 Schultz观察到的多巴胺神经元活动与猴子的运动无关,但是当猴子首先接触到食物时,这些神经元中的大部分会产生相位反应。 当猴子碰到电线或碰到没有食物的箱子时这些神经元没有响应。这是表明神经元只对食物,而非任务中的其他方面有反应的很好的证据。

Romo和 Schultz第二个任务的目的是看看当运动被刺激触发时会发生什么。 这个任务使用了另外一个有可移动盖子的箱子。箱子打开的画面和声音会触发朝向箱子的移动。 在这种情况下,Romo和 Schultz发现,经过一段时间的训练后,多巴胺神经元不再响应食物的触摸, 而是响应食物箱开盖的画面和声音这些神经元的相位反应已经从收益本身转变为预测收益可用性的刺激。 在后续研究中,Romo和 Schultz发现,他们所监测的大多数多巴胺神经元对行为任务背景之外的箱子打开的视觉和声音没有反应。 这些观察结果表明,多巴胺神经元既不响应于运动的开始,也不响应于刺激的感觉特性,而是表示收益的期望。

Schultz的小组进行了许多涉及SNpc和VT多巴胺神经元的其他研究。 一系列特定的实验表明,多巴胺神经元的相位反应对应于TD误差,而不是像 Rescorla-Wagner模型(式(14.3)那样的简单误差。 在第一个实验中(Ljungberg、 Apicella Schultz,1992),训练猴子们在打开光照(作为“触发线索”)之后按压杠杆来获得一滴苹果汁。 正如Romo和 Schultz早些时候所观察到的,许多多巴胺神经元最初都对收益果汁滴下来有所回应(图15.2,上图)。 但是许多神经元在训练继续下去后失去了收益反应,而是转而对预测收益的光照有所反应(图15.2,中图)。 在持续的训练中,随着响应触发线索的多巴胺神经元变少,按压杠杆变得更快。

_images/figure-15.2.png

图15.2 多胺神经元的反应从最初的反应到初级收益再到早期的预测刺激的转变。 图中展示的是在细微时间间隔内被监测的多巴胺神经元产生的动作电位(这些数据是23~4个神经元产生的)。 顶部图:多巴胺神经元被无规律产生的苹果汁激活。中间图:随着学习,多巴胺神经元对收益预测触发线索产生反应,对收益传递失去反应。 底部图:通过在触发脉冲之前增加1s的指示线索,多巴胺神经元将它们的响应从触发线索转移到较早的指示线索。 引自: Schultz et al.(1995), MIT Press.

在这项研究之后,同样的猴子接受了新的任务训练(Schultz、 Apicella和 Ljungberg,1993)。 这次猴子面临两个杠杆,每个杠杆上面都有一盏灯。点亮其中一个灯是一个“指示线索”,指示两个手柄中的哪一个会产生一滴苹果汁。 在这个任务中,指示线索先于触发提示产生,提前产生的间隔固定为1秒。 猴子要学着在看到触发线索之前保持不动,多巴胺神经元活动增加, 但是现在监测到多巴胺神经元的反应几乎全部发生在较早的指示线索上,而不是触发线索(图15.2,下图)。 在这个任务被充分学习时,再次响应指示线索的多巴胺神经元数量也大大减少了。 在学习这些任务的过程中,多巴胺神经元活动从最初的响应收益转变为响应较早的预测性刺激,首先响应触发刺激,然后响应更早的指示线索。 随着响应时间的提前,它在后面的刺激中消失。这种对后来的预测因子失去反应,而转移到对早期收益预测有所反应,是时序差分学习的一个标志(见图14.2)。

刚刚描述的任务也揭示了时序差分学习与多巴胺神经元活动共同具有的另一个属性。 猴子有时会按下错误的按键,即指示按键以外的按键因此没有收到任何收益。 在这些试验中,许多多巴胺神经元在收益正常给出后不久就显示其基线放电速率急剧下降, 这种情况发生时没有任何外部线索来标记通常的收益传送时间(图15.3)。 不知何故猴子在内部也能追踪收益传送的时间(响应时间是最简单的时序差分学习版本需要修改的一个地方, 以解释多巴胺神经元反应时间的一些细节,我们在下一节会考虑这个问题)。

上述研究的观察结果使 Schultz和他的小组得出结论:多巴胺神经元对不可预测的收益,最早的收益预测因子做出反应, 如果没有发现收益或者收益的预测因子,那么多巴胺神经元活性会在期望时间内降低到基线以下。 熟悉强化学习的研究人员很快就认识到,这些结果与时序差分算法中时序差分强化信号的表现非常相似。 下一节通过一个具体的例子来详细探讨这种相似性。

_images/figure-15.3.png

图15.3 多巴胺神经元的反应在预期收益衰退发生后不久就低于基线。 顶部图:多巴胺神经元被无规律产生的苹果汁激活。中间图;多巴胺神经元对预测收益的条件刺激(CS)做出反应,并不对收益本身做出反应。 底部图:当预测收益的条件刺激停止产生时,多巴胺神经元的活动会在期望的收益产生后的短时间内低于基线值。 这些图的上部分显示的是所监测的多巴胺神经元在所指示的细微时间间隔内产生的动作电位的平均数目。 这些图的下部分的光栅图显示了监测的单个多巴胺神经元的活动模式,每个点代表动作电位。 引自: Schultz, Dayan, and Montague, A Neural Substrate of Prediction and Reward, Science, vol. 275, issue 5306, pages 1593-1598, March 14, 1997. 经AAAS许可转载。

15.6 TD误差/多巴胺对应

这一节解释TD误差 \(\delta\) 与实验中观察到的多巴胺神经元的相位反应之间的联系。 我们观察在学习的过程中如何变化,如上文中提到的任务一样,一只猴子首先看到指令提示, 然后在一个固定的时间之后必须正确地响应一个触发提示以获得收益。 我们采用种这个任务的简化理想版本,但是我们会更深入地研究细节, 因为我们想要强调TD误差与多巴胺神经元活动对应关系的理论基础。

第一个最基本的简化假设是智能体已经学习了获得收益的动作。接下来它的任务就是根据它经历的状态序列学习对于未来收益的准确预测。 这就是一个预测任务了,或者从更技术化的角度描述,是一个策略评估任务:针对一个固定的策略学习价值函数(4.1节和6.1节)。 要学习的价值函数对每一个状态分配一个值,这个值预测了如果智能体根据给定的策略选择动作则接下来状态的回报值, 这个回报值是所有未来收益的(可能是带折扣的)总和。 这对于猴子的情境来说是不实际的因为猴子很可能在学习正确行动的同时学习到了这些预测 (就像强化学习算法同时学习策略和价值函数,例如“行动器-评判器”算法),但是这个情境相比同时学习策略和价值函数更易于描述。

现在试想智能体的经验可以被分为多个试验,在每个试验中相同的状态序列重复出现,但在每个时刻的状态都不相同。 进一步设想被预测的收益仅限于一次试验,这使我们的每次试验类似于强化学习的一幕,正如我们之前所定义的。 在现实中,被预测的回报值不仅限于单个试验,且两个试验之间的时间间隔是决定动物学习到什么的重要影响因素。 这对于时序差分学习来说同样是真实的,但是在这里我们假设回报值不会随着多个试验逐渐积累。 在这种情况下,如 Schultz和他的同事们做的,一次实验中的一个试验等价于强化学习的一幕 (尽管在这个讨论中,我们用术语“试验”而不是“幕”来更好地与实验相联系)。

通常,我们同样需要对状态怎样被表示为学习算法的输入做出假设,这是一个影响TD误差与多巴胺神经元的活动联系有多紧密的假设。 我们稍后讨论这个问题,但是我们现在假设与 Montague相同的CSC表示,在实验中的每一个时刻,访问过的每一个状态都有一个单独的内部刺激。 这使得整个过程被简化到本书第I部分讨论的表格型的情况。 最终,我们假设智能体使用TD(0)来学习一个价值函数 \(V\),将其存储在一个所有状态初始值为零的查询表中。 我们同样假设这是一个确定的任务且折扣因子 \(\gamma\) 非常接近于1,以至于我们可以忽略它。

图15.4展示了在这个策略评估任务中几个学习阶段中的 \(R\)\(V\)\(\delta\) 的时间过程。 时间轴表示在一个试验中一系列状态被访问的时间区间(为了表达清楚,我们没有展示单独状态)。 除了在智能体到达收益状态外收益信号在整个试验中始终为零,如图中时间线右末端所示,收益信号成为一个正数,如 \(R^{\star}\)。 时序差分学习的目标是预测在试验中访问过的每一个状态的回报值, 在没有折扣的情况下并且假设预测值被限制为针对单独试验,对于每个状态就是 \(R^{\star}\)

_images/figure-15.4.png

图15.4 时序差分学习中的TD误差 \(\delta\) 的表现与多巴胺神经元相位活动特征完全一致。 (这里的TD误差 \(\delta\) 指的是 \(t\) 时刻的误差:\(\delta_{t-1}\))。 一个状态序列,通常情况下表示预测线索到收益之间的间隔,后面是非零收益R学习早期:初始化价值函数V和δ,一开始初始化为 \(R^{\star}\)。 学习完成:价值函数精确地预测未来收益,在早期的预测状态,\(\delta\) 是正值,在非零收益时 \(\delta=0\)。 省略 \(R\):当省略预测收益时,\(\delta\) 是负值。文中有这一现象的完整解释。

在得到真实收益的每个状态之前是一系列的收益预测状态,最早收益预测状态 被展示在时间线的最左端。 这个状态就像是接近试验开始时的状态,例如在上文中描述的 Schultz的猴子实验中的指令线索状态。 这是在试验中可以用来可靠预测试验收益的首个状态(当然,在现实中,在先前试验中访问过的状态可能是更早的收益预测状态,但是我们限制预测针地单独的试验,它们不能作为这个试验的收益的预测。 在下面我们给出一个更加令人满意的,尽管更抽象的,对于最早收益预测状态的描述)。 一个试验中的 最近收益预测状态 是指试验中收益状态的前一个状态。这个状态被表示为图15.4中时间线上最右端的状态。 注意一个试验的收益状态不能预测该试验的回报值:这个状态的值将被用来预测接下来所有试验的累积回报值,在当前分幕式的框架里我们假设这个回报值是零。

图15.4展示了 \(V\)\(\delta\) 的首次试验的时间过程,在图中被标记为“学习早期”。 因为除了到达收益状态时的收益以外,试验中的所有信号都是零,且所有 \(V\) 值都是零, TD误差在它在收益状态变为 \(R^{\star}\) 前都是零。 这个结果是由于 \(\delta_{t-1}=R_{t}+V_{t}-V_{t-1}=R_{t}+0-0=R_{t}\), 这个值在获得收益变为 \(R^{\star}\) 前都是零。 在这里 \(V_t\)\(V_{t-1}\)\(t-1\) 访问状态的预测价值。 在这个学习阶段中的TD误差与多巴胺神经元对一个不可预知的收益的响应类似,例如在训练起始时的一滴苹果汁。

在首个试验和所有接下来的试验中,TD(0)更新发生在第6章中描述的每次状态转移中。 这样会随着收益状态的价值更新的反向传递,不断地增加收益预测状态的价值,直到收到正确的回报预测。 在这种情况下(假设没有折扣),正确的预测值对于所有收益预测状态都等于 \(R^{\star}\)。 这可以在图15.4看出,在V的标有“学习完成”的图中,从最早到最晚的收益预测状态的价值都等于 \(R^{\star}\)。 在最早收益预测状态前的状态的价值都很小(在图15.4中显示为0),因为它们不是收益的可靠预测者。

当学习完成时,也即当V达到正确的值时,因为预测现在是准确的,所以从任意收益预测状态出发的转移所关联的TD误差都是零, 这是因为对一个从收益预测状态到另一个收益预测状态的转移来说, 我们有 \(\delta_{t-1}=R_{t}+V_{t}-V_{t-1}=0+R^{\star}-R^{\star}=0\)。 且对于最新的收益预测状态到收益状态来说, 我们有 \(\delta_{t-1}=R_{t}+V_{t}-V_{t-1}=R^{\star}+0-R^{\star}=0\)。 在另一方面,从任意状态到最早收益预测状态转移的TD误差都是正的,这是由这个状态的低值与接下来收益预测状态的高值的不匹配造成的。 实际上,如果在最早收益预测状态前的状态价值为零,则在转移到最早收益预测状态后, 我们有 \(\delta_{t-1}=R_{t}+V_{t}-V_{t-1}=0+R^{\star}-0=R^{\star}\)。 图15.4中的的“学习完成”图在最早收益预测状态为正值,在其他地方为零。

转移到最早收益预测状态时的正的TD误差类似于多巴胺对最早刺激的持续性反应,用以预测收益。 同样道理,当学习完成时,从最新的收益预测状态到收益状态的转移产生一个值为零的TD误差,因为最新收益预测状态的值是正确的,抵销了收益。 这与相比一个不可预测的收益,对一个完全可预测的收益,更少的多巴胺神经元产生相位响应的观察是相符的。

在学习后,如果收益突然被取消了,那么TD误差在收益的通常时间都是负的, 因为最新收益预测状态的值太大了:\(\delta_{t-1}=R_{t}+V_{t}-V_{t-1}=0+0-R^{\star}=-R^{\star}\), 正如图15.4中所示的标有“省略 \(R\)”的 \(\delta\) 图所示。 这就像在 Schultz et al.(1993)实验和图15.3中的多巴胺神经元行为,其在一个预测的收益被取消时会降低到基线以下。

需要更多地注意 最早收益预测状态 的概念。 在上文所提到的情境中,由于整个实验经历是被分为多次试验的,且我们假设预测被限制于单次试验,则最早收益预测状态总是试验中的第一个状态。 明显这不符合真实情况。一种考虑最早收益预测状态的更一般的方式是,认为它是一个不可预知的收益预估器,且可能有非常多这样的状态。 在动物的生活中,很多不同的状态都在最早收益预测状态之前。 然而,由于这些状态通常跟随着不能预测收益的其他状态,因此它们的收益的预测力,也就是说,它们的值,很低。 一个TD算法,如果在动物的一生中始终运行,也会更新这些状态的价值,但是这些更新并不会一直累积, 因为根据假设,这些状态中没有一个能保证出现在最早收益预测状态之前。 如果它们中的任意一个能够保证,它们也会是收益预测状态。 这也许解释了为什么经过过度训练,在试验中多巴胺的反应甚至降低到了最早的收益预测刺激水平。 经过过度训练,可以预料,就算是以前不能预测的状态都会被某些与更早的状态联系起来的刺激预测出来: 在实验任务的内部和外部,动物与环境的相互作用将变成平常的、完全可预测的事情。 但是,当我们通过引入新的任务来打破这个常规时我们会观察到TD误差重新出现了,正如在多巴胺神经元活动中观察到的那样。

上面描述的例子解释了为什么当动物学习与我们例子中的理想化的任务类似的任务时,TD误差与多巴胺神经元的相位活动有着共同的关键特征。 但是并非多巴胺神经元的相位活动的所有性质都能与 \(\delta\) 的性质完美对应起来。 最令人不安的一个差异是,当收益比预期提前发生时会发生什么。 我们观察到一个预期收益的省略会在收益预期的时间产生一个负的预测误差,这与多巴胺神经元降至基线以下相对应。 如果收益在预期之后到达它就是非预期收益并产生一个正的预测误差。这在TD误差和多巴胺神经元反应中同时发生。 但是如果收益提前于预期发生,则多巴胺神经元与TD误差的反应不同──至少在 Montague et al.(1996)使用的CSC表示与我们的例子中不同。 多巴胺神经元会对提前的收益进行反应,反应与正的TD误差一致,因为收益没有被预测会在那时发生。 然而,在后面预期收益出现却没有出现的时刻,TD误差将为负, 但多巴胺神经元的反应却并没有像负的TD误差的那样降到基线以下(Hollerman和 Schultz,198)。 在动物的大脑中发生了相比于简单的用CSC表示的TD学习更加复杂的事情。

一些TD误差与多巴胺神经元行为的不匹配可以通过选择对时序差分算法合适的参数并利用除CSC表示外的其他刺激表示来解决。 例如,为了解决刚才提到的提前收益不匹配的问题,Suri和 Schultz(199)提出了一种CSC的表示, 在这种表示中由较早刺激产生的内部信号序列被出现的收益取消。 另一个由Daw、 Courville Touretzky(2006)提出的解决方法 是大脑的TD系统使用在感觉皮层进行的统计建模所产生的表示,而不是基于原始感官输入的简单表示。 Ludvig、 Sutton和 Kehoe2008)发现采用微刺激表示的TD学习比CSC表示更能在收益早期和其他情形下模拟多巴胺神经元的行为(见图14.1)。 Pan、 Schmidt、 Wickens和 Hyland(205)发现即使使用CSC表示, 延迟的资格迹可以改善TD误差与多巴胺神经元活动的某些方面的匹配情况。 一般来说,TD误差的许多行为细节取决于资格迹、折扣和刺激表示之间微妙的相互作用。 这些发现在不否定多巴胺神经元的相位行为被TD误差信号很好地表征的核心结论下细化了收益预测误差在另一方面, 在TD理论和实验数据之间有一些不能通过选择参数和刺激表示轻易假说。

在另一方面,在TD理论和实验数据之间有一些不能通过选择参数和刺激表示轻易解决的差异 (我们将在章末参考文献和历史评注的部分介绍某些差异),随着神经科学家进行更多细化的实验,更多的差异会被发现。 但是收益预测误差假说作为提升我们对于大脑收益系统理解的催化剂已经表现得非常有效。 人们设计了复杂的实验来证明或否定通过假设获得的预测,实验的结果也反过来优化并细化了TD误差/多巴胺假设。

一个明显的发展方向是,与多巴胺系统的性质如此契合的强化学习算法和理论完全是从一个计算的视角开发的, 没有考虑到任何多巴胺神经元的相关信息──注意,TD学习和它与最优化控制及动态规划的联系 是在任何揭示类似TD的多巴胺神经元行为本质的实验进行前很多年提出的。 这些意外的对应关系,尽管还并不完美,却也说明了TD误差和多巴胺的相似之处抓住了大脑收益过程的某些关键环节。

除了解释了多巴胺神经元相位行为的很多特征外,收益预测误差假说将神经科学与强化学习的其他方面联系起来, 特别地,与采用TD误差作为强化信号的学习算法联系起来。 神经科学仍然距离完全理解神经回路、分子机制和多巴胺神经元的相位活动的功能十分遥远, 但是支持收益预测误差假说的证据和支持多巴胺相位反应是用于学习强化信号的证据, 暗示了大脑可能实施类似的“行动器-评判器”算法,在其中TD误差起着至关重要的作用。 其他的强化学习算法也是可行的候选,但是“行动器-评判器”算法特别符合哺乳动物的大脑解剖学和生理学,我们在下面两节中进行阐述。

15.7 神经“行动器-评判器”

“行动器-评判器”算法同时对策略和价值函数进行学习。行动器是算法中用于学习策略的组件, 评判器是算法中用于学习对行动器的动作选择进行“评价”的组件,这个“评价”是基于行动器所遵循的策略来进行的, 无论这个策略是什么评判器采用TD算法来学习行动器当前策略的状态价值函数。 价值函数允许评判器通过向行动器发送TD误差来评价一个行动器的动作。 一个正的 \(\delta\) 意味着这个动作是好的,因为它导向了一个好于预期价值的状态; 一个负的 \(\delta\) 意味着这个动作是坏的,因为它导向了一个差于预期价值的状态。 根据这些评价,行动器会持续更新其策略。

“行动器-评判器”算法有两个鲜明特征让我们认为大脑也许采用了类似的算法。 第一个是,“行动器-评判器”算法的两个部分(行动器和评判器)代表了纹状体的两部分(背侧和腹侧区)(15.4节)。 对于基于收益的学习来说,这两部分都非常重要──也许分别起着行动器和评判器的作用。 暗示大脑的实现是基于“行动器-评判器”算法的第二个特也许分别征是,TD误差有着同时作为行动器和评判器的强化信号的双重作用。 这与神经回路的一些性质是吻合的:多巴胺神经元的轴突同时以纹状体背侧和腹侧区为目标; 多巴胺对于调节两个结构的可塑性都非常重要;且像多巴胺一样的神经调节器如何作用在目标结构上取决于目标结构的特征而不仅取决于调节器的特征。

13.5节展示了作为策略梯度方法的“行动器-评判器”算法, 但是Bart,Sutton和 Anderson(1983)的“行动器-评判器”算法更加简单并且是用人工神经网络来表达的。 在这里,我们描述一种类似于 Barto等人的人工神经网络的实现,且我们基于 Takahashi Schoenbaum和Niv(2008)的工作, 给出一个这样的人工神经网络如何通过真正的大脑神经网络实现的原理方案。我们把对“行动器-评判器”学习规则的讨论推后到15.8节, 在这一节我们会将它们作为策略梯度公式的特殊情况,来讨论它们所暗示的多巴胺调节突触可塑性的原理。

图15.5a展示了“行动器-评判器”算法的人工神经网络实现,神经网络的不同部分分别实现了评判器和行动器。 评判器由一个单独的神经单元 \(V\) 的输出、收益信号和过去的状态价值来计算TD误差(正如从TD菱形框出的自环一样)。 行动器网络由一层 \(k\) 个行动器单元组成, 标记为 \(A_i, i=1, \ldots, k\),每个行动器单元的输出是一个 \(k\) 维的动作向量。 另一种替代性选择是有 \(k\) 个分开的动作,每一个指挥一个单独的单元,每一个都为了被执行而与其他的进行竞争。 但是在这里,我们把整个 \(A\) 向量视为一个动作。

_images/figure-15.5.png

图15.5 “行动器-评判器”算法的人工神经网络实现和模拟神经实现。 a)将“行动器-评判器”算法用人工神经网络来表示。行动器会根据从评判器获取的TD误差来更新策略, 同时评判器也用相同的δ来调整状态价值函数的参数。评判器通过收益信号R和估计的状态价值来求得TD误差。 行动器不会直接得到收益信号,评判器也不会直接得到动作。 b)“行动器-评判器”算法的模拟神经实现。行动器和评判器的状态价值学习部分分别位于纹状体的腹侧和背侧。 TD误差由位于VTA和SNp的多巴胺神经元传递,以调节从皮质区到腹侧和背侧纹状体的突触效应的变化。 引自: Frontiers in Neuroscience, vol. 2(1), 2008, Y. Takahashi, G. Schoenbaum, and Y. Niv, Silencing the critics: Understanding the e↵ects of cocaine sensitization on dorsolateral and ventral striatum in the context of an Actor/Critic model.

评判器和行动器网络都可以接收多个特征,它们表示了智能体所在的环境的状态 (回顾第1章,在这一章中提到的强化学习智能体的“环境”包括了很多组成部分,有的在容纳智能体的整体系统的外部,有的在这些系统的内部)。 图中将这些特征表示为标有 \(x_{1}, x_{2}, \ldots, x_{n}\) 的圈,为了使图更加简单,我们重复了两次。 从每个特征 \(x_i\) 到评判器单元 \(V\) 的连接, 以及它们到每个动作单元 \(A_i\) 的连接都有一个对应的权重参数,表示突触的效能。 在评判器网络中的权重参数化了价值函数,在行动器网络中的权重参数化了策略。 网络根据我们下一章中描述的“行动器-评判器”学习规则来改变权重进行学习。

在评判器神经回路产生的TD误差是改变的评判器和行动器网络权值的增强信号。 这在图15.5a中用标有“TD误差 \(\delta\)”的线表示,它穿过了所有评判器和行动器网络的连接。 将这种网络实现的方式与收益预测误差假说以及多巴胺神经元广泛分布的事实(通过大量的神经元的轴突树)联系在一起考虑, 我们认为将这样的“行动器-评判器”网络作为基于收益的学习在大脑中发生机制的假设是比较合理的。

图15.5b揭示了在图左侧的人工神经网络根据 Takahashi et al.(2008)的假设如何与大脑中的结构对应。 这个假设分别把行动器和评判器的价值学习部分对应到了纹状体的背侧和腹侧区基底神经节的输入结构。 回顾15.4节中的介绍:背侧纹状体主要与动作的选择关系密切,腹侧纹状体被认为对收益处理的不同方面极为关键,包括对感觉的情感值的分配。 大脑皮层以及其他结构将输入送到纹状体传达关于刺激、内部状态和神经活动的信息。

在这个假想的“行动器-评判器”大脑实现中,腹侧纹状体发送信息到VTA和SNpc, 在这些核中,多巴胺神经元结合收益信息生成TD误差相应的活动(尽管仍然不能解释多巴胺神经元如何计算这些误差)。 在图15.5a中的“TD误差δ”线在图15.5b中变为“多巴胺”线,它代表了细胞体在VTA和SNpc中的多巴胺神经元的广泛分叉。 回顾图15.1,这些轴突与中棘神经元的树突棘突触接触在一起,它们是两个纹状体背侧和腹侧部位的主要输入/输出神经元。 发送输入到纹状体的大脑皮层神经元的轴突在这些刺尖使突触接触在一起。 根据这些假设,正是在这些刺尖处,突触从皮质区域到纹状体的功效的变化受到学习规则的支配,这些规则严格依赖于多巴胺提供的强化信号。

在图15.5b中展示的假设的一个重要的含义是:多巴胺信号不是像强化学习量 \(R_t\) 这样的主要收益信号。 事实上,这个假设暗示了人并不一定能探测大脑并从任何单个神经元的活动中找出类似R的信号。 收益相关的信息是由许多相互联系的神经系统产生的,并根据不同的收益采用不同的结构。 多巴胺神经元从许多不同的大脑区域收集信息,所以对SNpc和VTA的输入(在图15.5b中标为“收益”) 应该被认为是从多个输入通道一起到达核中的神经元的收益相关信息的向量。 理论上的收益标量信号值 \(R_t\) 应该与对多巴胺神经活动有关的所有收益相关信息的贡献相联系。 这是横跨不同大脑区域的许多神经元的综合活动模式的结果。

尽管在图15.5b中展示的“行动器-评判器”神经实现在某些问题下可能是正确的, 但它明显需要提炼、扩展、修改,才有资格作为一个完整的多巴胺神经元相位活动的功能模型。 在本章末的参考文献和历史评注部分引用了更详细的支持这一假说和反对这一假说的实证。 我们现在具体来看看行动器和评判器的学习算法是如何揭示控制突触功能变化的规则的。

15.8 行动器与评判器学习规则

如果大脑真的实现了类似于“行动器-评判器的算法,并且如同图15.5b(如前所述,这可能是一个过于简单化的假设) 一样假设大量的多巴胺神经元广播一个共同的强化信号到背侧和腹侧纹状体的皮质突触处,那么这个强化号对于这两种结构的突触的影响是不同的。 行动器和评判器的学习规则使用的是同样的强化信号,即TD误差 \(\delta\),但是这两个部分对学习的影响是不同的。 TD误差(资格迹结合)告诉行动器如何更新动作的概率以到达具有更高价值的状态。 行动器的学习有些类似于采用效应定律的工具性条件反射(1.7节),行动器的目标是使得 \(\delta\) 尽可能为正。 另一方面,TD误差(当与资格迹结合时)告诉评判器价值函数参数改变的方向与幅度以提高其预测准确性。 评判器致力于减小 \(\delta\) 的幅度,采用类似于经典条件反射(14.2节)中的TD模型的学习规则使幅度尽量接近于零。 行动器和评判器学习规则之间的区别相对简单,但是这个区别对于“行动器-评判器”算法本质上如何起作用有着显著的影响。 区别仅仅在于每种学习规则使用的资格迹的类型。

如图15.5b所示,多于一类以上的学习规则可以被用来训练“行动器-评判器”网络但具体来说, 在这里我们集中讨论13.6节中针对持续性问题的带资格迹的“行动器-评判器”算法。 在每个从状态 \(S_t\) 到状态 \(S_{t+1}\) 的转移过程中,智能体选取动作 \(A_t\), 并且得到收益值 \(R_{t+1}\),算法会计算TD误差,然后更新资格迹向量 (\(\mathbf{z}_{t}^{\mathbf{w}}\)\(\mathbf{z}_{t}^{\mathbf{\theta}}\)) 和评判器与行动器的参数( \(\mathbf{w}\)\(\mathbf{\theta}\)),更新方式如下

\[\begin{split}\begin{aligned} \delta_{t} &=R_{t+1}+\gamma \hat{v}\left(S_{t+1}, \mathbf{w}\right)-\hat{v}\left(S_{t}, \mathbf{w}\right) \\ \mathbf{z}_{t}^{\mathbf{w}} &=\lambda^{\mathbf{w}} \mathbf{z}_{t-1}^{\mathbf{w}}+\nabla \hat{v}\left(S_{t}, \mathbf{w}\right) \\ \mathbf{z}_{t}^{\theta} &=\lambda^{\theta} \mathbf{z}_{t-1}^{\theta}+\nabla \ln \pi\left(A_{t} | S_{t}, \boldsymbol{\theta}\right) \\ \mathbf{w} & \leftarrow \mathbf{w}+\alpha^{\mathbf{w}} \delta_{t} \mathbf{z}_{t}^{\mathbf{w}} \\ \boldsymbol{\theta} & \leftarrow \boldsymbol{\theta}+\alpha^{\boldsymbol{\theta}} \delta \mathbf{z}_{t}^{\boldsymbol{\theta}} \end{aligned}\end{split}\]

其中,\(\gamma \in[0,1)\) 是折扣率,\(\lambda^{w} c \in[0,1]\)\(\lambda^{w} a \in[0,1]\) 分别是评判器与行动器的自举参数。 \(\alpha^{\mathbf{w}}>0\)\(\alpha^{\theta}>0\) 是步长参数。

可以把估计价值函数 \(\hat{v}\) 看作一个线性神经元的输出,称为 评判器单元,在图15.5a中被标记为 \(V\)。 从而,价值函数就是表示状态 \(s\) 的特征向量的线性函数, \(\mathbf{x}(s)=\left(x_{1}(s), \ldots, x_{n}(s)\right)^{\top}\) 价值函数 被权重向量 \(\mathbf{w}=\left(w_{1}, \dots, w_{n}\right)^{\top}\) 参数化为

(1)\[\hat{v}(s, \mathbf{w})=\mathbf{w}^{\top} \mathbf{x}(s)\]

每个 \(x_{i}(s)\) 就像神经元突触的突触前信号,其功效为 \(w_{i}\)。 权重由上面公式的规则更新:\(\alpha^{\mathbf{w}} \delta_{t} \mathbf{z}_{t}^{\mathbf{w}}\), 这里强化信号 \(\delta_t\) 对应于广播到所有评判器单元的多巴胺信号。 资格迹向量 \(\mathbf{z}_{t}^{\mathbf{w}}\) 对于评判器单元是 \(\nabla \hat{v}(S_{t}, \mathbf{w})\) 的一个迹(最近几个值的平均)。 由于 \(\hat{v}(s, \mathbf{w})\) 对于权重是线性的, 所以 \(\nabla \hat{v}(S_{t}, \mathbf{w})=\mathbf{x}(S_{t})\)

从神经方面来说,这意味着每一个突触有着自己的资格迹,而且是向量 \(\mathbf{z}_{t}^{\mathbf{w}}\) 的一个分量。 一个突触的资格迹根据到达突触的活动水平,即突触前活动的水平,不断地累积, 在这里由到达突触的特征向量 \(\mathbf{x}(S_{t})\) 的分量所表示。 此外这个资格迹由分数 \(\lambda^{\mathbf{w}}\) 所支配的速率向零衰减。当一个突触的资格迹非零时,称其为 可修改的。 突触的功效如何被修改取决于突触可修改时到达的强化信号。 我们称这些评判器单元的突触的资格迹为 非偶发资格迹,这是因为它们仅仅依赖于突触前活动并且不以任何方式影响突触后活动。

评判器单元的突触的非偶发资格迹意味着评判器单元的学习规则本质上是14.2节中描述的经典条件反射的TD模型。 使用我们在上文对评判器单元和它的学习规则的定义, 图15.5a中的评判器与 Barto et al.(1983)中的神经网络“行动器-评判器”算法中的评判器是相同的。 显然,这样只有一个线性类神经单元的评判器只是一个最简单的起点, 这样的评判器单元是一个更复杂的有能力学习更复杂价值函数的神经网络的一个代理。

图15.5a中的行动器是一个有 \(k\) 个类神经行动器单元的单层网络, 并且在时刻 \(t\) 接收和评判器单元一样的特征向量 \(\mathbf{x}(S_{t})\)。 每一个行动器单元 \(j, j=1, \ldots, k\),有自己的权重向量 \(\boldsymbol{\theta}_{j}\), 但是由于所有的行动器单元都是相同的,所以我们只描述其中一个,并省略其下标。 这些单元遵循上面的“行动器-评判器算法的一种实现是:每一个单元均为 伯努利逻辑单元。 这意味着,每一个行动器单元的输出是一个取值为0或1的随机变量 \(A_t\)。 把值1看作神经元的放电,即放出一个动作电位。 一个单元的输入向量的加权和 \(\boldsymbol{\theta}^{\top} \mathbf{x}(S_{t})\) 通过柔性最大化分布(式13.2)决定了这个单元的动作被选择的概率,对于两个动作的情况即为逻辑回归函数

(2)\[\pi(1 | s, \boldsymbol{\theta})=1-\pi(0 | s, \boldsymbol{\theta})=\frac{1}{1+\exp (-\boldsymbol{\theta}^{\top} \mathbf{x}(s))}\]

每一个行动器单元的权重通过上面的规则更新:\(\boldsymbol{\theta} \leftarrow \boldsymbol{\theta}+\alpha^{\boldsymbol{\theta}} \delta_{t} \mathbf{z}_{t}^{\boldsymbol{\theta}}\), 这里 \(\delta\) 依然对应多巴胺信号:送往所有行动器单位突触的相同的强化信号。 图15.5a中展示了 \(\delta_t\) 广播到了每一个行动器单位的突触 (这使得整个行动器网络形成了一个强化学习智能体团队,我们将在15.10节中论这个问题)。 行动器的资格迹向量 \(\mathbf{z}_{t}^{\boldsymbol{\theta}}\)\(\nabla \ln \pi(A_{t} | S_{t}, \boldsymbol{\theta})\) 的资格迹。 为了理解这个资格迹,请参看练习13.5,在该练习中定义了这种类型的单元并要求给出它的强化学习规则。 练习要求你通过计算梯度用 \(a\)\(\mathbf{x}(s)\)\(\pi(a|s,\boldsymbol{\theta})\) 这些项表示 \(\nabla \ln \pi(a|s, \boldsymbol{\theta})\)。 对于在时刻 \(t\) 的动作和状态,答案是

(3)\[\nabla \ln \pi(A_{t} | S_{t}, \boldsymbol{\theta})=(A_t - \pi(\boldsymbol{1}|S_{t},\boldsymbol{\theta})) \mathbf{x}(S_{t})\]

与评判器突触只累积突触前活动 \(\mathbf{x}(S_{t})\) 的非偶发资格迹不同, 行动器单元的资格迹还取决于行动器单元本身的活动,我们称其为 偶发资格迹。 资格迹在每一个突触都会持续衰减,但是会根据突触前活动以及突触后神经元是否放电增加或减少。 式(15.3)中的因子 \(\pi(\boldsymbol{1}|S_{t},\boldsymbol{\theta})\)\(A_t=1\) 时为正,反之亦然。 行动器单元资格迹的突触后偶发性是评判器与行动器学习规则唯一的区别。 由于保持了在哪个状态采取了怎样的动作这样的信息, 偶发资格迹允许收益产生的奖励(正 \(\delta\))或者接受的惩罚(负 \(\delta\))根据策略参数(对行动器单元突触的功效)进行分配, 其依据是这些参对之后的 \(\delta\) 值的影响的贡献。 偶发资格迹标记了这些突触应该如何修改才能更有效地导向正值的 \(\delta\)

评判器与行动器的学习规则是如何改变皮质突触的功效的呢? 两个学习规则都与唐纳德,赫伯的经典推论相关,即当一个突触前信号参与了激活一个突触后神经元时,突触的功效应该增加(Hebb,1949)。 评判器与行动器的学习规则与 Hebbian的推论共同使用了这么一个观点,那就是突触的功效取决于几个素的相互作用。 在评判器学习规则中,这种相互作用是在强化信号 \(\delta\) 与只依赖于突触前信号的资格迹之间的。 神经科学家称其为 双因素学习规则,这是因为相互作用在两个信号或量之间进行。 另一方面,行动器学习规则是 三因素学习规则,这是因为除了依赖于 \(\delta\), 其资格迹还同时依赖于突触前和突触后活动。 然而,与赫伯的推论不同的是,不同因素的相对发生时间对突触功效的改变是至关重要的,资格迹的介入允许强化信号影响最近活跃的突触。

评判器与行动器学习规则的信号之间的一些细微之处更加值得关注。 在定义类神经评判器与行动器单元时,我们忽略了突触的输入需要少量的时间来影响真正的神经元的放电。 当一个突触前神经元的动作电位到达突触时,神经递质分子被释放并跨越突触间隙到达突触后神经元,并与突触后神经元表面上的受体结合; 这会激活使得突触后神经元放电的分子机制(或者在抑制突触输入情况下抑制其放电)。 这个过程可能持续几十毫秒。但是,根据式(15.1)与式(15.2),对评判器与行动器单元进行输入,会瞬间得到单元的输出。 像这样忽略激活时间在 Hebbian式可塑性的抽象模型中是很常见的,这种模型里突触的功效的改变由同时发生的突触前与突触后活动决定。 更加真实的模型则必须要将激活时间考虑进去。

激活时间对于更真实的行动器单元更为重要,这是因为它会影响偶发资格迹如何将强化信号分配到适当的突触。 表达式 \((A_t - \pi(A_t|S_{t},\boldsymbol{\theta})) \mathbf{x}(S_{t})\) 定义了行动器单元的学习规则所对应的偶发资格迹, 它包括了突触后因子 \((A_t - \pi(A_t|S_{t},\boldsymbol{\theta}))\) 与突触前因子 \(\mathbf{x}(S_{t})\) 这个能够起作用, 是因为在忽略了激活时间的情况下,触前活动 \(\mathbf{x}(S_{t})\) 参与了引起在 \((A_t - \pi(A_t|S_{t},\boldsymbol{\theta}))\) 中出现的突触后活动。 为了正确地分配强化信号,在资格迹中定义的突触前因子必须是同样定义在资格迹中的突触后因子的产生动因。 更真实的行动器单元的偶发资格迹不得不将激活时间考虑进来(激活时间不应该与神经元获取其活动导致的强化信号所需的时间所混淆。 资格迹的功能是跨越这个一般来说比激活时间更长的间隔,我们会在后面的章节进一步讨论这个问题)。

神经科学已经提示了这个过程可能是如何在大脑中起作用的。 神经科学家发现了一种被称为 尖峰时间依赖可塑性 (STDP)的赫布式可塑性, 这似乎有助于解释类行动器的突触可塑性在大脑中的存在。STDP是一种 Hebbian式可塑性, 但是其突触功效的变化依赖于突触前与突触后动作电位的相对时间。 这种依赖可以采取不同的形式,但是最重要的研究发现,若尖峰通过突触到达且时间在突触后神经元放电不久之前,则突触的强度会增加。 如果时间顺序颠倒,那么突触的强度会减弱。STDP是一种需要考虑神经元激活时间的 Hebbian式可塑性,这是类行动器学习所需要的一点。

STDP的发现引导神经科学家去研究一种可能的STDP的三因素形式,这里的神经调节输入必须遵循适当的突触前和突触后尖峰时间。 这种形式的突触可塑性,被称为收益调制STDP,其与行动器学习规则十分类似。 常规的STDP产生的突触变化,只会发生在一个突触前尖峰紧接着突触后尖峰的时间窗口内神经调节输入的时候。 越来越多的证据证明,基于收益调制的STDP发生在背侧纹状体的中棘神经元的脊髓中, 这表示行动器学习在如图15.5b中所示的“行动器-评判器算法的假想神经实现中确实发生了。 实验已经证明基于收益调制的STDP中,皮质纹状体突触的功效变化只在神经调节脉冲在突触前尖峰以及紧接着的突触后尖峰之间的10s的时间窗口内到达才会发生(etal.2014)。 尽管证据都是间接的,但这些实验指出了偶发资格迹的存在延续了时间的进程。 产生这些迹的分子机制以及可能属于STD的迹都要短得多,而且尚未被理解,但是侧重于时间依赖性以及神经调节依赖性的突触可塑性的研究依然在继续。

我们这里讨论的使用效应定律学习规则的类神经行动器单元,在 Barto et al(1983的“行动器-评判器”网络中以一种比较简单的形式出现。 这个网络受到一种由生理学家A.H. Klopf(1972,1982)提出的“享乐主义神经元”假说的启发。 注意,不是所有的 Klopf的假说的细节都与我们已知的突触可塑性的知识一致, 但是STDP的发现和越来越多的基于收益调制的STDP的证据说明 Klopf的想法并不太离谱。 我们接下来将讨论 Klopf的享乐主义神经元假说。

15.9 享乐主义神经元

在享乐主义神经元假说中,Klopf(1972,192)猜测,每一个独立的神经元会寻求将作为奖励的突触输入与作为惩罚的突触输入之间的差异最大化, 这种最大化是通过调整它们的突触功效来实现的,调整过程基于它们自己的动作电位所产生的奖励或惩罚的结果。 换言之,如同可以训练动物来完成工具性条件反射任务一样,单个神经元用基于条件性反应的强化信号来训练。 他的假说包括这样的思想:奖励或者惩罚通过相同的突触被输入到神经元,并且会激发或者抑制神经元的尖峰产生活动 (如果 Klopf知道我们今天对神经调节系统的了解,他可能会将强化作用分配给神经调节输入,但是他尝试避免任何中心化的训练信息来源)。 过去的突触前与突触后活动的突触局部迹在 Klopf的假说中,是决定突触是否 具备资格 (就是他引入的“资格”一词)可以对之后的奖励或者惩罚进行修改的关键。 他猜测,这些迹是由每个突触局部的分子机制实现的,因而与突触前与突触后神经元的电生理活动是不同的。 在本章后面的参考文献和历史评注部分我们给出了一些其他人的 Klopf推断突触功效通过如下的方式变化:当一个神经元发射出一个动作电位时,它类似的想法。

Klopf推断突触功效通过如下的方式变化:当一个神经元发射出一个动作电位时, 它的所有促进这个动作电位的突触会变得有资格来经历其功效的变化。 如果一个动作电位在奖励值提升的一个适当的时间内被触发,那么所有 有资格 的突触的功效都会提升。 对应地,如果一个动作电位在惩罚值提升的一个适当时间内被触发,那么所有有资格的突触功效都会下降。 这是通过在突触那里触发资格迹来实现的,这种触发只在突触前与突触后的活动碰巧一致的时候才会发生 (或者更确切地说,是在突触前活动和该突触前活动所参与引发的突触后活动同时出现的时候才会发生)。 这实际上就是我们在前一节描述的行动器单元的三因素学习规则。

Klopf理论中资格迹的形状与时间因素反映了神经元所处的许多反馈回路的持续时间, 其中的一些完全位于机体的大脑和身体内,而另一些则通过运动与感知系统延伸到机体外部的环境中。 他的想法是资格迹的形状是神经元所处的反馈回路的持续时间的直方图。 资格迹的高峰会出现在神经元参与的最常见的反馈回路发生的持续时间内本书中的算法使用的资格迹是 Klopf原始想法的一个简化版本, 通过由参数 \(\lambda\)\(\gamma\) 控制的指数(或者说几何)下降的函数实现。 这简化了仿真模拟与理论,但是我们认为这些简单的资格迹是 Klopf原始的迹概念的一个代替, 后者在完善功劳分配过程的复杂强化学习系统中可能拥有计算优势。

Klopf的享乐主义神经元假说并不像它最初出现时那样,似乎不合情理。 大肠杆菌 是一个已经被充分研究的单细胞的例子,它会寻求某些特定刺激但同时避免其他刺激。 这个单细胞机体的移动动作会受到其环境的化学刺激的影响,这种行为被称为趋化性。 它通过附着于表面的称为鞭毛的毛状结构的旋转在液体环境中游泳(是的,它旋转它们)。 细菌环境中的分子会与其表面上的受体结合。结合事件调节细菌逆转鞭毛旋转的概率。 每一次逆转会使得细菌进行翻滚并朝向一个随机的新方向。 一点点的化学记忆与计算使得鞭毛逆转的频率在细菌游向高浓度的、它需要的分子(引诱剂)时会减少,在游向高浓度的、对它有害的分子(驱逐剂)时会增加。 结果便是细菌趋向于游向引诱剂且排斥游向驱逐剂。

刚刚描述的趋化行为被称为调转运动。这是一种试错行为,尽管可能这并不涉及学习: 细菌需要一点点短期记忆来检测分子浓度的梯度,但是很有可能是它并不保有长期记忆。 人工智能先驱奥利弗·塞尔弗里奇称这个策略为“跑动与旋转”,指出其实用的基本的适应性策略: “如果事情变好则保持同样的方式,否则四处游走”(Selfridge,1978,1984)。 同样,可以想象一个神经元在其嵌入的反馈回路的复杂集合组成的媒介中“游泳”(当然不是字面意思),尝试获取一种输入信号并避免其他的。 然而,与细菌不同,神经元的突触强度保持了之前试错行为的信息。如果这种对神经元(或是一类神经元)的看法是可信的, 那么这个神经元与环境交互的整个闭环性质对于理解其行为是十分重要的,其中神经元的环境由其余的动物以及所交互的环境组成。

Klopf的享乐主义神经元假说超出了单个神经元是强化学习智能体的观点。 他认为智能的许多方面可以被理解为是具有自私享乐主义的神经元群体的集体行为的结果, 这些神经元在构成动物神经系统的巨大的社会和经济系中相互作用。 无论这个观点对神经系统是否有用,强化学习智能体的集体行为对神经科学是有影响的。接下来我们讨论这个问题。

15.10 集体强化学习

强化学习智能体群体的行为与社会以及经济系统的研究高度相关。 如果 Klopf的享乐主义神经元假设是正确的,则其与神经科学也是相关的。 上文描述的人类大脑实现“行动器-评判器”算法的假说,仅仅在狭窄的范围内契合了纹状体的背侧与腹侧的细分根据假说, 它们分别对应行动器与评判器,每一个都包括数以百万计的中棘神经元,这些中棘神经元的突触改变是由多巴胺神经元活动的相位调制引起的。

图15.5a中的行动器是一个有 \(k\) 个行动器单元的单层网络。 由这个网络产生的动作向量 \((A_1, A_2, \dots , A_k)^{\top}\) 推测用于驱动动物的行为。 所有这些单元的突触的功效的变化取决于强化信号 \(\delta\)。由于动作单元试图让 \(\delta\) 尽可能地大, 故 \(\delta\) 从效果上说就是它们的收益信号(这种情况下,强化信号与收益信号是相同的)。 所以,每一个动作单元本身就是一个强化学习智能体──或者你可以认为是一个享乐主义神经元。 现在,为了尽可能简化情况,假设这些单元在同一时间收到同样的收益信号 (尽管前文所述,多巴胺在同一时间以同样的情况释放到皮质突触的假设有些过于简单化)。

当强化学习智能体群体的所有成员都根据一个共同的收益信号学习时,强化学习理论可以告诉我们什么? 多智能体强化学习领域 考虑了强化学习智能体群体学习的很多方面尽管讨论这个领域已经超出了本书的范围, 但是我们认为知道一些基本的概念与结果有助于思考在大脑中广泛分布的神经调节系统。 在多智能体强化学习(以及博弈论)中,所有的智能体会尝试最大化一个同时收到的公共收益信号, 这种问题一般被称为 合作游戏 或者 团队问题

团队问题有趣且具有挑战性的原因是送往每个智能体的公共收益信号评估了整个群体产生的模式, 即评估整个团队成员的集体动作这意味着每一个单独的智能体只有有限的能力来影响收益信号, 因为任何单个的智能体的贡献仅仅是由公共收益信号评估的集体动作的一个部分。 在这种情境下,有效的学习需要解决一个结构化 功劳分配问题: 哪些团队成员,或者哪组团队成员,值得获得对应于有利的收益信号的功劳,或者受到对应于不利的收益信号的惩罚? 这是一个合作游戏,或者说是团队问题,因为这些智能体联合起来尝试增加同一个收益信号:智能体之间是没有冲突的。 竞争游戏的情境则是不同的智能体收到不同的收益信号,然后每一个收益信号再一起评估群体的集体动作,且每一个智能体的目标是增加自己的收益信号。 在这种情况下,可能会出现有冲突的智能体,这意味着对于一些智能体有利的动作可能对其他智能体是有害的。 甚至决定什么是最好的集体动作也是博弈论的一个重要问题。这种竞争的设定也可能与神经科学相关(例如,多巴胺神经元活动异质性的解释), 但是在这里我们只关注合作或者说团队配合的情况。

如何使得一个团队中每一个强化学习智能体学会“做正确的事情”,进而使得团队的集体动作得到高额回报? 一个有趣的结果是如果每一个智能体都能有效地学习,尽管其收益信号可能被大量的噪声干扰破坏, 尽管缺乏完整的状态信息,但整个群体将会学习到产生集体动作来改进公共的收益信号,即使在智能体无法互相沟通时也能做到。 每一个智能体面对自己的强化学习任务,而且它对收益信号的影响被掩盖在其他智能体影响的噪声中。 事实上,对于任意一个智能体,所有其他的智能体都是其环境的一部分,这是因为其输入,包括传递的状态信息以及收益,都依赖于其他智能体的表现。 此外,由于缺乏其他智能体的动作,实际上是缺乏其他智能体确定它们策略的参数,使得每一个智能体只能部分地观察其所在环境的状态。 这使得每一个团队成员的学习任务非常难,但是如果使用个即使在这种情况下依然能够增加收益信号的强化学习算法, 则强化学习智能体的团队可以学习产生能够随着时间推移改进团队公共评估信号的集体动作。

如果团队成员是类神经单元,那么每个单元必须有一个增加随着时间的推移收到的收益的目标, 就像我们在15.8节中提及的行动器单元一样。每个单元的学习算法必须有两个必要的特征。 首先,它必须使用偶发资格迹。回想偶发资格迹,在神经方面,在一个突触的突触前输入参与影响了突触后神经元放电时,其迹会被初始化(或者增加)。 一个非偶发资格迹,相反,由突触前输入独立初始化或增加,与突触后神经元无关。 如15.8节解释的,为了保持在何种状态采取了何种动作的信息偶发资格迹允许根据这个智能体的策略参数对智能体动作的贡献值,来对这个参数分配功劳或施加惩罚。 同理,一个团队成员必须记住其最近的动作,这样它能够根据其随后获取的收益信号来增加或者减少产生这个动作的似然度。 偶发资格迹的动作部分地实现了这个动作记忆。然而,由于学习任务的复杂性,偶发资格迹只是功劳分配的一个初步步骤: 单个团队成员的动作与整个团队收益信号的变化之间的关系是一种统计相关性,需要在大量的尝试中进行估计。 偶发资格迹是这一过程中不可或缺的但又很基础的一步。

使用非偶发资格迹的学习在团队情况下完全不起作用这是因为它无法提供一种方法来联系动作与接下来的收益信号的变化。 非偶发资格迹有能力学习如何进行预测,就如同“行动器-评判器”算法中的评判器部分,但是不支持学习如何进行控制,即行动器部分必须做的事情。 一个群体中的类评判器成员智能体可能仍然可以获得公共的强化信号,但是它们都会学习预测一个相同的量(在“行动器-评判器”的情况下,是当前策略的期望回报)。 集体的每个成员能够多成功地学习到预测其期望回报依赖于其获取的信息,而这对于集体中不同的成员而言可能相差非常大。 这里智能体集体并不需要产生差异化的活动模式。根据定义这不是一个团队问题。

团队问题中的集体学习的第二个要求是团队成员的动作要有变化性,这样才能使得整个团队能够试探整个集体行动的空间。 最简单的方法是团队中的每一个强化学习智能体分别在自己的动作空间中独立地试探,这样其输出就有持久的变化性。 这会使得整个团队改变其集体动作。 比如,一组在15.8节中描述的行动器单元可以试探整个合作动作的空间,这是因为每一个单元的输出(一个伯努利逻辑单元)在概率上取决于其输入向量的加权和。 加权和会使得放电的概率向上或向下偏移,但其依然具有变化性。由于每一个单元使用 REINFORCE策略梯度算法(第13章), 所以每一个单元都会调整自己的权重,使得它在自己的动作空间内随机试探所经历的平均收益最大化。 正如 Williams(1992)所做的那样,一个由基于伯努利逻辑的REINFORCE单元组成的团队 从整体来看 实现了一个公共强化信号平均速率意义下的策略梯度算法,这里的动作是团队的集体动作。

此外, Williams(1992)证明,一个由伯努利逻辑单元组成的团队,在团队的单元互联成为多层神经网络时,使用 REINFORCE算法可以提高平均收益。 在这种情况下,尽管收益只依赖于网络输出单元的集体动作,但是收益信号会被广播给网络中的所有单元。 这表示一个多层的基于伯努利逻辑的 REINFORCE单元团队可以如广泛使用的基于误差反向传播的多层神经网络一样进行训练, 只不过在这种情况下,反向传播过程被收益信号的广播所取代。 实际上,误差反向传播算法速度相当快,但是强化学习团队算法作为一种神经机制更为合理,特别是在15.8节所描述的收益调制STDP的学习中就更是如此。 通过团队成员独立试探的团队试探只是最简单的方式。如果团队成员可以协调动作去关注集体动作空间的一些特定部分, 则更加复杂的方法也是可行的,这种协调可以通过互相通信或者对公共的输入进行响应来完成。 同样存在一些比解决结构性功劳分配的偶发资格迹更复杂的机制,这些机制在集体动作受到某种限制的团队问题中可能更加简单。 一个极端的例子是赢家通吃安排(比如,大脑横向抑制的结果),其限制集体动作为一个或少数几个团队成员做贡献的动作。 在这种情况下,只有通吃的赢家才会获得功劳或受到惩罚。合作游戏(或者团队问题)以及非合作游戏的学习过程的细节超出了本书讨论的范围。 本章末尾的参考文献和历史评注部分列出了一系列公开的研究,包括涉及神经科学的集体强化学习的广泛的资料。

15.11 大脑中的基于模型的算法

对强化学习中无模型和基于模型的算法进行区分经被证明对于研究动物的学习和决策过程是有用的。 14.6节讨论了如何区分动物的习惯性行为与目标导向行为。 上文讨论的关于大脑可能如何使用“行动器-评判器”算法的假说仅仅与动物的习惯性行为模式有关, 这是因为基础的“行动器-评判器”算法是无模型的那么怎样的神经机制负责产生目标导向的行为, 又是如何与潜在的习惯性行为相互作用的呢?

一种研究大脑结构如何与行为模式匹配的方法是抑制鼠脑中一个区域的活动来观察老鼠在结果贬值实验(14.6节)中的行为。 这样的实验结果表明,“行动器-评判器”假设中将行动器放置在背侧纹状体中过于简单了。 抑制背侧纹状体的一个部分,外侧纹状体(DLS)会损害习惯性学习,使得动物更依赖于目标导向的过程。 另一方面,抑制背内侧纹状体(DMS)会损害目标导向的过程,使得动物更依赖于习惯性学习。 由这样的结果所支撑的观点显示,啮齿动物的背外侧纹状体更多地涉及无模型的过程,而背内侧纹状体更多地涉及基于模型的过程。 使用功能性神经影像对人类的研究以及对非人灵长类动物的研究结果都支持类似的观点:大脑的不同结构分别对应于习惯性和目标导向的行为模式。 其他的研究确定了目标导向的活动与大脑前额叶皮质有关,这是涉及包括规划与决策在内的执行功能的额叶皮质的最前部分。 具体涉及的部分是眶额皮质(OFC),为前额叶皮质在眼睛上部的部分。 人类的功能性神经影像学研究和猴子的单个神经元活动记录显示,眶额皮质的强烈运动与生理性的重大刺激的主观收益价值有关, 这些运动也与动作所引发的期望收益有关。尽管依然有争议,但这些结果表明眶额皮质在目标导向选择中进行了重要的参与。 这可能对于动物环境模型的收益部分是至关重要的。

另一个涉及基于模型的行为的结构是海马体,它对记忆与空间导航非常重要。 老鼠的海马体在目标导向的迷宫导航中至关重要,Tolman认为动物使用模型或者认知地图来选择动作(14.5节)。 海马体也可能是人类想象未知经历的能力的重要部分 (Hassabis和 Maguire,20;Olafsdottir Barry Saleem、Hassabis和 Spiers,2015)。

一些发现直接揭示了海马体在规划过程中起到重要的作用,这里的“规划过程”就是指在进行决策时引入外部环境模型的过程。 相关的研究发现解码海马体的神经元活动的实验,实验目的是确定在每个时刻海马体的活动所表示的空间范围。 当一个老鼠在迷宫的一个选择点停顿时,海马体的空间表征会遍历由该点出发(而不是后退)的所有可能路径( Johnson和 Redish,2007)。 此外,这些遍历表示的空间轨迹与老鼠随后的导航行为紧密相关(Pfeiffer和 Foster,2013)。 这些结果表明,海马体对于动物的环境模型的状态转移非常重要,而且它是用于模拟将来可能的状态序列以评估可能的动作方案的系统的一部分,这就是一种“规划”过程。

基于上述结果,产生了大量关于目标导向或基于模型学习和决策的潜在神经机制的研究文献,但是依然有很多问题没有被解答。 比如为何像背外侧纹状体和背内侧纹状体一样非常类似的结构,会成为非常不同的学习和行为模式(类似于无模型和基于模型的算法之间的不同)的重要组成部分? 是否由分离的结构负责环境模型的转移与收益部分?是否像海马体向前遍历活动所揭示的那样, 决策时采取的所有的规划活动都是通过对可能的未来动作方案进行模拟来完成的? 换言之,是否所有的规划都和预演算法(8.10节)类似?还是模型有时会通过环境背景调整或重新计算价值信息,就像Dyna架构(8.2节)所做的? 大脑如何在习惯性与目标导向的系统之间进行仲裁?在神经基质上这两个系统是否存在着事实上的清晰的分离?

对于最后一个问题,还没有证据能给出一个正面的答复为总结这些情况,Doll Simon和Daw(2012)写道: “基于模型的影响在大脑处理收益信息的地方多少会出现,几乎无处不在”。 这一论断是真实的,即使在对于无模型学习至关重要的地方也是如此。 这个论断也包括了多巴胺信号本身,这些信号除了作为无模型过程的收益预测误差以外,也表现出对基于模型信息的影响。

持续有神经科学研究指出,强化学习中无模型和基于模型的算法之间的区别,潜在地启发并增强了人们对大脑中习惯性和目标导向过程的理解。 而对神经机制的更好的掌握,则可能会促进尚未在目前的计算强化学习理论中被探索的新型算法的产生,使得无模型和基于模型的算法特点可以结合在一起。

15.12 成瘾

了解药物滥用的神经基础是神经科学的高优先目标,并有可能为这一严重的公共健康问题提供新的治疗方法。 一种观点认为,药物需求与我们寻求能满足生理需求的具有自然收益的体验具有相同的动机和学习过程。 通过被强化增强,成瘾物质有效地控制了我们学习和决策的自然机制。 这似乎是合理的,因为许多(尽管不是全部)药物滥用可以直接或间接地增加纹状体多巴胺神经元轴突末端周围区域的多巴胺水平, 这个区域是与正常的基于收益学习密切相关的脑结构(15.7节)。但是与药物成瘾相关的自残行为并不是正常学习的特征。 当收益是成瘾药物产生的结果时,多巴胺介导学习到底有何不同? 成瘾是正常的学习过程对我们整个进化历史中不可获得的物质的反应结果,所以不能对它们的破坏效应做出反应吗? 或者成瘾物质以某种方式干扰了正常的多巴胺介导学习了吗?

多巴胺活动的收益预测误差假说及其与TD学习的联系是 Redish(2004)提出的包括部分成瘾特征的模型的基础。 基于对该模型的观察,可卡因和一些其他成瘾药物的施用会导致多巴胺的短暂增加。 在模型中,这种多巴胺激增被认为是增加了TD误差,其中 \(\delta\) 是不能被价值函数变化抵消的。 换句话说,虽然可以降低到一个正常的收益被前因事件所预测的程度(15.6节), 但成瘾刺激对 \(\delta\) 的影响却不会随着收益信号被预测而下降:药物收益不能被“预测抵消”。 在收益信号是由于成瘾药物引起的情况下,该模型会不断阻止变成负数, 因而对那些与药物施用相关的状态而言就会消除TD学习本该有的纠错特性。 结果就是这些药物控制的状态价值会无限制地增加,使得导向这些状态的动作会优先于所有其他行为。

成瘾行为比Redish模型得出的结果要复杂得多,但该模型的主要思想可能显示了这个难题中的一个侧面。 或者这个模型可能会引起误解,因为多巴胺似乎在所有形式的成瘾中都不起关键作用,并不是每个人都同样容易形成上瘾行为。 此外,该模型不包括伴随慢性药物摄取的许多回路和大脑区域的变化,例如反复使用药物而效果减弱的变化。 另外,成瘾也可能涉及基于模型的过程。无论如何, Redish的模型显示了强化学习理论是如何用来帮助理解一个主要的健康问题的。 通过类似的方式,强化学习理论已经在计算精神病学新领域的发展中产生影响,其目的是通过数学和计算方法来提高对精神障碍的理解。

15.13 本章小结

与大脑收益系统相关的神经通路非常复杂并且至今没有被完全理解,但旨在理解这些通路及其在行为中的作用的神经科学研究正在迅速发展。 本研究揭示了本书介绍的大脑收益系统和强化学习理论之间惊人的对应关系。

多巴胺神经元活动的收益预测误差假说是由这样一群科学家提出的:他们认识到了TD误差行为与产生多巴胺的神经元活动之间的惊人相似之处。 多巴胺是哺乳动物中与收益相关的学习和行为所必需的神经递质。在神经科学家 Wolfram Schultz的实验室里进行的实验表明, 多巴胺神经元会对具有大量突发性活动的收益事件做出响应,称之为相位反应。 而这种响应只有在动物不预期这些事件发生的情况下才会出现,这表明多巴胺神经元表示的是收益预测的误差而不是收益本身。 此外,这些实验表示,当动物学习了如何根据先前的感官线索预测收益事件时,多巴胺神经元的相位活动的发生会向较早的预测线索倾斜,而对于较晚的预测线索会减少。 这与一个强化学习智能体学习预测收益的过程中对TD误差进行的回溯计算类似。

第15章神经科学其他一些实验结果严格地证明了多巴胺神经元相位活动是一种可以用于学习的强化信号, 它通过大量产生多巴胺的神经元的轴突到达大脑的多个区域。 这些结果与我们在前文所做的对两种信号的区分是一致的, 一种是收益信号 \(R_t\),另一种是强化信号,在大多数算法中就是TD误差 \(\delta_t\)。 多巴胺神经元的相位反应是强化信号,而不是收益信号。

一个重要的假说是:大脑实现了一个类似于“行动器-评判器”算法的东西。 大脑中的两个结构(纹状体的背侧和腹侧分支)都在收益学习中起着关键作用,可能分别扮演着行动器和评判器的角色。 TD误差是行动器与评判器的强化信号,这与多巴胺神经元轴突将纹状体的背侧和腹侧分支作为靶标的事实非常吻合。 多巴胺似乎对调节两种结构的突触可塑性较为关键。并且对神经调节剂(如多巴胺)的目标结构的影响不仅取决于神经调节剂的性质,还取决于目标结构的性质。

行动器与评判器可以通过人工神经网络来实现,该网络由一系列类神经元单元组成, 它们的学习规则基于13.5节中所描述的策略梯度“行动器-评判器”方法。 这些网络中的每个连接就像是大脑中的神经元之间的突触,学习规则对应于突触功效如何随着突触前后的神经元活动而变化的规则, 以及与来自多巴胺神经元的输入相对应的神经调制输入。在这种情况下,每个突触都有自己的资格迹以记录过去涉及的突触活动。 行动器与评判器的学习规则的唯一区别在于它们使用了不同类型的资格迹:评判器单元的迹是非偶发的,因为它们不涉及评判器单元的输出; 而行动器单元的迹是偶发的,因为除了行动器的输入外,它们还依赖于行动器单元的输出。 在大脑的行动器与评判器系统的假想实现中,这些学习规则分别对应于规定皮质纹状体突触的可塑性规则, 所述规则将信号从皮层传递到背侧和腹侧纹状体分支中的主要神经元,突触也接收来自多巴胺神经元的输入。

在“行动器-评判器”网络中,行动器单元的学习规则与 收益调制的尖峰时间依赖可塑性 密切相关。 在尖峰时间依赖可塑性(STDP)中,突触前后活动的相对时间决定了突触变化的方向。 在收益调制的STDP中,突触的变化还取决于神经调节剂,例如多巴胺,其在满足STDP的条件之后可以最多持续10s的时间到达。 很多证据说明,收益调制的STDP发生在皮层纹状突触,这就是行动器的学习在“行动器-评判器”系统的假想神经实现中发生的地方。 这些证据增加了这样一个假设的合理性,即类似“行动器-评判器”系统的东西存在于一些动物的大脑之中。

突触资格的概念和行动器学习规则中的基本特征都来自于Klopf关于“享乐主义神经元”的假设(Klopf,1972,1981)。 他猜测个体神经元试图通过在其动作电位的奖励或惩罚后果的基础上,调整其突触的功效,来获得奖励和避免惩罚。 神经元活动可以影响之后的输入,因为神经元被嵌入许多反馈回路中,一些回路存在于动物的神经系统和身体内,另一些则通过外部环境实现。 Klopf关于资格的想法是,如果突触参与了神经元的行动(使其成为资格迹的偶发形式),那么突触会暂时被标记为有资格进行修改。 如果在突触合格时强化信号到达,那么突触的功效会被修改。 我们提到细菌的趋化行为就是单一细胞的一个例子,这种行为指导着细菌的运动以寻找一些分子并避免其他分子。

多巴胺系统的显著特征是释放多巴胺的神经纤维可以广泛地投射到大脑的多个部分。 尽管只有一些多巴胺神经元群体广播相同的强化信号但如果这个信号到达参与行动器学习的许多神经元突触,那么这种情况可以被模拟为一个团队问题。 在这种类型的问题中,强化学习智能体集合中的每个智能体都会收到相同的强化信号,这个信号取决于所有成员或团队的活动。 如果每个团队成员使用一个足够有效的学习算法,则即使团队成员之间没有直接交流,团队也可以集体学习,以提高整个团队的绩效,并按照全局广播的强化信号进行评估。 这与多巴胺信号在大脑中的广泛散布是一致的,并且为广泛使用的用于训练多层网络的误差反向传播方法提供了神经运动意义上可行的替代方案。

无模型和基于模型的强化学习之间的区别可以帮助神经科学家研究习惯性和目标导向的学习和决策的神经基础。 目前为止的研究指出,一些大脑区域比其他区域更容易参与某一类型的过程, 但由于无模型和基于模型的过程在大脑中似乎并没有完全分离,所以我们仍然没有一个完整的理解,许多问题仍未得到回答。 也许最有趣的是,证据表明,海马体,一种传统上与空间导航和记忆有关的结构,参与了模拟未来可能的行动过程,以此来作为动物决策过程的一部分。 这表明它是使用环境模型进行规划的系统的一部分。强化学习理论也影响着对药物滥用的神经过程的思考。 有一种药物成瘾的模型建立在收益预测误差假说的基础之上。 它指出,成瘾性兴奋剂(如可卡因)破坏了TD学习的稳定性,从而导致药物摄入的相关动作的价值无限增长。 这远不是一个完整的成瘾模型,但它说明了计算观点是如何揭示某种理论以对其进行进一步的研究和测试的。 计算精神病学的新领域同样侧重于计算模型的使用(其中一些理论来自强化学习),以更好地理解精神障碍。

本章只是浅显地讨论了与强化学习相关的神经科学是如何与计算机科学和工程的发展相互影响的。 强化学习算法的大多数特征都是基于纯粹的计算考虑,但是其中一些受到了有关神经学习机制假设的影响。 值得注意的是,随着于大脑的收益过程的实验数据积累,强化学习算法的许多纯粹的计算动机特性会变得与经科学数据一致。 而随着未来神经科学家们继续解密动物的基于收益的学习和行为的神经基础,计算强化学习的其他特征, 如资格迹和强化学习智能体团队在全局广播的强化信号的影响下学习集体行动的能力,也可能最终显示出与实验数据的一致性。

参考文献和历史评注

探讨关于学习和决策的神经科学与强化学习理论之间的相似性的出版物的数量是巨大的。我们只能列举一小部分。 参考Niv(2009), Dayan和Niv(2008), Gimcher(2011) Ludvig、 Bellemare和 Pearson(2011)以及Sah(2012)是不错的开始。

和经济学、进化生物学和数学心理学一起,强化学习理论正在帮助制定人类和非人类灵长类动物神经机制选择的定量模型。 本章着重于探讨学习过程,只是略微涉及了决策过程相关的神经科学。 Glimcher(200介绍了“神经经济学”领域,其中强化学习有助于从经济学角度研究决策的神经基础另 Glimcher见和Fehr(2013)。 Dayan和 Abbott(2001)关于神经科学计算和数学建模的文章包括了强化学习在这些方法中的作用。 Sterling和 Laughlin(015)从通用设计原则的角度研究了学习的神经基础,这些原则使得有效的适应性行为成为可能。

15.1 关于基础神经科学有很多很好的论述。 Kandel Schwartz Jessell Siegelbaum Hudspeth(2013)是一个权威的、非常全面的参考文献。

15.2 Berridge和 Kringelbach(2008)回顾了收益和愉悦的神经基础,指出收益处理有许多维度,涉及许多神经系统。 由于篇幅所限,我们并没有仔细讨论 Berridge和 Robinson(1998)的有影响力的研究。 他们区分了他们称之为“喜欢”的刺激的享乐影响和他们称之为“想要”的激励效应。 Hare、O 'Doherty、 Camerer、 Schultz和 Rangel(2008)从经济学角度对价值相关信号的神经基础进行了研究,区分了目标价值、决策价值和预测误差。 决策价值是目标价值减去行动成本。另见 Rangel、 Camerer和 Montague(2008), Rangel和Hare(2010)以及Peters和 Buchel(2010)。

15.3 多巴胺神经元活动的收益预测误差假说被 Schultz、Montague和 Dayan(1997)大力讨论。 这个假设首先由 Montague、 Dayan和 Sejnowski1996)明确提出。在他们论述假说的时候,他们所说的是“收益预测误差”(RPE),但并不专门指TD误差; 然而,他们的假说的解释清楚地表明他们所指的就是TD误差。 我们所知道的关于TD误差/多巴胺连接的最早知识来源于 Montague、 Dayan、 Nowlan、 Pouget和 Sejnowski(1993), 他们提出了一个TD误差调制的 Hebbian学习规则,这一规则的提出受到 Schultz的小组所给出的多巴胺信号传导的实验结果的启发。 Quartz、 Dayan, Montague Sejnowski(1992年)的摘要也指出了这种联系。 Montague和 Sejnowski(1994)强调了预测在大脑中的重要性, 并概述了采用TD误差调节的预测性 Hebbian学习是如何通过散布式的神经调节系统(如多巴胺系统)来实现的。 Friston、 Tononi、 Reeke、 Sporns和 Edelman(1994)提出了一个大脑中依赖于价值的学习模型, 其中突触变化是由全局神经调制信号提供的类TD误差来介导的(尽管他们没有单独讨论多胺)。 Montague、 Dayan、 Person和 Sejnowski(1995)提出了一个使用TD误差的蜜蜂觅食模型。 该模型基于 Hammer、 Menzel及其同事的研究(Hammer和 Menzel,1995; Hammer,1997), 并显示神经调节剂真蛸胺可以作为蜜蜂的强化信号。Montague等人(1995)指出,多巴胺可能在脊椎动物大脑中起着类似的作用。 Barto(1995)将“行动器-评判器”的体系结构与基底神经节回路相联系,并讨论了TD学习与 Schultz小组的主要成果之间的关系。 Houk、 Adams和 Barto(1995)提出了TD学习和“行动器-评判器”架构如何映射到基底神经节的解剖学、生理学和分子机制。 DoyaSejnowski(1998)扩展了他们早期关于鸟鸣学习模型的论文(Doya和 Sejnowski,1994, 其中包括一个类似TD的多巴胺误差,用于加强听觉输入的记忆选择。 O'Reilly和Fank(2006)以及Reilly、 Frank、hazy和Watz(2007)认为相位多巴胺信号是RPE而不是TD误差。 为了支持他们的理论,他们引用了一些可变刺激间隔的结果,这些结果不同于简单TD模型的预测结果。 另外一个事实是,即使在TD学习不是特别受限的情况下,高于二阶调节的高阶调节也很少会被观察到。 Dayan和Niv(2008)讨论了强化学习理论和收益预测误差假说与实验数据对应时,所出现的“好的、坏的、丑陋的”情况。 Glimcher(2011)回顾了支持收益预测误差假说的实证结果,并强调了当代神经科学假说的重要性。

15.4 Graybiel(000是基底神经节的简要介绍。实验提到,涉及多巴胺神经元的光遗传激活是 由Tsai、Zhang、Adamantidis、 Stuber、 Bonci、 de Lecea和 Deisseroth(2009), Steinberg Keiflin、 Boivin、 Witten、 Deisseroth以及 Janak(203)和 Claridge-Chang、 Roorda、rontou、 Sjulson、Li、 Hirsh和 Miesenbock(2009)进行的。 Fiorillo、yun和Song(2013),Lammel、im和 Malenka(2014),以及 Saddoris、Cacciapaglia、Wightmman和 Carelli(2015)等都表明, 多巴胺神经元的信号特性是针对特定的不同目标区域的RPE信号传导神经元可能属于具有不同目标区域和具备不同功能的多巴胺神经元群体之一。 Eshel、Tian、Bukwich和 Uchida(2016)发现在小鼠的经典条件反射中,多巴胺神经元的收益预测误差反应在横向VTA中是一致的, 但他们的结果并不排除在更广泛的区域中的反应多样性。 Gershman、 Pesaran和Daw(2009)研究了一些特定的强化学习任务,这些任务可以被分解为分别具有收益信号的独立子任务, 在人类神经影像学数据中发现证据,表明大脑确实利用了这种分解结构。

15.5 Schultz在1998年的调查文章(Schultz,1998是关于多巴胺神经元的收益预测信号的非常广泛的文献中很好的一篇。 Berns、McClure、Pagnoni和 Montague(2001年),Breiter Aharon、Kahneman、Dale和 Shizgal(2001), Pagnoni、Zink、 Montague和 Berns(2002以及 O'Doherty、 Dayan、 Friston、 Critchley和 Dolan(2003)描述了功能性脑成像研究, 相关证据支持人类大脑内存在类似TD误差之类的信号的论断。

15.6 本节大致遵循 Barto(1995a),其中解释了TD误差如何模拟 Schultz小组关于多巴胺神经元相位反应的主要结果。

15.7 本节主要基于 Takahashi、 Schoenbaum、Niv2008)Niv(2009)据我们所知, Barto(1995)和Houk、 Adams及 Barto(1995)首先推测了在基底神经节可能实现“行动器-评判器”算法。 O'Doherty、 Dayan、 Schultz、 Deichmann、 Friston和 Dolan(2004) 在对参与工具性条件反射实验的人类被试者进行人体功能磁共振成像时发现,行动器和评判器很可能分别位于背侧和腹侧纹状体。 Gershman、 Moustafa和 Ludvig(2014)侧重于研究如何在基底神经节强化学习模型中表示时间,讨论时间表示的各种计算方法的证据和影响

本节描述的“行动器-评判器”结构的神经实现假设包括少量已知基底神经节解剖学和生理学的细节。 除了Houk、 Adams和 Barto(1995)更详细的假设之外,还有一些其他的假设包括解剖学和生理学的更具体的联系,并且声称可以解释其他的实验数据现象。 这些假设包括Suri和 Schultz(1998,1999), Brown、 Bullock和 Grossberg(1999), Contreras-Vidal-和 Schultz(1999),Suri、 Bargas和 Arbib(2001), O'Reilly和 Frank(2006)以 O'Reilly Frank、azy和atz(2007)。 Joel、Niv和 Ruppin(2002)批判性地评估了这些模型中几种模型的解剖合理性,并提出了一种替代方案,旨在适应基底神经节回路的一些被忽视的特征。

15.8 这里讨论的行动器学习规则比 Barto等人(1983)的早期“行动器-评判器”网络更复杂。 在那个早期网络中,行动器单元的资格迹只有At×x(St),而不是完整的(At(1t,)x(t) Barto等人的工作并没有从第3章中提出的策略梯度理论中受益, 也没有受到 Williams(1986,1992)所展示的伯努利逻辑单元的人工神经网络实施策略梯度方法的影响。

Reynolds和 Wickens(2002)提出了皮质纹状体通路中突触可塑性的三因素规则,其中多巴胺调节皮质纹状体突触功效的变化。 他们讨论了这学习规则的实验支持及其可能的分子基础。 尖峰时间依赖可塑性(STDP)的明确证明归功 Markram于、 Lubke Frotscher Sakmann(1997)。 其中一些证据来源于Levy和 Steward(1983)的早期实验以及另外一些研究者,这些证据说明突触后尖峰对于诱导突触功效的变化是至关重要的。 Rao和 Sejnowski(2001)提出STDP是如何在类似TD的机制的情况下发生的, 非偶发性的资格迹持续约10ms Dayan(2002)评论说,这里的误差项, 应该是类似 Sutton和 Barto(1981所提出的经典条件反射的早期模型中的误差,而不是一个真正的TD误差。 Wickens(1990) Reynolds和 Wickens(2002)以及 Calabresi Picconi、 Tozzi和 Di Filippo(2007)等都是有关收益调节STDP的代表性文献。 Pawlak和Kerr2008)指出,多巴胺对于在中型棘状神经元的皮质纹状体突触中诱导STDP是必要的, 同时可参见 Pawlak、 Wickens、 Kirkwood和Kerr(2010)。 Yagishita、 Hayashi-Takagi-、llis- Davies、 Urakubo、 Ishii和 Kasai(2014)发现 多巴胺仅在STDP刺激后0.3s~2s的时间窗内促进小鼠的中型多棘神经元的脊柱增大。 Izhikevich(2007)提出并探索了使用STDP时序条件来触发偶发性资格迹的思路。 Fremaux Sprekeler和 Gerstner(2010)提出了基于收益调节TDP的规则进行成功学习的理论条件。

15.9 受到 Klopf的享乐主义神经元假说(Klof,1972,1982)的启发, 我们的“行动器-评判器”算法被实现为具有单个类神经元单元的人工神经网络,称为行动器单元, 实施类似效应定律的学习规则(Barto、 Sutton和 Anerson,1983)。 其他人也提出了与 Klopf的突触局部资格有关的想法。Crow(1968)提出,皮质神经元突触的变化对神经活动的后果敏感。 为了强调需要解决神经活动及其后果(后果是以突触可塑性的收益调节的形式出现的)的时间延迟问题, 他提出了一种偶发形式的资格,但与整个神经元而不是单个突触相关联。 根据他的假设,神经导致参与波浪的细胞有短期的变化,使得它们从没有被激活的细胞的背景中被挑选活动的波浪

导致参与波浪的细胞有短期的变化,使得它们从没有被激活的细胞的背景中被挑选出来。……通过收益信号的短期改变, 这样的细胞会变得敏感以这样的方式,如果在变化过程的衰变时间结束之前发生这样的信号,则细胞之间的突触连早期的理论认为, 通过引入收益信号对回路的影响,回荡神经回路就扮演了这样的角色,即接会更有效(Crow,1968)。

早期的理论认为,通过引入收益型号对回路的影响,回荡神经回路就扮演了这样的角色, 即回荡神经回路“会建立突触连接使得回荡可以发挥作用(也就是说,那些在收益信号时间参与活动的连接),而不是建立导致自适应运动输出的路径上的突触连接”。 Crow反对这些早期理论,他进一步假设收益信号是通过一个“不同的神经纤维系统”传递的,这个系统会将突触连接的形式“从短时变成长时”。 这个思想也可能是借鉴了Olds和 Milner(1954)的工作。

在另一个有远见的假设中, Miller(1981)提出了一个类效应定律学习规则,其中包括突触局部的偶发式资格迹:

…可以设想,在特定的感官环境条件下,神经元B偶然地发出一个“有意义的爆发”的活动,然后转化为运动行为,接着改变了环境条件。 这里必须假设有意义的爆发在神经元水平上对当时所有的突触都有影响从而使突触的初步选择得到加强,尽管还没有实际加强。 …加强信号……做出最终选择…并在适当的突触中实现明确的变化(Miller,1981,第81页)。

Miller的假设还包括一种类似评判器的机制,他称之为感官分析器单元”,它根据经典件反射原理工作,为神经元提供强化信号, 从而使得它们学会从低价值状态转移到高价值状态,这个过程很可能在“行动器-s评判器”架构中使用了TD误差作为强化信号。 Miller的想法不仅与 Klopf(除明确引用一个独特的“强化信号”之外)相似,而且还预测了收益调制的STDP的一般特征。

Seung(2003)称之为“享乐主义突触”的一个相关但又不同的观点是,突触以效应定律的方式单独调整释放神经递质的概率: 如果释放后会有收益则释放的概率增加,而如果释放失败会带来收益则释放概率降低。 这与 Minsky在1954年普林斯顿大学博士学位课程中所使用的学习范式基本相同(Minsky,1954), 他将突触类学习元素称为 SNARC(随机神经模拟增强计算)。偶发性资格迹也涉及这些思想,虽然其取决于个体突触而不是突触后神经元的活动。 与之相关的还有 Unnikrishnan和 Venugopal(1994)提出的方法, 他们使用 Harth和 Tzanakou(1974)的基于相关性的方法来调整神经网络的权重。

Frey和 Morris(1997)提出了诱导突触功效长期增强的“突触标签”的概念。尽管与 Klopf的“资格”概念没有什么不同, 但他们的标签被假设为暂时加强了突触,并可以通过随后的神经元活化转化为持久的加强。 O'Reilly和rnk(2006)及 'Reilly、 Frank、hazy和Watz(2007)的模型使用工作记忆来弥合时间间隔,而不是资格迹。 Wickens和 Kotter(1995)讨论了突触资格的可能实现机制。 He、 Huertas、Hong、Tie、Hell、 Shouval和 Kirkwood(2015)提供的证据支持皮质神经元突触中的偶发性资格迹的存在, 其实现的时间进程类似于 Klopf假设的资格迹。

Barto(1989)对神经元的学习规则与细菌趋化过程的类比进行了讨论。 Koshland对细菌趋化性的广泛研究部分地是由细菌特征和神经元特征之间的相似性所驱动的(Koshland,1980)。 另见Berg(1975)。Shimansky(2009)提出了一种类似于上文提到的 Seung提出的突触学习规则,其中每个突触分别起到了趋化性细菌的作用。 在这种情况下,突触集合在突触权重值的高维空间中向引诱物“游动”。 Montague、Dayn、 Person和 Sejnowski(1995)提出了一种涉及神经调节剂真蛸胺的蜜蜂觅食行为的类趋化模型。

15.10 强化学习智能体在团队和游戏问题上的行为已经被进行了长期的研究,大致分为三个阶段。 据我们所知,第一个阶段是从俄罗斯数学家和物理学家M Tsetlin的研究开始的他在1966年去世之后, 他的工作结集为 Tsetlin(73)出版。我们在1.7节和4.8节提到过他在赌博机问题相关的自动学习机方面的研究。 Tsetlin系列还包括对团队和游戏问题中自动学习机的研究, 这引发了后来对 Narendra和 Thathachar(1974),Viswanathan和 Narendra(1974), Lakshmivarahan和 Narendra(1982), Narendra和 Wheeler(1983), Narendra(1989) 以及 Thathachar和 Sastry(002)描述的随机自动学习机这个领域的研究。 Thathachar和 Sastry(2011)是一个较新的研究。这些研究大多局限于非关联自动学习机, 这意味着他们没有解决关联性或情境性的赌博机问题(2.9节)。

第二个阶段从自动学习机向关联性或情境性扩展开始 Barto、 Sutton和 Brouwer(1981)以及 Barto和 Sutton(1981b) 在单层人工神经网络中用关联随机自动学习机进行了实验,其中广播了一个全局增强信号。 这种学习算法是 Harth和 Tzanakou(1974)的Alopex算法的一种关联性扩展版本。 他们称实施了这种学习方法的类似神经元的元素为关联搜索元素(ASE)。 Barto和 Anan dan(1985)介绍了一种更复杂的关联强化学习算法,称为关联收益惩罚(\(A_{R-P}\))算法。 他们将随机自动学习机理论与模式分类理论相结合,证明了收敛性。 Barto(1985,1986)以及 Barto和 Jordan(1987)描述了由A-P单元组连接成多层神经网络的结果, 该结果表明它们可以学习非线性函数,如XOR等,具有全局广播的强化信号。 Barto(1985)广泛地讨论了人工神经网络的这种方法,及这种类型的学习规则在当时的文献中是如何与其他人相关的。 Williams(1992对这类学习规则进行了数学分析和拓展,并将其用于训练多层人工神经网络的误差反向传播方法。 Williams(1988)描述了将反向传播和强化学习结合用于训练人工神经网络的几种方法。 Williams9指出 \(A_{R-P}\) 算法的一个特殊情况, REINFORCE算法, 尽管通用 \(A_{R-P}\) 算法获得了更好的结果(Barto,1985)。

强化学习智能体研究的第三个阶段受到了神经科学进展的影响,包括对多巴胺作为广泛传播的神经调节剂作用的深入理解以及关于收益调节STDP的猜测。 这项研究的内容比早期的研究多得多,这项研究考虑了突触可塑性和神经科学的其他限制的细节。 相关文献包括(按照时间及字母顺序): Bartlett和 Baxter(1999,2000),xie和 Seung(2004), Baras和Meir(2007),farries和fairhall(2007),Floian(2007), Izhikevich(2007),Pecevsk(2007),Pecevski,Maass,和 Legenstein (2008), Legenstein,Pecevski,和 Maass (2008),Kolodziejski,Porr和 Worgotter(2009), Urbanczik和Senn(2009)以及Vasilaki,Fr ́emaux, Urbanczik,Senn 和 Gerstner (2009)。 Now ́e,Vrancx和 De Hauwere(2012)的文献中介绍了更广泛的多智能体强化学习领域的最新发展。

15.11 Yin和 Knowlton(2006)回顾了啮齿类动物结果贬值实验的发现, 认为习惯和目标导向行为(心理学家使用这个词)分别与背外侧纹状体(L)和背内侧条纹(DMS)最为相关。 在 Valentin、 Dickinson和 O'Doherty(2007)结果贬值背景下,人类受试者功能性成像实验的结果表明, 眶额皮层(OFC)是目标导向选择的重要组成部分。 Padoa Schioppa和 Assad(2006)进行了猴子的单元记录实验, 有力撑了OFC在进行价值编码来指导行为选择的过程中扮演了重要角色的论断。 Rangel、 Camerer和 Montague(2008)以及Rangel和Hare(2010) 从神经经济学的角度介绍了关于大脑如何制定目标导向决策的一系列发现。 Pezzulo、 van der Meer、 Lansink和 Pennartz(2014)回顾了内部生成序列的神经科学, 并提出了这些机制如何成为基于模型的规划的组成部分的模型。Daw和 Shohamy(2008)提出,多巴胺信号与习惯性或无模型行为可以很好地联系起来, 而其他一些过程则涉及目标导向或基于模型的行为 Bromberg-Martin、 Matsumoto Hong和 Hikosaka(2010)的实验数据表明, 多巴胺信号包含习惯和目标导向行为的相关信息Doll、 Simon和Daw(2012)认为,大脑在习惯性和目标导向的学习和选择之间可能没有明确的区分。

15.12 Keifin和 Janak(2015)回顾了TD误差和成瘾二者之间的联系。 Nutt、 Lingford-Hughes- Erritzoe和 Stokes(201)批判性地评估了成瘾源于多巴胺系统紊乱的假说。 Montague Dolan、 Friston和 Dayan(2012)概述了计算精神病学领域的目标和早期工作, Adams、Huys和 Roiser(2015)回顾了最近的进展。

第16章 应用及案例分析

第17章 前沿技术

参考文献