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

时间:2013-12-21 18:07:24

标签: java neural-network tic-tac-toe backpropagation

我们如何选择隐藏层(反向传播网络)的神经元数量?选择隐藏神经元的数量是否有任何硬性规则?在一些论文中,我发现它应该几乎等于(no_input_neurons * no_output_neurons)的平方根。但它对我不起作用。选择神经元是一种命中和试验方法吗?

我正在尝试设计从基本开始的井字游戏的神经网络(已经做过XOR)。我该怎么办?我发现不同论坛中隐藏神经元的数量不同。有什么想法?

2 个答案:

答案 0 :(得分:1)

为反向传播网络选择隐藏层是一种黑魔法,但你可以在某种程度上推理它。如您所知,通过学习网络可以确定高维空间中平面的参数,这些参数可以正确地对输入进行分类。因此,您需要拥有足够多的神经元,以便区分不同的输入。在我5年多前研究神经网络时,它曾经是一个活跃的研究课题。或许看看这篇论文:An algebraic projection analysis for optimal hidden units size and learning rates in back-propagation learning

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

答案 1 :(得分:0)

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