如何选择神经网络中隐藏层和节点的数量?

gin*_*tas 32 artificial-intelligence machine-learning neural-network

多层感知器神经网络中的隐藏层数对神经网络的行为方式有何影响?隐藏层中节点数量的问题相同?

假设我想使用神经网络进行手写字符识别.在这种情况下,我将像素颜色强度值作为输入节点,将字符类作为输出节点.

我如何选择隐藏层和节点的数量来解决这个问题?

Don*_*eba 18

注意:这个答案在制作时是正确的,但后来变得过时了.


在神经网络中很少有两个以上的隐藏层.层数通常不是您会担心的网络参数.

虽然具有多层的多层神经网络可以代表深层电路,但深度网络训练一直被视为一种挑战.直到最近,实证研究经常发现深度网络通常没有比具有一个或两个隐藏层的神经网络更好,而且往往更糟糕.

Bengio,Y.&LeCun,Y.,2007.将学习算法扩展到AI.大规模内核机器,(1),pp.1-41.

所引用的论文对于了解网络深度的影响,深度网络教学的最新进展以及一般的深度学习是一个很好的参考.

  • 我想指出的是,上面的引文来自 Bengio 和 Lecun 在他们的论文中提到的其他作者,即 [Tesauro,1992]。 (2认同)

Rob*_*aus 8

一般的答案是选择超参数是交叉验证.保留一些数据,训练具有不同配置的网络,并使用在保持的集合上表现最佳的网络.

  • 好的,这是一个坚实的方法.但有没有办法猜测它?有些事情,这个数据可以很好地解释10个主要组件,所以我们应该有大约10个隐藏节点排列在2层? (4认同)

alf*_*lfa 5

我所看到的大多数问题都是通过1-2个隐藏层解决的。事实证明,只有一个隐藏层的MLP是通用函数逼近器(Hornik等人)。更多的隐藏层可以使问题更容易或更难解决。通常,您必须尝试不同的拓扑。我听说如果要使用反向传播训练MLP,则不能添加任意数量的隐藏层,因为在第一层中渐变会变得太小(我对此没有参考)。但是在某些应用程序中,人们最多使用了九层。也许您对由不同的分类器和MLP拓扑解决的标准基准问题感兴趣。