在使用 Deep Q 学习时,我们如何将当前奖励用作 RUN 时的系统输入?

数据挖掘 强化学习
2022-02-16 10:17:10

在调整 Deep Q 网络参数时,我们使用即时奖励。特别是动作回放和回归。

但在运行时,我们根本不关心奖励。因为我们的神经网络会将状态作为输入。我正在解释这与深思熟虑的 Atari 游戏纸有关。任何一件事都是浪费输入?有没有一种机制我们可以在运行时使用类似 Score 的东西。

ps - 我了解他们如何使用回归更新神经网络参数。有时使用 TD(λ) 。

2个回答

我的朋友-Thushan 给了我这个答案。所以我会发布它。我想它会描述它。有时在运行时不希望立即获得奖励。它可能会弄乱代理。我会在这里引用它。

你的论点是有道理的,但并非总是如此。这是您在问题表述中做出的设计决策。然而,为了强调为什么这在某些情况下不起作用,我将举一个例子。

假设您正在与 RL 代理一起玩射击游戏。在某个特定位置,您会被敌人射杀。但是,如果您将奖励包含在状态中,这可能会向算法暗示,该位置总是不好的,并且会尝试避免它(这是错误的)。我们不应该避开地点,而是避开敌人。

我不太确定您的输入是什么意思。在监督学习中,学习信号来自真实反应和模型反应之间的差异(“教师的监督”)。在强化学习中,学习信号来自可能延迟的奖励,有时在特定试验中根本没有(但在另一个是)等。

Deep-Q 学习基本上是具有函数逼近的 Q 学习,是一种无模型 RL。这意味着最后你希望你的系统学习刺激和反应之间的映射。将其视为由刺激引起的反射。奖励不能成为您系统的输入,因为它是您的学习信号。

如果您指的是经验回放,正如我向您提到的那样,奖励有时不会“按时”到来。所以我们需要去关联状态、动作和序列,这就是为什么我们不在每个时间步都更新网络的原因。相反,我们更愿意建立一个有经验和样本的缓冲区。因此,正如您所说,您要学会避免敌人而不是位置,为此,如果您从缓冲区中采样经验,网络的训练将更加“直观”。