Java 神经网络中隐神经元的确定

Java 神经网络中隐神经元的确定,java,neural-network,tic-tac-toe,backpropagation,Java,Neural Network,Tic Tac Toe,Backpropagation,如何为隐藏层(反向传播网络)选择神经元数量?选择隐藏神经元的数量有什么硬性规定吗?我在一些论文中发现它应该几乎等于(无输入神经元*无输出神经元)的平方根。但这对我不起作用。选择神经元是一种尝试性的方法吗 我正试图从basic(已经做过XOR)开始设计tic-tac-toe的神经网络。我应该如何进行?我发现不同论坛中隐藏的神经元数量不同。想法是什么?确定隐藏层/神经元的数量是基于反复试验的方法,并且高度依赖于您使用的训练数据类型。我总是先尝试将隐藏神经元的数量与输入神经元的数量相匹配,然后再递增/

如何为隐藏层(反向传播网络)选择神经元数量?选择隐藏神经元的数量有什么硬性规定吗?我在一些论文中发现它应该几乎等于(无输入神经元*无输出神经元)的平方根。但这对我不起作用。选择神经元是一种尝试性的方法吗


我正试图从basic(已经做过XOR)开始设计tic-tac-toe的神经网络。我应该如何进行?我发现不同论坛中隐藏的神经元数量不同。想法是什么?

确定隐藏层/神经元的数量是基于反复试验的方法,并且高度依赖于您使用的训练数据类型。我总是先尝试将隐藏神经元的数量与输入神经元的数量相匹配,然后再递增/递减。尝试改变训练时间和学习速度。

为反向传播网络选择隐藏层有点像黑魔法,但你可以在某种程度上对此进行推理。正如您所知,通过学习网络可以确定高维空间中平面的参数,从而可以正确地对输入进行分类。所以你需要有足够多的神经元来区分不同的输入。当我5年多前研究神经网络时,它曾经是一个活跃的研究课题。或许可以看看这篇文章:

对于其他类型的网络,如循环网络,有一些技术可以帮助找到正确的体系结构-例如,可视化学习的权重,这些权重有时明显类似于输入的特征