QLearning 中的负奖励

假设我们在一个房间里,我们的智能体可以沿着 xx 轴和 yy 轴移动。在每个点,它可以向上、向下、向右和向左移动。因此,我们的状态空间可以定义为 (x, y),并且我们在每个点的动作由 (上, 下, 右, 左) 给出。 假设无论我们的智能体做什么动作,只要撞到墙,我们都会给予它 -1 的负奖励,并把它放回之前的状态。 如果它在房间中央找到一个木偶,它将获得 +10 的奖励。

当我们更新给定状态/动作对的 Q 值时,我们正在观察在新状态下可以采取哪些动作,并计算在那里可能获得的最大 Q 值,以便我们可以更新当前状态/动作的 Q(s, a) 值。 这意味着,如果我们在 (10, 10) 点有一个目标状态,那么它周围的所有状态的 Q 值会随着距离的增加而逐渐变小。 现在,关于墙壁,在我看来情况并非如此。

当智能体撞到墙壁时(假设它位于 (0, 0) 位置并执行了向上动作),它将因该状态/动作而收到 -1 的奖励,从而获得 -1 的 Q 值。

现在,如果稍后我在状态 (0, 1) 中,并且假设状态 (0, 0) 的所有其他动作都为零,那么在计算 (0, 1) 对于 LEFT 动作的 Q 值时,它将按以下方式计算:

Q([0,1], LEFT) = 0 + gamma * (max { 0, 0, 0, -1 } ) = 0 + 0 = 0

也就是说,撞到墙壁不会传播到附近的狀態,这与您拥有正奖励状态时发生的情况相反。

在我看来,这似乎很奇怪。起初,我以为找到给出负奖励的状态/动作对,在学习方面会与正奖励一样好,但是从我上面显示的例子来看,这种说法似乎并不成立。 该算法似乎存在一种偏差,即对正奖励的考虑远多于对负奖励的考虑。

这是 QLearning 的预期行为吗? 不好的奖励不应该和好的奖励一样重要吗?对此有什么“解决方法”吗?


回答:

你可以通过将默认奖励从 0 增加到 1,目标奖励从 10 增加到 11,惩罚从 -1 增加到 0 来避免负奖励。

关于 Q-learning 的科学出版物有很多,所以我确信还有其他的公式可以使用负反馈。

编辑:我被纠正了,正如我之前所说,这不会改变行为。我的想法是,可以使用没有负反馈的公式来代替具有负反馈的公式。

你观察到的原因是,你对你的行为或它所处的状态的结果没有不确定性,因此你的智能体总是可以选择它认为具有最佳奖励的动作(因此,所有未来动作的最大 Q 值)。这就是为什么你的负反馈没有传播:智能体将来只会避免该动作。

但是,如果你的模型包含对你的行为结果的不确定性(例如,总是存在 10% 的概率以随机方向移动),你的学习规则应该整合所有可能的未来奖励(基本上用加权和代替最大值)。在这种情况下,负反馈也可以传播(这就是我为什么认为它应该是可能的 :p )。这种模型的例子是 POMDPs

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注