Inception: Going deeper with convolutions

本文深入探讨了GoogLeNet网络的动机和设计思路,重点介绍了Inception模块。作者指出,面对深度学习中模型深度和宽度增加带来的问题,引入稀疏性是一种解决方案。Inception模块通过多尺度卷积和降维处理,实现了计算效率与性能的平衡。文章详细解释了Inception的结构及其计算量的优化,展示了如何通过稠密组件构建稀疏模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 前言

在上一篇文章中笔者介绍了一种网络中的网络NiN模型,在接下来的这篇文章中将向大家介绍另外一种网络模型GoogLeNet[1]。从名字上看它似乎是Google与LeNet的结合,不过实际上它和LeNet并没有什么关系,仅仅是在向它致敬。GoogLeNet是Google公司和Magic Leap公司一起在CVPR2015上所发表的一篇论文,它的目的主要有两个:第一是用来分类,第二就是用来进行目标检测,如图1所示就是图像处理领域中常见的几种任务。GoogLeNet吸收了NiN模型中插入卷积的思想,并在此基础上做了很大的改进提出了一个名为Inception的模块。最后,通过多个相互堆叠的Inception模块构成了最后的GoogLeNet网络。

000344
图 1. 图像处理领域中常见的几类任务[2]

同样,笔者在写这篇文章之前也并没有看过这篇论文。因此笔者在第一眼看到论文时心里就默默念了一句“这篇幅,很谷歌”。谷歌发表的论文就像是武功秘籍里的独孤九剑、天山六阳掌和九阴真经一样,内容短小但却精悍,若是得道其中必定威力无穷,这一点我们在后面的文章中还会领略到。下面就让我们一起来解开这篇论文的庐山真面目。公众号后台回复“论文”即可获得下载链接!

2 动机

按照我们之前的习惯,解析一篇论文时一定要弄清楚论文的动机是什么?弄清楚作者为什么要这么做,目的是什么,以及解决了一个什么样的问题?只有了解清楚了这一过程,才有助于引导自己形成类似的思维模式,从而顺着这一思路想出自己的改进点,而不仅仅只是说会实现这个网络了,能跑通代码就完事。技术只是外功,思想与理念才是内功。

在论文的介绍部分作者提到,随着移动终端和可嵌入设备的兴起,我们所需要的应该是更加注重效率而不仅仅只是关注于结果的网络模型。下面我们就来看看作者所提出的两大主要问题。

2.1 面临问题

在深度学习中,两个最直接的提高模型精度的方法就是加深模型的深度(如网络的层数)和宽度(如每一层卷积核的个数),但是这些做法就带来了两个弊端:①更大的尺度意味着模型将拥有海量的参数,在标注数据不够的情况下及其容易产生过拟合;②仅仅只是匀速的增加网络的深度都会带来巨大的计算开销。例如第一个卷积层的参数为[3,3,64,128][3,3,64,128][3,3,64,128],现在再加入一个参数为[3,3,128,256][3,3,128,256][3,3,128,256]卷积层,虽然此时网络的性能可能有所提高,但这却带来了平方级参数量的增长。但更致命的是如果这些新加入的网络层并没有起到任何作用(训练完成参数趋于0),那么这样就浪费了大量的计算资源。

因此,作者认为一个解决上述问题的基本方法就是引入稀疏性(sparsity),例如通过某种稀疏结构来代替全连接方式;或者甚至是在卷积网络中也引入稀疏性。同时作者提到,之所以有这样的想法不仅仅在于这是在模仿生物的神经系统,其同样还有着Arora等人[3]坚实的理论基础作为支撑。Arora等人认为:如果某个数据集能够通过一个大的、稀疏的深度神经网络来进行表示,那么这个网络的最优拓扑结构就能够通过逐层聚类分析输出的激活值,然后推导得出

Their main result states that if the probability distribution of the dataset is representable by a large, very sparse deep neural network, then the optimal network topology can be constructed layer after layer by analyzing the correlation statistics of the preceding layer activations and clustering neurons with highly correlated outputs.

尽管这缺少严格的数学证明,但这一想法却与著名的赫布理论产生了共鸣,即”其中一个神经元先激活,然后另一个神经元马上跟着激活[5]“。

neurons that fire together, wire together

其实这里笔者也没有弄清楚稀疏性和这个赫布理论有什么联系,不过这也没关系。我们只需要知道解决上述问题的核心是给网络引入稀疏性就行了(其实不加这一段生物神经系统的论证似乎也能理解通过引入稀疏性来解决参数冗余问题)。那怎么才能加入这种稀疏性呢?

2.2 解决思路

在论文第三节的后半部分,作者就开始一步一步地隐晦的给出了解决这一问题的思路。因此这部分内容真的是非常的晦涩难懂,描述方式很不直接,需要读者自己来理清楚里面的逻辑关系。

首先作者说到,不幸的是现有的计算设备在处理非均匀的稀疏数据(non-uniform sparse data structures)时是非常低效的;并且在对稀疏数据进行计算时,即使将其中计算的步骤减少100倍,通过现有的计算设备来计算依旧十分低效。同时,随着现有的计算库对CPU和GPU的优化,它们将会更加的擅长在密集矩阵(dense matrices)上进行计算。因此,这两者(现有计算设备对于稀疏矩阵和密集矩阵的计算速度)之间的差距就会月来越大。言外之意就是作者并不希望通过基于稀疏矩阵计算的方式来稀疏化网络模型。

接着作者提到,非均匀的稀疏模型(non-uniform

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值