【论文泛读】 GooLeNet:更深的卷积网络

简介: 【论文泛读】 GooLeNet:更深的卷积网络

摘要 Abstract


我们在ImageNet大规模视觉识别挑战赛214(ILSVRC14)上提出了一种代号为Inception的深度卷积神经网络结构,并在分类和检测上取得了新的最好结果。这个架构的主要特点是提高了网络内部计算资源的利用率。通过精心的手工设计,我们在增加了网络深度和广度的同时,保持了计算预算不变。为了优化质量,架构的设计以赫布理论和多尺度处理直觉为基础。我们在ILSVRC14提交中应用的一个特例被称为GoogLeNet,是一个22层的深度网络,其质量在分类和检测的背景下进行了评估。


GoogLeNet是2014 ILSVRC 比赛的冠军


Introduction 介绍


在当时几年中,深度学习不断兴起,目标分类能力和物体检测能力都不断的提高。


其中GoogLeNet 在 ILSVRC 2014 比赛中取得了冠军,并且它比当时两年前的冠军,也就是2012年的冠军AlexNet,是他的参数的1 /12 ,参数少了很多,但是层数是比AlexNet多的,AlexNet的层数是8层,而GoogLeNet是22层


在这篇论文中,贯彻了"We need to go deeper"的思想,deep在这之中有两种不同的含义:


提出的“Inception module”引入了一种新层次的组织方式

在某种意义上更直接的增加了网络的深度


动机和思考


如果想要提高神经网络的性能,最直接的想法就是加深神经网络的深度和宽度,增加它的层数,提高每一层的神经元的个数


但是这种做法有两个缺陷


  • 更大的尺寸意味着更大的参数,这样会使增大的网络更容易过拟合,特别是训练集的样本比较少的时候。
  • 更大的网络尺寸会增大计算量,耗费大量的计算资源


Inception 模型


在论文中,提出了Inception模型,在模型中,用了1x1,3x3,5x5的卷积层,这是为了方便,而不是必要的,因为用这样的模型,我们在块填充padding的时候会比较方便而不需要考虑太多的操作。


并且对于Inception来说,它与VGG的不同在于,VGG是串行的网络层,Inception是并行的网络层,用不同尺寸的卷积层可以用来提取不同尺度特征


每个卷积层提取不同尺度的特征后,会将其合并起来,如下图所示


由于很多优秀的神经网络都用了池化下采样,所以这里也加了一个池化层,注意这里会保证每一个卷积层的输出都是相同的,所以才能进行一个合并的操作


3c0ce6b521cf24b385b5accec80ff5a8.png


1x1卷积核 改进Inception


对于原始Inception来说,我们用了1x1卷积层来改进,得到一个新的Inception

这样的好处有


减小了计算量

训练参数减小

同时也增加了深度和非线性

通俗一点说,就是降维了,并且我们会加ReLU激活函数,增加了神经网络的非线性。


对于1x1卷积核来说,他的计算其实与全连接层是没有任何区别的,但是它不仅增加了非线性并且对我们的神经网络进行了降维,减少了我们的参数,是很有用的,在许多神经网络中,我们都可以看到1x1卷积核的影子


98f609d9143e5311feaca3306c8c9a0f.png


GoogLeNet


这里顺便提一下,GoogLeNet的名字是作者为了致敬LetNet (开山之作)而取的,而不是因为是Google,所以才是GoogLeNet


在论文中的,给出了GoogLeNet的架构



5b9c745a1ca30fcfceb1b6b373763e2c.png


我们可以看到,一共有22层,在我们的GoogLeNet中有很多Inception层,然后会对其进行Maxpool最大池化


在论文中,作者发现将全连接层改为平均池化层,提高了大约top-1 0.6%的准确率,除此之外Dropout也是必不可少的。


在深度比较大的网络中,有效传播梯度反向通过所有层的能力是一个问题。所以GoogLeNet在训练阶段运用了两个辅助分类器,这样的话,在较低的阶段中,可以克服梯度消失的问题,这些分类器采用较小卷积网络的形式,放置在Inception (4a)和Inception (4b)模块的输出之上。在训练期间,它们的损失以折扣权重(辅助分类器损失的权重是0.3)加到网络的整个损失上。在预测的时候,这些辅助分类器就会被抛弃


包括辅助分类器在内的附加网络的具体结构如下:


一个滤波器大小5×5,步长为3的平均池化层,导致(4a)阶段的输出为4×4×512,(4d)的输出为4×4×528。

具有128个滤波器的1×1卷积,用于降维和修正线性激活。

一个全连接层,具有1024个单元和修正线性激活。

丢弃70%输出的Dropout。

使用带有softmax损失的线性层作为分类器(作为主分类器预测同样的1000类,但在预测时移除)。


09eaaa64477f5ff87cecff4bbfb84332.jpg

训练策略


在论文中,作者用了SGD+动量法,动量设为0.9,学习策略设置为每8个epoch会减小4%


ILSVRC 2014 设置和结果


在比赛中,首先最后的GoogLeNet是集成了七个版本的GoogLeNet得到的,它们都具有相同的超参数,为什么会不同呢,其实是因为,虽然我们的数据集是相同的,但是我们的数据集是被打乱的,说的更简单一点就是shuffle=True,所以就有可能导致我们的网络可能会有一些细微的不同


在训练时,作者还用了数据增强的方法,对每一张图片都进行裁剪,取样,镜像等操作,并且会将图像归一化为四个尺度,取不同的方块,最后一张图片可以得到144裁剪后的图片,然后再对其进行测试训练。


作者还尝试softmax概率在多个裁剪图像上和所有单个分类器上进行平均,然后获得最终预测。在我们的实验中,我们分析了验证数据的替代方法,例如裁剪图像上的最大池化和分类器的平均,但是它们比简单平均池化的性能略逊。

相关文章
|
24天前
|
机器学习/深度学习 人工智能 自动驾驶
什么是人工智能领域的卷积神经网络
什么是人工智能领域的卷积神经网络
22 0
|
24天前
|
机器学习/深度学习 算法 计算机视觉
卷积神经网络中的卷积层,如何提取图片的特征?
卷积神经网络中的卷积层,如何提取图片的特征?
30 0
|
2月前
|
机器学习/深度学习 存储 自然语言处理
卷积神经元网络CNN基础
卷积神经元网络CNN基础
37 1
|
2月前
|
机器学习/深度学习
大模型开发:解释卷积神经网络(CNN)是如何在图像识别任务中工作的。
**CNN图像识别摘要:** CNN通过卷积层提取图像局部特征,池化层减小尺寸并保持关键信息,全连接层整合特征,最后用Softmax等分类器进行识别。自动学习与空间处理能力使其在图像识别中表现出色。
24 2
|
3月前
|
机器学习/深度学习 编解码 计算机视觉
【APFN】从大佬论文中探索如何分析改进金字塔网络
【APFN】从大佬论文中探索如何分析改进金字塔网络
57 0
|
2月前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能与图像识别:基于深度学习的卷积神经网络
人工智能与图像识别:基于深度学习的卷积神经网络
35 0
|
2月前
|
机器学习/深度学习 算法 数据库
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
|
9天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
PYTHON TENSORFLOW 2二维卷积神经网络CNN对图像物体识别混淆矩阵评估|数据分享
PYTHON TENSORFLOW 2二维卷积神经网络CNN对图像物体识别混淆矩阵评估|数据分享
36 7
|
6天前
|
机器学习/深度学习 存储 监控
数据分享|Python卷积神经网络CNN身份识别图像处理在疫情防控下口罩识别、人脸识别
数据分享|Python卷积神经网络CNN身份识别图像处理在疫情防控下口罩识别、人脸识别
17 0
|
3天前
|
机器学习/深度学习 算法 TensorFlow
TensorFlow 2keras开发深度学习模型实例:多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN)
TensorFlow 2keras开发深度学习模型实例:多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN)