Q 学习 - 与其他特工对战时如何使用经验回放?

数据挖掘 机器学习 神经网络 q学习
2021-10-14 02:28:21

我目前正在尝试创建一个 tic tac toe q 学习神经网络来向我介绍强化学习,但是它没有奏效,所以我决定尝试一个更简单的项目,需要一个网络来训练静态数据而不是另一个神经网络。这导致我遵循本网站的指南 - http://outlace.com/rlpart3.html

但是在编程之后,简单版本可以工作一半,这是没有经验重播的版本。在程序的某些运行中,游戏将正确运行,而在其他运行中,它只是在进行测试运行时来回移动。当尝试实施经验回放以完成更难的版本时。程序在测试时会不断地陷入来回循环

我有 100 个批次的限制,其中一个批次是神经网络训练的对象。我想知道这是否是一个适当的数量,或者在实施我可能做过的经验回放时是否可能存在任何常见问题。

我目前对经验回放的看法是: 1. 运行程序 2. 在每一轮之后,你用来训练网络的数据被保存到一个批次中 3. 当你达到 x(100) 个批次时,选择一个出来并训练它。4. 用进来的新批次覆盖最旧的批次。

如果有人可以让我知道我哪里出错了,或者如果有任何关于体验回放或问题质量的反馈,请告诉我,我将非常感激。

编辑:我在针对神经网络训练神经网络方面的另一个问题是,您是针对一个完全独立的网络训练它,m 还是针对它自己的先前版本进行训练。并且在针对其他神经网络进行训练时,是否将 epsilon 贪心调低以使对立的神经网络不使用任何随机移动。

1个回答

我很确定你必须:

等待内存中有足够的数据(100 个条目等),然后取出一个小批量(例如,10 个随机元素),运行反向传播 10 次 - 每个选定元素一次。

然后,你取结果梯度的平均值,最后用这个平均梯度校正你的网络。

后,

  • 将元素放回内存中(你从哪里拿走它们)

    具有高优先级的样本可能会在训练中多次使用。减少这些常见样本的权重基本上告诉网络,“在这些样本上进行训练,但没有过多强调;它们很快就会再次出现。”

  • 或者扔掉它,取而代之的是新的记忆。

然后继续玩游戏,再添加 30 个示例,然后使用一批 10 个元素进行另一个权重校正会话

我指的是“会话”,意思是一系列反向传播,其中结果是用于最终校正网络的平均梯度。

编辑:我在针对神经网络训练神经网络方面的另一个问题是,您是针对一个完全独立的网络进行自我训练,还是针对其先前版本进行训练。并且在针对其他神经网络进行训练时,是否将 epsilon 贪心调低以使对立的神经网络不使用任何随机移动。

考虑只使用一个网络。假设我们的记忆库包含几个元素:

...
{...}
{stateFrom, takenActionIndex, takenActionQval, immediateReward, stateNext }  <-- a single element
{...}
{...}
{...}
...

在校正会话期间使用您记忆中的每个元素时(一个元素接一个元素),您需要:

  1. 选择一个元素。如图所示,它包含 stateFrom、采取的行动(行动 X)、行动 X 的 qvalue、您收到的奖励、它导致的状态。
  2. 像处于“下一个状态”(在该元素中提到)一样运行 forward prop。获得最好的 [action Y, qvalue]。事实上,你的动作 Y 不一定是具有最高 q 值的动作。相反,它可能是来自“下一个状态”的“epsilon-greedy 决定行动”——然后你将拥有SARSA 而不是 Q-learning
  3. 获得“行动 X 的 qvalue”与立即奖励 +“行动 Y 的 qvalue ”不同的增量。
  4. 获取您从银行中选择的其他几个元素的增量
  5. 使用每个增量,计算网络权重的梯度张量。将这些梯度平均为单个张量。用这个张量惩罚你的网络的权重。

我故意规避了一件事——你实际上并没有存储takenActionQval,因为当你从MemoryBank 获取它的元素时它们可能已经过时了。您必须在反向传播期间重新计算这些分数。


因此,您正在针对类似但之前的校正会话中的网络版本进行训练。

请注意,您没有存储 ["next state", action Y],因为当您选择它进行训练时(可能您没有为几个小批量选择它),网络可能对该操作具有不同的 q 值Y。

您还可以将您的网络复制到第二个网络(目标网络),但只能复制一次,例如每 200 个 timesteps同时,在每 30 个时间步之后,您仍将继续惩罚您的网络与目标网络的任何差异。

请注意,为什么这样做的直觉是因为:Q 值从终点到起点有点“流动”,每次新的旅程都有一点。而且您总是将当前状态更新为后继状态。并针对其自己的(甚至更远的)继任者训练继任者状态。