2

我写的可以玩井字游戏的神经网络。网络有9个输入神经元,它们描述板的状态(1代表网络移动,1.5代表对手移动,0代表空单元格)和9个输出神经元(输出神经元的最高值表示给定的最佳动作州)。网络没有隐藏层。激活函数 - sigmoid。学习方法 - Q学习+反向传播。井字游戏的神经网络

网络训练有素,但效果很差(继续占用被占用的小区)。所以我决定添加一个隐藏层。我想问:

隐藏层中要使用哪个神经元的数量以及哪些激活函数更适用于隐藏层和输出层?

+1

我喜欢你的项目,如果你把它发布在Github上,它会使每个人都受益。不幸的是,我们不清楚如何回答这个问题。你的问题听起来像你对我有一个bug(占用被占用的单元格),而不是机器学习的问题。 – SmallChess

回答

1

一般来说,要为隐藏层添加的神经元的数量被讨论here,但作为经验法则,隐藏层中神经元的数量应该近似为输入神经元的数量。

您也可以考虑加入该讨论here

乙状结肠激活功能是好的,反正你可以检查它,并比较其他激活功能隐藏层数。

在您的具体情况下,您还可以考虑强制代理没有考虑(完全)通过对输出神经元使用不同架构来选择占用的单元格。

+0

谢谢你的建议!我会尽量使用它们。 – John