多层感知器神经网络中的隐藏层数对神经网络的行为方式有何影响?隐藏层中节点数量的问题相同吗?
假设我想使用神经网络进行手写字符识别。在这种情况下,我将像素颜色强度值作为输入节点,将字符类作为输出节点。
如何选择隐藏图层和节点的数量来解决此类问题?
答案 0 :(得分:18)
注意:这个答案在制作时是正确的,但后来已经过时了。
在神经网络中拥有两个以上的隐藏层是很少见的。层数通常不是您会担心的网络参数。
虽然有多层的多层神经网络可以代表 深度电路,深度网络训练一直被视为有点 挑战。直到最近,经验研究才发现 深层网络通常表现不佳,而且往往更糟糕 比具有一个或两个隐藏层的神经网络。
所引用的论文对于了解网络深度的影响,深度网络教学的最新进展以及一般的深度学习是一个很好的参考。
答案 1 :(得分:7)
一般的答案是选择超参数是交叉验证。保留一些数据,训练具有不同配置的网络,并使用在保持的集合上表现最佳的网络。
答案 2 :(得分:4)
我看到的大部分问题都是用1-2个隐藏层解决的。事实证明,只有一个隐藏层的MLP是通用函数逼近器(Hornik et. al.)。更多隐藏层可以使问题更容易或更难。您通常必须尝试不同的拓扑。我听说如果你想用backprop训练你的MLP你不能添加任意数量的隐藏层,因为渐变在第一层中会变得太小(我没有参考)。但是有些应用程序的用户最多使用nine layers。也许你对standard benchmark problem感兴趣,它由不同的分类器和MLP拓扑解决。
答案 3 :(得分:3)
除了不同模型配置的交叉验证(隐藏层数或每层神经元数量)将导致您选择更好的配置。
一种方法是训练模型,尽可能大而深,并使用退出正则化来关闭一些神经元并减少过度拟合。
在本文中可以看到对这种方法的参考。 https://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdf
答案 4 :(得分:1)
以上所有答案当然都是正确的,但只是为了增加一些想法: 基于本文的一些一般规则如下:'逼近多隐藏层BPNN架构中隐藏层神经元的数量'作者:Saurabh Karsoliya。
一般情况下:
请记住,您需要探索并尝试许多不同的组合。此外,使用GridSearch
您可以找到"最佳模型和参数" 。
<强> E.g。我们可以做一个GridSearch来确定最好的&#34;隐藏图层的大小。