主要内容

什么是强化学习?

强化学习是一种目标导向的计算方法,计算机通过与未知动态环境的交互来学习执行任务。这种学习方法使计算机能够在没有人为干预和明确编程的情况下,做出一系列决定,以最大化任务的累积奖励。下图显示了强化学习场景的一般表示。

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

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

代理包含两个部分政策和一个学习算法

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

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

换句话说,强化学习涉及一个代理通过与环境的反复试错交互来学习最佳行为,而没有人的参与。

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

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

强化学习工作流程

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

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

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

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

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

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

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

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

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

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

  • 培训设置

  • 学习算法的配置

  • 政策和价值函数(行动者和批评家)近似

  • 奖励的信号定义

  • 行动和观察信号

  • 环境动态

相关的话题

Baidu
map