选择正确的神经网络设置

人工智能 神经网络 机器学习 卷积神经网络
2021-10-23 05:15:33

我正在尝试训练一个神经网络来评估国际象棋位置,如果白(0.0)或黑会赢(1.0)

目前,输入由每个国际象棋字段 4 位组成(棋子 id 0 - 12,等于 64*4)。像castling这样的因素现在被忽略了。此外,所有训练集都是来自流行游戏的随机位置,轮到白方,所需的输出是游戏的结果(0.0、0.5、1.0)。

我的输入值是正确的选择吗?每层应该使用多少个隐藏层/神经元,最佳学习率是多少?你会为这个项目推荐什么类型的神经网络和激活函数?

2个回答

先说简单的:

  • 激活将一直是 RELU,直到你的最终 softmax 层(获胜概率?)(因为根据经验,RELU 在大多数问题上都做得很好,除非你的模型是 RNN,它会使梯度爆炸,或者在回归模型的最后一层——数值稳定性等)。
  • 你可能会用一些卷积层来构造它,它们之间有最大池化,然后在接近尾端的 1 或 2 个全连接层 (FC) (因为如果你只有 FC 层,你可能没有足够的数据来训练它们)
  • 非常值得尝试一些 1D 卷积(它巧妙地结合了前一层创建的卷积的通道)。
  • 学习率:首先采用 SGD 默认值,然后再进行调整。恐怕取决于问题!不过,调音的回报可能很大(我的孩子在玩玩具问题时很快就学会了)。

现在是硬位 - 编码您的输入:

  • 每个棋盘位置使用单个整数的分类编码可能会导致您的模型有些麻烦(这是一个“看起来像”实数的输入,但当然不是,并且在数字上看起来很接近的值可能代表具有完全不同能力的棋子(也许 King 的代码是 1,Queen 是 2,Bishop 是 3,但所有这些棋子都有如此不同的属性)。
  • 我强烈考虑将每个棋子/玩家组合视为一个“颜色通道” - 一个 64 个单元格网格,其中每个值为零或一(因此,一个通道用于白色的棋子,另一个用于白色的骑士,等等)。

最后,您的那些标签:请考虑一下您将如何处理抽签游戏 - 也许您有 3 种可能的结果,而不是 2 种?

我们都会很想听听你的进展——我希望你能以某种形式写出你的作品(并且你会回来抱怨/赞美我们的建议,视情况而定!)。

从国际象棋位置猜测获胜者很难分类。在国际象棋中,即使你从同一个位置开始,它也会给你不同的结果,这取决于玩家的动作。所以,我推荐你使用时间差分(TD)学习,这是强化学习背后的驱动概念。

强化学习中的一些方法仍然使用神经网络,但不用于预测获胜者。Q-Learning 中的预测是一种流行的强化学习算法,它预测玩家在特定位置选择特定动作的“价值”。从这些值中,玩家可以为当前位置选择最佳动作。

您可能会对以下参考资料感兴趣: