为了指导学习过程,强化学习使用从环境中产生的标量奖励信号。这个信号测量代理相对于任务目标的性能。换句话说,对于一个给定的观察(状态),奖励衡量采取特定行动的有效性。在训练过程中,代理根据不同状态-行动组合所获得的奖励更新其策略。有关不同类型的代理以及它们在训练中如何使用奖励信号的更多信息,请参见<一个href="//www.tatmou.com/jp/jp/jp/help/reinforcement-learning/ug/create-agents-for-reinforcement-learning.html" class="a">强化学习代理。
通常情况下,你提供积极奖励来鼓励特定的代理行为,而提供消极奖励(惩罚)来阻止其他行为。一个设计良好的奖励信号会引导代理最大化对长期奖励的期望。什么是设计良好的奖励取决于应用程序和代理的目标。
例如,当一个代理必须尽可能长时间地执行一项任务时,一个常见的策略是为该代理成功执行任务的每一个时间步骤提供一个小的正奖励,当该代理失败时提供一个大的惩罚。这种方法鼓励长时间的训练,而严重打击失败的训练。有关使用此方法的示例,请参见<一个href="//www.tatmou.com/jp/jp/jp/help/reinforcement-learning/ug/train-dqn-agent-to-balance-cart-pole-system.html" class="a">培训DQN员工平衡车杆系统。
如果你的奖励功能包含多个信号,如位置、速度和控制努力,你必须考虑信号的相对大小,并相应地调整它们对奖励信号的贡献。
您可以指定连续或离散的奖励信号。无论哪种情况,你都必须提供一个奖励信号,当行动和观察信号发生变化时提供丰富的信息。
对于控制系统规格(如成本功能和约束)已经可用的应用程序,您还可以使用从这些规格生成奖励功能。
连续奖励功能随着环境、观察和行动的变化而不断变化。一般来说,连续的奖励信号可以提高训练过程中的收敛性,并导致更简单的网络结构。
连续报酬的一个例子是二次调节(QR)成本函数,其中长期报酬可以表示为
在这里,问<年代ub>τ,问,R,N是权重矩阵。问<年代ub>τ为终端权重矩阵,仅在本集结束时应用。同时,年代为观测向量,一个是行动的方向,和τ是这一集的结尾。这个成本函数的瞬时回报是
这种QR奖励结构鼓励驾驶年代以最小的行动努力将其变为零。基于qr的奖励结构是调节或平稳点问题的好选择,如摆的摆动或调节双积分器的位置。关于使用QR奖励的训练示例,请参见<一个href="//www.tatmou.com/jp/jp/jp/help/reinforcement-learning/ug/train-dqn-agent-to-swing-up-and-balance-pendulum.html" class="a">训练DQN Agent上摆和平衡摆和<一个href="//www.tatmou.com/jp/jp/jp/help/reinforcement-learning/ug/train-ddpg-agent-to-balance-double-integrator-system.html" class="a">培训DDPG Agent控制双积分系统。
平滑的连续奖励,如QR调节器,对微调参数很好,可以提供类似最优控制器(LQR/MPC)的策略。
一个离散的奖励函数随着环境、观察或行动的变化而不连续地变化。这些类型的奖励信号会使收敛速度变慢,需要更复杂的网络结构。离散奖励通常是这样执行的<年代pan class="emphasis">事件这种情况会发生在环境中——例如,当一个代理在超过某个目标值时获得正奖励,或在违反某些性能约束时受到惩罚。
虽然离散奖励可以减缓收敛速度,但它们也可以引导agent走向环境状态空间中更好的奖励区域。例如,基于区域的奖励,比如当代理靠近目标位置时的固定奖励,可以模拟最终状态约束。此外,基于区域的惩罚可以鼓励代理避开状态空间的某些区域。
在许多情况下,提供包含连续和离散奖励成分的混合奖励信号是有益的。离散奖励信号可以使系统远离坏状态,而连续奖励信号可以通过在目标状态附近提供平滑的奖励来提高收敛性。例如,在<一个href="//www.tatmou.com/jp/jp/jp/help/reinforcement-learning/ug/train-agent-to-control-flying-robot.html" class="a">训练DDPG Agent控制飞行机器人,奖励功能有三个组成部分:r1,r2,r3.。
在这里:
r1是一个基于区域的连续奖励,只适用于机器人的目标位置附近。
r2是一个离散信号,当机器人远离目标位置时,会产生很大的惩罚。
r3.是一个连续的QR惩罚,适用于所有机器人状态。
对于已经存在工作控制系统的应用程序,诸如成本功能或约束条件等规范可能已经可用。在这些情况下,您可以使用<一个href="//www.tatmou.com/jp/jp/jp/help/reinforcement-learning/ref/generaterewardfunction.html">generateRewardFunction
生成一个奖励函数,用MATLAB编写<年代up>®,这可以作为奖励设计的起点。这个函数允许你生成奖励:
中定义的成本和约束规范<一个href="//www.tatmou.com/jp/jp/jp/help/mpc/ref/mpc.html">货币政策委员会
(模型预测控制工具箱)或<一个href="//www.tatmou.com/jp/jp/jp/help/mpc/ref/nlmpc.html">nlmpc
(模型预测控制工具箱)控制器对象。此功能需要模型预测控制工具箱™软件。
中的性能约束<年代pan class="entity">金宝app®优化设计™模型验证模块。
在这两种情况下,当约束被违反时,会使用惩罚函数计算负奖励,例如<一个href="//www.tatmou.com/jp/jp/jp/help/reinforcement-learning/ref/exteriorpenalty.html">exteriorPenalty
(默认),<一个href="//www.tatmou.com/jp/jp/jp/help/reinforcement-learning/ref/hyperbolicpenalty.html">hyperbolicPenalty
或<一个href="//www.tatmou.com/jp/jp/jp/help/reinforcement-learning/ref/barrierpenalty.html">barrierPenalty
功能。
从生成的奖励函数开始,您可以调整成本和惩罚权重,使用不同的惩罚函数,然后在环境中使用产生的奖励函数来训练代理。
generateRewardFunction
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">exteriorPenalty
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">hyperbolicPenalty
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">barrierPenalty