Inception系列回顾

栏目: IT技术 · 发布时间: 4年前

内容简介:Inception 家族成员:Inception-V1(GoogLeNet)、BN-Inception、Inception-V2、Inception-V3、Inception-ResNet-V1、Inception-V4、Inception-ResNet-V2。Inception系列网络结构可以模块化为:Inception系列的演化过程就是上面各环节不断改进(越来越复杂)的过程,其进化方向大致为

Inception 家族成员:Inception-V1(GoogLeNet)、BN-Inception、Inception-V2、Inception-V3、Inception-ResNet-V1、Inception-V4、Inception-ResNet-V2。

Inception系列网络结构可以模块化为:

  • Stem :前处理部分
  • A B C网络主体 “三段式”,A B C每段的输入feature size依次折半,channel增加
  • ReductionA B :完成feature size折半操作(降采样)
  • Avg Pooling (+ Linear) :后处理部分

Inception系列的演化过程就是上面各环节不断改进(越来越复杂)的过程,其进化方向大致为

  • Stem :大卷积层→多个小卷积层堆叠→multi-branch 小卷积层堆叠
  • A B C :相同multi-branch结构→每阶段不同multi-branch结构→每阶段不同 Residual+multi-branch 结构,big convolution→ small convolution + BN → factorized convolution
  • ReductionA B :max pooling → 不同multi-branch conv(stride 2)结构
  • 后处理 :Avg Pooling + Linear → Avg Pooling

性能进化如下图所示,single model通过center crop 在ImageNet上 Top1 和 Top5 准确率,

Inception系列回顾
https://arxiv.org/abs/1810.00736

具体如下。

Inception-V1 (GoogLeNet)

Inception-V1,更被熟知的名字为GoogLeNet,意向Lenet致敬。

通过增加网络深度和宽度可以提升网络的表征能力。

增加宽度可以简单地通过增加卷积核数量来实现,GoogLeNet在增加卷积核数量的同时, 引入了不同尺寸的卷积核,来捕捉不同尺度的特征 ,形成了 multi-branch结构 ——这是GoogLeNet网络结构的最大特点,如下图所示,然后将不同branch得到的feature map 拼接在一起,为了让feature map的尺寸相同,每个branch均采用SAME padding方式,同时 stride为1(包括max pooling) 。为了降低计算量,又 引入了$1\times 1$卷积层来降维 ,如下图右所示,该multi-branch结构称之为一个Inception Module,在GoogLeNet中采用的是下图右的Inception Module。

Inception系列回顾
source: http://arxiv.org/abs/1409.4842

直接增加深度会导致浅层出现严重的梯度消失现象,GoogLeNet引入了 辅助分类器(Auxiliary Classifier) ,在浅层和中间层插入, 来增强回传时的梯度信号,引导浅层学习到更具区分力的特征。

Inception系列回顾
source: http://arxiv.org/abs/1409.4842

最终,网络结构如下,主体三段式A B C 即 3x、4x、5x,

Inception系列回顾
source: http://arxiv.org/abs/1409.4842

GoogLeNet网络结构的特点可以概括为,

  • 同时使用不同尺寸的卷积核,形成 multi-branch 结构,来捕捉不同尺度的特征
  • 使用$1 \times 1$卷积降维 ,压缩信息,降低计算量
  • 在classifier前使用 average pooling

BN-Inception

BN-Inception网络实际是在Batch Normalization论文中顺带提出的,旨在表现BN的强大。

Inception系列回顾
source: http://arxiv.org/abs/1512.00567

与GoogLeNet的不同之处在于,

  • 在每个激活层前 增加BN层
  • 将Inception Module中的$5 \times 5$ 卷积替换为2个$3\times 3$ 卷积 ,如上图所示
  • 在Inception 3a和3b之后增加Inception 3c
  • 部分Inception Module中的Pooling层改为average pooling
  • 取消Inception Module之间衔接的pooling层,而将下采样操作交给Inception 3c和4e,令stride为2

BN-Inception网络结构如下

Inception系列回顾
source: http://arxiv.org/abs/1502.03167

Inception-V2, V3

Inception V2和V3出自同一篇论文 Rethinking the Inception Architecture for Computer Vision

GoogLeNet和BN-Inception网络结构中Inception Module可分为3组,称之为3x、4x和5x(即主体三段式A B C),GoogLeNet和BN-Inception这3组采用相同Inception Module结构,只是堆叠的数量不同。

Inception V2和V3与以往最大的不同之处在于3组分别使用了不同结构的Inception Module,分别如下图从左到右所示,

Inception系列回顾
source: http://arxiv.org/abs/1512.00567

具体地,

  • 3x使用的Inception Module与BN-Inception相同,即将$5\times 5$拆分成2个堆叠的$3\times 3$ ;
  • 4x使用的Inception Module采用了factorized convolutions , 将2维卷积拆分成2个堆叠的1维卷积,可类比传统计算机视觉中的“行列可分解卷积”,但中间夹了个激活 ,1维卷积的长度为7;
  • 5x使用的Inception Module,1维卷积不再堆叠而是并列,将结果concat;

除此之外,

  • 3x和4x之间,4x和5x之间,均不存在衔接的池化层,下采样通过Inception Module中的stride实现
  • 取消了浅层的辅助分类器,只保留中层的辅助分类器
  • 最开始的几个卷积层调整为多个堆叠的$3\times 3$ 卷积

据论文所述,V2的网络结构如下

Inception系列回顾
source: http://arxiv.org/abs/1512.00567

据论文所述,V3与V2的差异在于,

  • RMSProp Optimizer
  • Label Smoothing训练中使用的label为one hot label与均匀分布的加权 ,可以看成一种正则
  • Factorized $7 \times 7$,即将第一个$7 \times 7$卷积层变为堆叠的3个$3 \times 3$
  • BN-auxiliary,辅助分类器中的全连接层也加入BN

但是, 实际发布的Inception V3完全是另外一回事 ,参见 pytorch/inception ,有人绘制了V3的网络架构如下——网上少有绘制正确的,下图中亦存在小瑕疵,最后一个下采样Inception Module中$1\times 1$的stride为1。

需要注意的是,起下采样作用两个Inception Module并不相同。

Inception系列回顾
source: https://www.researchgate.net/figure/VGG16-VGG19-Inception-V3-Xception-and-ResNet-50-architectures_fig1_330478807

有的时候,Inception-V2和BN-Inception是混淆的。从Inception-V3开始,Inception架构变得越来越不像人搞的……

Inception-V4,Inception-ResNet-v1,Inception-ResNet-v2

Inception-V4,Inception-ResNet-v1 和 Inception-ResNet-v2出自同一篇论文 Inception-V4, Inception-ResNet and the Impact of Residual Connections on Learning

Inception-V4相对V3的主要变化在于, 前处理使用更复杂的multi-branch stem模块 ,主体三段式与V3相同。

Inception系列回顾
https://towardsdatascience.com/review-inception-v4-evolved-from-googlenet-merged-with-resnet-idea-image-classification-5e8c339d18bc

Inception-ResNet-V1与Inception-ResNet-V2,将Inception与ResNet结合, 使用Inception结构来拟合残差部分 ,两者在A B C部分结构相同,只是后者channel数更多,两者的主要差异在前处理部分,后者采用了更复杂的multi-branch stem结构(与V4相同)。相比纯Inception结构, 引入ResNet结构极大加快了网络的收敛速度

Inception系列回顾
https://www.aiuai.cn/aifarm465.html
Inception系列回顾
https://www.aiuai.cn/aifarm465.html

以上。


以上所述就是小编给大家介绍的《Inception系列回顾》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Domain-Driven Design

Domain-Driven Design

Eric Evans / Addison-Wesley Professional / 2003-8-30 / USD 74.99

"Eric Evans has written a fantastic book on how you can make the design of your software match your mental model of the problem domain you are addressing. "His book is very compatible with XP. It is n......一起来看看 《Domain-Driven Design》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

MD5 加密
MD5 加密

MD5 加密工具