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