计算机系统应用教程网站

网站首页 > 技术文章 正文

多分支网络鼻祖GoogLeNet

btikc 2024-09-04 03:18:45 技术文章 13 ℃ 0 评论

作者 | 李健(微信号:lijian05170517)

编辑 | 言有三

1 Inception V1【1】

GoogLeNet首次出现在2014年ILSVRC 比赛中获得冠军。这次的版本通常称其为Inception V1。Inception V1有22层深,参数量为5M。同一时期的VGGNet性能和Inception V1差不多,但是参数量也是远大于Inception V1。

Inception Module是GoogLeNet的核心组成单元。结构如下图:

Inception Module基本组成结构有四个成分。1*1卷积,3*3卷积,5*5卷积,3*3最大池化。最后对四个成分运算结果进行通道上组合。这就是Inception Module的核心思想。通过多个卷积核提取图像不同尺度的信息,最后进行融合,可以得到图像更好的表征

如上图所示,假设我们要提取猫脸特征,而上面两张图的猫脸占比显然不一样,那么我们就得用不同卷积核提取不同信息。信息分布比较全局性的图像采用大卷积核,信息分布比较局部性的图像采用小卷积核。

图b是对图a的改进,即在3*3卷积,5*5卷积前加1*1卷积,目的是为了先进行降维,相比较于原来结构减少了较多参数。而把1*1卷积放在3*3最大池化之后,相比较放在前面,也是为了参数量的减少。

由Inception Module组成的GoogLeNet如下图:

对上图做如下说明:

1. 采用模块化结构,方便增添和修改。其实网络结构就是叠加Inception Module。

2.采用Network in Network中用Averagepool来代替全连接层的思想。实际在最后一层还是添加了一个全连接层,是为了大家做finetune。

3.依然使用Dropout层,防止过拟合。

4.另外增加了两个辅助的softmax分支,作用有两点,一是为了避免梯度消失,用于向前传导梯度。反向传播时如果有一层求导为0,链式求导结果则为0。二是将中间某一层输出用作分类,起到模型融合作用。最后的loss=loss_2 + 0.3 * loss_1 + 0.3 * loss_0。实际测试时,这两个辅助softmax分支会被去掉。

2 Inception V2【2】

1.学习VGGNet的特点,用两个3*3卷积代替5*5卷积,可以降低参数量。

2.提出BN算法。BN算法是一个正则化方法,可以提高大网络的收敛速度。简单介绍一下BN算法。就是对输入层信息分布标准化处理,使得规范化为N(0,1)的高斯分布,收敛速度大大提高。

Inception V3 学习Factorization into small convolutions的思想,将一个二维卷积拆分成两个较小卷积,例如将7*7卷积拆成1*7卷积和7*1卷积。这样做的好处是降低参数量。paper中指出,通过这种非对称的卷积拆分,比对称的拆分为几个相同的卷积效果更好,可以处理更多,更丰富的空间特征。

本来还有Inception V4【4】的,考虑到借鉴了微软的ResNet网络结构思想,在后面介绍Resnet中的残差结构时再做介绍。

参考文献

【1】Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2015:1-9.

Ioffe S, Szegedy C.

【2】Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift[J]. 2015:448-456.

【3】Szegedy C, Vanhoucke V, Ioffe S, et al. Rethinking the Inception Architecture for Computer Vision[J]. 2015:2818-2826.

【4】Szegedy C, Ioffe S, Vanhoucke V, et al. Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning[J]. 2016.

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表