深度学习模型之CNN(七)GoogLeNet网络详解
GoogLeNet详解
GoogLeNet在2014年由Google团队提出,斩获当年ImageNet竞赛中Classification Task (分类任务) 第一名。原论文地址:Going deeper with convolutions
GoogLeNet 的创新点:
- 引入了Inception结构(融合不同尺度的特征信息)
- 使用1x1的卷积核进行降维以及映射处理(虽然VGG网络中也有,但该论文介绍的更详细)
- 添加两个辅助分类器帮助训练(AlexNet和VGG都只有一个输出层,GoogLeNet有三个输出层(其中两个辅助分类层))
- 丢弃全连接层,使用平均池化层(大大减少模型参数,除去两个辅助分类器,网络大小只有VGG的1/20)
Inception结构
传统的CNN结构如AlexNet、VggNet(下图)都是串联的结构,即将一系列的卷积层和池化层进行串联得到的结构。
Inception原始结构
GoogLeNet 提出了一种并联结构,下图是论文中提出的Inception原始结构,将特征矩阵同时输入到多个分支进行处理,并将输出的特征矩阵按深度进行拼接,得到最终输出。
在之前所讲的网络中,例如AlexNet和VGG,网络都是串行结构,将一系列的卷积层和最大池化下采样层进行串联得到一个网络结构。而GoogLeNet中的Inception结构是一个并行的结构。
也就是说,在上一层输入之后,将得到的特征矩阵同时输入到四个分支当中进行处理,处理之后将得到的四个分支的特征矩阵按深度进行拼接,得到输出特征矩阵。
在特征分支中,分别为大小是1*1、3*3、5*5的卷积核和大小为3*3的池化核,通过这四个分支能得到不同尺度的特征矩阵。注意:每个分支所得的特征矩阵高和宽必须相同,否则无法延深度方向进行拼接。
Inception结构(降维功能)
在 Inception 的基础上,还可以加上降维功能的结构,如下图所示,在原始 Inception 结构的基础上,在分支2,3,4上加入了卷积核大小为1x1的卷积层,目的是为了降维(减小深度),减少模型训练参数,减少计算量。
1*1卷积核的降维功能
假设有一个深度为512的特征矩阵
当不使用1*1的卷积核降维,直接使用64个5*5的卷积核进行卷积的话,需要用到的参数个数:5*5*512*64 = 819200
当先使用24个卷积核大小1*1的卷积核进行卷积时,得出的特征矩阵深度会由原先的512变为24(由输入的卷积核的个数决定的),之后再使用64个卷积核大小为5*5的卷积核进行卷积,需要用到的参数个数:1*1*512*24 + 5*5*24*64 = 12288+38400 = 50688。
因此,在添加了3个卷积核大小为1*1的卷积核进行卷积之后,能对特征矩阵进行降维,减少特征矩阵的深度,从而减少所需的卷积参数,也就减少了计算量。
注:CNN参数个数 = 卷积核尺寸×卷积核深度 × 卷积核组数 = 卷积核尺寸 × 输入特征矩阵深度 × 输出特征矩阵深度
辅助分类器(Auxiliary Classifier)
AlexNet 和 VGG 都只有1个输出层,GoogLeNet 有3个输出层,其中的两个是辅助分类层。如下图所示,网络主干右边的两个分支 就是辅助分类器,其结构一模一样。
网络中的两个辅助分类器分别来自于4a和4d,对照参数表中的数据,4a的特征矩阵输出尺寸为14*14*512,4d输出的特征矩阵的尺寸为14*14*528,这两个特征矩阵高度和宽度都一样,只有深度不同。
在训练模型时,将两个辅助分类器的损失乘以权重(论文中是0.3)加到网络的整体损失上,再进行反向传播。
辅助分类器的两个分支有什么用呢?
- 可以把他看做Inception网络中的一个小细节,它确保了即便是隐藏单元和中间层也参与了特征计算,他们也能预测图片的类别,他在Inception网络中起到一种调整的效果,并且能防止网络发生过拟合。
- 给定深度相对较大的网络,有效传播梯度反向通过所有层的能力是一个问题。通过将辅助分类器添加到这些中间层,可以期望较低阶段分类器的判别力。在训练期间,它们的损失以折扣权重(辅助分类器损失的权重是0.3)加到网络的整个损失上。
GoogLeNet 网络参数
对于Inception模块,所需要使用到参数有#1x1
, #3x3reduce
, #3x3
, #5x5reduce
, #5x5
, poolproj
,这6个参数,分别对应着所使用的卷积核个数。
#1x1
对应着分支1上1x1的卷积核个数#3x3reduce
对应着分支2上1x1的卷积核个数#3x3
对应着分支2上3x3的卷积核个数#5x5reduce
对应着分支3上1x1的卷积核个数#5x5
对应着分支3上5x5的卷积核个数poolproj
对应着分支4上1x1的卷积核个数。