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