《Xception: Deep Learning with Depthwise Separable Convolutios》笔记

介绍

文章链接

常规卷积网络是CONV->POOL形式。通过CONV学习特征,通过POOL下采样,使网络在不同尺度空间都能提取特征。

Inception结构最初在GoogLeNet出现(Inception V1),随后有了Inception V2、Inception V3和Inception-ResNet。

Inception-style的结构有很多版本,下面是Inception V3版本中的结构:
xception_01.jpg
Inception模型,是由连续多个Inception结构组成,就行VGG-style网络一样,由连续多个卷积组成。

Inception模型和卷积在概念上类似,都是卷积提取特征;但是Inception结构参数更少,提取的特征更加丰富。Inception结构工作原理是什么,和常规卷积有什么不同?Inception之后,设计网络的侧脸又是什么?

Inception假设

一个卷积层的卷积核是三个维度的,空间上width和height,还有一个channel维度。因此一个卷积层,既考虑映射cross-channel相关性,又考虑spatial相关性。

Inception背后的思想是通过分开独立处理cross-channel和spatial的相关性,使得处理过程更加简单高效。准确来说,Inception结构首先通过1x1卷积“看”cross-channel相关性,把输入映射到3或4个分开的空间(小于原输入空间),之后通过3x3或5x5卷积再映射到更小的3维空间,如上图所示。实际上,Inception基本的假设就是通过解耦和cross-channel和spatial相关性。

是否可以进一步假设cross-channel和spatial之间的相关性可以完全分开处理?

卷积和separable卷积之间的连续

基于上面进一步假设,有了“extreme”笨笨的Inception结构:
xception_02.jpg

上面这种结构,几乎等同于depthwise separable卷积。depthwise separable卷积又叫做“separable卷积”,是通过处理每一个channel上的空间卷积,之后再经过pointwise卷积(例如1x1卷积),在一个新的channel空间得到输出。

“extreme”版本的Inception和depthwise separable卷积两点主要不同:

  • 操作顺序:depthwise separable卷积首先channel-wise spatial卷积,之后1x1卷积;而Inception首先1x1卷积。

  • 第一个操作后是否有非线性。Inception中,第一步和第二部操作都有非线性(ReLU);而depthwise separable卷积后面通常没有非线性操作。

上面两点不同种,第一点不同不太重要,第二点不同比较重要。

输入的每一个channel空间(width和height)对应一个“频谱”。1x1卷积把这些“频谱”合成一个;而depthwise separable卷积对每一个“频谱”做卷积。Inception结构把几百个channel分成3或4个。

基于以上观察,可以把Inception结构替换为depthwise separable卷积。

Xception结构

基于cross-channel和spatial相关性可以完全解耦和,作者提出一个新的卷积网络结构。这个假设是基于Inception结构的强假设,名字叫做“Extreme Inception”,简称“Xception”。结构如下:
xception_03.jpg

Xception有36个卷积层,包含14个模块,线性Residual connection在这14个模块中。在图像分类中,最后一层是逻辑回归;可以在逻辑回归前面一层加上全连接层。

实验评估

对比Xception和Inception V3,因为它们两个参数个数接近。对比它们在图片分类上的效果。数据集一个是单标签的ImageNet,另一个是多标签的JFT。

优化方法配置

  • On ImageNet:
    – Optimizer: SGD
    – Momentum: 0.9
    – Initial learning rate: 0.045
    – Learning rate decay: decay of rate 0.94 every 2 epochs

  • On JFT:
    – Optimizer: RMSprop
    – Momentum: 0.9
    – Initial learning rate: 0.001
    – Learning rate decay: decay of rate 0.9 every 3,000,000 samples

正则化

  • Weight decay
    Inception V3使用L2正则化,weight decay rate为4e-5(在ImageNet上tune得到的)。Xception使用1e-5。

  • Dropout
    在逻辑回归前加上dropout层,dropout rate为0.5.

  • Auxiliary loss tower

Inception V3包含一个可选的auxiliary tower,在反向传播时当做正则化机制。为了简化,Xception没有包含。

训练工具

使用TensorFlow,60块NVIDIA K80 GPUs。

ImageNet使用同步梯度下降,训练了3天。

JFT使用异步梯度下降,训练了近一个月,并没有完全收敛。

和Inception V3对比

分类对比

ImageNet,使用validation set。Single model, single crop。
xception_04.jpg

JFT对比,使用模型为迭代30,000,000次的模型:

xception_05.jpg

Xception架构在JFT数据集性能提升明显高于在ImageNet数据集。可能是因为Inception V3设计时专注于ImageNet。

模型大小和速度

使用K80 GPU,同步梯度下降。

xception_06.jpg
两个模型参数个数类似。Xception速度稍慢于Inception V3。未来需要在depthwise卷积上做些优化。

residual connections影响

xception_07.jpg

Residual connection对收敛速度和精度都有帮助。需要注意,两者训练时都是用同一配置,对于不使用residual connection,调优配置可能得到更好的效果。

pointwise卷积后中间激活的影响

在depthwise和pointwise卷积之间使用不同激活函数
xception_08.jpg

上面结果,不使用非线性激活性能好于使用非线性激活。这和《Rethinking the inception architecture for computer vision》结论相反。这可能和特征空间深度相关:对于深的特征空间(Inception中的),非线性有帮助;对于浅的(例如depthwise卷积,1-channel特征空间)反而有负面作用。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Xception是一种深度学习模型,它使用深度可分离卷积来提高模型的效率和准确性。深度可分离卷积是一种卷积操作,它将标准卷积分成两个步骤:深度卷积和逐点卷积。深度卷积在每个输入通道上执行卷积,而逐点卷积在每个通道之间执行卷积。这种方法可以减少计算量和参数数量,同时提高模型的准确性。Xception模型在图像分类、目标检测和语义分割等任务中表现出色。 ### 回答2: Xception是一个基于深度可分离卷积的深度学习架构。深度学习在计算机视觉和自然语言处理等领域取得了巨大成功,但也面临着计算复杂性和模型尺寸庞大的问题。Xception通过引入深度可分离卷积来解决这些问题。 深度可分离卷积由分离卷积和逐点卷积两个步骤组成。首先,分离卷积将输入张量分别应用于空间和通道维度上的低秩张量。通过这种方式,模型可以分别学习特征的空间位置和通道之间的依赖关系。其次,逐点卷积将通道维度上的低秩张量应用于输出特征图。逐点卷积允许每个通道单独学习特征。 通过使用深度可分离卷积,Xception减少了参数的数量,并提高了模型的计算效率。与传统卷积相比,深度可分离卷积在减少计算量的同时,还可以提高模型的表示能力。这意味着Xception可以更好地捕捉和表示输入数据中的特征。 在实践中,Xception在图像分类、目标检测和语义分割等任务上都取得了非常好的表现。由于其较小的模型尺寸和高效的计算性能,Xception成为了很多研究者和工程师首选的深度学习架构之一。 总而言之,Xception通过引入深度可分离卷积来解决深度学习中的计算复杂性和模型尺寸庞大的问题。它减少了模型参数的数量、提高了模型的计算效率,同时又保持了较高的表示能力。作为一种强大的深度学习架构,Xception在多个领域具有广泛的应用和研究价值。 ### 回答3: Xception是一种深度学习模型,使用深度可分离卷积的方法来提高模型的准确性和效率。深度可分离卷积是一种卷积操作,由分离卷积和逐元素卷积两个步骤组成。 在传统卷积中,输入图像通过一个卷积核进行卷积操作,得到特征图。而在深度可分离卷积中,卷积操作被分解成两个步骤。首先,输入图像通过一个分离卷积核进行深度卷积,从而获取特征深度信息。然后,逐元素卷积操作被应用于分离卷积的输出,以获取空间信息。这种分离的方式减少了计算量和参数量,提高了模型的效率。 Xception模型使用了这种深度可分离卷积的结构。相比于传统的卷积方式,Xception模型能够更好地捕捉到输入图像中的细节信息。同时,由于深度卷积和逐元素卷积的分离,Xception模型的参数量大大减少,使得模型更加轻量化,便于在移动设备等资源受限的场景中应用。 通过对ImageNet大规模图像数据库进行训练,Xception模型取得了很好的性能。它在图像分类、目标检测和语义分割等任务上都取得了优秀的结果。同时,Xception模型也为其他相关任务,如迁移学习和特征提取等,提供了一个有力的基础。 总的来说,Xception是一种利用深度可分离卷积的深度学习模型,它在提高准确性和效率方面取得了显著的进展。它的设计和性能使得它成为了计算机视觉领域一个重要的技术突破。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值