为什么是奖励函数奖励= 1 / (成本+ 1)2reward=1/(cost+1)2好于奖励= 1 / (成本+ 1 )reward=1/(cost+1)?

人工智能 强化学习 q学习 奖励 奖励设计 奖励函数
2021-11-15 17:48:29

我已经实现了一个简单的 Q 学习算法,通过将奖励设置为代理所采取行动的成本的倒数来最小化成本函数。该算法收敛得很好,但是对于奖励函数的不同阶数,我在全局成本收敛中得到了一些差异。如果我将奖励函数用作:

reward=1(cost+1)2

与我使用奖励时相比,该算法收敛得更好(全局成本更低,这是该过程的目标):

reward=1(cost+1)

这种差异的解释是什么?是面对不确定性时的乐观问题吗?

1个回答

强化学习 (RL) 控制使预期的奖励总和最大化。如果您更改奖励指标,它将改变什么是最优的。您的奖励功能不一样,因此在某些情况下会改变解决方案的优先级。

作为一个简单的例子,考虑在成本为 A(0,4,4,4) 和 B(1,1,1,1) 的轨迹之间进行选择。在原始成本公式中,B 显然更好,总成本为 4,而 A 的成本为 12 - A 一开始只有一个低成本,我故意放了它,因为它暴露了你的转换问题。

在你的两个奖励公式中:

reward = 1/(cost+1)**2. 
  A: 1.0 + 0.04 + 0.04 + 0.04 = 1.12
  B: 0.25 + 0.25 + 0.25 + 0.25 = 1.0

reward = 1/(cost+1).
  A: 1.0 + 0.2 + 0.2 + 0.2 = 1.6
  B: 0.5 + 0.5 + 0.5 + 0.5 = 2.0

因此,对于这个例子(仔细选择的数字),最大化总奖励有利于 A 逆平方和但 B 逆和,而 B 应该是最小化成本总和的明显偏好。可以为您的两个公式找到示例,其中最好的奖励总和不会给您最低的成本。

就您而言,如果您真的想最小化总成本,那么您的奖励转换应该是:

reward = -cost

其他任何事情在技术上都会改变问题的性质,并且会导致不同的解决方案,对于您的初始目标可能不是最佳的。