hsn-rl-r-merge-3

49 阅读16分钟

R 强化学习实用指南(四)

原文:annas-archive.org/md5/25a973e468806ffc3c064b967b5af8dd

译者:飞龙

协议:CC BY-NC-SA 4.0

第十三章:接下来是什么?

在本章中,我们将总结本书至今为止的内容,并说明接下来的步骤。你将学习如何将你所掌握的技能应用于其他项目,包括在构建和部署强化学习RL)模型以及数据科学家常用的其他技术方面的现实挑战。通过本章的学习,你将更好地理解在构建和部署 RL 模型时面临的实际挑战,并获得进一步学习 RL 技能的资源和技术。

本章结束时,我们将快速总结 RL 概念及其在现实生活中的主要应用。因此,我们将探索 RL 的下一步发展以及构建和实现机器学习模型时面临的现实世界挑战。

在本章中,我们将涵盖以下主题:

  • 强化学习总结

  • 探索强化学习项目

  • RL 的下一步

强化学习总结

基于机器学习ML)的算法可以根据它们使用的训练范式进行分类。在监督学习中,有一个教师告诉系统正确的输出是什么。但这并不总是可能的。通常,我们只有定性的、二元的对错或成功/失败的信息。这些信息被称为强化信号。然而,问题在于系统没有提供如何更新代理行为的信息,也没有成本函数或梯度。在强化学习(RL)的情况下,我们希望创造能够从经验中学习的智能体。

最初,强化学习(RL)被视为监督学习,但随后它被认为是机器学习算法的第三种范式。它应用于监督学习效率低的不同场景,例如,当我们面临与环境交互的问题时。

以下流程展示了正确应用 RL 算法的步骤:

  1. 准备代理。

  2. 观察环境。

  3. 选择最优策略。

  4. 执行动作。

  5. 计算相应的奖励(或惩罚)。

  6. 开发更新策略(如有必要)。

  7. 重复步骤 2-5,直到代理学习到最优策略。

RL 算法通过反复试验和奖励惩罚的反馈循环工作。当我们将数据集输入算法时,它将环境视为一种游戏,每次执行一个动作时,它会被告知是否赢得了游戏。通过这种方式,它建立了对胜负的认知。

由于不良行为,会施加惩罚,从而降低错误重复的概率。在展示正确行为的情况下,会施加奖励,从而确认一个正确的策略。在确定了要达成的目标后,算法会尽力最大化因执行某一行动所获得的奖励。必须达成目标的对象被称为代理。代理必须与之互动的对象被称为环境,它对应于所有外部于代理的事物。

代理是一个自动执行操作并且不显现的软件对象。代理具有目标导向的行为,但它在一个不确定的环境中执行操作,这个环境最初并不完全已知,或者只有部分已知。代理通过与环境的互动来学习。它所做的决策可以通过代理本身进行的测量,逐步发展,在学习环境的过程中形成。

这种互动的特点是反复且多样的尝试,直到成功或代理停止尝试为止。代理-环境互动是连续的;代理选择要执行的行动,随后环境的状态发生变化,呈现一个新的情况需要应对。在强化学习中,环境向代理提供奖励。奖励的来源必须是环境,以避免在代理内形成个人强化机制,这样会妨碍学习的进行。

奖励的价值与行动对实现目标的影响成正比;因此,在正确的行动下,奖励是正的或较高的,而在错误的行动下,奖励则是负的或较低的。

在下一节中,我们将探讨使用强化学习的最著名项目。我们将看到世界上最大的公司已经投入大量资源,以挖掘这些算法所提供的潜力。

探索强化学习项目

强化学习(RL)是一种编程范式,用于处理能够学习和适应环境变化的算法。在这种编程技术的基础上,存在与环境的交互,代理根据算法的选择从外界接收刺激。正确的选择将提供奖励,而错误的选择将带来惩罚。通过最大化系统获得的奖励,能够实现最优结果。例如,计算机通过执行某个任务学习在游戏中击败对手,目标是最大化奖励。这意味着系统从之前的错误中学习,基于之前探索中获得的结果来提高性能。强化学习在日常生活中的应用已经非常广泛,其中一些已经进入日常使用。例如,强化学习是自动驾驶汽车发展的基础——事实上,它们通过传感器收集的数据学习识别周围的环境。因此,它们根据需要克服的障碍来调整自己的行为。另一个例子是用于分析网页用户的程序。它们受益于自动学习,也就是从用户浏览网站时的行为和偏好中学习。其他应用包括电商平台,如亚马逊,或者娱乐和内容访问,如 Netflix 或 Spotify。在接下来的部分中,我们将探讨一些基于强化学习技术应用的实际例子。

Facebook ReAgent

推荐系统应用于不同的领域,但其目标是独特的:帮助人们根据不同的方面做出选择。根据个人的不同,这些方面可以是例如他们的时间轴、他们已经购买的物品、他们已经给予的正面评价,或者类似人的偏好。

推荐系统是一种有用的工具,通过分析使用者的历史记录来生成物品推荐。目前,已经有多个这些工具的应用,它们仍然是一个重要的研究领域,涵盖了从亚马逊的消费品推荐,到 MovieLens 的电影推荐,再到新闻或研究文章的推荐。通常,推荐系统执行三个操作:从输入数据中获取人们的偏好,计算推荐结果,并将其呈现给用户。

因此,它是一个引导用户做决策的系统。这样的系统可以被视为一个马尔可夫过程,这意味着它可以通过强化学习来建模。例如,我们可以使用上下文赌博机(contextual bandits),它在根据上下文信息选择动作时非常有效。在新闻文章推荐中,这涉及到根据用户和文章的上下文信息来为用户选择文章,比如用户的历史活动、描述性信息和内容类别。

Facebook ReAgent 是一个基于强化学习的 платформ,利用这一范式来优化数十亿人使用的产品和服务 (github.com/facebookresearch/ReAgent)。Horizon 是第一个基于开源强化学习的生产平台。Facebook 的研究人员开发了这个平台,旨在将他们在研究中取得的卓越成果,尤其是决策算法的应用,扩展到生产领域。

Unity ML-Agents

机器学习代理工具包是一个开源插件,免费提供于 GitHub,旨在为开发者提供在 Unity 引擎中使用临时环境训练虚拟实体的可能性 (github.com/Unity-Technologies/ml-agents)。

对于代理训练,可以通过一个易于使用的 Python API 使用强化学习、模仿学习、神经进化以及其他机器学习方法。此外,基于 TensorFlow 的算法实现也可用于轻松训练适用于 2D、3D 和 VR/AR 游戏的智能代理。ML-Agents 工具包可以高效地开发应用程序——实际上,进展可以在 Unity 丰富的环境中得到评估。

Google DeepMind

DeepMind 是一家英国的人工智能公司,成立于 2010 年,最初名为 DeepMind Technologies,后来在 2014 年被 Google 收购。DeepMind 是 Google 已经传奇的人工智能部门,创造了 AlphaGo,这个 AI 打败了世界上最强的围棋选手。

因此,DeepMind 所做的选择并不是基于外部指示或写在程序源代码行中的指令。Google 的超级计算机可以从多个可能性中选择一个选项,这个选项基于所获得的经验和来自外部环境的信息。所有这些都得益于 差分神经计算机 (DNC),一种模仿人类记忆功能的计算机系统。

使用 IBM Watson 管理大量数据

Watson 是 IBM 集团的一个项目,旨在创建一个能够处理大量非结构化数据的人工智能系统,将这些资源转化为结构化信息,进而做出决策。Watson 最初作为一个平台诞生,用户可以通过它将自己的创意付诸实践。数据的复杂性和异质性,尤其是许多非结构化数据,是需要克服的最大障碍。尽管经典分析方法有所改进,从分散的数据中构建有用信息仍然只是部分实现。数据以无缝方式生成,每天产生 25 亿 GB 的数据。因此,必须将数据视为一种新的自然资源,从中可以获取竞争优势。

到目前为止,我们已经分析了众多算法,并学习了如何在不同领域应用强化学习。那么,全球研究人员面临的未来挑战是什么?

强化学习的下一步

现代技术使我们习惯于看到机器代替人类执行任务。在生产过程的自动化中,快速且精准的计算以及执行指令时的最小误差使得机器具有竞争力,甚至可能比人类更具竞争力。简而言之,越来越多的算法正在被开发出来,帮助软件从经验中学习。这就是机器学习。

基于这些算法,不再需要预定义的规则来与机器一起学习,但它们通过模型和指令做出决策,通过这些我们可以学习解决当前问题的正确规则。正如我们在上一节中看到的,这些技术已经在现实生活中得到了广泛应用。例子包括反垃圾邮件斗争、信用卡欺诈识别、语音识别与手写识别、经济与金融预测、自动分类图像等等。

这项技术未来将为我们提供什么?让我们来看一看使用强化学习算法时未来的挑战是什么。

理解逆向强化学习

在强化学习(RL)算法中,智能体在执行某个动作后会立即收到强化信号。有几个领域中很难估计强化函数。逆强化学习IRL)允许你通过一组示范重建一个定义智能体行为的强化函数。在学习逆强化的过程中,奖励函数来自于观察到的行为。通常,在强化学习中,我们使用奖励来学习系统的行为;而在逆强化学习中,这个过程是反向的;实际上,智能体观察系统的行为,进而理解目标正在尝试实现什么。为了做到这一点,必须拥有环境的状态,以便学习每个强化函数的最优策略。此外,还需要定义一组特征,进行组合,以识别单一的强化函数。

在逆强化学习(IRL)中,问题从以下内容开始:

  • 对智能体行为随时间的测量

  • 对该智能体的感官输入进行测量

  • 物理环境的模型

基于这些数据,我们可以确定智能体正在优化的奖励函数。

就策略而言,解决逆强化学习问题意味着将专家的行为编码为参考策略,然后识别一个奖励函数,以使该策略成为最优策略。这种方法的目标是识别奖励函数,它可以比仅仅构建一个策略使智能体模仿专家的方式提供更好的结果。这是因为奖励函数不仅描述了智能体的行为,还更深入地编码了动机。

这种表示比基于策略的表示更加简洁,并且允许智能体的行为被泛化,甚至扩展到专家尚未探索的状态空间区域。通过了解奖励函数,还可以通过重新生成一个新的最优策略,从奖励函数本身开始来应对模型的变化,而不必完全重新学习。最后,有一些情境,其中奖励函数本身就是研究的目标。

另一个与策略算法相关的挑战是深度确定性策略梯度。我们来看看如何解决这个问题。

深度确定性策略梯度

深度确定性策略梯度DDPG)是策略梯度算法家族的一部分,它在探索阶段使用随机行为策略。DDPG 算法评估的是一个确定性的目标策略,这个策略更容易学习。在这些策略算法中,迭代的特点如下:

  • 策略评估

  • 遵循策略梯度以最大化性能

DDPG 代表了一种基于策略外算法,它使用确定性目标策略。在这些条件下,允许使用确定性政策的梯度定理。DDPG 也是一种演员-评论员算法的例子。从这个意义上说,它主要使用两个人工神经网络:一个用于演员,一个用于评论员。两个网络都计算当前状态的行动预测,并每次生成一个时差 (TD) 错误信号。演员网络的输入使用当前状态,输出是由连续动作空间选择的动作。评论员的输出只是当前状态和由演员提供的动作的估计 Q 值。确定性策略梯度定理提供了演员网络权重更新规则。评论员网络则通过从 TD 错误信号获得的梯度进行更新。

到目前为止,我们已经看到智能体如何与环境互动,但当它与人类互动时会发生什么呢?

来自人类偏好的强化学习

在许多情况下,无法定义一个明确的奖励函数。许多现实问题的特点是目标复杂且定义不清或难以指定。例如,假设你想用强化学习训练一个机器人选择最佳路径以到达目标。奖励函数并不容易定义,它必须依赖于来自机器人传感器的数据。如果我们能够成功地将我们的真实目标传达给智能体,我们在解决这些问题时将会取得巨大的成果。

如果我们有期望任务的示例,我们可以使用逆向强化学习提取奖励函数。之后,我们可以通过模仿学习来克隆已经验证的行为。不幸的是,这些方法并不直接适用于许多现实问题。解决这个问题的一个可能途径是来自人类反馈,定义活动的过程。在这种情况下,我们进入了强化学习的范式,尽管将人类反馈直接作为奖励函数使用对那些需要数百或数千小时经验的强化学习系统来说是不可行的。

在基于人类偏好的深度强化学习中,智能体从人类反馈中学习奖励函数,从而优化这个奖励函数。这为没有明确奖励函数的序列决策问题提供了解决方案。

该算法具有以下特点:

  • 它使我们能够解决那些我们只能识别出期望行为,但不一定能够证明的任务。

  • 它允许智能体接受非专家用户的指导。

  • 它是一个大规模问题。

  • 它节省了用户反馈。

该算法将奖励函数调整为符合人类偏好的同时,形成一个策略来优化当前期望的奖励函数。有些情况下,环境的探索非常复杂,因此我们必须采用不同的方法。让我们看看可以做些什么。

后视经验回放

人类的一个特点是从错误中学习并适应,以避免重复犯同样的错误。这正是强化学习(RL)算法的秘密。当遇到分散奖励时,实施这些算法时会遇到问题。我们来分析以下场景:一个智能体必须控制一个机器人臂打开一个盒子并将物体放入其中。这个任务的奖励很容易定义;相反,学习问题却很难实现。智能体必须探索一系列正确的动作,以识别返回分散奖励的环境配置:在这种情况下,物体在盒子内的位置。找到这个奖励信号是一个复杂的探索问题,几乎无法通过随机探索解决。

为了解决这类问题,可以采用一种名为后视经验回放(Hindsight Experience Replay)的新技术。该技术通过省略其他方法中使用的复杂奖励技术,采用基于稀缺和二元奖励的高效学习。它可以与任何非策略强化学习算法结合使用。

这种方法适用于处理机器人臂操作物体,以及推、滑、拾取和放置任务。只使用二元奖励,指示活动是否已完成。最近的研究表明,后视经验回放在这些困难环境中使训练成为可能。其他研究表明,已在物理仿真中训练的策略可以在物理机器人上实施,并成功完成任务。

总结

在本章中,我们总结了基于强化学习算法的基本要素。然后,我们探索了强化学习技术的一些实际应用示例。最后,我们讨论了使用强化学习算法的未来挑战。我们探讨了逆向强化学习(IRL)、深度确定性策略梯度(DDPG)、基于人类偏好的强化学习和后视经验回放。

这是本书的最后一章,到此为止,我们已经探索了基于强化学习算法的不同场景。首先,我必须祝贺你已经完成了本书的学习;你已完成了一项艰难的挑战。我还建议你将所学技能立即应用于实际问题。