Q-Learning:不准确的预测

时间:2018-01-03 11:14:28

标签: machine-learning neural-network q-learning

我最近开始进入Q-Learning。我现在正在写一个应该玩简单棋盘游戏的代理人(奥赛罗)。 我和一个随机的对手比赛。但它无法正常工作。要么我的经纪人保持50%左右的胜率,要么变得更糟,我训练的时间越长。 我的神经网络的输出是一个8x8矩阵,每次移动都有Q值。

我的奖励如下:

  • 1获胜
  • -1表示损失
  • 无效移动计为损失,因此奖励为-1
  • 否则我尝试直接奖励-0.01或0。

我做了一些观察我无法解释: 当我考虑第一步的预测(我的经纪人总是开始)时,无效动作的预测真的很快接近-1。然而,对于有效动作的预测似乎越长,我玩的越长。它们甚至高于1(它们在某个时刻高于3),因为我根据Bellman方程(alpha = 1)更新我的Q值,所以不可能实现

Q(s,a) = r + \gamma \max_{a' \in A} Q(s', a')
其中Gamma是小于1的参数(我最常使用0.99)。如果游戏持续30转左右,我会期望最大/最小值为+ -0.99 ^ 30 = + - 0.73。 此外,对起始状态的预测似乎是最高的。

我做的另一个观察是,网络似乎对其预测过于乐观。如果我考虑移动的预测,之后游戏将丢失,无效转弯的预测再次接近-1。然而,有效转弯通常具有远高于0的预测(如0.1或甚至0.5)。

我有点失落,因为我无法解释可能导致我出现问题的原因,因为我已经仔细检查了我的奖励/目标矩阵。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我怀疑你的贝尔曼计算(特别是Q(s',a'))在比赛进行时没有检查有效的动作。这可以解释为什么"无效动作的预测真的很快接近-1并且#34;。