【论文泛读】 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概率在多个裁剪图像上和所有单个分类器上进行平均,然后获得最终预测。在我们的实验中,我们分析了验证数据的替代方法,例如裁剪图像上的最大池化和分类器的平均,但是它们比简单平均池化的性能略逊。

相关文章
|
3天前
|
机器学习/深度学习 编解码 自动驾驶
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
19 3
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
|
1月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
117 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
7天前
|
机器学习/深度学习 编解码 自动驾驶
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
39 16
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
|
7天前
|
机器学习/深度学习 存储
YOLOv11改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
YOLOv11改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
35 15
YOLOv11改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
|
5天前
|
机器学习/深度学习
YOLOv11改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
YOLOv11改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
24 8
YOLOv11改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
|
3天前
|
机器学习/深度学习 编解码 移动开发
RT-DETR改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
RT-DETR改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
19 5
RT-DETR改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
|
1天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
27 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
7天前
|
机器学习/深度学习 编解码 移动开发
YOLOv11改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
YOLOv11改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
21 7
YOLOv11改进策略【Conv和Transformer】| TPAMI-2024 Conv2Former 利用卷积调制操作和大核卷积简化自注意力机制,提高网络性能
|
3天前
|
机器学习/深度学习
RT-DETR改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
RT-DETR改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
24 11
|
3天前
|
机器学习/深度学习 存储
RT-DETR改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
RT-DETR改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
13 0
RT-DETR改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络

热门文章

最新文章