主要内容

什么是强化学习?

强化学习是一种目标导向的计算方法,计算机通过与未知动态环境交互来学习执行任务。这种学习方法使计算机能够在没有人为干预的情况下做出一系列决策,以最大限度地提高任务的累积回报,也没有明确的编程来实现任务。下图展示了一个强化学习场景的一般表示。

显示与环境交互的代理的图表。观察信号从环境传递给agent,动作信号从agent传递给环境。奖励信号从环境传递到智能体内部的强化学习算法。强化学习算法使用可用信息来更新策略。代理使用策略将观察结果映射到操作。这类似于如下所示的控制图,其中控制器感知所需参考和植物输出之间的错误,并使用该错误作用于植物输入。

强化学习的目标是训练一个代理在未知的情况下完成任务环境.代理接收观察和一个奖励从环境和发送行动对环境的贡献。奖励是衡量一个行动在完成任务目标方面的成功程度。

代理包含两个组件:a政策和一个学习算法

  • 策略是一种映射,它根据来自环境的观察选择操作。通常,策略是具有可调参数的函数逼近器,例如深度神经网络。

  • 学习算法根据动作、观察和奖励不断更新策略参数。学习算法的目标是找到一个最优策略,使任务期间收到的累积奖励最大化。

换句话说,强化学习涉及到一个智能体在没有人类参与的情况下,通过与环境的反复试错交互来学习最佳行为。

例如,考虑使用自动驾驶系统停车的任务。此任务的目标是为车辆计算机(代理),把车辆停在正确的位置和方向。为了做到这一点,控制器使用来自摄像头、加速度计、陀螺仪、GPS接收器和激光雷达(观察)以生成转向、制动和加速指令(行动).动作指令被发送到控制车辆的执行器。由此产生的观测结果取决于执行器、传感器、车辆动力学、路面、风和许多其他不太重要的因素。所有这些因素,也就是一切不是代理的因素,构成了环境在强化学习中。

为了学习如何从观察中产生正确的动作,计算机使用试错过程反复尝试停车。为了指导学习过程,您提供一个信号,当汽车成功到达所需的位置和方向时为1,否则为0 (奖励).在每次试验中,计算机使用映射(政策)用一些默认值初始化。每次试验后,计算机更新映射以使奖励最大化(学习算法).这个过程会一直持续下去,直到计算机学习到成功停车的最佳映射。

强化学习工作流程

使用强化学习训练智能体的一般工作流程包括以下步骤。

图中显示了一个典型的强化学习工作流程的七个阶段。

  1. 制定问题-定义智能体要学习的任务,包括智能体如何与环境交互以及智能体必须实现的任何主要和次要目标。

  2. 创建环境—定义agent运行的环境,包括agent与环境的接口以及环境动态模型。有关更多信息,请参见创建MATLAB强化学习环境而且创建Simulink强化学习环境

  3. 定义的奖励-指定代理用来衡量其相对于任务目标的性能的奖励信号,以及如何从环境中计算这个信号。有关更多信息,请参见定义奖励信号

  4. 创建代理—创建代理,包括定义策略逼近器(actor)、值函数逼近器(critic)和配置代理学习算法。有关更多信息,请参见创建策略和值函数而且强化学习代理

  5. 火车代理-使用定义的环境、奖励和智能体学习算法训练智能体逼近器。有关更多信息,请参见训练强化学习代理

  6. 验证代理-通过一起模拟智能体和环境来评估被训练智能体的性能。有关更多信息,请参见训练强化学习代理

  7. 部署策略—使用例如生成的GPU代码部署训练好的策略逼近器。有关更多信息,请参见部署训练有素的强化学习策略

使用强化学习训练智能体是一个迭代的过程。后期阶段的决策和结果可能要求您返回到学习工作流的早期阶段。例如,如果训练过程在合理的时间内没有收敛到最优策略,您可能必须在重新训练代理之前更新以下内容:

  • 培训设置

  • 学习算法配置

  • 政策和价值功能(行动者和批评家)近似器

  • 奖励信号定义

  • 行动和观察信号

  • 环境动态

相关的例子

更多关于

Baidu
map