前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >卷积神经网络之 - Inception-v3

卷积神经网络之 - Inception-v3

作者头像
机器视觉CV
发布2020-07-23 10:13:25
6.9K0
发布2020-07-23 10:13:25
举报
文章被收录于专栏:机器视觉CV机器视觉CV

简介

论文地址:https://arxiv.org/abs/1512.00567

Inception-v3 架构的主要思想是 factorized convolutions (分解卷积) 和 aggressive regularization (激进的正则化)

注:一般认为 Inception-v2 (BN 技术的使用) 和 Inception-v3 (分解卷积技术) 网络是一样的,只是配置上不同,那么就暂且本文所述的是 Inception-v3 吧。

设计原则

作者在文章中提出了 4 个设计网络的原则,虽然不能证明这些原则是有用的,但是也能为网络的设计提供一定的指导作用。笔者对这些原则理解也并不透彻,并且没有做过相关实验,所以以下的表述可能表述有不周到,请读者指正:

  • 网络从输入到输出的过程中,应该避免维度过度压缩,输入到输出特征的维度应该缓缓变化,例如像金字塔那般。
  • 获得更加明晰的特征,得到的网络训练起来更快。
  • 空间聚合可以通过低维度嵌套得到,而不损失表示能力。
  • 网络的宽度和深度要均衡。

分解卷积

分解卷积的主要目的是为了减少参数量,分解卷积的方法有:大卷积分解成小卷积;分解为非对称卷积;

大卷积分解成小卷积

使用 2 个 3×3 卷积代替一个 5×5 卷积,可以减少 28% 的参数量,另外分解后多使用了一个激活函数(卷积层后面跟着激活函数,以前只有一个 5×5 卷积,也就只有一个激活函数,现在有 2 个 3×3 卷积,也就有了 2 个激活函数),增加了非线性表达的能力,(VGGNet 也使用了相似的技术)分解示意图如下所示:

网络具体结构如下,简称为 Module A

那么经过分解,是否会对性能造成影响呢,作者做了实验,得到结果如下图,其中蓝色曲线是对分解的卷积使用 2 个 ReLU 激活(得到验证集 77.2% 的精度),红色曲线是对分解的卷积使用 Linear+ReLU 激活(得到验证集 76.2% 的精度),实验结果表明,经过分解不会降低模型的 representation(表征)能力。

分解为非对称卷积

用 1 个 1×3 卷积和 1 个 3×1 卷积替换 3×3 卷积,这样可以减少 33% 的参数量

具体结构如下:简称为 Module B

其他的非对称分解卷积如下,简称为 Module C

辅助分类器(Auxiliary Classifier)

在 Inception v1 中,使用了 2 个辅助分类器,用来帮助梯度回传,以加深网络的深度,在 Inception v3 中,也使用了辅助分类器,但其作用是用作正则化器,这是因为,如果辅助分类器经过批归一化,或有一个 dropout 层,那么网络的主分类器效果会更好一些。这也间接的说明,批归一化可以作为正则化器使用。

有效的特征网格大小缩减(Grid Size Reduction)

传统上,卷积网络使用一些池化操作来减小特征图的网格大小。为避免表示瓶颈,在进行最大池化或平均池化之前,增大网络滤波器激活的维数。作者设计了一个结构,可以有效减少计算量和参数

其中左边的图是详细的结构,右边的图是结构简图

Inception-v3 架构

Inception-v3 Architecture

该网络有 42 层,计算量比 GoogLeNet 高 2.5 倍,但是比 VGGNet 更高效,具体网络参数如下:

注:图中的 Module A、B、C 模型结构在前文已经说明

通过标签平滑来进行模型正则化

为了保证模型能够有较好的泛化能力,作者提出通过对标签进行平滑,原因是如果模型学会了对每个训练样本的真值标签都赋予充分最高概率,那么泛化能力就不能保证了。主要的工作是让真实标签的 logit 不要那么大。

实验结果

以下实验的数据集都是 ILSVRC 竞赛数据集

Inception 系列模型性能对比

不同 Inception 性能对比

不同网络性能对比
模型集成结果

可以看出,Inception-v3 在性能上有好的表现。在 ILSVRC 2015 竞赛上获得亚军,当年的冠军是 ResNet 。

参考:

  • https://medium.com/@sh.tsang/review-inception-v3-1st-runner-up-image-classification-in-ilsvrc-2015-17915421f77c
  • https://github.com/pytorch/vision/blob/master/torchvision/models/inception.py
  • https://cloud.google.com/tpu/docs/inception-v3-advanced
  • https://github.com/Mycenae/PaperWeekly/blob/master/Inception-V3.md
  • https://blog.ddlee.cn/posts/5e3f4a2c/
  • https://mp.weixin.qq.com/s/mXhVMHBsxrQQf_MV4_7iaw
  • https://blog.csdn.net/u014061630/article/details/80383285
  • https://blog.csdn.net/weixin_43624538/article/details/84963116
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器视觉CV 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 设计原则
  • 分解卷积
    • 大卷积分解成小卷积
      • 分解为非对称卷积
      • 辅助分类器(Auxiliary Classifier)
      • 有效的特征网格大小缩减(Grid Size Reduction)
      • Inception-v3 架构
      • 通过标签平滑来进行模型正则化
      • 实验结果
        • Inception 系列模型性能对比
          • 不同网络性能对比
            • 模型集成结果
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档