卷积网络对基于策略的井字游戏方法有意义吗?

数据挖掘 机器学习 神经网络 卷积神经网络
2022-03-06 20:16:33

这受到我之前的问题的启发,对此的评论让我意识到 CNN 不适合该问题 CNN 需要超过 700k 的训练数据集,而 MLP 在不到 50k 的时间内完成。

现在,我正在尝试解决下一个问题,并且需要弄清楚 CNN 是否有意义。

美国有线电视新闻网细节 -

输入 - 作为代表棋盘的 9 个元素的数组的棋盘(0=空,1='X',2='O')

输出 - 推荐的移动为 9 个元素的一次性编码数组。1的索引是推荐的移动(例如,在[0,0,1,0,0,0,0,0,0]中推荐的移动是2)

因此,基本上 CNN 将使用一个数据集进行训练,该数据集由棋盘和游戏获胜者为每个棋盘所做的移动组成。然后在评估期间,它将尝试预测给定棋盘的最佳移动。

卷积神经网络对这个问题有意义吗?

注意:我将用于此问题的 convnet 与我之前的问题相同

2个回答

对于任何感兴趣的人,我将发布我尝试 CNN 和 MLP 的结果 -

3x3 内核 4 特征映射 CNN 始终比 9 神经元 MLP 表现更好。我在 10kx20 的完全随机井字游戏训练数据大小上进行了训练,CNN 学会了在与随机对手的比赛中达到约 80% 的胜率/平局,而 MLP 在相同数据上达到约 60% 的水平。2x2 CNN 的性能比 3x3 差得多。

训练数据 - 输入和输出与问题中提到的相同,不同之处在于 AI 仅在输掉或平局游戏时才接受训练,并且数据集是从随机玩家中选择用于平局游戏的。

注意:可以用更少的数据获得更好的准确性,但在这种情况下,我的目标只是使用这个游戏来学习机器学习编程,因此代码没有针对任何东西进行特别优化。MLP 和 CNN 的比较也是偶然的,对于任何严肃的目的都需要更加严格地进行。

这个问题不够复杂,不足以证明大型卷积网络的合理性。但是,如果您决定使用 CNN,那么您可以尝试保持架构非常简单。只有一个卷积层(可能是 SAME/padded),没有池化或 dropout,只有几个特征图(例如,不超过 4 个,也许只有 2 个) - 以及一个用于输出的 softmax 全连接层。

请记住,它可能需要更多的时期,并且可能需要更多的超参数调整,才能获得更复杂的模型来适应简单的问题。如果您遵循之前问题中的计划,并针对所有有效状态和移动进行训练,那么您无需担心过度拟合。

您应该记住,井字游戏非常简单,您可以使用表格方法(即简单地枚举和评分所有可能的游戏状态的方法)来找到最佳策略。在您的案例中,网络被用作策略函数近似,有点像使用大锤来破解坚果。如果您正在学习一种用于更复杂的基于网格的游戏的技术,这是有道理的,使用一个玩具问题。但是,如果您的目标是更直接地学习井字游戏机器人的策略,那么最好不要对策略使用任何监督学习模型。