在自定义环境中定义奖励和状态观测信号

连续奖励

连续奖励函数会随着环境状态观测和动作的变化而不断变化。一般来说,连续奖励信号能提高训练过程中的收敛性,并能简化网络结构。

二次调节器 (QR) 成本函数就是连续奖励的一个例子,其长期累积奖励可表示为
J i = − ( s τ T Q τ s τ + ∑ j = i τ s j T Q j s j + a j T R j a j + 2 s j T N j a j ) J_i=-\left(s_\tau^TQ_\tau s_\tau+\sum_{j=i}^\tau s_j^T Q_j s_j + a_j^T R_j a_j + 2s_j^T N_ja_j\right) Ji=(sτTQτsτ+j=iτsjTQjsj+ajTRjaj+2sjTNjaj)

其中, Q τ Q_τ Qτ Q Q Q R R R N N N 是权重矩阵。 Q τ Q_τ Qτ 是终端权重矩阵,仅在回合结束时使用, s s s 是状态观测向量, a a a 是动作向量, τ \tau τ 是该回合的终端迭代。该成本函数的(瞬时)奖励为
r i = s i T Q i s i + a i T R i a i + 2 s i T N i a i r_i = s_i^TQ_is_i + a_i^TR_ia_i + 2s_i^TN_ia_i ri=siTQisi+aiTRiai+2siTNiai

这种 QR 奖励结构鼓励智能体以最少的动作努力使 s s s 趋于零。基于 QR 的奖励结构是调节或静止点问题(如钟摆摆动或调节双积分器的位置)的理想奖励结构。有关使用 QR 奖励的训练示例,请参阅Train DQN Agent to Swing Up and Balance PendulumCompare DDPG Agent to LQR Controller

平滑的连续奖励,如 QR 调节器,有利于微调参数,并能提供类似于最优控制器(LQR/MPC)的策略。

离散奖励

离散奖励函数随着环境观测或行动的变化而不连续地变化。这些类型的奖励信号会使收敛速度变慢,并需要更复杂的网络结构。离散奖励通常是通过环境中发生的事件来实现的–例如,当一个智能体超过某个目标值时,它就会获得正奖励;当它违反某个性能约束时,它就会受到惩罚。

虽然离散奖励会减慢收敛速度,但也能引导智能体走向环境状态空间中更好的奖励区域。例如,基于区域的奖励,如当智能体接近目标位置时的固定奖励,可以模拟最终状态约束。此外,基于区域的惩罚也可以鼓励智能体避开状态空间的某些区域。

混合奖励

在许多情况下,提供一种混合奖励信号是有益的,这种信号既有连续奖励成分,也有离散奖励成分。离散奖励信号可用于驱动系统远离不良状态,而连续奖励信号则可在目标状态附近提供平滑奖励,从而提高收敛性。例如,在 Train DDPG Agent to Control Sliding Robot中,奖励函数有三个组成部分: r 1 r_1 r1 r 2 r_2 r2 r 3 r_3 r3
r 1 = 10 ( ( x t 2 + y t 2 + θ t 2 ) < 0.5 ) r 2 = − 100 (   ∣ x t ∣   ≥ 20   ∣ ∣   ∣   y t ∣   ≥ 20 ) r 3 = − ( 0.2 ( R t − 1 + L t − 1 ) 2 + 0.3 ( R t − 1 − L t − 1 ) 2 + 0.03 x t 2 + 0.03 y t 2 + 0.02 θ t 2 ) r = r 1 + r 2 + r 3 \begin{aligned} &r_1 = 10\left(\left(x_t^2+y_t^2+\theta_t^2\right)<0.5\right)\\[2ex] &r_2 = -100\left(\ \mid x_t\mid\ \geq20\ ||\ \mid \ y_t\mid\ \geq20\right)\\[2ex] &r_3 = -\Big(0.2(R_{t-1}+L_t-1)^2+0.3(R_{t-1}-L_t-1)^2+0.03x_t^2+0.03y_t^2+0.02\theta^2_t\Big)\\[2ex] &r= r_1+r_2+r_3 \end{aligned} r1=10((xt2+yt2+θt2)<0.5)r2=100( xt 20 ∣∣  yt 20)r3=(0.2(Rt1+Lt1)2+0.3(Rt1Lt1)2+0.03xt2+0.03yt2+0.02θt2)r=r1+r2+r3

其中:

  • r 1 r_1 r1 是基于区域的连续奖励,只适用于机器人的目标位置附近。

  • r 2 r_2 r2 是一个离散信号,当机器人远离目标位置时会受到较大惩罚。

  • r 3 r_3 r3 是连续的 QR 惩罚,适用于机器人的所有状态。

根据控制规范生成奖励

对于已经存在工作控制系统的应用,成本函数或约束条件等规格可能已经存在。在这种情况下,您可以使用 generateRewardFunction 自动生成一个以 MATLAB 编码的奖励函数,作为奖励设计的起点。该函数允许您根据以下内容生成奖励函数:

  • 在 mpc(模型预测控制工具箱)或 nlmpc(模型预测控制工具箱)控制器对象中定义的成本和约束规范。此功能需要使用模型预测控制工具箱软件。
  • Simulink Design Optimization 模型验证块中定义的性能约束。

在这两种情况下,当违反约束条件时,都会使用惩罚函数(如外部惩罚函数(默认)、双曲惩罚函数或障碍惩罚函数)计算负奖励。

从生成的奖励函数开始,您可以调整成本和惩罚权重,使用不同的惩罚函数,然后在环境中使用生成的奖励函数来训练智能体。

状态观测信号

创建自定义环境时,选择哪些信号作为操作和观测点取决于您的应用。例如,在控制系统应用中,误差信号的积分(有时是导数)通常是有用的观测值。此外,对于参考跟踪应用,将时变参考信号作为观测信号也很有帮助。

在定义观测信号时,最佳做法是在观测向量中包含所有可用的环境状态。

如果不这样做,就会导致不同的环境状态产生相同的观测结果。对于这种状态,智能体策略(假设它是观察结果的静态函数)返回相同的操作。这样的策略通常是不成功的,因为通常情况下,成功的策略需要通过返回不同的操作来对不同的环境状态做出反应。

例如,对摆动的钟摆进行图像观测时,虽然有位置信息,但本身并没有足够的信息来确定钟摆的速度。在这种情况下,无法感知速度的静态策略将无法稳定摆锤。但是,如果可以测量或估算出摆锤的速度,那么将其作为观测向量的附加项,就能为静态策略提供足够的信息来稳定摆锤。

当并非所有状态都可以作为观测信号时(例如,因为测量这些状态是不现实的),一种可能的变通方法是使用一个估计器(作为环境的一部分)来估计未测量状态的值,并将这些估计值作为观测值提供给智能体。或者,也可以在策略中使用 LSTM 等递归网络。这样做的结果是,策略具有状态,因此可以将其状态作为环境状态的内部表示。因此,即使没有足够的信息来根据当前观测结果重建正确的环境状态,这样的策略也能根据其内部状态的不同值返回不同的操作。

  • 17
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值