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

相关文章
|
7天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
23 4
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
29天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
257 55
|
1月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
176 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
4天前
|
机器学习/深度学习 算法 计算机视觉
基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM
本项目基于MATLAB2022A,利用CNN卷积神经网络对金融数据进行预测,并与BP、RBF和LSTM网络对比。核心程序通过处理历史价格数据,训练并测试各模型,展示预测结果及误差分析。CNN通过卷积层捕捉局部特征,BP网络学习非线性映射,RBF网络进行局部逼近,LSTM解决长序列预测中的梯度问题。实验结果表明各模型在金融数据预测中的表现差异。
|
1月前
|
机器学习/深度学习 资源调度 算法
图卷积网络入门:数学基础与架构设计
本文系统地阐述了图卷积网络的架构原理。通过简化数学表述并聚焦于矩阵运算的核心概念,详细解析了GCN的工作机制。
113 3
图卷积网络入门:数学基础与架构设计
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN): 从理论到实践
本文将深入浅出地介绍卷积神经网络(CNN)的工作原理,并带领读者通过一个简单的图像分类项目,实现从理论到代码的转变。我们将探索CNN如何识别和处理图像数据,并通过实例展示如何训练一个有效的CNN模型。无论你是深度学习领域的新手还是希望扩展你的技术栈,这篇文章都将为你提供宝贵的知识和技能。
362 7
|
2月前
|
机器学习/深度学习 自然语言处理 算法
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
84 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新