为什么神经网络变得更深而不是更广泛?


73

近年来,卷积神经网络(或一般来说可能是深层神经网络)变得越来越深,最先进的网络从7层(AlexNet)到1000层(Residual Nets)在4的空间中年份。深度网络提高性能的原因在于,可以学习更复杂的非线性函数。如果有足够的训练数据,这将使网络更容易区分不同的类别。

但是,趋势似乎并没有随着每一层中参数的数量而变化。例如,尽管层数增加了很多,但是卷积层中的特征图的数量或完全连接层中的节点的数量仍然大致相同,并且大小仍然相对较小。但是从我的直觉来看,似乎增加每层参数的数量将使每一层都有更丰富的数据源,从中可以学习其非线性函数;但是这个想法似乎已经被忽略了,只支持简单地增加更多的层,每个层都有少量的参数。

因此,尽管网络已变得“更深”,但它们并没有变得“更广泛”。为什么是这样?


1
+1,但要公平地说,这并不是说这1000+分层网络在性能上优于其他网络。您链接到的arxiv论文报告了具有152层的残留网络,这是ImageNet上的当前获奖者。
变形虫

3
您是否已阅读了广泛的残差网络arxiv.org/abs/1605.07146 ....也许没有理由..使用梯度下降来优化非凸函数没有任何理论基础...只是尝试,而且有很多错误:-)
seanv507

@ seanv507非常有趣,感谢您的链接。顺便说一句,这是一个非常相关的线程:stats.stackexchange.com/questions/214360,那里有一个指向此reddit线程的链接。
变形虫


Answers:


87

作为免责声明,我在研究中使用神经网络,但是我通常使用相对较小的浅层神经网络,而不是您在问题中引用的最前沿的真正的深层网络。我不是非常深入的网络的怪癖和特性方面的专家,因此我会请一位真正的专家。

首先,原则上根本没有理由需要深度神经网络。给定足够的训练数据,只有单个隐藏层的足够宽的神经网络可以近似任何(合理的)函数。但是,使用极宽的浅层网络存在一些困难。 主要问题是这些非常宽泛的浅层网络非常擅长记忆,但不那么容易泛化。因此,如果使用所有可能的输入值训练网络,那么超宽网络最终会记住您想要的相应输出值。但这没什么用,因为对于任何实际应用,您都不会掌握所有可能的输入值。

多层的优点是他们可以学习各种抽象级别的功能。例如,如果您训练一个深度卷积神经网络对图像进行分类,您会发现第一层将训练自己以识别非常基本的事物(例如边缘),而下一层将训练自己以识别边缘的集合(例如形状),下一层一层将训练自己以识别诸如眼睛或鼻子等形状的集合,而下一层将学习甚至更高阶的特征(如脸部)。 多层在概括方面要好得多,因为它们学习原始数据和高级分类之间的所有中间特征

因此,这说明了为什么您可能使用深层网络而不是非常宽泛但浅薄的网络。但是,为什么不建立一个非常广泛的网络呢?我认为答案是,您希望网络尽可能小以产生良好的结果。随着网络规模的增加,实际上只是在引入网络需要学习的更多参数,从而增加了过度拟合的机会。 如果您构建了一个非常广泛,非常深入的网络,则每层都有机会记住您想要的输出内容,最后您将得到一个无法归纳为新数据的神经网络

除了过度拟合的幽灵外,您的网络越广,训练所需的时间就越长。深度网络的训练在计算上已经非常昂贵,因此有很强的动力将其扩展到足以使其正常工作的范围,但不能扩展。


+1。对arxiv.org/abs/1605.07146有何评论?
变形虫

2
我只是略读了一下,所以我不能说什么权威,但是看起来作者发现,至少在残差网络的情况下,宽(但仍是16层!)的网比窄而极其深(1000层)的网要好。 )网。我对残差网络了解不多,但是根据介绍,似乎很难训练残差网络,因为它可能会导致各层根本不学习任何东西,从而对结果的贡献不大。似乎具有更少但更强大的层可以避免这种情况。这是否适用于我所不知道的其他类型的NN。
J. O'Brien Antognini 2016年

答案简洁明了,做得很好。@J
ctwardy

21

我认为您的问题没有确定的答案。但是我认为传统的看法如下:

基本上,随着学习算法的假设空间的增长,该算法可以学习越来越丰富的结构。但是同时,该算法变得更容易过度拟合,并且泛化误差可能会增加。

因此,最终,对于任何给定的数据集,建议使用具有足够能力来学习数据的真实结构的最小模型。但这是一个非常费力的建议,因为通常“数据的真实结构”是未知的,而且通常甚至对候选模型的能力也只有模糊的理解。

对于神经网络,假设空间的大小由参数数量控制。似乎对于固定数量的参数(或固定的数量级),更深的深度允许模型捕获更丰富的结构(例如,本文)。

这可能部分解释了参数较少的更深层次模型的成功:VGGNet(2014年以来)具有16层,具有约1.4亿个参数,而ResNet(2015年以来)具有152层,但仅有约200万个参数击败了它

(另一方面,较小的模型在计算上可能更容易训练-但我认为它本身并不是主要因素-因为深度实际上会使训练变得复杂)

请注意,这种趋势(深度更大,参数更少)主要出现在与视觉有关的任务和卷积网络中,这需要针对特定​​领域的解释。所以这是另一种观点:

卷积层中的每个“神经元”都有一个“接收场”,它是影响每个输出的输入的大小和形状。直观地,每个内核都捕获附近输入之间的某种关系。而且,小内核(常见且较为可取)的接收域较小,因此它们只能提供有关本地关系的信息。

但是随着深入,每个神经元相对于较早层的感受野会变大。因此,深层可以提供具有全局语义含义和抽象细节(关系的关系……对象关系的关系)的特征,同时仅使用小内核(对网络学习的关系进行正则化,并有助于其收敛和泛化)。

因此,深度卷积网络在计算机视觉中的有用性可能由图像和视频的空间结构部分解释。时间可能表明,对于不同类型的问题,或者对于非卷积架构,深度实际上并不能很好地发挥作用。


深度网络的受限玻尔兹曼机部分是收敛时间的倍数。(完成)
EngrStudent 2016年

4
RBM不是深度学习所固有的。许多(今天,大多数?)成功的深度网络不使用RBM。
博北

3
感谢您链接到该论文,我之前从未看过它,它看起来非常相关。
J. O'Brien Antognini

@Borbei-如何在没有RBM的情况下确保功能分离?
EngrStudent 2016年

1
+1。对arxiv.org/abs/1605.07146有何评论?
变形虫

10

添加更多功能会有所帮助,但是在添加了许多功能之后,收益很快变得微不足道。这就是PCA之类的工具起作用的原因之一:少数组件捕获了功能中的大部分差异。因此,在某个时刻之后添加更多功能几乎是没有用的。

另一方面,找到适合该功能的功能始终是一个好主意。但是,如果您没有很好的理论,当然很难提出正确的功能。因此,添加层作为蛮力方法的形式很有用。

考虑一个简单的例子:汽车的空气阻力。说,我们不知道等式: 其中汽车的横截面积,空气密度,汽车速度。我们可以认为汽车尺寸非常重要,并将其添加为特征,汽车速度也会提高。因此,我们不断添加功能,可能还会添加气压,温度,长度,汽车宽度,座位数等。

fCρAv2/2
Aρv

我们将得到一个像这样的模型。 您将看到,除非添加所有相互作用和多项式,否则这些功能将不会如何将自身组合为“ true”方程式。但是,如果真实方程式不是方便的多项式,比如说它具有指数或其他怪异的先验函数,那么我们就没有机会通过扩展特征集或扩展网络来模拟它。

fiβixi

但是,使网络更深将使您仅需两层即可轻松地了解上面的公式。更复杂的功能需要更多的层,这就是为什么增加层数可以解决许多问题的原因。


5
您假设线性传递函数。但是还有许多其他(通用)选择,并且根据ANN通用逼近定理,即使是单个隐藏的非线性层(如果足够宽)也可以近似任何不错的函数。因此,可表示性无法真正解释深度网络的成功。
博北

2
我的例子是线性的,但它适用于更广泛的情况。您假定“不错”的功能,但很多功能都不是很好。例如,当我选择购买汽车时,为什么我的决策算法会是一个不错的功能?
Aksakal

2

对于深度为,宽度为的紧密连接的神经网络,参数的数量(因此,运行或训练网络所需的RAM)为。因此,如果您只有有限数量的参数,则通常倾向于较大的深度增加而不是较小的宽度增加。dwO(dw2)

为什么要尝试限制参数数量?原因如下:

  • 您正在尝试避免过度拟合。(尽管限制参数的数量是实现此目的的一种非常钝器。)
  • 如果您可以使用相同数量的参数来胜过其他人的模型,那么您的研究将给人留下深刻的印象。
  • 如果模型(如果使用Adam的话,加上矩参数)可以放入单个GPU的内存中,则训练模型要容易得多。
  • 在实际应用中,服务模型时RAM通常很昂贵。这对于在手机上运行模型尤其如此,但有时甚至可以应用于从云服务模型。

哪里的从何而来?对于宽度为两个相邻层,它们之间的连接由描述。因此,如果您有个宽度为层(加上一个输入和一个输出层),则参数的数量为 除了限制宽度之外,有时使用的另一种策略是使用稀疏连接。例如,在初始化网络拓扑时,您可以允许每个连接的概率为因此参数总数为瓦特1瓦特2 瓦特1 × 瓦特2d - 2 瓦特d - 2 瓦特2 + 瓦特输入层宽度+ 瓦特输出层宽度= Ö d 瓦特21 / O(dw2)w1,w2w1×w2(d2)w

(d2)w2+w(input layer width)+w(output layer width)=O(dw2).
ød瓦特1/wO(dw)。但是,如果这样做,还不清楚增加宽度是否必然会增加模型的学习能力。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.