0
点赞
收藏
分享

微信扫一扫

神经网络中如何确定隐藏层的层数和大小

在前馈神经网络中,隐藏层的数量和层数的确定尚无依据,一般是由经验决定。

查阅了大量相关的文章之后我对其进行了综合梳理。

这里需要明确的一点是,这些只是根据经验提出的一些参考的方法,具体的层数和大小还是要在实际实验中进行验证。

在此之前我们还需要理解一点,就是当我们神经元足够多,隐藏层足够多的时候我们甚至能完美拟合所有的点,但是也会带来过拟合的问题。因此我们要把握一个适中的度。

二分类问题

方法出自:Beginners Ask “How Many Hidden Layers/Neurons to Use in Artificial Neural Networks?”

对于二分类比较好理解。但是我对这个方法持保留态度,之后会补充材料提出我的疑惑。

先看下边这两类,我们只需要一条斜线就可以完成映射。所以不需要隐藏层,直接inputoutput即可。

image.png

image.png
对于这样要靠两个方向的直线才能分开的这样想:一个神经元只能学习一条方向的直线,所以两个方向需要两个神经元,最后把两个方向的神经元拼起来获得最后的分割线。

image.png

以此类推,第一个隐藏层学到单方向的直线,第二个隐藏层将两条线拼接,以此类推直到最后都拼接起来。
image.png

多分类

如果二分类可以按照上述方法进行计算,那多分类如何搞?

现在比较常见的方法是根据输入层和输出层的大小进行估算。

现在假设:

  • 输入层大小为$n$
  • 输出层分为$m$类
  • 样本数量为$s$
  • 一个常数$c$

常见的观点有隐藏层数量$h$:

  • $h = \frac{s}{c(n+m)} \quad c \in [2,10]$
  • $h = \sqrt{n+m} + c \quad c \in [1,10]$
  • $h = \sqrt{nm}$
  • $h = \log_2n$
  • $h = 1.5*n$
  • $h = 1.5*(n+m)$
  • $h<2n$
  • ……

还有一些其他的观点但是我个人不太同意:

  • $min(m,n)<h<max(m,n)$

至于我为什么对一些说法抱有怀疑态度,以及层数怎么选先挖个坑,没时间写了。以后有空填坑。以后有空我把提到的参考文章也翻译成中文。

我是萝莉安,我好忙。:cry:

举报

相关推荐

0 条评论