让我们看一下过去几年ImageNet竞赛的结果,以总结一个初步的想法。从图上可以看出,自从第一个基于神经网络的模型在2012年赢得竞赛(AlexNet)以来,获奖的解决方案变得越来越深:从2012年的8层到2016年的200多个层。 在最近的实践中,似乎更深层次的网络已经相当成功。
我们如何解释这种趋势,即更深层的网络而不是更宽的网络?让我们快速了解一下该主张在理论上是基于什么(或某种原因)的。
在《前馈神经网络的深度之力》一文中,作者表明,对于Rd 很容易(神经元数量少)用3层神经网络来表达它们,但“对于2层网络是不可能的,除非其宽度在其维度上是指数级的。
根据通用逼近定理,单个隐藏层足以使神经网络近似于的紧凑子集上的任何连续函数。然而,实际上,正如前面的论文所告诉我们的,要用较浅的网络实现这种近似,需要更多的神经元/参数。
拥有更多的参数进行调整意味着需要更多的数据来训练这样的网络,以避免过度拟合。一个普遍的误解在于,更深层的网络必然具有更多的参数。这句话再错不过了。
如下图所示,与诸如 VGG-{16, 19} 这样的网络相比,像ResNet- {34,50,101,152}或Inception- {v3,v4}这样的非常深的网络在计算强度和参数方面要低得多, 尽管它更深入。架构设计与它也有很大关系。
这不是关于强行强制和添加层,而是关于使体系结构更有效地利用其参数,正如你在新旧模型之间大量参数减少中所看到的那样。例如,由于更深层的网络更容易出现消失的梯度问题,因此ResNets引入了残余连接,这些残余连接试图通过在非连续层之间建立跳过连接来解决此问题,从而使梯度更容易流动。 从视觉的角度来看,当我们分析经过训练的卷积神经网络的内核时,我们看到堆叠层有助于定义从简单到复杂的层次结构。例如,第一层学习区分直线或角度,第二层学习简单的形状,例如正方形,直到复杂和抽象的对象。