如何制定具有两个目标的 rl 代理的奖励

数据挖掘 强化学习 q学习 dqn 蒙特卡洛 折扣奖励
2022-02-22 17:47:46

我已经开始学习强化学习并尝试将其应用于我的用例。我正在开发一种 rl 代理,它可以将温度保持在特定值,并通过采取不同的行动来最小化设备的能源消耗。

我正在尝试为它制定一个奖励函数。

可以测量能量和 temp_act

energy_coeff = -10
temp_coeff = -10

temp_penalty = np.abs(temp_setpoint - temp_act)

reward = energy_coeff * energy + temp_coeff * temp_penalty

这是我正在使用的奖励功能,但直觉上,我觉得应该更好。因为 enenrgy 和 temp_penalty 的绝对值在不同的尺度上。在构建奖励时,我如何考虑扩展问题。

1个回答

一般来说,不可能同时优化两个单独的目标函数。您为每个目标添加权重(您的系数),然后对缩放的目标求和的方法是解决该问题的标准方法。

由于您的处罚采用不同的尺度和不同的单位,因此您作为工程师的任务是设定目标以提供单一尺度的转换。这就是系数所代表的 - 您甚至可以将它们视为points/Joule对于能源和points/(ΔK)对于温差。

有时分析会告诉你有一个自然的组合规模。例如,在商业环境中,可能会将妥协视为财务成本,例如,您的系数可能是GBP/Joule对于能源和GBP/(ΔK)对于温差。然后,您就有了一个明确的目标,即最小化成本或最大化利润。

如果这是不可能的——如果这是关于建筑物中的人类舒适度,超过温度界限的财务成本可能会很困难——更深入的分析可能会导致考虑长期结果。也许您最初的奖励过于关注直接的数字问题(看起来很容易收集,但并不代表您的真实目标),重新构建问题可能会奏效。例如,在外部温度和系统工作负载变化的一年内,温度和能源成本都保持在严格的范围内,这可能更合理,并根据超出的严重程度进行扩展惩罚。