【发布时间】:2018-01-03 11:14:28
【问题描述】:
我最近开始接触 Q-Learning。我目前正在编写一个应该玩简单棋盘游戏(奥赛罗)的代理。 我正在和一个随机的对手比赛。但是它不能正常工作。我训练的时间越长,我的经纪人要么保持在 50% 左右的胜率,要么变得更糟。 我的神经网络的输出是一个 8x8 矩阵,每一步都有 Q 值。
我的奖励如下:
- 1 胜
- -1 表示损失
- 无效的移动算作损失,因此奖励为 -1
- 否则我尝试直接奖励 -0.01 或 0。
我做了一些我无法解释的观察: 当我考虑对第一步的预测(我的代理总是开始)时,对无效移动的预测非常快地接近 -1。然而,我玩的时间越长,对有效动作的预测似乎就越高。他们甚至超过了 1(他们在某些时候超过了 3),这是不可能的,因为我正在根据贝尔曼方程(alpha = 1)更新我的 Q 值
其中 Gamma 是小于 1 的参数(我大部分时间使用 0.99)。如果游戏持续大约 30 回合,我预计最大/最小值为 +-0.99^30=+-0.73。
此外,对起始状态的预测似乎是最高的。
我的另一个观察是,网络似乎对其预测过于乐观。如果我考虑移动的预测,之后游戏将失败,无效回合的预测再次接近 -1。然而,有效转弯的预测值通常远高于 0(如 0.1 甚至 0.5)。
我有点迷茫,因为我无法解释是什么导致了我的问题,因为我已经仔细检查了我的奖励/目标矩阵。有什么想法吗?
【问题讨论】:
标签: machine-learning neural-network q-learning