为什么我实现的 Actor-Critic 算法在 2048 游戏中不能取得好的效果?

人工智能 强化学习 游戏-ai 深度学习 演员批评方法 超参数
2021-10-26 23:37:53

我用 n 步 TD 预测实现了 Actor-Critic 来学习玩2048 游戏

对于环境,我不使用这个 2048 implementation我使用一个没有任何图形界面的简单的,只是纯矩阵。神经网络的输入是游戏板的 log2。

我的神经网络的结构是:

  1. 输入层
  2. 16个单元的隐藏层
  3. 用于 Actor 的具有 4 个单位(上、下、左、右)的 Softmax 层
  4. 评论家的线性回归

隐藏层在actor和critic之间共享,因此相同的隐藏层(第2点)连接到actor的softmax层和critic的线性回归层。

原始游戏中的奖励是合并单元格的值。比如两个4合并,那么reward是8。我的reward函数几乎是一样的,只是我取它的log2。

我尝试了这些参数,还调整了学习率,γ,但我无法取得任何好的结果。

你能推荐我应该改变什么吗?

1个回答

有趣的项目。我要做的第一件事是通过最大单元格值标准化您的状态。这样,您可以一次表示多种情况(例如,所有 4 和 8 的网格看起来与所有 16 和 32 的网格相同)。也使奖励 = max_cell/2048 可能会做得更好,因为 ActorCritic 方法似乎在 0-1 范围内的奖励更好。

另一个奖励设置是每个时间步长 +1。这很简单,但这也意味着最大限度地延长生存时间是最好的,这也是我在玩游戏时大部分时间最终都会做的事情。

祝你好运!