前馈神经网络如何选择隐藏层的数量

  统计/机器学习 深度学习 人工神经网络    浏览次数: 1666
6

我现在想用前馈神经网络做预测,我好奇有没有什么系统的方法来选择神经网络中隐藏层的数量?

此外每个隐藏层的节点数量又该如何选择呢?

 

机器小白   2017-03-11 11:40



   2个回答 
7

一般都是通过cross validation试出来的,没有什么绝对正确的准则。

不过有些是大家(包括Jeff Heaton)普遍的经验心得,值得参考下。

隐藏层数

一般是一层,因为大部分情况下都够用了。理论上说,一个有两个隐藏层的前馈神经网络可以表示任意的非线性决策边界。所以,可以说1到2个隐藏册。

隐藏层中的节点数

假设输入层的节点数是$N_x$,输出层的节点数$N_y$,那么每个隐藏层中的节点数$N_h$一般在$N_x$和$N_y$之间,有人推荐$\sqrt{N_xN_y}$,也有人推荐

$$N_h=\frac{N_s}{c(N_x+N_y)},$$

其中$N_s$是样本的数量,$c$是一个常数,通常选择个位数。当然以上都是根据经验而来的,具体怎么选,还需要针对具体问题进行分析然后做交叉验证。

蓝色北方   2017-03-25 13:53

因吹斯听! - Gavin   2017-10-18 13:18
学习了。请问有文献吗? - okayguy   2018-06-11 14:02
3

对于分类问题,我一般都是用一个隐藏层,隐藏神经元的个数是从Nx一直试到Ny

数据痴汉   2017-03-26 02:56



  相关主题

深度学习和人工神经网络是一回事吗?   1回答

神经网络中的Dropout和Bagging   1回答

神经网络中的gradient check是什么意思?   2回答

神经网络中的dense和sparse是什么意思?   2回答

dropout rate一般设置多大?   2回答

训练神经网络中经常提到的epoch是什么意思   2回答

deep learning中的pooling是什么意思?   3回答

mac电脑怎么用ssh远程控制Linux服务器查看可视化结果   1回答

pytorch 的交叉熵损失总是报错,同样的结构改成MSELoss就没有问题   1回答

keras.models.Sequential()是一种什么模型   1回答

请教一下python代码问题,各位大神帮帮忙,谢啦!   1回答

用神经网络做二元分类,输出层用Sigmoid还是Softmax?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!