Xception模型精讲

   Xception 并不是真正意义上的轻量化模型,是Google继Inception后提出的对Inception v3的另一种改进,主要是采用depthwise separable convolution来替代原来的Inception v3中的卷积操作,这种性能的提升是来自于更有效的使用模型参数而不是提高容量。一个卷积层尝试去学习特征在3维空间(高、宽、通道),包含了空间的相关性和跨通道的相关性。

  Xception做了一个加强的假设,就是卷积的时候要将通道的卷积与空间的卷积进行分离,这样会不会更合理?

Xception结构演变:

既然是在Inception v3上进行改进的,那么Xception是如何一步一步的从Inception v3演变而来。

当时提出Inception的初衷可以认为是:特征的提取和传递可以通过1x1卷积,3x3卷积,5x5卷积,pooling等,到底哪种才是最好的特征提取方式呢?Inception结构将这个疑问留给网络自己训练,也就是将一个输入同时给这几种提取特征方式,然后做concat。 Inception v3和Inception v1(GoogLeNet)对比主要是将5x5卷积换成两个3x3卷积层的叠加。

Inception v1(GoogLeNet)结构:

原理:把同一个输入分为4队,各小队分头行动进行不同的处理,再把四种处理结果合并喂给下一层。目的是尽可能的解耦用不同的尺度(不同卷积)来获取不同层次、不同力度的信息。

为了防止越来越厚导致参数量、运算量爆炸,Inception进行了改进,在3*3和5*5卷积之前,先加了1*1卷积降维,控制厚度。

1*1卷积核降维具体如图(输出数据的通道数是由卷积核个数决定):

Inception v3结构如下图:

Inception v3把Inception v1(GoogLeNet)的5x5卷积换成两个3x3卷积层的叠加。(两个3*3卷积可以代替一个5*5卷积,可以获得相同的感受野,减少参数量,增加非线性和模型的表达能力)

Xception结构演变

第一层简化inception模块:

把Inception v3的1*1卷积层换成3*3卷积层。

第二层简化inception模块:

第一层全部用1*1卷积,第二层全用3*3卷积,而且只有两层,所有分支都进行了两层的处理。

第三层简化inception模块:

先进行一次1*1卷积,生成一个共享的特征图,三条分支都对共享的特征图进行3*3卷积。

第四层简化inception模块:

不同分支处理不同通道。被称为grouped convolutions.

第五层简化inception模块(Xception模块):

Xception的深度可分离卷积,先pointwise convolution,后depthwise convolution。(depthwise convolution和pointwise convolution顺序无影响)

普通的的深度可分离卷积:

同:

每个卷积核处理一个通道称为Depthwise Convolution,再用1*1卷积把跨通道信息补回来称为Pointwise Convolution。深度可分离卷积可以大大减少参数量、运算量,提升卷积的运算效率。

Xception模型:

Separable conv包含1*1卷积+深度可分离卷积+合并,加了残差连接可以大大加快收敛速度和最终性能。

参考视频:谷歌Xception深度学习图像分类算法_哔哩哔哩_bilibili

  • 28
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值