CNN经典网络模型之GoogleNet论文解读

简介: GoogleNet,也被称为Inception-v1,是由Google团队在2014年提出的一种深度卷积神经网络架构,专门用于图像分类和特征提取任务。它在ILSVRC(ImageNet Large Scale Visual Recognition Challenge)比赛中取得了优异的成绩,引入了"Inception"模块,这是一种多尺度卷积核并行结构,可以增强网络对不同尺度特征的感知能力。

1. GoogleNet


GoogleNet,也被称为Inception-v1,是由Google团队在2014年提出的一种深度卷积神经网络架构,专门用于图像分类和特征提取任务。它在ILSVRC(ImageNet Large Scale Visual Recognition Challenge)比赛中取得了优异的成绩,引入了"Inception"模块,这是一种多尺度卷积核并行结构,可以增强网络对不同尺度特征的感知能力。



1.1 Inception模块


GoogleNet引入了"Inception"模块,该模块使用不同尺度的卷积核来同时捕获不同尺度的特征。这有助于网络更好地适应不同大小的对象和结构。每个Inception模块包含多个并行的卷积层和池化层,然后将它们的输出在通道维度上连接起来。

左图呢,是论文中提出的inception原始结构,右图是inception加上降维功能的结构。


先看左图,inception结构一共有4个分支,也就是说我们的输入的特征矩阵并行的通过这四个分支得到四个输出,然后在将这四个输出在深度维度(channel维度)进行拼接得到我们的最终输出(注意,为了让四个分支的输出能够在深度方向进行拼接,必须保证四个分支输出的特征矩阵高度和宽度都相同)。


分支1是卷积核大小为1x1的卷积层,stride=1,

分支2是卷积核大小为3x3的卷积层,stride=1,padding=1(保证输出特征矩阵的高和宽和输入特征矩阵相等),

分支3是卷积核大小为5x5的卷积层,stride=1,padding=2(保证输出特征矩阵的高和宽和输入特征矩阵相等),

分支4是池化核大小为3x3的最大池化下采样,stride=1,padding=1(保证输出特征矩阵的高和宽和输入特征矩阵相等)

再看右图,对比左图,就是在分支2,3,4上加入了卷积核大小为1x1的卷积层,目的是为了降维,减少模型训练参数,减少计算量。


注意: 如果保持输入的图像尺寸不变,在步长为1的情况下,padding=(卷积核大小-1)/  2 。


1.1.1 1x1卷积


1x1卷积: 1x1卷积在Inception模块中被广泛使用,它用于降低通道数,从而减少计算量。1x1卷积的作用类似于将不同通道的特征进行线性组合,以创建一种综合特征表示。


同样是对一个深度为512的特征矩阵使用65个大小为5x5的卷积核进行卷积,不使用1x1卷积核进行降维话一共需要819200个参数,如果使用1x1卷积核进行降维一共需要50688个参数,明显少了很多。





1.2 辅助分类器结构


为了解决梯度消失问题,GoogleNet在中间某些层添加了辅助分类器。这些辅助分类器有助于训练过程中的梯度传播,同时还可以提供网络中间层的监督信号,有助于更快地训练网络。


有两个辅助分类器,结构如下图:



这两个辅助分类器的输入分别来自Inception(4a)和Inception(4d)。


辅助分类器的第一层是一个平均池化下采样层,池化核大小为5x5,stride=3

第二层是卷积层,卷积核大小为1x1,stride=1,卷积核个数是128

第三层是全连接层,节点个数是1024

第四层是全连接层,节点个数是1000(对应分类的类别个数)


1.3 GoogleNet网络结构图


每个卷积层的卷积核个数如何确定呢,下面是原论文中给出的参数列表,对于我们搭建的Inception模块,所需要使用到参数有#1x1, #3x3reduce, #3x3, #5x5reduce, #5x5, poolproj,这6个参数,分别对应着所使用的卷积核个数。



其中#1x1对应着分支1上1x1的卷积核个数,#3x3 reduce对应着分支2上1x1的卷积核个数,#3x3对应着分支2上3x3的卷积核个数,#5x5 reduce对应着分支3上1x1的卷积核个数,#5x5对应着分支3上5x5的卷积核个数,pool proj对应着分支4上1x1的卷积核个数。


如下图所示:



下面是GoogleNet整体网络结构如下图:


相关文章
|
30天前
|
机器学习/深度学习 存储 自然语言处理
卷积神经元网络CNN基础
卷积神经元网络CNN基础
37 1
|
30天前
|
机器学习/深度学习
大模型开发:解释卷积神经网络(CNN)是如何在图像识别任务中工作的。
**CNN图像识别摘要:** CNN通过卷积层提取图像局部特征,池化层减小尺寸并保持关键信息,全连接层整合特征,最后用Softmax等分类器进行识别。自动学习与空间处理能力使其在图像识别中表现出色。
24 2
|
2月前
|
机器学习/深度学习 编解码 计算机视觉
【APFN】从大佬论文中探索如何分析改进金字塔网络
【APFN】从大佬论文中探索如何分析改进金字塔网络
44 0
|
1月前
|
机器学习/深度学习 算法 数据库
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
|
7天前
|
机器学习/深度学习 数据采集 TensorFlow
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
24 0
|
1月前
|
机器学习/深度学习 开发者
论文介绍:基于扩散神经网络生成的时空少样本学习
【2月更文挑战第28天】论文介绍:基于扩散神经网络生成的时空少样本学习
14 1
论文介绍:基于扩散神经网络生成的时空少样本学习
|
1月前
|
机器学习/深度学习 人工智能 算法
详细介绍卷积神经网络(CNN)的原理 !!
详细介绍卷积神经网络(CNN)的原理 !!
76 0
|
1月前
|
机器学习/深度学习 自然语言处理 并行计算
神经网络结构——CNN、RNN、LSTM、Transformer !!
神经网络结构——CNN、RNN、LSTM、Transformer !!
132 0
|
1月前
|
机器学习/深度学习 PyTorch TensorFlow
python实现深度学习模型(如:卷积神经网络)。
【2月更文挑战第14天】【2月更文挑战第38篇】实现深度学习模型(如:卷积神经网络)。
|
1月前
|
机器学习/深度学习 算法
基于CNN+LSTM深度学习网络的时间序列预测matlab仿真
基于CNN+LSTM深度学习网络的时间序列预测matlab仿真

热门文章

最新文章