首页 > 其他分享 >超详细经典神经论文精读(三)——GoogLeNet

超详细经典神经论文精读(三)——GoogLeNet

时间:2024-12-06 20:57:29浏览次数:4  
标签:输出 精读 卷积 论文 网络 GoogLeNet 使用 Inception 稀疏

深度学习精读论文系列(三)
本次所选择的论文是GoogLeNet,其使用了Inception模块

这里写目录标题

Abstract—摘要

翻译

我们提出了一种代号为“GoogleNet”的深度卷积神经网络架构,它负责在2014 年ImageNet大规模视觉识别挑战中设置分类和检测的新技术状态。 该体系结构的主要特点是提高了网络内部计算资源的利用率。这是通过一个精心设计的设计来实现的,它允许增加网络的深度和宽度,同时保持计算预算不变。为了优化质量,体系结构的决策是基于赫布(Hebbian)原则和多尺度处理的直觉。 在我们提交给ILSVRC14时使用的一个特殊化身是GoogLeNet,这是一个22层的深度网络,其质量是在分类和检测的背景下进行评估的。

精读

1.引出GoogleNet,并介绍它在ILSVRC14中提供新技术
2.介绍GoogleNet的主要特点是提高了网络中计算资源的利用率
3.本文的设计目的:在保证计算量不变的情况下,增加深度和宽度
4.用到的理论知识:架构基于Hebbian原则(生物神经方面)和多尺度处理
5.GoogLeNet一个22层的深度网络,其是在分类和检测背景下评估的

Hebbian原则

神经科学上的概念,简单讲就是神经元突触的‘用进废退’,两个神经元,如果总是同时兴奋,就会形成一个组合,其中一个神经元的兴奋会促进另一个的兴奋。反映在GoogleNet上就是把相关性强的特征汇聚的一起

多尺度处理

不同尺度的卷积核并行处理。

Introduction—引言

翻译

在过去的三年里,主要是由于深度学习的进步,更具体地说,卷积神经网络,图像识别和目标检测的质量一直在以惊人的速度发展。一个令人鼓舞的消息是,这些进展不仅仅是更强大的硬件、更大的数据集和更大的模型的结果,而且主要是新想法、算法和改进的网络架构的结果。 例如,除了ILSVRC2014竞赛的分类数据集外,没有使用新的数据源。我们提给ILSVRC 2014的谷歌网络实际上比克里热夫斯基等人两年前的获奖架构少了12个参数,同时也更准确得多。目标检测的最大收益并不是仅仅来自使用深度网络或更大的模型,而是来自深度架构和经典计算机视觉的协同作用, 比如Girshick等人的R-CNN算法。
另一个值得注意的因素是,随着移动计算和嵌入式计算的持续发展,我们的算法的效率,特别是它们的能力和内存占用变得越来越重要。值得注意的是,本文中提出的深层架构设计包括了这个因素,而不是而不是仅仅关注精度数字。对于大多数实验,这些模型的设计目的是在推理时保持15亿乘加的计算预算,因此它们不会纯粹为了满足学术好奇心,而是可以以合理的成本在大型数据集上投入使用。
在本文中,我们将重点研究一种高效的计算机视觉深度神经网络架构,代号GoogleNet, 它的名字来源于Lin等在网络论文中发表的网络和著名的“we need to go deeper”网络模因。 在我们的例子中,“deep”一词有两种不同的含义:首先,我们以“Inception module”的形式引入了一个新的组织层次,也在更直接的意义上增加了网络深度。一般来说,我们可以从Arora等人的理论工作中获得灵感和指导。该架构的好处在ILSVRC2014的分类和检测挑战上得到了实验验证,其中它的性能显著优于当前的最新技术水平。

精读

背景

1.由于深度学习和卷积网络发现,目标分类和检测能力显著提高。
2.没有用到新的数据集
3.目标检测领域,最大的收获不是来自更深的网络和更大的模型,而是深度架构和经典计算机视觉的协同作用。
4.不能一味追求精读提升,算法效率尤其是功率和内存使用格外重要。

Inception的诞生

本文关注计算机视觉中的高效深度神经网络架构Inception。
两个重要启发文献
(1)《NetWork in network》——1×1卷积降维/升维,Global Average pooling层取代全连接层
(2)Arora et al——用稀疏、分散的网络取代以前庞大密集臃肿的网络
deep的两种不同含义:
(1)Inception(盗梦空间)模块的形式引入新的组织层次
(2)网络深度的增加

二、Related Work—相关工作

翻译

从LeNet-5开始,卷积神经网络(CNN)通常有一个标准的结构——堆叠卷积层 (可以是归一化和最大池化) ,然后是一个或多个完全连接的层。这种基本设计的变体在图像分类文献中普遍存在,并在MNIST、CIFAR和最显著的ImageNet分类挑战上取得了最好的结果。对于更大的数据集,如Imagenet,最近的趋势是增加层数和层大小,同时使用dropout层来解决过拟合的问题。
尽管担心最大池化层会导致准确空间信息的丢失,相似的卷积网络架构也被成功地用于定位、 目标检测和人姿态估计。受灵长类动物视觉皮层的神经科学模型的启发,Serre等人使用一系列不同大小的固定Gabor过滤器来处理多个尺度,类似于Inception model。然而,与的固定2层深度模型相反,Inception model模型中的所有滤波器都是被学习的。此外,初始层重复多次,在GoogLeNet模型中形成了22层深度模型。
Network-in-Network是Lin等人提出的一种方法。 以增加神经网络的表征能力。当应用于卷积层时,该方法可以看作是额外的11 个卷积层,然后通常是经过修正的线性激活。这使得它能够很容易地集成到当前的CNN管道中。我们在体系结构中大量使用这种方法。在我们的设置中,11 个卷积有双重目的:最重要的是,它们主要被用作降维模块,以消除计算瓶颈,否则这将限制我们的网络的大小。这不仅允许增加深度,还可以增加网络的宽度,而不会造成显著的性能损失。
目前领先的目标检测方法是由Girshick等人提出的具有具有卷积神经网络的区域(R-CNN)目标检测方法。R-CNN将整个检测问题分解为两个子问题:首先以类别无关的方式利用潜在的对象建议的颜色和超像素一致性寻找候选框,然后使用CNN分类器来识别这些位置的对象类别。这种两阶段的方法利用了具有低水平线索的边界盒分割的准确性,以及最先进的CNN的高度强大的分类能力。 我们在检测提交中采用了类似的管道,但在这两个阶段都探索了增强,如用于更高对象边界框召回的多盒预测,以及用于更好地对边界框建议进行分类的集成方法。

精读

前人研究

自LeNet-5开始,CNN标准结构:(卷积+归一化+最大池化)×n+(全连接层)×m
主要通过增加层数和层大小,同时使用dropout层来解决过拟合的问题。

本文灵感来源

1.根据一系列大小不同的固定Gabor滤波器处理多尺度。本文使用类似策略,重复多次Inception层,直至22层深度模型GoogLeNet
2.根据Network-in-Network网络中的 1×1卷积核,这个卷积核之前在VGG里是仅增加深度;在本文中除了增加深度还起到降维作用,消除计算瓶颈。
3.改进了R-CNN的两阶段方法(1.寻找候选框,2.使用CNN分类器来识别这些位置的对象类别) 运用到自己的模型中。

三、Motivation and High Level Considerations—动机和高水平的考虑

翻译

提高深度神经网络性能的最直接的方法是增加它们的规模。这包括增加网络的深度——级别的数量,它的宽度——每个级别的单位数量。这是一种训练更高质量模型的简单和安全的方法,特别是考虑到大量标记训练数据的可用性。然而,这个简单的解决方案也有两个主要的缺点。
更大的尺寸通常意味着大量的参数,这使得扩大后的网络更容易发生过拟合,特别是在训练集中标记的例子数量有限的情况下。这可能成为一个主要的瓶颈,因为创建高质量的训练集是昂贵且棘手的,特别是需要专业人工评分员来区分细粒度的视觉类别。
网络规模的另一个缺点是计算资源的使用显著增加。例如,在深度视觉网络中,如果两个卷积层被链接起来,它们的滤波器数量的任何均匀增加都会导致计算量的二次增加。如果增加的容量使用效率较低 (如果大多数权重最终接近于零) ,那么就会浪费大量的计算。 由于在实践中,计算预算总是有限的,因此即使其主要目标是提高结果的质量,也会首选有效地分配计算资源,而不是不加选择地增加计算资源的大小。
最终解决这两个问题的基本方法是从完全连接到稀疏连接的架构,甚至在卷积内部也是如此。除了模拟生物系统外, 由于Arora等人的开创性工作,这也将具有更坚实的理论基础的优势。他们的主要结果表明,如果数据集的概率分布可以由一个大型的、非常稀疏的深度神经网络来表示,那么可以通过分析最后一层激活的相关统计并将具有高度相关输出的神经元聚类来逐层构建最佳网络拓扑。虽然严格的数学证明需要非常强的条件,但这一说法与众所周知的赫比原理:一起激发的神经元连接在一起,这表明在实践中,即使在不那么严格的条件下,其基本思想也适用。
缺点是,现有的基础设施在涉及到非均匀稀疏数据结构的数值计算方面非常低效。即使算术运算的数量减少了100*,查找和缓存未命中的开销也非常严重,以至于切换到稀疏矩阵也不会得到回报。通过使用稳步改进、高度调优的数字库,允许极其快速的密集矩阵乘法,利用底层CPU或GPU硬件的微小细节,进一步扩大了差距。此外,非均匀稀疏模型需要更复杂的工程和计算基础设施。 目前大多数面向视觉的机器学习系统只是利用卷积来利用空间领域的稀疏性。但是,卷积是作为与早期层中补丁的密集连接的集合实现的。卷积网络传统上在特征维度中使用随机和稀疏连接表,为了打破对称性并改善学习,趋势又回到了的完全连接,以便更好地优化并行计算。结构的统一性、大量的过滤器和更大的批处理大小允许利用高效的密集计算。
这就提出了一个问题,是否有希望进行下一步的中间步骤:正如理论所建议的那样,即使在滤波器级别,也要利用额外的稀疏性,但利用我们的硬件是在密集矩阵上的计算。大量关于稀疏矩阵计算的文献表明,将稀疏矩阵聚类成相对密集的子矩阵,倾向于提供稀疏矩阵乘法的最先进的实际性能。认为在不久的将来,类似的方法将被用于自动构建非统一的深度学习架构,这似乎并不牵强。
Inception架构最初是第一作者的一个案例研究,用于评估一个复杂的网络拓扑构造算法的假设输出 ,该算法试图近似为视觉网络隐含的稀疏结构,并通过密集的、可用的组件覆盖假设的结果 。尽管这是一项高度推测的工作,但只有在对拓扑的精确选择进行两次迭代后,我们已经可以看到对基于的参考体系结构的适度收益。在进一步调整了学习速率、超参数和改进的训练方法后,我们确定了生成的初始空间架构作为和的基础网络,在定位和目标检测中特别有用。有趣的是,虽然大多数原始的架构选择都受到了彻底的质疑和测试,但至少它们在本地是最优的。
但人们必须谨慎:尽管所提议的架构已经在计算机视觉领域取得了成功,但它的质量是否可以归因于导致其构建的指导原则仍然值得怀疑。确保需要更彻底的分析和验证:例如,如果基于下面描述的原则的自动化工具能够为视觉网络找到类似但更好的拓扑结构。最令人信服的证明是,如果一个自动化系统能够创建网络拓扑,使用相同的算法,在其他领域产生类似的收益。 至少,Inception架构的最初成功为这个方向的未来工作带来了坚实的动力。

精读

过去提高深度网络性能最直接的方法

增加网络尺寸:
(1)增加深度(层数)
(2)增加宽度(卷积核个数)
缺点:
1.如果训练数据集有限,很容易产生过拟合;
2 .计算量增加,可能浪费计算资源(内存爆炸);
3.网络越深,容易出现梯度弥散问题(反向传播过程中,梯度越来越接近0,导致前面层的参数几乎无法更新,使得模型无法有效学习)
4.梯度在某些情况下会变得非常大,导致权重更新时出现极大波动,使得训练过程不稳定。

传统连接方法

传统上的连接:
卷积网络传统上一直在特征维度上使用随机和稀疏连接表,以打破对称性并改善学习效果,然而趋势回到完全连接,以进一步优化并行计算。 当前用于计算机视觉的最新架构具有统一的结构。大量的过滤器和更大的批处理大小允许高效使用密集计算。
缺点:
1.目前的计算基础架构在对非均匀稀疏数据结构进行数值计算时效率很低。
2.涉及非均匀稀疏模型需要更精细的引擎和计算架构。
解决方法(本文)
引入稀疏性,用稀疏连接代替全连接层,甚至一般的卷积。(稀疏连接代替密集连接)
原理
如果数据集的概率分布可以由大型的,非常稀疏的深度神经网络表示,可以通过如下方式逐层构建:分析上一层的激活输出的统计特性,并将具有高度相关性输出的神经元进行聚类,来获得一个稀疏的表示。

稀疏连接两种方法:
1.空间(spatial) 维度上的稀疏连接,也就是 CNN 。其只对输入图像的局部进行卷积,而不是对整个图像进行卷积,同时参数共享降低了总参数的数目并减少了计算量。
2.在特征(feature)维度上的稀疏连接进行处理,也就是在通道的维度上进行处理。(Inception 结构的灵感来源)

补充:什么是稀疏矩阵

稀疏矩阵(Sparse Matrix)是一种特殊的矩阵,其中大多数元素为零或同一默认值(通常是零)。
特点:
1.零元素占多数:稀疏矩阵的非零元素数量远少于总元素数量。
2.稀疏性定义:矩阵中的非零元素数量相对于总元素数量的比例非常低
从稀疏矩阵理解稀疏性:
稀疏矩阵的定义:矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素的分布没有规律,则称该矩阵为稀疏矩阵。
由于稀疏矩阵的特殊性质,在对稀疏矩阵进行卷积运算时往往会产生很多不必要的计算(在0值密集的区域进行卷积),为了提升运算效率就可以考虑忽略矩阵中0值聚集的区域而选取出非零值聚集的区域直接卷积。

引出后续Inception模块
仍旧利用现有硬件进行密集矩阵运算的条件下,改进模型结构,从而能够利用额外的稀疏性

四、Architectural Details—架构细节

翻译

初始架构的主要思想是基于如何发现卷积视觉网络中的最优局部稀疏结构可以被现成的密集组件近似和覆盖。注意,假设平移不变性意味着我们的网络将由卷积构建块构建。我们所需要的就是找到最优的局部构造,并在空间上重复它。阿罗拉等人提出了一种逐层的构造,其中应该分析最后一层的相关统计数据,并将其聚类为具有相关性高的单元组。这些集群构成了下一层的单元,并连接到前一层中的单元。我们假设前一层的每个单元对应于输入图像的某个区域,这些单元被分组为滤波器组。在较低的层 (靠近输入的层) 中,相关的单元将集中在局部区域。这意味着,我们最终会有许多集群集中在一个区域,它们可以在下一层被11个卷积所覆盖。然而,我们也可以预期,将会有更少的空间上更分散的集群,可以在更大的卷积核上被卷积覆盖,而在越来越大的区域上,卷积核的数量将会减少。为了避免卷积核对齐问题,Inception架构的当前版本被限制在过滤器大小11、33和55以内,但是这个决定更多地是基于方便而不是必要。这也意味着,建议的架构是所有这些层的组合,它们的输出滤波器组连接成一个单一的输出向量,形成下一阶段的输入。此外, 由于池化操作对于在当前最先进的 卷积网络中取得成功至关重要,因此它建议在每个这样的阶段添加一个替代的并行池化路径也应该产生额外的有益效果。
在这里插入图片描述
由于这些 “Inception modules” 彼此堆叠在一起,它们的输出相关性统计数据必然会有所不同:随着更高抽象的特征被更高层捕获,它们的空间集中度预计会降低,这表明 3×3 和 5×5 卷积的比率应该随着我们移动到更高层而增加。
上述模块的一个大问题,至少在这种原始形式中,是即使是适度数量的 5×5 卷积,在具有大量滤波器的卷积层之上也可能非常昂贵。一旦将池单元添加到混音中,这个问题就变得更加明显:它们的输出滤波器数量等于前一阶段的滤波器数量。池化层的输出与卷积层的输出合并将导致不可避免的导致各阶段间输出数量的增加。即使这种架构可能覆盖了最佳的稀疏结构,但它的工作效率非常低,导致在几个阶段内出现计算爆炸。

精读

Inception主要思想

1.用密集模块去近似局部稀疏结构,聚合高相关性的特征输入到下一层。
2.平移不变性意味着网络由卷积构建块构建。只需要找到最优局部结构并在空间上重复它。
Inception初始结构
模块结构组成:1×1卷积,3×3卷积,5×5卷积,3×3最大池化。(非必须,只是为了对齐容易)

为什么这么搭建?

Q1:为什么分三个卷积核?
根据VGG中感受野的例子,我们可以知道卷积核越大感受野越大。如果这个区域越大,说明我们获得的越是一个偏向全体的特征;而区域越小,说明我们获得的是一个偏向局部的特征。这样一来就可以获得不同尺度的特征。
Q2:为什么有条路是池化层?
池化操作对目前卷积网络的成功至关重要,因此建议在每个这样的阶段添加一个替代的并行池化路径应该具有额外的有益效果。
Q3:四条路过后为什么要合一块?
多尺度特征提取:不同的卷积核尺寸适用于不同的特征尺度。1x1卷积关注局部信息,3x3和5x5卷积捕捉更大范围的特征,而最大池化操作则对输入进行压缩。这种多尺度特征提取帮助网络在同一层次中捕获图像的细节信息和全局信息。
信息冗余和增强:不同的卷积和池化操作可以提取到一些相同或相似的特征,当它们被拼接在一起后,增加了网络对重要特征的表达,同时减小了噪声的影响。这种冗余可以使网络更加鲁棒。
减小计算开销:1x1卷积在这里有一个特别的作用:减少特征图通道数,从而降低计算成本。虽然模块中使用了较大的卷积核(比如5x5),但在计算开销上仍然能被控制在一个合理的范围。
丰富特征空间:通过拼接多种卷积核的输出,Inception模块可以生成一个比单一卷积操作更加丰富的特征空间,使得网络可以从多个角度学习特征表示。
过程
特征图先被复制成4份并分别被传至接下来的4个部分,将前一层用三个单独的卷积核扫描,并加一个池化操作,然后把这四个操作的输出串联到一起作为下一层的输入。
在这里插入图片描述
不足

1.整个网络是通过大量堆叠这个模块来构建的,即使是适量的5×5卷积也会产生参数的爆炸式增长
2.在这个单元中使用的最大池化层保留了输入数据的特征图的深度,所以在最后进行合并时,总的输出的特征图的深度增加,通道数多了,这样增加了该单元之后的网络结构的计算量。

InceptionV1结构

翻译

这就导致了所提出的架构的第二个想法:在其他计算需求会增加过多的地方,明智地应用降维和投影。这是基于嵌入的成功:即使是低维嵌入也可能包含有关相对较大的图像块的大量信息。但是,嵌入以密集的压缩形式表示信息,并且压缩信息更难建模。我们希望在大多数地方保持我们的表示稀疏,并且仅在必须集体聚合信号时才压缩信号。也就是说,在昂贵的 3×3 和 5×5 卷积之前,使用 1×1 卷积来计算缩减。除了用作还原外,它们还包括使用整流线性激活,这使它们具有双重用途。
在这里插入图片描述
一般来说,初始网络是由上述类型的模块堆叠组成的网络,偶尔有最大池化层,步幅为2,使网格分辨率减半。出于技术上的原因 (训练期间的记忆效率) ,只在较高的层开始使用Inception模块,同时保持低层采用传统的卷积方式似乎是有益的。这并不是严格必要的,只是反映了我 们目前实施中的一些基础设施效率低下。
这种架构的主要好处之一是,它允许显著增加每个阶段的单元数量,而不会不受控制地增加计算复杂性。降维的普遍使用允许将最后一阶段的大量输入滤波器屏蔽到下一层,首先减小它们的维度,然后再用大的卷积核对它们进行卷积。这种设计的另一个实用方面是,它与视觉信息应该在各种尺度上处理然后聚合的直觉一致,以便下一阶段可以同时从不同尺度中提取特征。
计算资源的改进使用允许增加每个阶段的宽度以及阶段的数量,而不会遇到计算困难。利用 inception 架构的另一种方法是创建稍差但计算成本较低的版本。我们发现,所有包含的旋钮和杠杆都允许对计算资源进行受控的平衡,这可以使网络比具有非 Inception 架构的类似性能的网络快2-3倍,但在这一点上需要仔细的手动设计。

精读

InceptionV1结构
主要思想:降维。在使用3×3和5×5卷积之前,使用1×1卷积核进行卷积,来计算减少量,达到降维效果还有增强非线性能力的作用。
过程:
在这里插入图片描述
为什么这么搭建?
Q1:1×1卷积核的作用?
(1)降维或升维。
(2)减少参数量,减少计算量。
(3)实现跨通道信息交融。使用1×1卷积核,其实就是对不同的通道间的信息做线性组合的一个变换过程。
(4)增加模型深度,提高非线性。使用1×1卷积核的网络更深,而每一层网络后都会用Relu函数增加非线性,这样就增加了一层非线性特性。

Q2:为什么要把1ⅹ1卷积核加在3×3、5×5卷积?
为了进行降维从而减少后边大卷积核的参数量。

Q3:既然5×5那么大,为何不全部替换成1×1?
虽然1x1可以解决参数量的问题,但是它同时局限了感受野的范围,所以要做到感受野和参数量的权衡,虽然5x5和3x3的参数量大,但是他们卷积效果也好,我们只在某些时候引入1x1卷积,起到降维/通道聚合等作用。
结果:这三部分因为1×1卷积层的加入,总的卷积参数量已经大大低于之前的初始化Inception模块,而且因为在最大池化层之前也加入了1×1的卷积层,所以最终输出的特征图的深度也降低了,这样也降低了该单元之后的网络结构的计算量。这个Inception是GoogLeNet的基本结构。很多个Inception的联合就最终组成了GoogLeNet。

五、GoogLeNet

翻译

我们选择了 GoogLeNet 作为我们在 ILSVRC14 比赛中的团队名称。这个名字是对 Yann LeCuns 开创性的 LeNet 5 网络的致敬。我们还使用 GoogLeNet 来指代我们提交的比赛中使用的 Inception 架构的特定化身。我们还使用了更深、更宽的 Inception 网络,其质量略逊一筹,但将其添加到集成中似乎略微改善了结果。我们省略了该网络的细节,因为我们的实验表明,确切架构参数的影响是相对次要的。在这里,表 1 描述了最成功的特定实例(名为 GoogLeNet)用于演示目的。我们集成中的 7 个模型中的 6 个使用了完全相同的拓扑(使用不同的采样方法训练)。
所有的卷积,包括那些在初始模块内部的卷积,都使用了修正的线性激活。在我们的网络中, 感受野的大小是224224采取RGB颜色通道,“#3×3 reduce”和“#5×5 reduce”表示 在33和55卷积之前,使用的11滤波器的数量。在池化层列中内置的最大池化之后, 我们可以在池化层中看到1*1个卷积核的数量。所有这些缩减/投影层也使用修正线性激活(Rule)。
该网络的设计考虑到了计算效率和实用性,因此推理可以在单个设备上运行,甚至包括那些计算资源有限的设备,特别是低内存占用的设备。当只计算带有参数的层时,该网络有22层深 ( 如果我们也计算池化,则是27层) 。用于建设网络的层 (独立构件) 约为100个。然而,这个数字取决于所使用的机器学习基础设施系统。在分类器之前使用平均池化是基于[12]的,尽管我们的实现的不同之处在于我们使用了一个额外的线性层。这使得我们的网络可以很容易地调整和微调我们的网络,但它主要是方便的,我们不认为它会产生重大影响。研究发现,从全连接层到平均池化的top-1精度提高了约0.6%,但即使去除完全连接层,使用dropout层仍然是必要的。
由于网络的深度相对较大,因此以有效的方式将梯度传播回所有层的能力是一个值得关注的问题。一个有趣的观点是,相对较浅的网络在这一任务上的强大表现表明, 由网络中间的各层所产生的特征应该是非常有区别的。通过添加连接到这些中间层的辅助分类器,我们将期望在分类器的较低阶段鼓励区分,增加传播回的梯度信号,并提供额外的正则化。这些分类器采用了较小的卷积网络的形式,并将它们放在初始空间(4a)和(4d)模块的输出之上。在训练过程中, 它们的损失以折扣权值加到网络的总损失中 (辅助分类器的损失加权为0.3) 。在推理时,这些辅助网络被丢弃。
侧面的额外网络(包括辅助分类器)的确切结构如下:
滤波器大小为 5×5 且步幅为 3 的平均池化层,导致 (4a) 输出为 4×4×512,(4d) 阶段的输出为 4×4×528。
一个 1×1 卷积,具有 128 个滤波器,用于降维和整流线性激活。
具有 1024 个单元和整流线性激活的全连接层。
丢弃输出比率为 70% 的 dropout 层。
以 softmax loss 作为分类器的线性层(预测与主分类器相同的 1000 个类,但在推理时删除)

精读

GoogLeNet结构详解
在这里插入图片描述

(1)输入
原始输入图像为224x224x3,且都进行了零均值化的预处理操作(图像每个像素减去均值)
(2)第一模块
第一模块采用的是1个单纯的卷积层+1个最大池化层。

在这里插入图片描述
在这里插入图片描述
卷积层:
卷积核大小7×7,步长为2,padding为3,输出通道数64,输出特征图尺寸为(224-7+3×2)/2+1=112.5(向下取整)=112,输出特征图维度为112x112x64,卷积后进行ReLU操作。
池化层:
窗口大小3×3,步长为2,输出特征图尺寸为((112 -3)/2)+1=55.5(向上取整)=56,输出特征图维度为56x56x64。
(3)第二模块
第二模块采用2个卷积层+1个最大池化层
在这里插入图片描述
在这里插入图片描述
卷积层:
用64个1x1的卷积核(3x3卷积核之前的降维)将输入的特征图(56x56x64)变为56x56x64,然后进行ReLU操作。参数量是1×1×64×64=4096
再用卷积核大小3×3,步长为1,padding为1,输出通道数192,进行卷积运算,输出特征图尺寸为(56-3+1×2)/1+1=56,输出特征图维度为56x56x192,然后进行ReLU操作。参数量是3×3×64×192=110592
第二模块卷积运算总的参数量是110592+4096=114688,即114688/1024=112K
池化层:
窗口大小3×3,步长为2,输出通道数192,输出为((56 - 3)/2)+1=27.5(向上取整)=28,输出特征图维度为28x28x192。
(4)第三模块(Inception 3a层)
Inception 3a层,分为四个分支,采用不同尺度
在这里插入图片描述
在这里插入图片描述
卷积层:
补充1:参数量的计算
输入通道数乘卷积核大小再乘卷积核个数
1.使用64个1x1的卷积核,运算后特征图输出为28x28x64,然后RuLU操作。参数量1×1×192×64=12288
2.96个1x1的卷积核(3x3卷积核之前的降维)运算后特征图输出为28x28x96,进行ReLU计算,再进行128个3x3的卷积,输出28x28x128。参数量1×1×192×96+3×3×96×128=129024
3.16个1x1的卷积核(5x5卷积核之前的降维)将特征图变成28x28x16,进行ReLU计算,再进行32个5x5的卷积,输出28x28x32。参数量1×1×192×16+5×5×16×32=15872
池化层:
使用3x3的卷积核,输出28x28x192,然后进行32个1x1的卷积,输出28x28x32。总参数量1×1×192×32=6144
输出结果:将四个结果进行连接,对这四部分输出结果的第三维并联,即64+128+32+32=256,最终输出28x28x256。总的参数量是12288+129024+15872+6144=163328,即163328/1024=159.5K,约等于159K
(5)第三模块(Inception 3b层)
Inception 3b层,分为四个分支,采用不同尺度
在这里插入图片描述
在这里插入图片描述
卷积层:
1.128个1x1的卷积核,然后RuLU,输出28x28x128pool层,使用3x3的核,输出28x28x256,然后进行64个1x1的卷积,输出28x28x64
2.128个1x1的卷积核(3x3卷积核之前的降维)变成28x28x128,进行ReLU,再进行192个3x3的卷积,输出28x28x192
3.32个1x1的卷积核(5x5卷积核之前的降维)变成28x28x32,进行ReLU,再进行96个5x5的卷积,输出28x28x963.
池化层:
使用3x3的核,输出28x28x256,然后进行64个1x1的卷积,输出28x28x64
输出结果:将四个结果进行连接,对这四部分输出结果的第三维并联,即128+192+96+64=480,最终输出输出为28x28x480。
(6)第四模块(Inception 4a、4b、4c、4e)
与Inception3a,3b类似
在这里插入图片描述
在这里插入图片描述
(7)第五模块(Inception 5a、5b)
与Inception3a,3b类似
在这里插入图片描述
在这里插入图片描述
(8)输出层
在输出层GoogLeNet与AlexNet、VGG采用3个连续的全连接层不同
GoogLeNet采用的是全局平均池化层,得到的是高和宽均为1的卷积层,然后添加丢弃概率为40%的Dropout,输出层激活函数采用的是softmax。
在这里插入图片描述
在这里插入图片描述
(9)激活函数
GoogLeNet每层使用的激活函数为ReLU激活函数。

(10)辅助分类器
目的:根据实验数据,发现神经网络的中间层也具有很强的识别能力,为了利用中间层抽象的特征,在某些中间层中添加含有多层的分类器。
如下图所示,红色边框内部代表添加的辅助分类器。GoogLeNet中共增加了两个辅助的softmax分支。
在这里插入图片描述
在这里插入图片描述
补充2
在这里插入图片描述
作用:
一是为了避免梯度消失,用于向前传导梯度。反向传播时如果有一层求导为0,链式求导结果则为0。
二是将中间某一层输出用作分类,起到模型融合作用。实际测试时,这两个辅助softmax分支会被去掉。
总结
(1)卷积 -> 池化 ->卷积 ->池化 -> 9个inception堆叠 (中间两个池化) -> 池化 -> dropout -> 线性层 -> softmax。用了7个模型,网络共22层。
(2)所有的卷积以及降维投影,都使用Relu作为激活函数。
(3)将全连接层用平均池化层代替后,top-1提高了大约0.6%,之前的VGG Alex等这里都是三个全连接层。(在平均池化层之后,还是添加了一个全连接层,是为了大家做finetune(微调))
(4)最后一层依旧使用dropout防止过拟合。
(5)为了在浅层使特征更加有区分性,帮助反向传播,解决梯度消失。增加了两个辅助分类器 L=L(最后)+0.3xL(辅1)+0.3xL(辅2),测试阶段去掉辅助分类器。
在这里插入图片描述

六、Training Methodology—训练方法

翻译

我们的网络是使用干扰信念( DistBelief )分布式机器学习系统训练的,该系统使用适量的模型和数据并行性。尽管我们只使用了基于 CPU 的实现,但粗略估计表明,可以在一周内使用少量高端 GPU 将 GoogLeNet 网络训练为收敛,主要限制是内存使用。我们的训练使用了动量为 0.9 的异步随机梯度下降 [17],固定学习率时间表(每 8 个时期降低 4% 的学习率)。Polyak 平均 [13] 用于创建推理时使用的最终模型。
在比赛前的几个月里,我们的图像采样方法发生了重大变化,已经收敛的模型使用其他选项进行训练,有时还结合更改的超参数,如辍学和学习率,因此很难为训练这些网络的最有效单一方法提供明确的指导。更复杂的是,受 [8] 的启发,一些模型主要在较小的相对作物上训练,而另一些模型则在较大的作物上进行训练。尽管如此,一个在比赛后被验证效果非常好的方法包括对图像的各种大小块进行采样,其大小均匀分布在图像区域的 8% 到 100% 之间,其纵横比在 3/4 和 4/3 之间随机选择。此外,我们发现 Andrew Howard [8] 的光度失真在一定程度上有助于消除过拟合。此外,我们开始使用随机插值方法(双线性、面积、最近邻和立方,概率相等)来相对较晚地调整大小,并与其他超参数更改结合使用,因此我们无法明确判断最终结果是否受到它们的使用产生的积极影响。

精读

使用了DistBelief分布式机器学习系统,并伴随着标准数量的模型以及数据并行对GoogLeNet网络进行训练。
使用基于CPU的实现,但使用GPU会更快。
训练过程使用异步随机梯度下降,动量参数为0.9,固定的学习率计划(每8次遍历下降学习率4%)。
赛后发现一个调参玄学,包括各种尺寸的图像块的采样,它的尺寸均匀分布在图像区域的8%—100%之间,方向角限制为[3/4, 4/3] 之间。(但谁都说不清这些玄学是否真的有用)
Andrew Howard的光度失真对于克服训练数据成像条件的过拟合是有用的。
使用随机插值方法(双线性、面积、最近邻和立方,概率相等)来相对较晚地调整大小,并与其他超参数更改结合使用。

七、ILSVRC 2014 Classification Challenge Setup and Results—ILSVRC 2014分类挑战赛设置和结果

翻译

ILSVRC 2014 分类挑战涉及将图像分类为 Imagenet 层次结构中 1000 个叶节点类别之一的任务。大约有 120 万张图像用于训练,50000 张图像用于验证,100000 张图像用于测试。每张图像都与一个 ground truth 类别相关联,并且性能是根据得分最高的分类器预测来衡量的。通常会报告两个数字:top-1 准确率(将真值与第一个预测类进行比较)和 top-5 error rate(将真值与前 5 个预测类进行比较):如果真值在前 5 名中,则认为图像分类正确,无论其在其中的排名如何。该质询使用前 5 名错误率进行排名。 我们参加了挑战赛,没有使用外部数据进行培训。除了本文前面提到的训练技术外,我们在测试过程中还采用了一套技术来获得更高的性能,我们将在下面详细说明。
1.我们独立训练了同一 GoogLeNet 模型的 7 个版本(包括一个更广泛的版本),并使用它们进行了集成预测。这些模型使用相同的初始化(即使具有相同的初始权重,主要是因为疏忽)和学习率策略进行训练,它们仅在采样方法和看到输入图像的随机顺序上有所不同。
在这里插入图片描述
2.在测试过程中,我们采用了比克里日夫斯基等人更激进的种植方法。 [9].具体来说,我们将图像的大小调整为4个尺度,其中较短的维度 (高度或宽度) 分别为256、288、320和352,取这些调整大小的图像的左、中和右的正方形 (在肖像图像的情况下,我 们取上、中和下的正方形) 。对于每个正方形,我们取4个角和中心224224的图像以及调整到224224的图像,以及它们的镜像版本。这导致每张图像有436*2=144种图像。AndrewHoward[8]在前一年的记录中使用了类似的方法,我们通过经验验证了它的表现比提议的方案略差。我们注意到,这种激进的种植在实际应用中可能没有 必要,因为在合理数量的图像出现后,更多图像的效益变得边际 (我们将在后面展示 )。
在这里插入图片描述
3.在多个作物和所有单个分类器上取极大概率的平均值,以获得最终的预测。在我们的 实验中,我们分析了验证数据的替代方法,如对作物的最大汇集和对分类器进行平均 ,但它们导致的性能低于简单的平均。
在本文的其余部分,我们分析了影响最终提交整体表现的多个因素。 我们在挑战赛中的最终提交在验证和测试数据上都获得了 6.67% 的前 5 错误,在其他参与者中排名第一。与 2012 年的 SuperVision 方法相比,这相对减少了 56.5%,与前一年的最佳方法 (Clarifai) 相比,相对减少了约 40%,这两种方法都使用外部数据来训练分类器。下表显示了一些性能最佳的方法的统计信息。 我们还通过改变预测下表中图像时使用的模型数量和裁剪数量,分析和报告多个测试选项的性能。当我们使用一个模型时,我们选择了验证数据中错误率最低的模型。所有数字都在验证数据集上报告,以免过度拟合测试数据统计信息。

精读

提升性能的技术
训练策略: 训练使用了7个模型融合。每个模型使用相同的初始化方法甚至相同的初始值,相同的学习率策略,仅在图像采样和输入顺序有区别。
裁剪策略: 图片分别缩放到四种尺寸:256、288、320、352,取左、中、右(或上、中、下)正方形,再取四角和中心以及缩放到224x224正方形与镜像。共4x3x6x2个裁剪区。(4种尺寸、3个范围、6=(5+1)、镜像翻倍)。
将softmax概率在多个区域和所有单个分类器上取平均,以获得最终预测。
结果
上述配置的结果:第一名
另外几种配置的结构表明:裁剪越多越精准,但平日不适用

八、ILSVRC 2014 Detection Challenge Setup and Results—ILSVRC 2014检测挑战赛设置和结果

翻译

ILSVRC的检测任务是在200个可能的类中,围绕着图像中的对象生成边界框。如果检测到的对象与真实类别匹配,并且它们的边界框至少重叠了50%(使用Jaccard索引),则索数正确。无关的检测计为误报,并受到处罚。与分类任务相反,每个图像都可能包含许多物体或没有物体,规模可能从大到小不等。使用平均平均精度(mAP)报告结果。
在这里插入图片描述
在这里插入图片描述
GoogLeNet 采用的检测方法类似于 [6] 的 R-CNN,但使用 Inception 模型作为区域分类器进行了增强。此外,通过将选择性搜索 [20] 方法与多框 [5] 预测相结合,可以提高对象边界框的召回率,从而改进区域建议步骤。为了减少误报的数量,超像素大小增加了 2×。这将来自选择性搜索算法的提案减半。我们添加了来自 multi-box [5] 的 200 个区域提案,总共使用了大约 60% 的提案 [6],同时将覆盖率从 92% 增加到了 93%。减少覆盖率增加的建议数量的总体效果是单个模型案例的平均精度均值提高了 1%。最后,我们在对每个区域进行分类时使用 6 个 ConvNet 的集合,将结果的准确率从 40% 提高到 43.9%。请注意,与 R-CNN 相反,由于时间不足,我们没有使用边界框回归。
我们首先报告 Top 检测结果,并展示自第一版检测任务以来的进度。与 2013 年的结果相比,准确性几乎翻了一番。表现最好的团队都使用卷积网络。我们在表 4 中报告了官方分数和每个团队的常见策略:使用外部数据、集成模型或上下文模型。外部数据通常是用于预训练模型的ILSVRC12分类数据,稍后根据检测数据进行优化。一些团队还提到了本地化数据的使用。由于检测数据集中不包含很大一部分定位任务边界框,因此可以使用这些数据预先训练通用边界框回归器,就像使用分类进行预训练一样。GoogLeNet 条目未使用本地化数据进行预训练。
在表 5 中,我们仅使用单个模型比较了结果。性能最好的模型是 Deep Insight,令人惊讶的是,使用 3 个模型的融合时,效果仅提高了 0.3 分,而 GoogLeNet 使用融合时获得了明显更强的结果。

精读

提升性能的技术
GoogLeNet检测采用的方法类似于R-CNN,但用Inception模块作为区域分类器进行了增强。
为了更高的bbox recall(目标边界框召回率),通过结合Selective Search方法与多box预测方法改进了区域生成步骤。
为了减少false positive的数量,超像素的尺寸增加了2倍。这将Selective Search算法的区域生成减少了一半。
减少区域生成的数量,增加覆盖率的整体影响是对于单个模型的情况平均精度均值增加了1%
最后,等分类单个区域时,我们使用了6个GoogLeNets的组合。这导致准确率从40%提高到43.9%。注意,与R-CNN相反,由于缺少时间我们没有使用边界框回归。
结果
上述配置的结果:第一名
单个模型跑出的结果:最优表现得模型是DeepInsight并且作者挽尊惊讶的表示,组合了三个网络也是只提升了0.3个点,相反GoogLeNet组合后获得了明显更强的结果。

九、Conclusions—总结

翻译

我们的结果似乎产生了一个坚实的证据,即通过现成的密集构建块来近似预期的最优稀疏结构是改进计算机视觉神经网络的可行方法。这种方法的主要优点是与较浅和较不宽的网络相比, 在计算需求的适度增加下显著提高质量。还要注意,我们的检测工作具有竞争力,尽管我们既没有利用上下文,也没有执行边界框
回归和这一事实为初始架构的强度提供了进一步的证据。虽然期望通过更昂贵的相似深度和宽度的网络可以实现相似的结果质量,但我们的方法提供了坚实的证据,证明转向稀疏架构是可行和有用的想法。这表明未来将在[2]的基础上以自动化的方式创建更稀疏和更精细的结构。

精读

通过随时可用的密集构造块来近似预期的最佳稀疏结构,是改善计算机视觉神经网络的可行方法。 与较浅和较窄的体系结构相比,此方法的主要优点是在计算需求适度增加的情况下可显着提高质量。向稀疏架构过渡通常是可行且有用的想法。
未来的工作:以自动方式创建稀疏和更精细的结构,以及将Inception体系结构的见解应用于其他领域。

十、论文总结

Q1:论文试图解决什么问题?
为了在使用更深更宽的网络的同时减少过拟合、降低参数量、提高计算资源利用率,本文提出了一种结合了稀疏性和密集计算的网络结构(Inception),巧妙地使用了1ⅹ1卷积来实现数据降维,并且在这基础上搭建了GoogLeNet的Inception v1版本。

Q2:这是否是一个新的问题?
不是新的问题,在原来对神经网络更宽更深的探究下,提出了新的网络架构方法

Q3:这篇文章要验证一个什么科学假设?
在卷积构建块中寻找最优局部结构(Inception结构),利用它可以实现在增加网络的宽度和深度的同时减少参数,高性能计算。

Q4:有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员?
稀疏矩阵运算,数学方面。Hebbian原则],生物神经方面

Q5:论文中提到的解决方案之关键是什么?
1.使用更宽更深的网络,提升网络性能;
2.用稀疏连接代替密集连接,减少计算资源需求;
3.既利用稀疏性又使用稠密计算(1ⅹ1卷积的应用),提高计算资源利用率;
4.引入了Inception,重复叠加,找到最优结构。

Q6:论文中的实验是如何设计的?
1.使用了一种结合了稀疏性和密集计算的网络结构(Inception),并不断重复。
2.利用1×1卷积,3×3卷积,5×5卷积,3×3最大池化搭建网络,一共7个模块,22个层。
3.使用了1ⅹ1卷积来实现数据降维。
4.添加两个辅助分类器帮助训练

Q7:用于定量评估的数据集是什么?代码有没有开源?
ImageNet2014,有开源

Q8:论文中的实验及结果有没有很好地支持需要验证的科学假设?
证明了,两次第一呢

Q9:这篇论文到底有什么贡献?
1.引入Inception结构(融合不同的特征信息)
2.使用1×1的卷积核进行降维以及映射处理
3.添加两个辅助分类器帮助训练
4.丢弃全连接层,使用平均池化层(大大减少模型参数)

Q10:下一步呢?有什么工作可以继续深入?
以自动方式创建稀疏和更精细的结构,以及将Inception体系结构的见解应用于其他领域。
在这里插入图片描述

标签:输出,精读,卷积,论文,网络,GoogLeNet,使用,Inception,稀疏
From: https://blog.csdn.net/weixin_47018025/article/details/144300017

相关文章

  • springboot毕设计算机英语辅助教学网站论文+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着信息技术的飞速发展,计算机在教育领域的应用日益广泛。在英语教学方面,传统教学模式存在一定局限性,例如教学资源有限、教学方式不够灵活等。近......
  • springboot毕设健身房预约管理系统论文+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着全民健身热潮的兴起,健身已经成为人们日常生活中不可或缺的一部分。在这样的背景下,健身房行业蓬勃发展,规模不断扩大,会员数量也日益增多。然而......
  • flask框架爱团购系统设计与实现毕设源码+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于团购系统的研究,现有研究主要集中在大型综合电商平台的团购功能上,如淘宝、美团等平台的团购模式。专门针对特定的爱团购系统的研究......
  • flask框架城镇智慧停车系统毕设源码+论文
    校园二手货物交易平台m1a2o本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于城镇智慧停车系统的研究,现有研究多集中于大城市的停车系统构建与优化,如城市级智慧停车管理系统主要聚......
  • flask毕设校园电瓶车管理系统(程序+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景随着高校规模的扩大和校园面积的增加,校园电瓶车作为一种便捷、环保的交通工具,在师生出行中扮演着重要角色。然而,目前大多数校园电瓶车管理......
  • flask毕设校园订餐管理系统(程序+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景随着信息技术的飞速发展和高校生活节奏的加快,校园订餐管理系统逐渐成为提升校园生活品质的重要工具。现有研究主要集中在餐饮行业的信息化......
  • ssm毕设医院挂号系统程序+论文+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在现代社会,医疗服务的需求与日俱增,传统的医院挂号方式面临着诸多挑战。随着人口的增长和人们对健康重视程度的提高,医院的就诊人数不断攀升,导致挂......
  • ssm毕设新闻客户端app程序+论文+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着互联网的普及和移动终端技术的飞速发展,人们获取信息的方式发生了巨大变革。新闻客户端app已成为大众获取新闻资讯的重要途径。当前,中国手机......
  • 读论文——《基于知识辅助深度强化学习的巡飞弹组动态突防决策》
    地址:http://www.co-journal.com/CN/rich_html/10.12382/bgxb.2023.0827利用领域知识、专家知识等先验知识对巡飞弹避障模型进行探索引导,能够使算法快速学会基础规则与策略,降低算法在无效状态空间中的探索时间。模仿学习是其中最为行之有效的引导技巧之一,通过专家样本直......
  • 所有大模型领域学习者必读论文,没有之一!由深度学习三巨头联合撰写!
    本书介绍《深度学习》这篇论文是深度学习领域的一个里程碑,由三位领域内的领军人物——YannLeCun、YoshuaBengio和GeoffreyHinton——联手撰写。这篇综述性的文章首次集结了他们对深度学习的深刻见解,并在2015年发表于《自然》杂志上。尽管这篇论文已经发表了近十年,但它......