GooleNet-Going Deeper with Convolutions

Summary

We propose a deep convolution neural network architecture, the code name is called Inception. His highest level in ILSVRC2014 detection and classification matches. The main structure is characterized by improved utilization of the computer . By careful design, we increased the depth and width of the network in the case of computing power remains unchanged . To optimize performance, the structure is based on Hebbian design principles and multi-scale meter. GoogLeNet we submitted in ILSVRC14 is one of his incarnation, he can be used in classification and recognition tasks.

1 Introduction

---- This is talking about some of the background.

The last three years, the ability to identify and classify the object because the depth of learning and development network convolution sharply increased. An inspiring is that most of these theories are not relying on more powerful hardware, larger data sets, larger model, but an inspiration for a new idea, algorithms and improve the network structure. No new data source is used, for example, ILSVRC2014 in the same session, in addition to disaggregated data for testing, and no other data. Our GoogNet actually spent more than two years ago the winner Krizhevsky less 12 times the number of parameters , but our accuracy was higher. In the object detection, the greatest improvement deeper than through the network, but the depth of the structure and bonded by classic computer vision, like R-CNN algorithm.

Another factor is worth noting that as mobile and embedded computing grows, the effectiveness of our algorithm (especially power and memory usage) become more important. It is worth noting that the factors underlying the proposed architectural design considerations include this factor, and not totally dependent on the precise numbers. In most experiments, the model is designed to only 1.5 billion reasoning stage addition unit, so it was not exactly an academic exploration. He can be applied to practice, even large data sets, cost is relatively reasonable.

In this paper, we are committed to efficient depth neural network computer vision for the code name is called Inception. We need more in-depth from Lin et al Network in the network and the famous brain to imitate, because it is integrated from the name of these two papers. In our case, deep This word has two different meanings: First, we introduced a new organization Inception model (with a new level of performance Inception model their designs) ---- inception structure level. Second, it is the sheer depth refers to the neural network. In general, we can be seen as a theoretical maximum of Inception Arora et al. The advantage of this structure by the verification ILSVRC2014 classification and recognition tasks, in terms of the time was state of the art. He is standing on the top.

2 , related work

In LeNet-5 is started, CNN has a standard structure - convolution stacked layer (hereinafter, may be made of the n-layer and the maximum pool) + full connection layer. The different variants of the basic design is very popular in the field of image classification, and MNIST, CIFAR, even ImageNet classification game produced very good results. For large data such as Imagenet, it is the recent popularity of big increases add layers of depth, and the use of dropout to prevent over-fitting.

Although the maximum cell layer can lead to loss of accurate spatial information, and 9 in the same convolutional network structure has been used in the positioning, object detection, and human pose estimation.

Excited primate visual cortex neuroscience model, Serre et al. Used a series of fixed Gabor filters of different sizes to handle different scale. We used a similar strategy. However, with respect to two fixed depth model 15, all filters Inception structure had already learned . Inception model described above is a plurality of layers formed by multiple copies of mechanism . In addition, the Inception layer was repeated many times, resulting in a depth model (model is GoogLeNet) a 22 layer.

Network-in-Network is one of a method proposed by Lin et al., 12, aimed at improving the ability to characterize the neural network . In other models, an additional layer of a convolution of a 1 * is applied to the network, he adds depth. We in our structure is largely used this method. But in our setup, the convolution layer 1 * 1 can serve two purposes : The most important thing, as they calculate the dimension reduction module to remove bottlenecks, otherwise it will limit the size of our network. Second, this not only increases the depth and width of the network increases, no significant loss of performance.

Finally, the best method of object detection is R-CNN art method. R-cnn all detection problem is decomposed into two sub-problems: 1, and in a category pattern unrelated to object localization using a low-level cues (color and text). 2, using the CNN classifier identifies these positions in the various categories of objects. Such a method has two states: get the accuracy of the segmentation return box with a low-level clues, with advanced CNN to get a strong classification. Submission of inspection tasks, we also used the same process, but we have been enhanced, for example, more blocks to predict a higher recall method better overall classification borders recommendations.

3 , consider the motivation and senior

提高深度神经网络最直接的方法就是增加他们的大小。这个包含增加深度(网络的层数)和宽度(每一层的单元数)。这是一个简单安全的训练高性能模型,尤其是给定大量的标记过的数据。然而,这个会有两个主要的缺点

更大的尺寸总是意味着大量的参数,这将会使网络更加容易过拟合。如果标记的训练集少的话,就更加容易过拟合。这是一个主要的瓶颈,因为标记过的数据集是很难获取的,总是需要专门的人员来将图片进行不同不同类的归类,比如说ImageNet有1000个分类在图一中。

另一个缺点是急剧的增加了计算资源的花费。比如说,在深度视觉网络中,如果两个卷积层链接在一起,增加过滤器的数量将导致计算资源成二次方的增加。如果增加的大小没有很好的利用(比如说,大多数的权重最后都接近0,那就相当于没有用),就白白的浪费了大量的计算能力。因为计算能力总是固定的,因此一个有效的计算资源的分配比一个不加区别的增加大小要好得多,即使以提高模型性能为指标。

解决这两个问题一个基本的方法是引进稀疏并将全连接层替换为稀疏的链接,甚至是在卷积层中也可以使用稀疏。除了模仿生物系统,基于Arora等人的开创性工作,这些也变得有了监视的理论基础。他们的主要的陈述是,神经元进行聚类来获得一层层的网络。尽管严格的数学证明需如果数据集分配的概率可以通过一个大型的,很稀疏的深度神经网络表示出来,那么最优的网络拓扑可以通过对前面网络的激活和高度相关输出的聚类的分析,这样一层一层的构建。尽管这个的要很严格的条件,事实上这个状态和众所周知的Hebbian原则(神经元如果激活条件相同,那么他们就可以互联)-这也就说明Hebbian原则在不那么严格的条件下也是可以使用的。

不幸的是,现在计算硬件对于non-uniform的系数数据结构也是很低效的。即使算法操作的次数减少100倍,查找和缓存丢失的影响将会占据主导地位:稀疏矩阵也不会彻底解决。利用底层CPU或者GPU硬件的详细信息,稳步改进和高度调优的数值库允许机器快速的密度举证乘法。并且,非uniform稀疏模型需要更加复杂的工程和计算硬件。目前大多数面向视觉的机器学习系统都是通过卷积来利用空间域的稀疏性。然而卷积是被作为前面层中密集连接到补丁(patches)的集合应用的。自从系统分割和学习改善以来,卷积已经在特征维度上使用高维空间中随机和稀疏链接表,目前趋势改变到全连接层和9来优化并行计算。计算机视觉中当前顶尖的结构有uniform结构。大量的过滤器和更大批量大小允许高效的使用密度计算。

这个就引出了一个问题下一个方法是否还有希望,一个折中的步骤:像理论支持的那样结构使用稀疏过滤,(稀疏计算量很大)但是通过在密度矩阵上执行计算来利用我们当前的硬件。大量的稀疏矩阵计算的文件建议将稀疏矩阵聚类成相对密度的子矩阵对于稀疏矩阵乘法给定了一个更有好的性能。在不远的将来,相似的方法将会被用来自动构建non-uniform深度学习结构。

折中说明前两者是独立的,non-uniform就是指稀疏的网络形式。

Inception结构开始作为一个用于研究复杂网络拓扑构建算法的期望输出的例子出现的。这个算法试着接近一个稀疏的由视觉网络和密度转换复杂输出结果,可读的部件。尽管这个是一个高度投机的方法,在和基于12的参考网络相比的时候可以观察到一些收益。随着一点点加大差距,Inception在定位和对象识别领域中像5和6那样有用。有趣的是,尽管大多数的原始结构的选择已经开始被质疑,并进行隔离测试,他们证明是接近局部最优的。一个人必须十分小心:尽管Inception结构成为计算机视觉中一个成功,但是他人然是有疑惑的(这个可以作为指导原则来指导他的构造吗)。但是可以确认的是这个将会需要一个更加全面的分析和验证。

4、框架细节

Inception结构的主要思想是考虑一个卷积视觉网络的本地稀疏架构优化可以通过简单的密度部件来逼近和转换。注意,假设平移不变性意味着我们的网络将会从卷积构建的块中创建。我们的所有需要就是发现最优的局部构造并在空间上重复他。Arora建议一个层连层的构造,但是需要分析最后一层对应的统计和将他们聚类成高度相关的类。

这些聚类组成了下一层的单元并且和前面层的单元相连。我们认为从前面层中来的每一个单元对应输入图片的一个区域,这些单元组成过滤波器银行(这个意思就是说滤波器处理后的数据)。在比较低的层(靠近输入图片)对应单元将会聚集在本地区域。因此我们将会得到很多对应在相同输入的区域的簇,在下一层他们可以通过一个1*1的卷积层来进行收敛,正如12描述的那样。

但是,我们仍然可以希望更加广泛的稀疏传播有外有更少可以在大的补丁上被卷积覆盖的数量,可以通过卷积在大量的补丁上进行转换,随着越来越大的区域,这里将会减少补丁数量。为了避免补丁对齐问题,目前Inception结构的化身的过滤器尺寸严格为1*1,3*3和5*5。这个决定更多的是为了方便,而不是必须要这么做。他也意味着推荐的结构是一个所有这些层的结合,这些层的输出过滤器组对应一个单一的组成下一个状态的输入的向量。另外,池化层操作对于目前卷积网络的成功的必要条件,他建议在每一个这样的状态增加一个可选的并行池化层路径将会有额外的收益(图2).

它1*1降维是指讲channel数feature map数减少。

这些Inception模型被堆放在每一个的上面,他们的输出统计学对应一定会改变:因为更高的抽象特征是被更高的层捕捉的,他们的空间聚集是下降的。高级特征和高级特征之间的聚集是下降的,所以需要更多的过滤器来捕捉。这个就建议3*3和5*5的卷积网络的比例应该随着我们移动到更高的层来增加。

上面模型的一个大问题,最起码实在这个天真的具体情况中,就是即使最小数量的5*5卷积网络在在顶层有大量的过滤器消耗也很大。这个问题在池化层问世的时候就提出来了:输出过滤器的数量等于上一个状态的过滤器的数量。带有卷积层输出池化层的输出总和将会增加从一个状态到另一个状态的数量。这个结构可能包含最好的稀疏结构,他将会很低效的执行,导致一个计算炸毁,也就是计算崩溃了。

这个就产生了Inception结构的第二个思想:明智的减少维度否则计算能力将会需要增加很多。这个是基于压缩的成功:即使低纬度的压缩可能包含一个相当大的图片的很多信息。但是压缩在某个程度上表示信息,压缩格式和压缩信息是更加困难去处理的。这个表示在大多数时候将会保持稀疏(就像条件2需要的那样),只有当信号必须集中在一起的时候才必须压缩他们。因此在昂贵的3*3和5*5卷积之前用1*1卷积用来计算从而可以减少消耗。除了用作降维,他们还包含线行修改激活,这是他们的两个目的。最终的结果展示在图二中。

通常,一个Inception网络是一个包含上面类型模块的网络,有步长为2的最大池化层来减少栅格的分辨率。对于技术原因(在训练期间内存效率的考虑),只有在比较高的层中使用inception同时保持底层是传统的卷积格式此时有好处的。这个并不是严格要求的,这仅仅反应的是当前我们实现效率低的情况。

这个结构有用的一方面是它允许在每一个阶段显著的增加单元数量,而不会在后面的阶段造成计算崩溃。这个是因为 对有大补丁的网络大量使用降维 来降低的消耗。此外,设计遵循下面的直到原则:视觉信息应该在不同的尺寸下处理然后聚合,因此下一个状态可以从不同的scale中同时提取特征。

计算资源的提高允许同时增加每一个状态的宽度和状态的数量,而不产生计算问题。可以利用Inception结构来创建性能稍差,但是计算能力更加廉价的版本。我们发现所有的方法可以将同等不使用Inception的网络速度提高3-10倍,但是这个需要谨慎的手工设计。

5GoogLeNet

GoogLeNet这个名字我们Inception结构的某一个特定的衍生物,在ILSVRC2014中提交的作品。沃恩也使用更深和更宽的Inception网络,他的略优品质,但是把他使用到总体上看起来提高的性能不多。我们忽略了网络的细节,因为实验证据指示结构的确切参数的影响是相当小的。表一阐述了在竞赛中最常用的例子。这个网络(用不同的图片补丁的采样方式)在我们的组合中使用7个模型中的6个。

所有的卷积,包括在Inception模型中的卷积,使用的是修正的线行激活。在我们网络中的接受的大小是224*224的均值为0的RGB颜色空间。"#3*3reduce"和"#5*5reduce"表示在3*3和5*5卷积之前似乎用的减少层中1*1过滤器的数量。我们可以在内置的池化列的最大池化层后面的映射层中看到1*1过滤器的数量。所有的这些减少层/映射曾使用修正的线行激活。

这个网络设计考虑的是计算效率和实用性,因此推断可以在独立的设备上执行,甚至是这些只有有限的计算资源的,并且使用的是低效的脚本的情况。

当只计算有参数的层的时候,这个网络只有22个层(如果计算池化层就有27个)。构建这个网络使用的全部的层是100个。准确的数目取决于层是怎样被机器学习设施计算的。在分类之前使用的平均池化层是基于12,尽管我们的实施有一个额外的线行层。这个线行层使我们能够很容易的将我们的网络推广到其他的标记集,然而他最常用于方便并且我们不期望它有很大的影响。我们发现从全连接层移动到平均池化层提高了top1 0.6%的精度,但是即使去除掉全连接层后dropout层仍是不可缺少的。

给定相对大的网络深度,所有层的反向传播是比较关心的。在这个任务的浅网络的强大的性能指示网络中间的层产生的特征应该差距很大。通过添加连接到媒介层的分类器,分类器中低状态的区别被期望。这个是通过在提供常规化的时候和梯度消失问题做斗争的。这些分类器采取的是小的卷积网络的形式放在Inception(4a)和(4d)模块的上面。在训练的时候,他们的损失求和来求整体的损失,但是会乘以一个系数(附加的分类器的损失会乘以一个0.3的系数)。在测试的时候,这些附加的网络就会被弃掉。后面的控制实验展示了附加网络的影响是相当小的(0.5%),他只需要他们其中的一个就可以达到相同的水平。

   

额外网络的准确结构在下面,包含额外的分类器:

·一个平均池化层有5*5的过滤器尺寸,步长3,输出4*4*512在4a状态,4*4*528在4d状态。

·一个1*1的卷积有128个过滤器来降维和修正线行激活

·有1024个单元的全连接层和修正线行激活

·一个dropout层有70%的放弃输出的概率。

·一个线行层,有softmax损失作为分类器(预处理相同的1000类作为主要的分类器,但是在测试的时候移除)。

示意图在图三中介绍:

6、训练方法

GoogLeNet 网络使用DistBelief分配机器学习训练的使用小量的模型和数据并行。尽管我们基于实现使用了一个CPU,大概估计在几个高端的GPu上训练时间在一周以内,主要的限制是内存的使用。我们训练使用的同步随机梯度下降,0.9的动量,固定学习率(每8个epoch减少4%的学习率)。Polyak平均法用来创建一个最终稿的模型。

图像采样模型在最近的几个月内已经改变了,已经收敛的模型和其他的模型一起训练,有时候和改变的超参数相连,比如说dropout和学习率。因此,很难给出一个指导性的定义来产生最有效的单一的方法来训练这些网络。为了更复杂的问题,一些模型主要在相对小的crop上面训练的,其他的在大的crop上训练的,这是受8的启发。尽管如此,有一个经过验证非常有效的方法,那就是对图像中大小不等的小块进行采样,这些小块的大小均匀分布在图像面积的8%到100之间,长宽比限制在区间[3/4,4/3].我们仍然发现Andrew Howard的图像干扰在训练数据中对于抑制过拟合是十分有用的。

7ILSVRC2014分类竞赛中的建立和结果

这个比赛任务是将图片分成1000个类张的一个,数据集是ImageNet。这里大概有120万图像来训练,5万用于验证10万用于测试。每一个图片肯定属于一个分类,最终根据得分的最高的结果来进行分类。性能常用top1top5表示。

我们参加这个竞赛没有使用额外的数据来训练。除了前面提到的训练方法,我们在测试中应用了一系列的技术来获得高性能,下面我们描述一下。

1、我们独立训练了7个版本的相同的GoogLeNet模型(包括一个更宽的版本),在整体上执行预测。这些模型用了相同的初始化(由于疏忽,全总初始化也相同了)学习率策略。他们只在采样方法和随机输入图片的顺序上不同。

2、在测试的时候,我们应用了一个比Krizhevsky更有进取性的crop方法。我们将图片resize成4个尺寸,高和宽更短的哪一个是256,288,320,352。采用的是这些resized图片左,中和右的方框(在开始的输入图片中我们采用的是顶部中心和底部的方框)。对于每一个方框,我们用4个角和中新224*224的区域和整体图像resized到224*224,还有他们的镜像。每个图像就就产生了4*3*6*2=144个产物,

4:4个尺寸 256,288,320,352

3:4个尺寸中的左中右或者上中下三个

6:四个角、中间、整张照片resize成224*224

2:镜像不镜像

crop就是对输入图片做的预处理。在前几年一个相似的操作被AndrewHoward使用,经验证该方案比我们提出的稍微差一些。我们注意到这样的进取性的crop在实际应用中可能不是必须的,因为随着crops的增多,继续增加更多的crop的优点将会消失(后面我们会展示)。

3、softmax概率是几个crop的平均值,在所有的独立分类器上面求取最终的预测。在我们的实验中,我们在验证集上分析了可用的方法,比如说所有crop上面的最大池化层和所有分类器上面的平均值,但是他们导致比简单的求平均更差的性能

在论文的剩余部分我们在最终提交的作品中分析了对整体性能有影响的多个因素。

我们最终的提交作品top5 6.67%(验证集和测试集),是第一。这个和2012年的SuperVision方法相比减少了56.5%,在Clarifai数据集上面比去年最好的减少了40%。他们都是用了额外的数据来训练分类器。表2展示了三年来性能最好的方法。

我们也分析和报道了多个通过不同数量的模型和crops进行测试选择的性能,在图三中进行的图片预测。当我们使用一个模型,我们选择在验证集上有最低top1错误率的模型。所有的数量都在验证机上进行了报道为了使防止在测试集上过拟合。

8ILSVRC2014检测竞赛建立和结果

ILSVRC检测任务是在图像中的对象上产生一个框,对象几乎有200中可能的分类。检测的对象如果是正确的类并且这个框的重叠最少是50%(使用雅可比索引),那么就认为是正确的。其他的检测将会被认为是假阳性并受到乘法。对于分类任务,每个图片可能包含很多的对象或者没有对象,并且他们的尺寸是不一样的。结果是通过使用平均平均精度(mAP)。GoogLeNet对于检测采用的方法和R-CNN很像,但是区域分类器是通过Inception增强了的。另外,结合为了更高的回归狂召回率使用的多box预测选择搜索方法区域提议步骤。为了减少错误的数量超级像素点的大小增加两倍。这个减半了来自选择算法的建议。我们从多box结果中增加了200个区域建议,总共,大约60%的提议被6使用,同时从92%收敛到了93%。用增加卷积减少提议数量的整体影响是单一模型mPA15的改善。最终我们在区分每一个区域的时候使用了一个6个GoogLeNet的网络。这个将正确性从40增加到到了43.9%。相对于R-CNN,我们因为缺少时间所以没有使用回归框。

我们首先从第一版本的检测任务来报道最好的检测结果和展示处理。和2013年的结果相比,精度近乎加倍了。所有的顶级的小组都是用的是卷积网络。我们在table4中报道了官方的成绩并且每个小队共同的策略是:使用额外的数据集,多个模块或者上下文关联的模块。典型的额外的数据集就是ILSVRC12分类数据集用于预训练一个模型,最终在检测数据上精炼。一些小队也提到了使用定位数据。自从定位任务回归框很好的一部分不包含在检测数据集中,我们用数据预训练一个通用的回归框,和分类使用的预训练是一样的。GoogLeNet没有使用定位数据集用于预训练。

在表5中,我们使用一个单一的模型比较了结果。最好的模型是由Deep Insight产生的,吃惊的是GoogLeNet在整体中获得了更强壮的表达,但是只提高了3个百分点。

9、总结

我们的结果证明:通过易得的密度构建的块来逼近期望的最优稀疏结构对于改善计算机视觉的神经网络。这个方法的主要优点是相对于浅层和密集结构,本方法只需要稍微的增加计算能力就可以获得很大的性能提升。

我们的检测工作尽管没有使用上下文也没有执行回归框仍然是由竞争力的,但是对于Inception结构的勇气提供了证据。

对于分类和检测任务,它期望相似数量的结果可以通过相同深度和相同宽度的很多的昂贵的非Inception类型网络获得。我们的方法产生了有利的证据:移动到稀疏结构的思想通常是合理和有用的。在基于2的自动方法中,这个指导将来的工作指向创建稀疏和更加精炼的结构,并且也可以将Inception结构应用于其他的领域。

Guess you like

Origin www.cnblogs.com/yunshangyue71/p/11646892.html