技术文章和通讯

强化学习:一个简短的指南

由Emmanouil Tzorakoleftherakis MathWorks


强化学习有潜力解决艰难的决策问题在许多应用程序中,包括工业自动化,自动驾驶,玩电子游戏,和机器人。

强化学习是一种机器学习的计算机学会通过重复执行一项任务的动态交互的环境。这种试错学习方法使电脑做出一系列的决定,而无需人工干预和不明确的程序来执行该任务。强化学习在行动的一个著名的例子是AlphaGo,第一个计算机程序失败在围棋世界冠军。

强化学习与数据从一个动态环境,换句话说,与数据,基于外部环境变化,比如天气或交通流。强化学习算法的目标是找到一种策略,将产生最优的结果。强化学习达到这一目标的方法是通过允许的软件叫代理探索、互动和学习环境。

一个自动驾驶的例子

配备自动驾驶的一个重要方面。我们的目标是车辆计算机(代理)汽车在正确的停车位的位置和正确的方向。在这个例子中,环境外就是一切,这种车辆的动态,附近的车辆,天气状况,等等。培训期间,代理使用数据从相机、GPS、激光雷达、和其他传感器产生转向、制动和加速命令(行动)。学习如何从观测产生正确的行为(政策调整),代理多次试图公园车辆使用试验和错误。正确的行动是奖励(钢筋)与数字信号(图1)。

图1所示。强化学习概览图。

图1所示。强化学习概览图。

在这个例子中,培训监督了训练算法。负责训练算法调优代理的政策根据收集到的传感器读数,行动,和奖励。训练后,车辆的计算机应该能够公园仅使用调整政策和传感器读数。

为强化学习算法

许多强化学习训练算法开发。一些最流行的算法依赖于深层神经网络。神经网络的最大优势是,他们可以编码复杂的行为,使其可以使用强化学习应用程序中这将是非常具有挑战性的解决与传统算法。

例如,在自主驾驶,神经网络可以代替司机决定如何转方向盘,同时看着来自多个传感器的输入,如相机帧和激光雷达测量(图2)。没有神经网络,这个问题会被分解成小块:一个模块,分析了相机输入识别有用的特性,另一个模块,用于过滤激光雷达测量,可能是一个组件,旨在描述全貌的车辆的环境融合传感器输出,“司机”模块,等等。

图2。神经网络自动驾驶。

图2。神经网络自动驾驶。

强化学习工作流程

训练一个代理使用强化学习包括五个步骤:

  1. 创建一个环境。定义代理可以学习的环境,包括代理和环境之间的接口。环境可以仿真模型或一个真正的物理系统。模拟环境中通常是一个良好的开端,因为他们更安全,让实验。
  2. 定义了奖励。指定代理使用的奖励信号测量其性能对任务目标和环境这个信号是如何计算出来的。奖励塑造可能需要几个迭代。
  3. 创建代理。代理包括政策和训练算法,所以你需要:
    • 选择一种方式来表示政策(例如,使用神经网络或查找表)。考虑你想如何结构参数和逻辑的决策代理的一部分。
    • 选择适当的训练算法。大多数现代强化学习算法依赖于神经网络因为他们是适合使用大型国有/行动空间和复杂的问题。
  4. 培训和验证代理。建立培训选项(如停止标准)和培训代理调整政策。最简单的方法是通过仿真来验证一个训练有素的政策。
  5. 部署策略。部署培训政策表示使用,例如,生成C / c++或CUDA代码。不需要担心代理和训练算法的政策是一个独立的决策系统。

一个迭代的过程

使用强化学习培训代理涉及大量的试验和错误。决定,导致后期可能需要你回到早期阶段学习工作流程。例如,如果训练过程不收敛于最优政策在合理的时间内,你可能需要更新下列培训之前代理:

  • 培训设置
  • 学习算法的配置
  • 政策表示
  • 奖励的信号定义
  • 行动和观测信号
  • 环境动态

强化学习正确的方法是在什么时候?

强化学习是机器学习中一个重大进步,它并不总是最好的方法。这里有三个问题要记住如果你考虑它:

  • 这不是sample-efficient。这意味着大量的训练才能达到可接受的性能。即使是相对简单的应用程序,培训时间可以从几分钟到几小时或几天。AlphaGo不停被数以百万计的游戏训练了几天,积累价值几千年的人类知识。
  • 设置正确的问题可能会非常棘手。许多需要做出的设计决策,这可能需要若干次迭代。这些决定包括选择合适的神经网络的体系结构,调优hyperparameters、塑造奖励的信号。
  • 深层神经网络训练的政策是一个“黑盒”,这意味着网络的内部结构非常复杂(通常是由数以百万计的参数),这几乎是不可能的理解、解释和评估决策。这使得很难与神经网络建立正式的性能担保政策。

如果你正在进行一项时间——或者高安全性的项目时,你可能想尝试一些替代方法。例如,对于控制设计,使用传统的控制方法将是一个开始的好办法。

现实世界的例子:机器人教自己走路

来自南加州大学的研究人员的瓦莱罗能源实验室建立一个简单的机器人的腿,教自己如何在短短几分钟内利用强化学习算法用MATLAB编写的®(图3)。

图3。瓦莱罗能源实验室的新机器人肢体。图片来源:南加州大学。

图3。瓦莱罗能源实验室的新机器人肢体。图片来源:南加州大学。

three-tendon, 2个联合肢体自主学习,首先通过自己的动态属性建模,然后利用强化学习。

物理设计,这个机器人的腿腱架构,就像肌肉和肌腱结构,动物的运动。强化学习然后使用动态的理解来完成的目标在跑步机上行走。

强化学习和“汽车胡说”

结合电动机呀呀学语与强化学习,系统尝试随机运动和学习特性的动力学通过这些运动的结果。对于这个研究,团队开始,让系统随机播放,或电动机牙牙学语。研究人员给系统一个回报这种情况下,把跑步机forward-every时间正确地执行一个给定的任务。

生成的算法,称为G2P,特定的(通用),复制生物神经系统所面临的普遍问题,当控制四肢的学习运动发生在肌腱移动肢体(图4),其次是加强(奖励)的行为是特定的任务。在这种情况下,任务是成功地把跑步机。系统创建一个通用的理解其动力学通过电动机呀呀学语,然后大师学习所需的“特殊”任务的每一个经验,或G2P。

图4。G2P算法。图片来源:Marjaninejad, et al。

图4。G2P算法。图片来源:Marjaninejad, et al。

神经网络,建立了MATLAB和深度学习工具箱™,使用电机呀呀学语的结果创建一个逆输入(运动运动学)和输出之间的映射(马达激活)。基于每个网络更新模型尝试在强化学习阶段能回到期望的结果。它每次都记得最好的结果,如果一个新的输入创建一个更好的结果,它覆盖模型与新设置。

G2P算法可以学习新的行走任务本身只有5分钟后的无拘无束的玩乐。然后,它可以适应其他任务没有任何额外的编程。

2019年出版的

查看相关文章的能力

为相关行业观点文章