什么是强化学习?
强化学习是一种目标导向的计算方法,计算机通过与未知动态环境的交互来学习执行任务。这种学习方法使计算机能够在没有人为干预和明确编程的情况下,做出一系列决定,以最大化任务的累积奖励。下图显示了强化学习场景的一般表示。
强化学习的目的是训练一个代理在未知的范围内完成任务环境.代理接收观察和一个奖励从环境和发送行动环境。奖励是衡量一个行动在完成任务目标方面的成功程度。
代理包含两个部分政策和一个学习算法.
策略是一个映射,它根据来自环境的观察选择操作。通常,该策略是具有可调参数的函数逼近器,如深度神经网络。
学习算法根据行动、观察和奖励不断更新策略参数。学习算法的目标是找到一个最优策略,使在任务期间获得的累积奖励最大化。
换句话说,强化学习涉及一个代理通过与环境的反复试错交互来学习最佳行为,而没有人的参与。
例如,考虑使用自动驾驶系统停车的任务。本任务的目标是为车辆计算机(代理),把车辆停放在正确的位置和方向上。为此,控制器使用摄像头、加速计、陀螺仪、GPS接收器和激光雷达(观察)以生成转向、刹车和加速命令(行动).动作命令被发送到控制车辆的执行器。由此产生的观测取决于执行器、传感器、车辆动力学、路面、风和许多其他不太重要的因素。所有这些因素,也就是一切不是代理的因素,构成了环境在强化学习。
为了学习如何从观察中产生正确的动作,计算机使用试错过程反复尝试停车。为了引导学习过程,您提供一个信号,当汽车成功到达所需的位置和方向时为1,否则为0 (奖励).在每次试验中,计算机使用映射(政策)初始化为一些默认值。每次尝试后,计算机更新映射以最大化奖励(学习算法).这一过程将持续下去,直到计算机学习到一个能够成功停车的最佳映射。
强化学习工作流程
使用强化学习训练代理的一般工作流程包括以下步骤。
制定问题-定义代理要学习的任务,包括代理如何与环境交互,以及代理必须实现的任何主要和次要目标。
创建环境—定义代理运行的环境,包括代理与环境的接口和环境动态模型。有关更多信息,请参见创建MATLAB强化学习环境而且创建Simulink强化学习环境.
定义的奖励-指定代理用来根据任务目标衡量其性能的奖励信号,以及如何从环境中计算这个信号。有关更多信息,请参见定义奖励信号.
创建代理—创建代理,包括定义策略逼近器(参与者)、值函数逼近器(批评者)和配置代理学习算法。有关更多信息,请参见创建政策和价值功能而且强化学习代理.
火车代理-使用定义的环境、奖励和代理学习算法训练代理近似器。有关更多信息,请参见训练强化学习代理.
验证代理-通过模拟agent和环境来评估被训练agent的性能。有关更多信息,请参见训练强化学习代理.
部署策略-使用例如生成的GPU代码部署训练过的策略近似器。有关更多信息,请参见部署训练有素的强化学习策略.
使用强化学习训练一个代理是一个迭代的过程。后期的决策和结果可能需要你回到学习工作流的早期阶段。例如,如果训练过程没有在合理的时间内收敛到最优策略,那么在重新训练代理之前,您可能必须更新以下一些内容:
培训设置
学习算法的配置
政策和价值函数(行动者和批评家)近似
奖励的信号定义
行动和观察信号
环境动态