state-action-reward-new state:术语混淆

数据挖掘 深度学习 强化学习
2022-03-17 09:50:11

我的问题听起来像是重复的,例如,奖励函数怎么可能既取决于下一个状态又取决于当前状态的动作? 但我仍然感到困惑。

在 Q 函数的神经网络逼近中,我遵循经验回放程序。论文和手册建议在体验回放中存储状态、动作、收到的奖励和下一个状态信息。然而,当一个人即将根据下一个动作计算 Q 值的最大值时,他们使用哪个状态:状态或下一个状态?如果使用下一个状态来计算最大 Q,那么存储上一个状态和动作信息的整个目的是什么?

一个例子(二维世界):

代理位于单元格 A1(状态)。他的目标是到达 C3 以获得积极的奖励。然后他移动到 B2(动作);比方说,收到的奖励是 0。下一个状态是 B2(在动作完成之后)。

问题:

是否应该依靠 B2 状态从该状态(下一个状态)迭代可能的动作以获得最高奖励(最大 Q)的近似值?

那么,为什么我们将 A1 和 move-to-B2 信息完全存储在重放缓冲区中?

或者我错了,我们只是使用 A1 并迭代可能的操作(包括对 B2 的操作)以获得最大 Q?

编辑:我想我找到了答案)。我们需要存储先前的状态(A1)和动作(移动到 B2),以创建状态-动作分布,这将满足我们在下一个状态例程之后获得的预期长期奖励分布。对?

1个回答

使用的TD Target(用于学习更新)q^(s,a)Q-learning 中的神经网络是:

r+maxaq^(s,a)

为了计算这个,你需要一个起始状态s,从该状态采取的行动a,以及由此产生的奖励r和状态s.

你需要s,a生成神经网络的输入(你可能称之为train_X监督学习)。你需要r,s生成上面显示的 TD 目标作为学习回归的输出train_y(在监督学习中,应该是)。你需要尽一切可能a基于s为了找到 Q 学习中使用的 TD Target 方程的最大值 - 其他 RL 算法可能会使用它的变体来计算 TD Target。

这意味着您的建议都很接近但并不完全正确。

是否应该依靠 B2 状态从该状态(下一个状态)迭代可能的动作以获得最高奖励(最大 Q)的近似值?

有点。B2 状态是s从方程中,所以负责计算状态-动作值的TD目标q(s,a).

那么,为什么我们将 A1 和 move-to-B2 信息完全存储在重放缓冲区中?

你还需要知道s是 A1,因为 A1 的表示(以及采取的任何操作)将成为您网络的输入。

或者我错了,我们只是使用 A1 并迭代可能的操作(包括对 B2 的操作)以获得最大 Q?

使用您的神经网络迭代 B2 的动作以选择最高估计。

我想我找到了答案)。我们需要存储先前的状态(A1)和动作(移动到 B2),以创建状态-动作分布,这将满足我们在下一个状态例程之后获得的预期长期奖励分布。对?

我不确定我是否完全理解这一点,但它似乎不太正确。可能让您感到困惑的一件事是将您的行为视为“转移到状态”。虽然这在许多确定性环境中是很正常的,尤其是棋盘游戏,但大多数 RL 公式和教程都是使用单独的状态/动作对编写的,所以在你直截了当地理解这一点的同时,最好找到另一种表示动作的方式——例如从X 到 Y,或在 (I,J) 处放置新的一块。. . 您可以稍后返回“将状态从 A1 更改为 B2”作为表示。这实际上更有效,称为状态后表示,但大多数文献都会显示状态-动作值函数。