TensorFlow 强化学习:11~15

本文涉及的产品
图片翻译,图片翻译 100张
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
简介: TensorFlow 强化学习:11~15

十一、机器人技术中的强化学习

到目前为止,我们已经看到了强化学习在 AlphaGo,自动驾驶,项目组合管理等方面的进步。 研究表明,强化学习可以提供认知特征,例如动物行为。

与认知科学的紧密比较将是动态机器人系统和自动驾驶中强化学习的许多成功实现。 他们证明了将强化学习算法用于物理系统实时控制的理论。

在深度 Q 网络和策略梯度中使用神经网络可消除对人工设计的策略和状态表示的使用。 在深度强化学习中直接使用 CNN 并使用图像像素代替手工设计的特征作为状态已成为广泛接受的实践。 小型批量训练以及单独的主要网络和目标网络的概念为深度强化学习算法带来了成功。 在以像素为输入的 50 场 Atari 2600 游戏中,DeepMind 和深度强化学习的成功实现了超人的表现水平,这是强化学习研究的转折点。

研究人员试图在机器人技术中实现深层 Q 网络,但并未取得重大成功。 其背后的主要原因是机器人领域中的高维连续动作空间。 为了在连续的动作空间中实现 DQN,必须离散化它们,但是这种离散化会导致信息丢失,这对于诸如机器人之类的领域可能是非常危险的。

离散动作空间DAS)算法下,将处理离散动作空间域的算法归为一组。 诸如策略梯度之类的其他方法通过将状态空间作为输入来直接将状态空间与动作空间连接,并返回最佳策略作为输出,即采取的可行动作。 与基于值的方法(例如 Q 学习)相比,基于策略的方法的优势在于,它们解决了连续操作空间的处理问题,因为对于给定的状态输入,输出策略是跨不同可能操作的随机分布。

诸如处理连续动作空间域的策略梯度之类的算法归为连续动作空间CAS)算法。 因此,在行动空间上提供随机表示的基于策略的方法解决了该问题,而不是 DAS 算法中的离散化。 CAS 算法最初是开发并用于低维状态空间,后来使用基于 CNN 的架构扩展到高维状态空间。 CAS 算法分为两个子类别:随机连续动作空间SCAS)和确定性连续动作空间DCAS)算法。 它们之间的主要区别在于复杂性,因为 SCAS 算法提供了更好的覆盖范围,因此需要大量的训练样本来学习更好的策略。 在现实世界的机器人应用中获取大量训练样本是非常不可行的,因此,仿真必须以尽可能最佳的方式表示现实世界,否则生成现实世界的数据将非常昂贵。

确定性策略梯度的发现超过了随机策略算法,如 Silver 等人所述,该技术已包含在附录 A 中, “强化学习”中的其他主题。 在本章中,我们将介绍机器人强化学习背后的挑战以及当前如何实现机器人强化学习。

本章将讨论的主题包括:

  • 机器人技术中的强化学习
  • 机器人强化学习中的挑战
  • 未解决的问题和实际挑战
  • 要点

机器人技术中的强化学习

机器人技术与行为的高度复杂性相关联,这使手工工程师既难以进行操作,也没有足够详尽的方法来使用监督学习来完成任务。 因此,强化学习提供了一种捕获此类复杂行为的框架。

与机器人技术有关的任何任务都由高维,连续状态和动作空间表示。 环境状态不是完全可观察到的。 仅在模拟中学习不足以说强化学习智能体已经为现实世界做好了准备。 在使用机器人技术的情况下,强化学习智能体应该在现实世界中遇到不确定性,但是获取和复制起来既困难又昂贵。

鲁棒性是机器人技术的重中之重。 在常规分析或传统机器学习问题中,数据,预处理或算法中的细微错误会导致行为发生重大变化,尤其是对于动态任务。 因此,需要能够捕获实际细节的健壮算法。 机器人强化学习的下一个挑战是奖励函数。 由于奖励函数在优化学习中起着最重要的作用,因此需要生成特定领域的奖励函数,以帮助学习智能体尽快更好地适应现实世界。 因此,领域知识是设计好的奖励函数的关键,而这又是机器人机器学习中的艰巨任务。

在这里,将讨论通过我们在本书中研究的强化学习算法可以实现的机器人领域中的任务类型,并尝试将它们连接在一起以构建一种有前途的方法。

强化学习的演变

在本书中,我们涵盖了从基础到高级的强化学习领域中的大多数算法。 因此,这些章节是理解机器人领域中不同算法所面临的应用和挑战的前提。 早期强化学习算法通过首先获取状态动作值,然后从中得出策略来处理获取最佳策略的问题。 然后,策略迭代方法出现了,直接用于输出优化的策略。 探索利用技术有助于完善现有策略,探索新措施并更新现有策略。 强化学习方法,例如 MDP(在第 3 章,“马尔可夫决策过程”中),其中需要采用转移模型的值迭代方法称为基于模型的学习器。 另一方面,诸如 Q 学习(在第 5 章,“Q 学习和深度 Q 网络”中)的算法不需要这种转移模型,因此也不需要任何预定义的策略。 他们被称为无模型的脱离策略学习器

在深度强化学习领域,行动值函数逼近器和策略函数逼近器在制定最先进的学习算法集方面发挥着关键作用。 策略搜索算法(例如策略梯度)旨在通过最大化期望的奖励总和来找到最佳策略,而使用行动值函数近似器(例如深度 Q 网络)的算法旨在通过最大化期望的总和,来找到给定状态和行动值的奖励。 但是,在处理由高维和连续状态动作空间构成的环境时,表现上的差异在于,这最能描述机器人在其中运行的真实环境。 在这种情况下,策略搜索算法的表现会更好,因为它们在连续状态操作空间域中可以更好地工作:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4WiU0Zml-1681786603278)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/dbe76734-7904-4c3f-b486-17840eae3d22.png)]

上图显示了不同的深度强化学习算法的类别。 通过在深度 Q 网络中使用神经网络和策略梯度方法解决了映射连续和高维状态空间的问题。 各种 DAS 和 CAS 算法都使用神经网络有效地执行连续状态空间映射的任务。 但是主要的问题是将输入状态空间映射到高维连续动作空间。 为了在映射到连续动作空间的任务中获得更好的结果,派生了 CAS 算法。

机器人强化学习中的挑战

强化学习在机器人技术中的应用包括:

  • 运动
  • 操纵
  • 自主机器控制

如前所述,为了使增强型学习智能体在现实世界中的任务中表现更好,它应该具有定义明确,特定领域的奖励函数,这很难实现。 通过使用学徒制学习等技术可以解决此问题。 解决奖励不确定性的另一种方法是根据状态不断更新奖励函数,以便生成最优化的策略。 这种方法称为逆强化学习。

由于许多挑战,机器人强化学习是一个很难解决的问题。 第一个是连续的状态动作空间。 根据问题陈述,决定是采用 DAS 算法还是 CAS 算法。 这意味着机器人控制应处于何种粒度级别。 一大挑战是现实系统的复杂性,这导致执行时间,手动干预和维护的增加。 因此,需要一种可以实时运行并应对现实世界复杂性的算法。

因此,该算法必须处理现实世界系统的复杂性,并且必须实时运行,其目的是通过设计一个良好的,特定于领域的,知识衍生的奖励函数来最大化期望的奖励总和。 因此,在以下各节中讨论并在下图中显示的机器人强化学习面临许多挑战:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NJozOibg-1681786603279)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/12ebf393-8221-424b-8124-7e9dd16263fc.png)]

高维问题

随着维数的增加,数据也随之增加。 结果,有更多的计算覆盖了完整的状态动作空间。

让我们举个例子:

  • 对于每个维度,状态空间都离散为 10 个不同的状态
  • 因此,三维状态空间将具有10x10x10 = 1000个状态
  • 因此,随着维数的增加,状态将增加 10 倍

因此,随着尺寸的增加,评估变得困难。 函数近似器(例如神经网络)可以有效地解决此问题。 机器人系统的问题是由于拟人(类人)机器人导致的高维状态和动作。 经典的强化学习方法考虑具有离散状态动作空间的网格世界环境。 在网格世界环境中,导航任务将涉及许多离散的动作,包括移动,加速,加速,下降,启动,停止以及更多高精度方向。

使用离散化来减少维数会导致信息丢失,尤其是在机器人领域。 由于连续的动作空间,这会阻碍动态能力。 将动作空间减小为离散值可掩盖许多重要动作。 在处理到连续动作空间的映射时,函数逼近是一种明智的方法。

现实世界中的挑战

机器人与现实世界互动。 因此,机器人强化学习的真正问题是应对这些现实问题。 这是因为在现实世界中机器人组件的定期磨损非常昂贵。 连续的维护和修理在劳力和维护和修理的时间损失方面付出了巨大的代价。 因此,安全探索是机器人强化学习过程中的关键问题。

Perkins 和 Barto(2002)提出了一种基于 Lyapunov 函数构造强化学习主体的方法(附录 A,“强化学习中的其他主题”)。 现实世界带来的挑战包括环境因素的变化,即气候,温度,光线等。 结果,由于温度和气候的极端影响,机器人的动力学将受到影响,并且将避免学习过程的收敛。 现实环境是不确定的。 结果,由于气候,温度,光线等外部因素,无法产生过去的学习时间。 因此,状态是不确定的,因此很难模拟真实的真实场景。 因此,大多数模拟器都没有考虑气候,温度和光的元素。 因此,这对要解决的算法提出了严峻的挑战。 除此之外,传感器噪声测量的不确定性导致无法直接用传感器观察所有状态。

现实世界中的大多数机器人学习任务都需要人工监督,而获取现实世界中的样本在时间,劳动力和金钱方面都非常昂贵。 在机器人强化学习中,无法使用诸如模拟器之类的情景设置,因为它们在时间,维修和金钱上都花费很多。 机器人需要在严格的约束下与现实世界互动,以免造成重大破坏。

此外,由于这些强化学习算法是在计算机中实现的,因此无法避免时间离散化,从而导致在现实情况下无法复制连续时间系统。 由于以下过程,现实世界的状态表示与现实世界状态相比可能会滞后:

  • 信号通信延迟
  • 信号信息处理
  • 实时创建学习模型以输出要采取的最佳措施
  • 延迟接收动作信号和致动导致机器人中的机器运动

由于这些延迟,动作无法立即实现,从而导致延迟效果。 在诸如马尔科夫决策过程MDP)之类的强化学习算法中,假定动作会瞬间影响环境,而忽略了与现实世界相关的延迟。 可以通过汇总一些最近的操作并将其提供给状态来解决此问题,但这也将导致尺寸的增加(在上一节中讨论的机器人强化学习中的挑战)。 解决该问题的另一种方法是增加时间步长,但这有两个缺点,一个缺点是妨碍了机器人的控制,第二个缺点是由于持续时间的变化而对系统的动态产生不利影响。

因此,我们总结了如下讨论的实际挑战:

  • 现实世界中的磨损
  • 昂贵的硬件
  • 环境因素,例如气候,温度,光线,噪音等
  • 接收环境信号与执行操作之间的延迟
  • 包括大量的时间,人工和维护费用方面的投资

模型不确定性导致的问题

为了避免与实际交互相关的成本,使用了模拟器。 问题在于,仿真模型应接近实际情况。 对于理想的设置,方法是在模拟中执行学习任务,并将知识模型转移到机器人。 为机器人创建良好的精确学习模型以及现实场景的模拟环境模型非常具有挑战性,因为它需要大量的现实世界数据样本。

从少量数据中学到的小模型会导致建模不足,从而使机器人很容易与实际系统脱节。 模拟器的问题在于它们无法复制与物理交互(如摩擦和触摸)相关联的真实世界的复杂性,因此它们被忽略了。 结果,在现实世界中,由于与物理交互有关的挑战,机器人的能量和对它的控制也丢失了。 因此,忽略这些特征使机器人强化学习模型难以根据实际情况进行准确训练。 因此,在现实世界中学习有助于捕获环境的这些固有特征。

因此,由于现实世界的不完整状态表示而导致的模型不确定性是机器人强化学习要克服的巨大挑战。

机器人要实现的最终目标是什么?

奖励函数对于在机器人强化学习中指定学习智能体的目标至关重要。 如我们所知,对于强化学习算法,最终目标是使从开始状态到达到目标状态的预期奖励总和最大化。

在现实世界中,设计好的奖励函数是一个巨大的挑战。 因此,代表或指定目标是现实世界中的挑战。 现实世界中充满不确定性,因此,奖励函数应能够捕获与此类不确定性相关的积极状态。

一些领域在任务完成后获得奖励,不确定性较小,但在某些情况下,导致更好的最终结果的每个动作都具有不同的奖励。 这是由于每个状态的重要性,因为每个状态都像在现实情况中那样采取了行动。 因此,任务完成奖励机制不能在现实世界中实现,因为它不会捕获不确定性,也不会导致学习趋同,从而导致表现下降。

在我们遇到的大多数现有模拟中,我们看到了一种二元奖励机制,该机制仅捕获了学习智能体的成功和失败。 将中间奖励包含为奖励函数的一部分,将比二元奖励方法更好,从而导致更好的解决方案。 包括中间奖励在内,将捕获现实系统中从状态到状态转换的不确定性。

因此,奖励函数通常表示为状态动作对的函数。 如前所述,由于先前讨论的现实世界的挑战,该模拟不能准确地表示现实世界的状态。 但是,除了环境因素和时间滞后之外,由于具有良好的奖励函数,机器人加固智能体还可以学习优化时间和管理风险,并避免了实际系统设置和维护的成本。

最近,已经进行了进一步的研究开发,以在简单模型的基础上构建复杂策略,以通过使用更好的参数化奖励函数来探索那些复杂策略来实现此目标。 在他们的研究中,Sorg 等人(2010 年)以及 Zucker 和 Bagnell(2012 年)通过调整奖励函数,通过策略搜索技术实现简单的最优控制,得出了复杂的策略。

未解决的问题和实际挑战

根据强化学习算法的不同挑战,与监督学习相比,它们无法直接应用于机器人技术,后者在研究和更好的部署方面已经取得了重大的进步。

在风险不是很高的机器人技术中,可以为各种物理系统和控制任务引入强化学习。 其背后的原因是在现实世界系统中强化学习模型的稳定性问题。 所有学习过程都需要已实现的领域知识,以便更好地表示状态并设计准确的奖励函数。 这需要进一步的研究和开发。

让我们讨论一些关于强化学习算法的开放性问题,这些问题在机器人强化学习领域中正在进行的和未来的研究中需要更多的关注。

开放问题

以下列出了一些开放的,并非详尽无遗的问题,需要特别注意以提供更好的机器人技术强化学习模型:

  • 我们如何使状态动作空间表示过程自动化?
  • 机器人技术中的状态作用空间是连续的并且是多维的。 状态和动作空间的高维性和连续性使表示选择过程难以实现自动化。
  • 状态逼近也是一个未解决的问题,目前正在深入研究中。
  • 我们如何根据收到的数据生成奖励函数?
  • 强化学习算法的成功很大程度上取决于奖励函数的质量,其对不同状态表示的覆盖范围以及与之相关的不确定性
  • 先验领域知识的重要性是什么?
  • 先验知识对于强化学习智能体的准确率更好。
  • 在尽可能少的剧集中更好地学习所需的先验知识量尚不确定,并且尚待解决。 因此,重复大量的迭代以确保更好的学习。
  • 在某些情况下,由于与环境相关的大量不确定性,先验知识可能无济于事。
  • 我们如何根据感知数据仔细学习?
  • 繁重的预处理和约束条件使感知到的大多数关键信息抽象化
  • 这种抽象是由于与处理不完整,模棱两可和嘈杂的传感器数据相关的限制
  • 当接收到数据信号时,在旅途中同时学习是一个活跃的研究领域
  • 我们如何处理与模型相关的误差和不确定性?
  • 为了减少所需的实际交互,请使用基于模型的方法
  • 仅在模拟中学习的策略不应直接传递给机器人
  • 由于与实际系统相关的不确定性,这个问题似乎是不可避免的
  • 创建足够强大的算法来处理与现实世界系统相关的不确定性的算法是一个活跃的研究领域

机器人强化学习的实际挑战

除了前面讨论的基本挑战之外,机器人强化学习中还存在更大的问题和实际挑战。 这是因为要克服实际挑战很重要,要使机器人以最小的错误率有效地工作。 为了避免实际挑战,必须执行以下任务:

  • 更好地利用数据集:
  • 人类能够在已经学到的知识和新的交互作用之上增强自己的学习。
  • 例如,一个孩子触摸火锅并迅速学会远离火锅。 同样,在步行或执行任何任务时,人类的表现也会得到改善,从而增强了学习能力。
  • 转移先前学到的知识并通过机器人在旅途中增强它是非常具有挑战性的。
  • 对于简单的任务,可以在学习中实现收敛,但是对于复杂的任务,由于缺少足够的数据来增强学习,因此学习可能永远不会收敛。
  • 更好地利用数据可以更好地处理噪声。
  • 创建处理环境变化的数据集以更好地表示状态是机器人强化学习中一个活跃的研究领域。
  • 执行更好的实验并不断评估它们以进一步改进。
  • 在机器人强化学习中执行大规模,真实世界的实验是一项艰巨的任务
  • AI 社区的研究人员正在为机器人强化学习进行实验的标准设置

要点

在本章中,我们经历了机器人技术领域强化学习算法所面临的主要挑战。 因此,下图显示了想要进入这一强大的机器人强化学习研究领域的学生的主要收获:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TOpZ3H3X-1681786603279)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/77acde64-835e-4b0f-a142-dc86e02ab6bc.png)]

总结

在本章中,我们介绍了强化学习算法的现状以及机器人技术方面的挑战。 我们还尝试详细了解每个挑战。 我们还了解了实际挑战及其建议的解决方案。 破解端到端机器人技术的解决方案将是 AI 社区最大的里程碑。 当前,算法和数据处理单元的不断改进面临挑战。 但是,我们看到机器人执行一般人工任务的日子已经过去了。 如果您想跟进机器人强化学习中的一些研究,那么您可以从以下选项开始:

在下一章中,我们将尝试涵盖另一个有趣的领域,即广告技术以及如何使用深度强化学习来破坏它。

十二、广告技术中的深度强化学习

到目前为止,在讨论强化学习应用研究领域的单元中,我们看到了强化学习如何破坏机器人技术,自动驾驶,金融投资组合管理以及解决诸如围棋之类的极其复杂的游戏领域。 强化学习可能会破坏的另一个重要领域是广告技术。

在深入了解问题陈述及其基于强化学习的解决方案之前,让我们了解所涉及的挑战,业务模型和投标策略,这将成为理解我们将尝试使用强化学习框架解决问题的基本前提。 我们将在本章中介绍的主题如下:

  • 计算广告挑战和出价策略
  • 展示广告中使用强化学习的实时出价

计算广告挑战和出价策略

广告是一种传达信息的方式。 计算广告的核心任务是在给定上下文中的给定用户和广告之间找到最佳匹配,其中适用以下因素:

  • 上下文/出价人:用户访问过且被认为适合广告的平台,例如:
  • 使用搜索引擎的用户。 因此,在这种情况下赞助广告是一个很好的计划。
  • 用户阅读网页。 因此,展示广告适合这种情况。
  • 观看任何视频(电影,剪辑,短视频等)的用户。 因此,短视频广告是好的。
  • 约束条件:对广告客户而言,最大的约束条件是预算有限和时间段有限。

在实现上述目标方面面临的核心挑战如下:

  • 设计市场和交易平台,以便利所有用户,广告商和发行人的所有参与利益相关者的工作,并使其价值最大化。
  • 为此完整的端到端过程构建基础结构:

这些元素之间的关系如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I9ksLxOm-1681786603279)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/8ffcbfc4-2627-463f-96df-c97be13a597e.png)]

广告中使用的商业模式

广告平台的业务模型由不同的模型组成,这些模型控制广告商必须使用广告平台支付的应付金额度量。 计算广告领域中有不同的指标,如下所示:

  • CPM:每千次展示费用
  • 在这种类型的模型中,广告商为每千次展示支付固定金额,其中的展示次数可以是点击次数,观看次数等
  • CPC:每次点击费用,每次点击付费PPC
  • 在这种类型的在线广告模型中,广告商向用户支付平台所有者对用户在广告链接上进行的每次点击操作的费用
  • CPA:每次操作费用/每次获取费用/每次获取费用PPA)/每次转化费用
  • 在这种类型的模型中,平台所有者(例如,运行广告的发布者)承担所有风险,而广告客户仅为已获得全部用户(换句话说,他们已经完成了所需操作,注册订阅或购买交易)。

赞助搜索广告

赞助搜索在在线广告中起着重要作用,尤其是在诸如 Google,Yahoo,Bing 等搜索引擎中。 由于每天都有大量的受众访问这些搜索平台,因此它们是最大的广告平台。

搜索广告管理

广告客户对某些搜索查询的每次点击率进行出价,这些查询由搜索引擎接收。 然后,将广告显示为那些搜索查询结果的一部分,并且,如果用户单击广告,则广告商必须支付投标金额。

Adwords

在所有广告客户将其每次点击费用的出价针对某些搜索查询进行出价后,平台会接收到数据,该数据包括不同广告客户的出价集以及每个广告客户的总预算,以及每个搜索查询的点击率CTR)的历史数据。

主要目的是响应每个查询选择一组广告,以使搜索引擎(即出价商)获得的收益最大化。 就像出价师的收入最大化一样,广告商的利润最大化也很重要,并且包括各种出价策略。

广告商的竞标策略

广告客户的出价策略主要包括在出价时针对不同关键字的预算优化。 重点讨论如下:

  • 广告客户可以更好地将预算分配给不同的关键字
  • 实现利润最大化的更好的出价策略

此外,在这个在线广告世界中,竞标是实时发生的。 您如何实现更好的实时出价策略以实现利润最大化?

  • 自主竞标智能体
  • 这些智能体将使用历史市场数据并直接与市场参与者进行交互,并根据此数据对自己的行为进行建模,从而帮助制定不同的决策策略
  • 使用强化学习的机器学习方法
  • 在第 3 章“Markov 决策过程”中可以看到马尔可夫决策过程MDP)的框架,在该框架中,我们,最大化了每个状态的预期效用,并通过最大化预期奖励总和,优化了每个状态到目标状态的路径。

展示广告中使用强化学习的实时出价

在线展示主要通过实时出价来提供,其中,展示广告的每次展示都是在通过用户访问产生的同时实时出价的。 自动实时地出价对于广告商最大限度地提高利润至关重要。 因此,需要设计一种学习算法,该算法可以基于历史数据实时设计出最佳的学习策略,以便根据即时和未来的回报跨不同的印象进行预算的动态分配。 在这里,我们将讨论由 Cai 等人在《使用强化学习的展示广告中的实时出价》中发布的强化学习框架来制定出价决策过程。

在蔡等人的这项研究中。 此外,我们考虑了在展示广告的情况下进行机器竞标,因为实时竞标是一项极富挑战性的任务,因为在在线展示广告的情况下,只要它由用户访问生成,广告印象的竞标就会立即开始。 在考虑了剩余预算,未来相关广告展示的可用性,出价结果和收到的反馈之后,为每次广告出价计算最佳出价,这些都可以帮助广告客户优化出价策略,从而更好地进行分配。

在这里,研究人员试图获得最佳出价函数,该函数可以最大化广告活动的关键表现指标,这些指标主要是总点击次数或总收入。 但是,这种方法主要在静态出价的情况下起作用,在这种情况下,出价发生在广告商为每个展示支付固定的平均费率的情况下。 在实时出价的情况下,它在展示级别是动态的,这意味着在一个平台中,根据生成的展示的需求,出价值会有所不同。

本研究试图通过使用强化学习框架来解决实时竞标挑战,并将其作为顺序决策来解决,其中:

  • 智能体将从广告商的角度学习
  • 整个广告市场和所有互联网用户形成环境
  • 状态空间包含出价信息和实时活动参数
  • 动作是要设定的买入价

因此,在每个步骤中,代表广告商出价者的智能体都会观察到由当前广告系列参数(例如预算和剩余时间)以及针对该特定广告印象的出价请求组成的状态。 然后,它发布一个动作; 例如,确定出价,中奖结果和用户反馈将一起作为对所采取措施的奖励,并将用于加强模型。 由于在现实世界中出价量很大,因此 MDP 框架已与基于 Q 网络的方法一起使用,该方法使用神经网络作为状态作用值函数逼近器。 竞标的基本强化学习框架如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZLHUvVxg-1681786603280)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/6807396c-6fb5-4a47-8cd9-2ba802d62c72.png)]

最初,预算b是提供给智能体的,此处的目标是在随后的出价t中获得尽可能多的点击。 以下是智能体考虑的重要信息:

  • 其余出价,即剩余出价编号t ∈ {0, ···, T}
  • 初始分配预算中剩余的剩余金额,即未用预算b ∈ {0, ..., B}
  • 特征向量x,代表出价请求

在每个剧集中,每次出价都会按顺序发送给智能体,智能体针对每个智能体根据当前信息tbx。 因此,智能体基于出价的剩余时间,初始分配预算中剩余的剩余量以及提出的投标请求的所有关键信息来决定适当的动作。

如上图所示,智能体维护剩余的出价t和剩余的预算b。 在每个时间步,智能体都收到一个竞标请求以及出价x ∈ X(特征向量空间),并且它必须确定竞标价格a

给定特征向量x的市场价格概率分布函数为m(δ, x),其中δ是市场价格, m是其概率。 因此,如果智能体以a ≥ δ的价格出价,则它将赢得竞标并支付δ,剩余预算将变为b-δ。 万一失败,智能体从竞标中得不到任何东西。 在此,如果将赢得出价视为预期奖励,则将预测 CTRpCTR)表示为θ(x)。 在每次出价之后,剩余的出价数量减少 1。当t = 0时,也就是说,没有剩余的出价,则剧集结束。 随着当前剧集的结束,剩余的出价编号和预算都将分别重置为TB

以下是前面的增强型学习框架要投标的实现的伪代码:

(In this part of the process: approximation of the optimal value function V(t, b) is done)
Inputs: probability distribution function of market price that is m(),
        average click through rate (CTR) , 
        episode length that is number of auctions in an episode T,
        budget B
Output: value function V(t, b)
Steps:
initialize V(0, b) = 0
for t = 1, 2, · · · , T − 1 do
    for b = 0, 1, · · · , B do
        enumerate  from 0 to min(, b) and set V (t, b) as per the following equation:     
    end for
end for
(In this part of the process: as per the converged optimal value function V(t, b) obtained from the above part, using that value function the action to bid price is performed)
Input: CTR estimator θ(x), 
value function V(t, b), 
current state()
Output: optimal bid price  in current state
Steps:
calculate the pCTR for the current bid request: 
for δ = 0, 1, · · · , min(, ) do
     if θc + V ( − 1,  − δ) − V ( − 1, ) ≥ 0 then
          ← δ
     end if
end for

总结

在本章中,我们了解了广告技术领域的基本概念和挑战。 我们还了解了相关的业务模型,例如 CPC,CPM 和 CPA,以及实时策略出价,以及为什么需要一个独立的智能体来使流程自动化。 此外,我们讨论了一种将在线广告中实时出价的问题状态转换为强化学习框架的基本方法。 这是用于强化学习的全新领域。 利用强化学习技术进行广告技术开发的更多探索性作品及其结果尚未发布。

在下一章中,我们将研究在计算机视觉领域,尤其是在对象检测中,如何使用强化学习。

十三、图像处理中的强化学习

在本章中,我们将介绍人工智能AI)社区(计算机视觉)中最著名的应用领域之一。 将 AI 应用于图像和视频已经持续了二十多年。 具有更好的计算能力,诸如卷积神经网络CNN)及其变体的算法在对象检测任务中表现良好。 在自动图像字幕,糖尿病性视网膜病变,视频对象检测,字幕等方面,已经采取了高级措施。

由于其令人鼓舞的结果和更通用的方法,将强化学习应用于计算机视觉成功地构成了研究人员的艰巨任务。 我们已经看到了 AlphaGo 和 AlphaGo Zero 如何胜过专业的人类围棋玩家,在每个步骤中,将深度强化学习方法应用于游戏板的图像。

因此,在本章中,我们将介绍计算机视觉中最著名的领域,对象检测以及强化学习如何尝试做到这一点。

深度强化学习中的分层对象检测

在本节中,我们将尝试理解如何根据 Bellver 等人(2016)在《使用深度强化学习的分层对象检测》中建议的框架,将深度增强学习应用于分层对象检测。 该实验展示了一种使用深度强化学习在图像中执行分层对象检测的方法,该方法主要侧重于承载更丰富信息的图像重要部分。 此处的目的是训练一个深度增强学习智能体,为其提供一个图像窗口,并将图像进一步分为五个较小的窗口,并且该智能体成功地将注意力集中在较小的窗口之一上。

现在,让我们考虑一下人类如何看待图像。 我们总是以顺序的方式提取信息以了解图像的内容:

  • 首先,我们专注于图像的最重要部分
  • 最重要部分提供的信息将引导我们进入图像的下一部分,重点关注
  • 只要图像的不同部分提供一些相关信息,上述步骤便会继续

在计算机视觉中,图像是在局部范围内进行分析的,我们使用一个像素大小的小窗口,然后滑动窗口以扫描整个图像。 传统上,这就是我们处理图像处理和分析任务的方式。 使用这种窗口滑动方法,可以独立地分析图像的不同部分,而不会相互关联。 可以通过图像的分层表示来实现不同图像部分的关联。

为了获得图像的分层表示,首先,像以前一样,顺序进行图像的自顶向下扫描,以聚焦于包含相关信息的图像的不同局部部分。 使用强化学习,可以使智能体具有足够的能力来检测图像中的对象。 智能体首先分析整个图像,然后决定要聚焦的部分,并且智能体在找到图像中的对象后最终停止。 在此实验中,图像窗口分为五个预定义的较小部分,其中四个部分代表四个象限,一个部分代表中心区域。

之所以使用强化学习,是因为智能体可以按不同的顺序探索层次结构表示,并且仍然可以达到目标。 这是因为其目标是在目标状态为找到包含对象的图像部分的情况下,最大化预期的总和回报。

相关作品

物体检测中的大多数传统解决方案包括窗口大小选择,然后将窗口滑动到图像上,聚焦于不同区域。 区域之间的关系从未捕获,所有区域都用于计算。 在这里,我们将简要讨论在对象检测领域进行的其他一些研究。 本节中对以下研究的详细说明超出了本书的范围,但这将为您提供对象检测领域中取得的进展的基本知识。

基于区域的卷积神经网络

在较早的对象分类模型中,CNN 非常慢且计算量很大。 此外,作为分类问题的成功完全取决于准确率。 通过在每层的所有区域上滑动窗口来完成 CNN 中的运行卷积。 因此,更多的边界框(通过滑动窗口分析的不同区域的总数)意味着更高的计算成本。

基于区域的卷积神经网络R-CNN)是首次采用选择性搜索方法来减少输入分类器的边界框的数量。 此外,选择性搜索使用纹理,强度,颜色等特征来创建对象的可能盒子位置。 现在,这些盒子可以送入 CNN 模型。

因此,R-CNN 的关键组件包括:

  • 生成包含对象的可能的盒子区域(创建感兴趣的区域)
  • 将这些生成的框区域输入到 CNN
  • 然后,将 CNN 的表示输出馈送到 SVM 层,以预测每个框区域的类别
  • 通过边界框回归来分别优化这些框区域,以实现更好的定位

空间金字塔池网络

通过消除对图像不必要区域的关注,R-CNN 的速度比普通 CNN 快,但 R-CNN 实际上仍然非常慢,因为 R-CNN 所关注的区域数量足够高,因此总体计算仍然很昂贵 。

空间池金字塔网络SPP-net)是解决此问题的首次尝试。 在 SSP-net 中,整个图像的 CNN 表示仅计算一次,然后进一步用于计算通过选择性搜索方法生成的每个盒子区域的 CNN 表示。 这是通过在卷积表示的对应于框区域的那部分上进行合并来完成的。 通过考虑中间层的下采样,通过将盒区域投影到卷积层上来计算对应于盒区域的卷积表示部分。

与传统 CNN 方法中的最大池化不同,空间池化是在 SPP-net 中的最后一个卷积层之后进行的。 该空间池化层将任意大小的盒子区域划分为固定数量的容器,并在每个容器上进行最大池化。

SPP 网络的一大缺点是,只能微调网络的全连接层,而不能进行不会发生反向传播的空间池化层。

Fast R-CNN

首先,是 Fast R-CNN(由 Microsoft Research 的 Ross Girshick 于 2015 年提出)提出了在图像的不同区域之间共享卷积输出的想法:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4fodiQZ2-1681786603280)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/a1a79d8b-a348-48f6-87b4-5cc9a116deed.png)]

Ross Girshick 的 Fast R-CNN

在 Fast R-CNN 中,将输入图像和多个兴趣区域作为 CNN 的输入。 完成 RoI 的合并以获得固定大小的特征映射,然后通过全连接层FC)发送以获得特征向量。 R-CNN 每个兴趣区域具有两个输出向量,如下所示:

  • Softmax 概率
  • 每类边界框回归偏移

Fast R-CNN 解决了与 SPP 网络相关的关键问题; 由于空间池化层未进行微调,因此,Fast R-CNN 提供了端到端的学习网络。 Fast R-CNN 使用类似于最大池梯度计算的简单反向传播,但池区域重叠。

此外,与 R-CNN 不同,Fast R-CNN 结合了边界框回归和神经网络训练,而 R-CNN 则使用边界框回归单独进行此区域优化,这有助于更好地定位。 因此,在 Fast R-CNN 中,分类和定位不需要单独的网络。 结果,相对于之前开发的任何其他对象检测模型,总的训练时间显着减少,并且由于端到端学习,与 SPP 网络相比,其准确率更高。

Faster R-CNN

Faster R-CNN 以其名字命名。 它比以前的 Fast R-CNN 更快。 这是通过用称为区域提议网络的非常小的卷积网络替换 Fast R-CNN 的最慢部分(感兴趣的生成框区域)的选择性搜索来执行相同的任务来生成的, 极有可能包含对象(感兴趣的区域)。

Faster R-CNN 实现了锚框的概念,以处理宽高比和对象比例的变化。 对于每个区域,都有三个用于缩放比例和三个纵横比的锚点框。 因此,对于每个位置,我们有九个框被馈送到区域提议网络RPN),以预测该区域是背景还是前景的可能性。 边界框回归用于改善每个此类区域的锚框。 因此,RPN 输出可变大小的边界框及其类概率。

因此,RPN 给出了各种大小的边界框,每个边界的概率与每个类的对应概率相同,其余网络类似于 Fast-RCNN。 Faster-RCNN 的速度是 Fast-RCNN 的 10 倍,具有相似的精度,从而使其成为可用的最精确的对象检测模型之一。 下表显示了 R-CNN 不同变体的速度分析:

类型 每张图像的测试时间(以秒为单位) 加速
神经网络 50 1 倍
Fast R-CNN 2 25 倍
Faster R-CNN 0.2 250 倍

YOLO(你只看一次)

YOLO 通过执行回归学习类概率和边界框的大小,从而对输入图像执行对象检测。 YOLO 将图像划分为SxS网格,每个网格预测N边界框和置信度。 该置信度值量化边界框的准确率和对象在边界框中的出现。

YOLO 还可以为每个盒子预测训练中所有类的类得分。 因此,图像中所有框上的类别得分的总和也有助于计算整个图像的类别概率,从而有助于预测对象。 由于将图像划分为SxS网格,并且针对每个输出N个边界框,因此,正在预测SxSxN框。 但是,由于我们具有盒子的置信度得分并使用显着的阈值,因此可以删除所有低置信度(不包含对象)的盒子。

而且,YOLO 一次扫描整个图像,而无需执行先生成兴趣区域,然后以较早的方法将这些区域馈入 CNN 的步骤。 因此,在 YOLO 中运行,图像需要一次经过 CNN,并且实时生成结果。

单发探测器

单发检测器SSD)以其在速度和准确率之间的平衡而著称。 就像 YOLO 一样,SSD 仅在输入图像上运行一次 CNN 即可学习表示形式。 在此表示形式上运行一个小的3x3卷积核,以预测边界框和类概率。 为了处理比例,SSD 会在多个卷积层之后预测边界框。 由于每个卷积层以不同的比例运行,因此它能够检测各种比例的对象。

下图显示了 Fast R-CNN,Faster R-CNN,YOLO 和 SSD 的表现指标:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N5nrwGSS-1681786603280)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/f32fc789-7256-486f-a907-7820f5bc1461.png)]

分层对象检测模型

在这里,我们将尝试通过强化学习框架来实现对象检测问题,在强化学习框架中,强化学习智能体将与环境图像进行交互,并且每步,智能体将决定关注哪个区域,以实现目标。 以最少的时间步长找到对象。 问题陈述以马尔可夫决策过程MDP)框架表示,其不同参数讨论如下:

状态

智能体状态的第一部分由使用两个模型提取的视觉特征定义,它们是:

  • 图像缩放模型
  • Pool45-作物模型

在下面的“模型和训练”部分中说明了这两种变化。

智能体状态的第二部分是存储向量,它捕获了智能体为了搜索对象而采取的过去四个时间步骤的动作。 在每个时间步长,都有六种可能的操作(在下面的部分中进行介绍)。 因此,存储向量的尺寸为4 * 6 = 24。 已经发现该存储向量对于稳定搜索轨迹很有用。

动作

有两类可能的操作,如下所示:

  • 运动动作暗示着当前观察区域的变化
  • 终端操作,指示已检测到对象并且搜索已结束

每个移动动作只能从预定义的层次结构在区域之间自上而下转移注意力。 图像被进一步分为五个较小的子区域进行聚焦。 因此,在创建为的五个子区域(下图中)中构建了层次结构:

  • 四个区域
  • 一个中央重叠区域

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aF4imjUi-1681786603280)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/f9a7d380-b75c-4007-aee2-e3861547a2ec.png)]

因此,存在五个运动动作,每个运动动作与子区域相关联,并且具有一个终端动作,其被选择以指示成功检测到对象的搜索的结束。

奖励

运动动作的奖励函数由以下公式表示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JaGf10Jb-1681786603281)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/3cf07875-512e-4f7f-94a7-1d5923e10a1d.png)]

下式表示的终端动作的奖励函数:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vJSQZr7M-1681786603281)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/b2183a0c-1b28-4ad5-a2c0-087defa08e59.png)]

此处,g是基本事实,b是当前步骤中的区域,b'是下一步中的新区域,而 IoU 是事实真相之间的交并比。

交并比IoU)是对象检测中的一个指标,其中有两个重叠的边界框。 首先,计算盒子的交点,即重叠的面积。 其次,计算重叠框的并集,将整个框的面积之和减去重叠面积。 然后将相交除以并集得到 IoU。

对于移动动作,对于特定状态s,朝着区域b'移动的动作将获得更好的回报,该区域的地面实况g大于 IoU g与上一步中考虑的区域b的关系。 否则,行动将受到负面奖励。

对于终端动作,如果具有基本事实的当前区域b的 IoU 大于某个阈值τ,则奖励为正,否则为负。

模型与训练

在这里,训练了一个深度 Q 网络,针对该网络使用两个模型来创建智能体状态表示的一部分。 这两种模型如下:

  • ImageZooms 模型
  • Pool45-作物模型

对于 Image-Zooms 模型,每个区域的大小调整为224x224,并通过 Pool5 层馈入 VGG-16,以获得特征映射。 对于 Pool45-Crops 模型,全分辨率的图像通过 Pool5 层输入到 VGG-16。 合并从整个图像中提取的所有兴趣区域ROI)的特征映射。

这两个用于特征提取的模型输出7x7的特征映射,该图被馈送到公共块中(如以下架构所示)。 这些特征映射和存储向量(前面讨论过)被馈入由两个全连接层组成的深层 Q 网络,每个层各有 1024 个神经元。 每个全连接层都具有 ReLU 激活函数,并经过丢弃训练:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1M0CEhNl-1681786603281)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/c804ff2f-7264-4eac-99a1-8aeb5a3fd5a7.png)]

**分层对象检测模型(架构)**来自《具有深度强化学习的分层对象检测》,Bellver 等,2016 年

训练细节

通过 ε 贪婪方法学习了一个深层 Q 网络,该网络以ε = 1(完全 100% 探索)开始,并以 0.1 的步长直到 0.1(仅 10% 探索,90% 开发)减少。 在探索过程中,选择随机动作是因为通过更好的探索,可以避免局部最小值,并且还可以揭示通往目标状态的未知优化路径。 而且,为了帮助智能体学习终端动作,每当当前区域具有IoU > τ时,智能体便被迫采取该动作,这反过来又加速了学习过程。

我们在训练时发现的一个事实是,我们不应强加要首先看图像的哪个对象。 在每个时间步长,智能体都将专注于当前区域中与真实情况性重叠程度最高的对象。 这样,目标对象有可能在自顶向下的探索过程中发生变化。

从正态分布和 Adam 优化器初始化深度 Q 网络的权重和偏差参数,以使损失最小化。 高伽玛(折扣系数)用于平衡当前和未来的回报。

使用深度强化学习进行对象检测的这种方法显示了一种由学习智能体自上而下探索区域层次结构的方法。 因此,通过适当的层次结构,可以在更少的时间步长内正确检测对象,如下图共享的结果所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hrcapRgV-1681786603281)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/85511cca-8996-4088-9567-e5fea761e566.png)]

总结

在本章中,我们介绍了对象检测中的各种最新技术,例如 R-CNN,Fast R-CNN,Faster R-CNN,YOLO,SSD 等。 此外,我们探索了 Bellver 等人(2016)在《使用深度强化学习的分层对象检测》中所提供的方法。按照这种方法,我们学习了如何创建 MDP 框架以进行对象检测,并以最短的时间步长以自上而下的探索方法分层检测对象。 图像中的对象检测是计算机视觉中的一种应用。 还有其他领域,例如视频中的对象检测,视频标记等等,在这些领域中,强化学习可以创建最先进的学习智能体。

在下一章中,我们将学习如何在 NLP(自然语言处理)领域应用强化学习。

十四、NLP 中的深度强化学习

大约一年前,在自然语言处理NLP)中进行强化学习成为人工智能界研究的热点。 2017 年下半年发布了大多数适合在 NLP 中使用强化学习的研究出版物。

在任何领域中使用强化学习框架的最大原因在于,以状态的形式表示环境,详尽列出了环境中所有可能的动作,以及特定领域的奖励函数,通过该函数来实现目标。 最优化的行动路径。 因此,如果系统具有许多可能的动作,但是未给出正确的动作集,并且目标高度依赖于系统的不同选项(动作),则强化学习框架可以比现有的监督或非监督模型更好地对系统进行建模。

为什么在 NLP 中使用强化学习?

  • 面向 NLP 的系统(例如文本摘要,对话框生成,问题解答,机器翻译等)确实具有典型的强化学习场景。 例如,对话系统具有增强型学习智能体,该学习智能体根据接收到的查询生成响应,其中接收到的查询可以是代表当前状态的信号,并且可以采取某种行动来生成响应,智能体可以以奖励的形式对此进行反馈。
  • 有很多隐藏变量,它们以隐藏状态的形式存在,还有更多。 决定要包括哪个潜在变量也可以表示为与某些奖励相关的动作。
  • 当前,对于序列到序列模型,我们有一个 BLEU 分数(请参见附录 A,“强化学习中的其他主题”),该分数用于评估生成的语言和实际输出之间的错误分数,但 BLEU 分数只能在生成输入的整个预测语言之后进行评估。 它无法评估代持续进行的时间; 因此,它无法改善旅途中的流程。

根据迄今为止进行的积极研究,强化学习为破坏和增强 NLP 下列领域的成果提供了机会:

  • 文字摘要
  • 问题回答
  • 对话生成
  • 对话系统
  • 基于知识的质量检查
  • 机器翻译
  • 文字生成

在这里,我们将介绍在文本摘要和问题解答中使用强化学习的方法,这将使您对研究人员如何在这些领域中收获强化学习的好处有一个基本的了解。

文字摘要

文本摘要是通过保留文档的重要信息自动生成作为输入输入的文档测试的摘要文本的过程。 文本摘要以简洁的方式压缩了大量信息; 因此,摘要在与新闻/文章,文本搜索和报告生成相关的应用中起着重要作用。

有两种类型的汇总算法:

  • 提取式摘要:通过复制输入文本中的部分文本来创建摘要
  • 抽象式摘要:通过改写文本或使用输入文本中未包含的新词来生成新文本

为机器翻译创建的基于注意力的编码器解码器模型(Bahdanau 等,2014)是一个序列到序列模型,能够通过获得良好的 ROUGE 得分来生成具有良好表现的抽象摘要(请参见附录 A,“强化学习中的其他主题”)。 在短输入序列上的表现很好,并且随着输入文本序列长度的增加而降低。

在 CNN /每日邮件数据集的更大输入序列和输出摘要数据集上(Hermann 等,2015),Nallapati 等人(2016)提出了抽象摘要模型的应用,其中输入序列最多为 800 个标记,而摘要最多为 100 个标记。 对本实验的分析表明,与较大输入序列的基于注意力的编码器-解码器模型相关的问题是,它们通常会生成异常摘要,这些摘要通常由重复的短语组成。 这是因为仅通过监督学习方法进行训练的编码器解码器模型通常会遭受曝光偏差,即在训练过程中的每个时间步骤都提供了真实情况(实际文本)的假设。

在这里,我们将讨论 Paulus 等人(2017 年 11 月)的研究出版物《抽象摘要的深度强化模型》。 它向我们介绍了一种抽象摘要的新模型,该模型在 CNN /每日邮件数据集以及纽约时报NYT)数据集上都获得了强大的结果(Sandhaus,2008 年)。

所提出的模型通过使用神经内部注意模型混合学习目标来解决上述重复短语的问题,从而获得了这些最新结果:

  • 神经内部注意模型:它由编码器中的时间内部注意组成,以记录每个输入标记的注意权重和顺序解码器中的内部注意模型来记录解码器已经生成的单词。
  • 混合学习目标:这是最大似然交叉熵损失(通常在有监督的深度学习框架中使用)和从策略梯度强化学习中获得的奖励的组合,以减少暴露偏见。 因此,当使用监督学习的标准单词预测与强化学习的全局序列预测训练相结合时,所得的摘要变得更具可读性,而不是重复短语。

该提议的方法在 CNN /每日邮件数据集上进行了测试,并获得 41.16 的 ROUGE-1 评分,相对于以前的抽象摘要方法而言,这是一个显着的改进。 此外,人工评估还表明,与早期方法相比,所得到的摘要更具可读性。

在下一节中,我们将简要介绍该方法,以了解如何使用强化学习来创建最新的抽象摘要模型。

用于抽象摘要的深度强化模型

如前所述,此方法包含两个重要方法:

  • 神经内部注意模型
  • 混合学习目标

神经内部注意模型

本节说明了编码器-解码器网络上的神经内部注意模型。 此处,x = [x[1], x[2], ..., x[n]]代表输入(文章)标记的序列,y = [y[1], y[2], ..., y[m]]代表输出(摘要)标记的序列。 网络的编码器部分由双向 LSTM 组成(请参见附录 A,“强化学习”中的其他主题)。 因此,使用双向 LSTM 读取输入序列x,该 LSTM 从x[i]的嵌入向量计算隐藏状态h[i]^e = [h[i]^e_fwd || h[i]^e_bwd],其中||表示向量的连接。

在框架的解码器部分,使用单个 LSTM,该 LSTM 从y[t]的嵌入向量计算隐藏状态h[t]^d。 在时间步零处的初始隐藏状态(即h[0]^d)使用编码器的最后一个隐藏状态(即h[n]^e)进行初始化。 因此,h[0]^d = h[n]^e

解码时的输入序列上的时间内部注意

解码时,在每个时间步t时,时空内部注意力函数用于伴随编码器输入序列的重要部分以及解码器的隐藏状态和先前生成的单词(在早期的解码过程中)t之前的时间步长)。 这种注意方法用于防止在不同时间步长的解码过程中出现输入序列的相同部分。

e[ti]给出在解码时间步长t处的隐藏输入状态h[i]^e的关注分数。 因此,e[ti] = f(h[t]^d, h[i]^e),其中f是返回e[ti]标量值的任何函数。

注意权重进一步标准化(如下所示),以惩罚在先前的解码步骤中已收到较高注意值的那些输入标记。 这为我们提供了新的时间注意力得分e'[ti]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NKPFBlk7-1681786603282)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/d57898fc-cc80-4ac7-8363-e854bf9e20d1.png)]

最后,在输入中计算归一化注意力分数α[ti]^e,然后将其用于计算输入上下文向量c[t]^e

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5O0GHbNk-1681786603282)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/ee0ab9db-8573-4ed1-b049-d55d701be70a.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1y1NnjuQ-1681786603282)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/18b85fc8-e893-40a3-896a-742d5071edb1.png)]

解码器内部注意

即使是时间内部注意函数,也可以确保在每个解码步骤中,都参与了编码输入的不同部分,但解码器仍可以在长序列中生成重复的短语。 为了防止这种情况,来自先前解码的序列的信息也可以被馈送到解码器中。 来自先前解码步骤的信息将帮助模型避免重复相同的信息并导致结构化的预测。

为了实现这种方法以合并来自先前解码步骤的信息,应用了解码器内部注意。 当前的编码器-解码器模型中未使用此方法进行抽象总结。 对于解码时的每个时间步t,都会计算新的解码器上下文向量c[t]^d。 由于在解码时为第一时间步生成的序列为空,因此,将用于时间步 1 的初始解码器上下文向量(即c[1]^d)设置为零向量。

对于t > 1,按以下方式计算时间关注分数e[tt']^d,归一化关注分数α[tt']^d和解码器上下文向量c[t]^d

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-npuZT6I7-1681786603282)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/960f289d-1bee-416d-89e4-1d335b0c0db3.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hzEE1BKz-1681786603282)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/d33ab3c9-5273-4ec6-b514-e2e1e08eb7fe.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1NoVvibt-1681786603283)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/cb67b306-d4ce-4415-97c8-3fda67099ea8.png)]

下图显示了两个上下文向量C的使用(绿色为上下文编码器向量,蓝色为上下文解码器向量),以及该向量的当前隐藏状态H。 解码器生成输出序列的新单词:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DubPoDhI-1681786603283)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/07e5144e-396a-479d-9b24-02f4f54dce41.png)]

Paulus 等人(2017)在《用于抽象摘要的深度强化模型》中发表的时间内部注意和解码器内部注意

标记生成和指针

在确定输出序列标记时,解码器决定使用 softmax 层生成标记,或者使用指针机制指向输入中的稀有重要标记,并将其复制为输出序列标记。 在每个解码步骤,使用切换函数来决定是使用标记生成还是使用点来复制输入标记。 u[t]定义为二进制值,如果使用指针机制,则等于 1,否则等于 0。因此,y[t]作为输出标记的概率由以下公式给出:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-at283MPU-1681786603283)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/ef9ea2f7-76ec-4ce4-a48d-fd822975020e.png)]

在这里,标记生成层创建以下概率分布:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K22YDQzN-1681786603283)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/3174ba55-4632-4832-aac4-1a27eec17681.png)],

这里,W_outb_out是连接到输出节点的解码器网络的权重和偏差参数,并且指针机制生成以下概率分布来复制输入标记x[i]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ScBgx6El-1681786603283)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/e48ae8a5-9f5f-443c-bc57-a71c260e48b9.png)]

使用指针机制(即p(u[t] = 1))的概率由以下公式给出:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EG8R1J0b-1681786603284)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/dad29271-c02b-4fb9-9cd5-e418dff4385a.png)]

在此,σ是 Sigmoid 激活函数。

混合学习目标

在本节中,使用监督学习和强化学习的组合来训练编码器解码器网络上先前提出的神经内部注意模型的框架。

带有教师强迫的监督学习

教师强迫算法(由 Williams 等,1989)是训练解码器 RNN 用于序列生成的最广泛使用的方法。 在解码过程中的每个时间步,教师强制算法都将最大似然损失降至最低。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kEaCYCDj-1681786603284)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/f0236bfa-e144-4665-ba34-4b888571d537.png)]定义为给定输入序列x的地面真值输出序列。 然后,使用教师强迫算法进行监督学习的最大似然目标将是最小化损失函数,如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b9UcwJap-1681786603284)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/6b41f89e-eec6-4e31-8565-861e1df1bfc8.png)]

但是,将L_ml最小化的目标并不总是产生最佳结果。 此问题背后的两个主要原因如下:

  • 暴露偏差:在训练过程中,神经网络知道直到下一个标记的真实情况序列,但在测试时并非如此。
  • 多个输出候选(即多个可能有效的摘要):有更多方式可以安排标记以生成多个摘要。 最大可能性目标没有考虑这种可能性。

策略学习

这里的思想是学习一种最大化度量标准而不是最小化从最大似然目标获得的损失的策略。 为此,使用了强化学习方法,其中将自关键策略梯度算法用于训练。 对于此训练,每次训练迭代都会生成两个单独的输出序列:

  • 通过在每个解码时间步长处从p(y[t]^s | y[1]^s, ..., y[t - 1]^s, x)的概率分布中采样来获取y^s
  • y_hat是通过最大化每个时间步的输出概率分布而获得的基线输出

因此,奖励函数r可以是我们选择的任何评估指标,目的是最大程度地减少以下损失:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JJu2lMlQ-1681786603284)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/9c8bfb33-6741-411c-b7f0-a47d38dcb6e9.png)]

最小化L_rl等同于最小化采样序列y^sL_ml。 因此,为了使L_rlr(y^s)最小化,需要增加输出序列的奖励,使其变得高于基线y^s的奖励,从而增加了预期的奖励。

因此,强化学习框架用于学习最大化特定离散量度的策略。 强化学习框架总结如下:

  • 操作u[t] ∈ generate(0), copy(1)和单词y[t]^s
  • 状态:编码器和先前输出的隐藏状态
  • 奖励:ROUGE 得分或任何其他评估指标

混合训练目标函数

由于最大似然目标基于先前生成的标记计算了下一个标记的概率,而诸如 ROUGE 之类的奖励指标有助于通过困惑度来衡量人类的可读性,因此这两种方法都可用于得出混合学习目标函数,如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lXFvxl6h-1681786603284)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/1f5593f6-9ff7-44e2-b877-79ff4e7cfb40.png)]

此处,γ是缩放系数,用于平衡L_rlL_ml的大小差异。

文字问答

问题回答是提供文档上下文以及在给定文档上下文中存在其答案的问题的任务。 现有的问题回答模型用于优化交叉熵损失,该模型用于鼓励准确答案并惩罚与准确答案同等准确的其他可能答案。 这些现有的问题回答模型(Xiong 等人,2017 年的最新动态动态求职网络)经过训练,可以从文档上下文中输出所问问题的准确答案范围。 实际真实情况答案的开始和结束位置将用作此监督学习方法的目标。 因此,该监督模型在两个位置上都使用了交叉熵损失,目的是使两个位置上的总损失最小化。

如我们所见,优化是通过使用位置来完成的,评估是通过使用答案的文本内容来完成的。 因此,优化和评估方法之间存在脱节。 由于这种脱节,许多文本上相似的答案由于其在其他位置的存在而受到惩罚,就好像它们是不正确的答案一样,这与真实情况答案的位置不同。

为了解决这个问题,熊等人发表了他们的研究《DCN+:问答的混合目标和深度残差协作》,*提出了使用混合目标函数的方法,该函数是交叉熵损失和自我批判策略学习的组合。 这个混合目标使用从单词重叠中获得的奖励来解决现有模型中评估与优化之间的脱节问题。

提出的新框架对于需要捕获长期依存关系的长问题表现更好,能够获得 75.1% 的精确匹配准确率和 83.1% 的 F1 分数的强大结果,而集成模型获得 78.9% 的精确匹配准确率和 86.0% F1 分数。

因此,混合目标的方法提供了两个好处:

  • 强化学习目标还鼓励在文字上相似的答案
  • 交叉熵通过鼓励更正确的部署轨迹来帮助策略学习

除了混合训练目标之外,还通过使用深度残差共同注意编码器建立输入的更好表示,对现有的动态共同注意注意网络进行了改进(Xiong 等人,2017 年)。

来自 Stanford 问答数据集SQuAD)(Rajpurkar 等人)的一些示例如下:

Context/Passage 1:
Nikola Tesla (Serbian Cyrillic: Никола Тесла; 10 July 1856 – 7 January 1943) was a Serbian American inventor, electrical engineer, mechanical engineer, physicist, and futurist best known for his contributions to the design of the modern alternating current (AC) electricity supply system.
Questions and Answers:
In what year was Nikola Tesla born?
Ground Truth Answer: 1856
What was Nikola Tesla's ethnicity?
Ground Truth Answer: Serbian
What does AC stand for?
Ground Truth Answer: alternating current
Context/Passage 2:
Tesla went on to pursue his ideas of wireless lighting and electricity distribution in his high-voltage, high-frequency power experiments in New York and Colorado Springs, and made early (1893) pronouncements on the possibility of wireless communication with his devices. He tried to put these ideas to practical use in an ill-fated attempt at intercontinental wireless transmission, his unfinished Wardenclyffe Tower project. In his lab he also conducted a range of experiments with mechanical oscillators/generators, electrical discharge tubes, and early X-ray imaging. He also built a wireless controlled boat, one of the first ever exhibited.
Questions and Answers: What were some of Tesla's experiments?
Ground Truth Answer: mechanical oscillators/generators, electrical discharge tubes, and early X-ray imaging
Other than New York where did Tesla conduct experiments?
Ground Truth Answer: Colorado Springs

现有的最新动态共同注意网络DCN)将上下文/段落和问题视为两个不同的输入序列,并输出输入上下文中的答案范围的开始和结束位置。 下图简要概述了 DCN:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J7GLxHkX-1681786603285)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/51195a18-a5a6-4e7f-bd0e-e44d85094364.png)]

动态共同注意网络(由 Xiong 等人撰写,2017 年)

在下一部分中,我们将简要介绍该方法,以了解如何使用强化学习来创建最新的问题回答模型。

用于问答的混合目标和和深度残差共同注意

本研究中提出的框架基于 DCN 模型(请参见上图),该模型由共同注意编码器和动态解码器指针组成。 编码器分别对问题和文档上下文进行编码,然后通过覆盖范围形成二者的协作表示,然后解码器根据覆盖范围输出开始和结束位置估计。

在 DCN+ 的新框架中,原始 DCN 框架引入了两个新更改。 它们如下:

  • 添加深度残差共同注意编码器
  • 混合训练目标函数,是最大似然交叉熵损失函数和强化学习的奖励函数的组合

深度残差共同注意编码器

由于原始的 DCN 仅具有一个单层涂布编码器,因此形成输入序列的复杂表示的能力也受到限制。 因此,对共同注意保持编码器进行了两种修改。 它们如下:

  • 通过堆叠许多共同注意增强层来修改共同注意增强编码器,以便网络能够创建更好的复杂表示形式
  • 合并每一层的所有共同注意输出,以减少信号路径长度:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eDJqbEK3-1681786603285)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/1cb246af-3935-42e7-b90b-7ca94bf88912.png)]

深度残差共同注意编码器,由 Xiong 等人发表在《DCN+:问答的混合目标和深度残差共同注意》

使用自我批评性策略学习的混合目标

DCN 在答案的开始位置创建概率分布,并在答案的结束位置创建单独的概率分布。 在每个解码时间步长,模型会汇总每个位置的交叉熵损失。 问答任务包括两个评估指标。 它们如下:

  • 完全匹配:一个二进制值,指示模型输出的答案范围与真实情况答案范围具有精确的字符串匹配
  • F1 分数:该值用于量化模型在预测答案范围和真实情况答案范围之间的单词重叠程度

根据原始的 DCN 框架,目标函数和评估指标是不连贯的,因此,对确切的匹配给予了极大的鼓励。 举例来说,有两个答案范围AB,但它们都不与真实情况答案范围匹配,但是A具有完全匹配的字符串,而B没有字符串匹配。 然后,在这种情况下,尽管根据先前的完全匹配指标,A是正确的输出,但仅交叉熵损失的旧客观方法将同等地惩罚AB和 F1 得分。

如果我们检查 F1 分数,则A的量度显示单词在跨度A中重叠且具有真实答案范围,但答案B则不是这种情况。 因此,F1 分数与自关键策略梯度算法一起用作训练的奖励函数。

总结

在本章中,我们学习了强化学习如何破坏 NLP 的领域。 我们研究了在 NLP 中使用强化学习的原因。 我们涵盖了 NLP 中的两个主要应用领域,即文本摘要和问题回答,并了解了在现有模型中如何实现强化学习框架以获得最新结果的基础。 NLP 中还有其他实现了强化学习的应用领域,例如对话生成和机器翻译(讨论它们不在本书的范围之内)。

这使我们结束了深度强化学习的惊人旅程。 我们通过了解概念开始了基础知识,然后使用 TensorFlow 和 OpenAI Gym 实现了这些概念,然后遍历了很酷的研究领域,在这些领域中正在实现核心强化学习。 我希望旅途很有趣,我们能够建立最好的基础。

十五、强化学习的其他主题

在本附录中,我们将介绍一些超出本书范围的主题。 但是,我们将简要提及它们,并以外部链接结尾这些主题,以供您进一步探索。 本书已经涵盖了深度强化学习理论以及活跃研究领域的大多数高级主题。

连续动作空间算法

深度强化学习拓扑中有许多连续的动作空间算法。 我们在第 4 章,“策略梯度”中较早介绍的其中一些主要是随机策略梯度和随机演员评论家算法。 随机策略梯度与许多问题相关,例如由于观察值和奖励分配的连续变化而导致的非平稳数据导致难以选择步长,其中差的步长会对策略网络参数的学习产生不利影响。 因此,需要一种在训练策略网络参数时可以限制此策略搜索空间并避免不良步骤的方法。

在这里,我们将尝试介绍一些高级连续动作空间算法:

  • 信任区域策略优化
  • 确定性策略梯度

信任区域策略优化

信任区域策略优化TRPO)是一种用于优化策略的迭代方法。 TRPO 优化了大型非线性策略。 TRPO 通过对输出策略分布施加约束来限制策略搜索空间。 为此,对策略网络参数使用 KL 散度损失函数(D_max[KL](θ_old, θ))来惩罚这些参数。 新策略和旧策略之间的 KL 差异约束称为信任区域约束。 由于此约束,策略分布中不会发生大规模更改,从而导致策略网络尽早收敛。

TRPO 由 Schulman 等(2017)发布在名为《信任区域策略优化》的研究出版物中。 在这里,他们提到了一些实验,这些实验证明了 TRPO 在不同任务上的强大表现,例如学习模拟机器人游泳,玩 Atari 游戏等等。 为了详细研究 TRPO,请访问出版物的 arXiv 链接

确定性策略梯度

确定性策略梯度由 Silver 等人提出在名为《确定性策略梯度算法》的出版物中。 在连续行动空间中,用贪婪方法改进策略变得困难,并且需要全局优化。 因此,最好按以下方向在Q函数的梯度方向上更新策略网络参数:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b3xPqnVB-1681786603285)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/b2b45023-7595-4b6f-8f0f-9fba913f1774.png)]

其中,μ[θ](s)是确定性策略,α是学习率,θ表示策略网络参数。 通过应用链式规则,策略改进可以显示如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EgKano20-1681786603285)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/c5f5537b-51ac-414c-9dd1-d8461a257262.png)]

可以将先前的更新规则合并到策略网络中,在该策略网络中使用随机梯度上升来更新参数。 这可以通过确定性的行为者批判方法来实现,其中批评者估计动作值函数,而行为者从批评者获得其梯度以更新其参数。 如 Silver 等人在《确定性策略梯度算法》中所述。 在实验之后,他们能够成功得出结论,确定性的策略梯度比随机的梯度更有效率。 此外,确定性演员评论家的表现优于随机行动者。 有关此主题的详细说明超出了本书的范围。 因此,请转到前面提到的研究出版物链接。

NLP 序列模型中的评分机制

两种评分机制用于评估第 14 章“NLP 中的深度强化学习”中提到的方法,如下所示:

BLUE

在机器翻译,文本摘要,图像字幕等中使用的 NLP 顺序模型中的最大挑战之一是评估的适当度量。

假设您的用例是机器翻译; 您有一个德语短语,并且有多个英语翻译。 他们看起来都不错。 因此,如果有多个同样好的答案,您如何评估机器翻译系统? 这不同于图像识别,在图像识别中,目标只有一个正确答案,而没有多个同样好的正确答案。

例如:

  • 德语句子Die Katze ist auf der Matte

先前德语句子的多参考人为翻译如下:

The cat is on the mat
There is a cat on the mat

如果目标只是一个正确的答案,那么准确率的测量很容易,但是如果存在多个同样正确的可能性,那么在这种情况下如何测量准确率? 在本节中,我们将研究 BLEU 分数,BLEU 分数是一种评估指标,用于在出现多个同等正确答案的情况下,测量准确率。

什么是 BLEU 分数,它的作用是什么?

BLEU 分数由 Papineni 等(2002)发表在他们的研究出版物《BLEU:一种自动评估机器翻译的方法》中。 BLEU 代表双语评估计划。 对于给定的机器生成的输出(例如,机器翻译为翻译或文本摘要为摘要),分数可衡量输出的优劣,即,机器生成的输出与任何一个可能的人工生成参考有多接近(可能的实际输出)。 因此,输出文本离任何人工生成的参考越近,BLEU 得分就越高。

BLEU 分数背后的动机是设计一种度量标准,该度量标准可以像人类评估者一样相对于人类产生的引用来评估机器产生的文本。 BLEU 评分背后的直觉是,它考虑了机器生成的输出,并探讨了这些单词是否存在于多个人工生成的引用中的至少一种。

让我们考虑以下示例:

  • 输入德语文本Der Hund ist unter der Decke

假设我们有两个人为产生的参考,如下所示:

  • 参考 1The dog is under the blanket
  • 参考 2There is a dog under the blanket

并说我们的机器翻译生成了可怕的输出,即the the the the the the

因此,精度由以下公式给出:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DsxqOpOG-1681786603285)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/e60bf3f0-8f53-4db8-a667-117cb9a3f50a.png)]

因此,以下情况适用:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZJFjBqiA-1681786603286)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/2dd38a8b-3319-449e-bddc-5d8790fea753.png)]

由于the在输出中出现了六次,而the的每个出现在至少一篇参考中,因此精度为 1.0。 出现此问题的原因是精度的基本定义,即定义为实际输出(参考)中出现的预测输出的分数。 因此,在预测输出中出现的the是唯一的文本,由于它出现在参考中,因此精度为 1.0。

因此,对精度的定义进行了修改,以得到修改后的公式,在该公式中放置了片段计数。 此处,片段计数是单词在任何参考中出现的最大次数。 因此,修改的精度定义为单词在任何参考中出现的最大次数除以该单词在机器生成的输出中出现的总数。

对于前面的示例,修改后的精度为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vG366cMd-1681786603286)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/0eca4191-27a6-429c-bc05-a87a6f599f19.png)]

到现在为止,我们已经以孤立的形式(即,字母组合形式)考虑了每个单词。 在 BLEU 分数中,您还希望成对看待单词,而不仅仅是孤立地看。 让我们尝试使用二元语法方法来计算 BLEU 分数,其中二元语法表示一对单词彼此相邻出现。

让我们考虑以下示例:

  • 输入德语文本Der Hund ist unter der Decke

假设我们有两个人工生成的引用,如下所示:

  • 参考 1The dog is under the blanket
  • 参考 2There is a dog under the blanket

机器生成的输出The dog the dog the dog under the blanket

机器生成的输出中的二元组 计数 片段计数(任何参考中的二元组的最大数量)
the dog 3 1
dog the 2 0
dog under 1 0
under the 1 1
the blanket 1 1

因此,修改后的二元语法精度将为二元语法的片段计数与二元语法计数的总和之比,即:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-39qtDBR2-1681786603286)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/c6b988fb-7630-4308-a29c-f267f2090ed8.png)]

因此,我们可以为单字组,二元组和 N 元组创建以下精度公式,如下所示:

  • p[1]为精确度,表示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qCIf10Ba-1681786603286)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/67aed179-f9dc-4f4f-9290-2283a5e158c1.png)]

  • p[2]为二元语法的精度,其中:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g0Vj9I8R-1681786603286)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/f8c6ec7d-4e4c-4b75-9b35-37feda85ebea.png)]

  • p[n]为 N 元组的精度,其中:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DO5TAiId-1681786603286)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/933d07ec-861d-4df0-82cf-c94815cb82c1.png)]

以单字,双字或什至任何 N 元组计算的改进精度,使您可以测量机器生成的输出文本与人工生成的引用相似的程度。 如果机器生成的文本与人工生成的引用中的任何一个完全相似,则:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2njsWz3w-1681786603287)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/0734d3bd-2bbc-403a-b613-530572f424e6.png)]

让我们将所有的i分数放在一起,以计算机器生成的输出的最终 BLEU 分数。 由于p[n]仅是 N 元组的 BLEU 分数(即,改进的 N 元组精度),因此组合的 BLEU 分数为n[max] = N由以下公式给出:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9nTuoUXM-1681786603287)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/e4d36e9d-d37f-4cc4-8a7e-d48fcf9a11d4.png)]

BP 称为简短惩罚。 如果机器生成的输出非常短,那么这个代价就会出现。 这是因为,在输出序列短的情况下,其中出现的大多数单词很有可能出现在人工生成的参考中。 因此,简洁性惩罚是一种调整因素,当该机器生成的文本短于该输入的最短人类生成的输出参考时,它便会对其进行惩罚。

简短惩罚BP)由以下公式给出:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-izbaNoJ5-1681786603287)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/1a2d510c-1666-4ff0-bbd5-34014e5c5ea6.png)]

哪里:

len(MO)为机器生成的输出的长度

s[len](REF)为最短的人工生成参考输出的长度

有关更多详细信息,请检查 Papineni 等人(2002)关于 BLEU 分数的出版物

ROUGE

ROUGE 代表针对召回评估的面向召回的本科。 它也是评估 NLP 中的顺序模型(特别是自动文本摘要和机器翻译)的度量。 CY Lin(2004)在研究出版物《ROUGE:摘要自动评估包》中提出了 ROUG。

ROUGE 还可以通过将机器生成的输出(自动摘要或翻译)与一组人工生成的参考进行比较来工作。

让我们考虑以下示例:

  • 机器生成的输出the dog was found under the bed
  • 人为产生的参考物the dog was under the bed

因此,在 ROUGE 上下文中的精度和召回率如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m73ivz8M-1681786603287)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/801dc246-dbba-4dcb-914a-8eaa411d6367.png)]

因此,召回率= 6/6 = 1.0

如果召回率为 1.0,则意味着人工生成的参考中的所有单词均由机器生成的输出捕获。 可能会出现机器生成的输出过长的情况。 因此,在计算召回率时,较长的机器生成的输出很可能覆盖大多数人工生成的参考词。 结果,精度得以提高,其计算方法如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9TcRcorg-1681786603287)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/049e7d45-bdcb-48db-acc9-ee12ebcbd66e.png)]

因此,精度(对于前面的示例)= 6/7 = 0.86

现在,如果机器生成的输出为the big black dog was found under the big round bed,那么,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Upx32sYs-1681786603288)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/48fb6f83-56a2-4bb7-9dcc-9ad36a7186b9.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-46WQmcKs-1681786603288)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/7ccef560-5555-4275-b9d6-e108936fb67a.png)]

这表明机器生成的输出不合适,因为它包含大量不必要的单词。 因此,我们可以很容易地发现仅召回是不够的,因此召回率和精度应同时用于评估。 因此,在以下情况下,作为召回率和精度的谐波均值计算的 F1 分数是一种很好的评估指标:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QwC64q2T-1681786603288)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/73d82af9-2049-4b91-983c-19e446231c78.png)]

  • ROUGE-1 表示机器生成的输出和人工生成的引用之间的字母组合的重叠
  • ROUGE-2 表示机器生成的输出和人工生成的引用之间的二元语法重叠

通过以下示例,让我们更多地了解 ROUGE-2:

  • 机器生成的输出the dog was found under the bed
  • 人为产生的参考物the dog was under the bed

机器生成的输出the dog was found under the bed的二元组为:

"the cat"
"cat was"
"was found"
"found under"
"under the"
"the bed"

人类产生的参考the dog was under the bed:的二元组为:

"the dog"
"dog was"
"was under"
"under the"
"the bed"

因此:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9EDkqZSO-1681786603288)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/b2431712-d5e6-4e8f-8b90-b5d1639ab984.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pnpd6NIQ-1681786603288)(https://gitcode.net/apachecn/apachecn-dl-zh/-/raw/master/docs/rl-tf/img/5c613f75-cc17-4c3b-8614-342a3c32ac48.png)]

因此,ROUGE-2_procision显示该机器生成的二元语法的 67% 与人类生成的参考重叠。

本附录涵盖了 NLP 中顺序模型中 ROUGE 评分的基本概述。 有关 ROUGE-N,ROUGE-L 和 ROUGE-S 的更多详细信息,请浏览《ROUGE:自动摘要评估包》,作者为 CY Lin。

总结

作为附录的一部分,我们涵盖了深度强化学习拓扑的连续动作空间算法的基本概述,其中简要介绍了信任区域策略优化和确定性策略梯度。 我们还了解到 BLEU 和 ROUGE 分数被积极用于基于 NLP 的顺序模型中的评估。

最后,我想说的是,随着将开发出更多的算法,深度强化学习仍然是一个新主题。 但是,最有助于您理解和探索那些尚未发现的未来算法的最重要的事情,将是牢固掌握本书所涵盖的基础知识。

相关文章
|
6月前
|
机器学习/深度学习 存储 人工智能
TensorFlow 强化学习:6~10
TensorFlow 强化学习:6~10
101 0
|
6月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
TensorFlow 强化学习:1~5
TensorFlow 强化学习:1~5
109 0
|
3月前
|
测试技术 数据库
探索JSF单元测试秘籍!如何让您的应用更稳固、更高效?揭秘成功背后的测试之道!
【8月更文挑战第31天】在 JavaServer Faces(JSF)应用开发中,确保代码质量和可维护性至关重要。本文详细介绍了如何通过单元测试实现这一目标。首先,阐述了单元测试的重要性及其对应用稳定性的影响;其次,提出了提高 JSF 应用可测试性的设计建议,如避免直接访问外部资源和使用依赖注入;最后,通过一个具体的 `UserBean` 示例,展示了如何利用 JUnit 和 Mockito 框架编写有效的单元测试。通过这些方法,不仅能够确保代码质量,还能提高开发效率和降低维护成本。
49 0
强化学习笔记2-Python/OpenAI/TensorFlow/ROS-程序指令
强化学习笔记2-Python/OpenAI/TensorFlow/ROS-程序指令TensorFlowTensorFlow是Google的一个开源软件库,广泛用于数值计算。它使用可在许多不同平台上共享和执行的数据流图。
1330 0
|
机器学习/深度学习 算法 JavaScript
【翻译】Sklearn与TensorFlow机器学习实用指南 —— 第16章 强化学习(上)
评价行为:信用分配问题 如果我们知道每一步的最佳动作,我们可以像通常一样训练神经网络,通过最小化估计概率和目标概率之间的交叉熵。这只是通常的监督学习。然而,在强化学习中,智能体获得的指导的唯一途径是通过奖励,奖励通常是稀疏的和延迟的。
|
机器学习/深度学习 算法 JavaScript
【翻译】Sklearn与TensorFlow机器学习实用指南 —— 第16章 强化学习(下)
时间差分学习与 Q 学习 具有离散动作的强化学习问题通常可以被建模为马尔可夫决策过程,但是智能体最初不知道转移概率是什么(它不知道T),并且它不知道奖励会是什么(它不知道R)。它必须经历每一个状态和每一次转变并且至少知道一次奖励,并且如果要对转移概率进行合理的估计,就必须经历多次。
|
机器学习/深度学习 算法 TensorFlow
TensorFlow 2.0深度强化学习指南
用深度强化学习来展示TensorFlow 2.0的强大特性!
3063 0
|
机器学习/深度学习 算法 JavaScript
【翻译】Sklearn与TensorFlow机器学习实用指南 —— 第16章 强化学习(中)
【翻译】Sklearn与TensorFlow机器学习实用指南 —— 第16章 强化学习(中)
1698 0
|
机器学习/深度学习 算法 机器人
《Scikit-Learn与TensorFlow机器学习实用指南》第16章 强化学习
第16章 强化学习 来源:ApacheCN《Sklearn 与 TensorFlow 机器学习实用指南》翻译项目 译者:@friedhelm739 校对:@飞龙 强化学习(RL)如今是机器学习的一大令人激动的领域,当然之前也是。
2814 0