与负奖励相比,具有提供高正奖励的奖励结构

数据挖掘 强化学习 dqn 演员评论家 蒙特卡洛
2022-03-10 16:11:16

我正在使用 PPO 算法训练 RL 代理来解决控制问题。代理的目的是保持房间的温度。这是一个插曲式任务,每 15 分钟一集长度为 9 小时,步长(正在采取的行动)。在代理训练期间,从给定状态,代理采取行动。然后我检查房间的温度15分钟(步长),如果这个温度在限制范围内,我给这个动作一个非常高的正奖励,如果温度不在他的限制范围内,我给一个负奖励。情节在36个动作(9小时*4个动作)后结束/小时)(步长为15分钟)

我对奖励结构的制定。

zone_temperature = output[4]  # temperature of the zone 15 mins after the action is taken

thermal_coefficient = -10

if zone_temperature < self.temp_limit_min:
    temp_penalty = self.temp_limit_min - zone_temperature
elif zone_temperature > self.temp_limit_max:
    temp_penalty = zone_temperature - self.temp_limit_max
else :
    temp_penalty = -100

        reward = thermal_coefficient * temp_penalty

的值zone_temperature在 0 到 5 度的范围内变化。因此,当动作不好(温度不在限制范围内)时的奖励从 0 到 -50 变化,但是当动作良好时(温度在限制范围内)奖励是 +1000 。我有这样一个公式,以便代理可以很容易地理解哪个是好的动作,哪个是坏的。我的理解是否正确,是否建议为我的用例设置这样的奖励结构?

谢谢

1个回答

我的理解是否正确,是否建议为我的用例设置这样的奖励结构?

您的理解是不正确的,在这种情况下为目标状态设置极高的奖励可能会适得其反。

在您的情况下,它可能适得其反的最重要方式可能是您对不良结果的缩放变得无关紧要。与 +1000 结果相比,0 和 -50 之间的差异并不显着。反过来,这意味着代理不会真正关心它失败的程度,除非它已经接近最佳解决方案时进行微调。

如果环境是随机的,那么代理将优先考虑处于目标温度的小概率,而不是最终处于极端恶劣温度的大概率。

如果您使用折扣系数,γ,然后代理将优先考虑立即处于目标温度,可能会在几个时间步内超过并最终达到不需要的温度。

对您有利,您的环境是一个目标是某种可控稳定性的环境,例如“cartpole”环境,具有负反馈循环(对测量量的校正总是向相反方向强制)。这些代理通常对超参数的变化非常稳健,因此您可能仍然会发现您的代理学习成功。

但是,我建议坚持使用简单且相对较小的奖励函数规模。在您确定它表达了您对代理的目标之后,尝试使用它不太可能导致更好的解决方案。相反,您应该将精力集中在代理的执行方式上,以及您可以对学习算法进行哪些更改。

我会做什么(不了解您的环境):

  • 当温度在可接受范围内时,每时间步奖励 +1

  • 当温度超出可接受范围时,奖励在 -0.1 * 每个时间步的温差。用华氏度还是摄氏度来测量并不重要。

  • 无折扣(设置折扣系数γ=1如果您使用的公式包含折扣)

可能的最大总奖励是 +36,你可能不会期望比 -100 左右更糟糕的情节。这将在图表上整齐地绘制并且易于解释(低于 36 的每个单位大致相当于代理每天在可接受的温度之外花费 15 分钟的性能)。更重要的是,这些较低的数字不应在智能体学习时导致大量错误值,这将有助于训练神经网络以预测未来奖励。


顺便说一句(正如您没有问的那样),如果您使用基于值的方法,例如 DQN,那么您需要在状态特征中包含当前时间步(或剩余时间步)。这是因为总剩余奖励——由动作值 Q 表示——取决于智能体必须采取行动的剩余时间。对于代理来说,在最后一个时间步之后发生的事情也无关紧要,因此它可以选择在那之前的操作,这将使系统在该点超出可接受的温度。