Inception-V3

 Inception-V3主要是在Inception-V1的结构上进行了进一步的优化,由于Inception结构的特殊性,很难在其上做出更进一步的改动,而时实践证明直接增加Incetption模块的通道数目来增加模型的容量是不合理的,收益相对于模型参数的增加是不佳的,这也违反了Inception设计的初衷。本文的贡献在于给出了Inception模块的改进设计准则和改进范例

设计准则

 作者提出了以下四个准则,虽然没有严格理论证明,但实践过程中偏离这些准则准则往往要付出较大的代价:

  1. 防止在网络设计,尤其是早期设计时出现表征瓶颈。表征瓶颈指的是特征的大量丢失,直观解释就是将特征图样通过一个极小的口子1,只留下其中的一部分。池化,大步长卷积都算是表征瓶颈。表征的大小应该是逐步减小的,而不该是突然压缩的。
  2. 特征的维度越高,网络训练起来更简单,因为可以获得更多的分解特征,更加容易产生高相关性,类似Hebbian理论。2
  3. 空间上的聚合可以在低尺度层面上进行而不怎么损失信息。也就是使用1*1conv先对特征降维再进行卷积是可行的。
  4. 网络的深度和宽度应该实现平衡,即同时增加或减少。

卷积分解

## 对称卷积分解
 基于原则3,作者更进一步的认为视觉网络中相邻神经元的输出是高度相关的,我们可以先对它们降维再进行聚合,这应该和直接聚合有相同的表征能力。就此提出了将大尺度卷积进行分解的方法,对于一个5*5的卷积,我们可以将其分解为两个3*3卷积的组合,它们的感受野是一样的,而参数量则下降了28%( 25 − 9 × 2 25 \frac{25-9\times 2}{25} 2525−9×2​),如下图:

而作者也通过实验证明了虽然我们只是想通过两次3*3卷积来代替原始5*5的卷积,但两次卷积都附加非线性激活相比只在最后使用非线性激活效果更好。(其实作者还提到了个问题,这种替代真的不会带来表征能力的下降吗?但并没给出回答,很奇怪。)
## 非对称卷积分解
 沿着卷积分解的思路,自然而然的想法就是为啥不继续用2*2的卷积来代替3*3卷积,因为作者给出了另一种非对称卷积的解决方案,用两次不同方向上的1*3卷积来代替3*3卷积,如下图:

这种非对称卷积使得参数下降了33%,而用2*2的卷积只能使得参数减少11%。理论上来说我们可用任意n*1和1*n卷积来代替n*n卷积,而在实践过程中发现网络早期这种替代表现并不好,当网络深入,特征图样大小来到中等尺寸(12~20)时效果才比较好。

高效降维

 如果我们想要使得输出的通道数加倍而空间尺寸减小,常规方法就应该是如下右图所示的先卷积再池化,但这种方法需要的参数量很大。直接的降参数方法就是先池化再卷积,但这样实施就违反了原则1,中间的池化只允许一小部分的特征通过,成为了表征的瓶颈。

作者给出了如下的解决方法,在参数和特征丢失间取了折中,但自我感觉挺没道理的,感觉是在凑640个通道,旁支的池化层保留了前层特征,再后卷积后相当于后层的特征进行拼接,有啥意义呢?某种意义上的skip connection?

损失函数

 对于多分类问题,最经典的损失函数就是交叉损失熵函数了,最小化交叉损失熵实际熵就是在拟合原始输入在标签空间的分布。通常我们会认为其分布是冲激函数,即 q ( y ) = 1 , q ( k ) = 0 , f o r k ≠ y q(y)=1,q(k)=0,for k \neq y q(y)=1,q(k)=0,fork​=y。但这一分布假设的缺点就是太“硬”了,容易出现过拟合,同时会使得模型的泛化能力降低。解决方案就是让先验分布不那么“硬”,容忍一定的误判,也就是预设错误可能。将先验分布设定为:
q ′ ( k ∣ x ) = ( 1 − ϵ ) δ k , y + ϵ u ( k ) q'(k|x)=(1-\epsilon)\delta_{k,y}+\epsilon u(k) q′(k∣x)=(1−ϵ)δk,y​+ϵu(k)
u ( k ) u(k) u(k)就是我们预设的可容忍的错误分布,通常设置为均匀分布。相应的交叉损失熵函数就变成了:
H ( q ′ , p ) = ∑ k = 1 K l o g p ( k ) q ′ ( k ) = ( 1 − ϵ ) H ( q , p ) + ϵ H ( u , p ) H(q',p)=\sum^K_{k=1}logp(k)q'(k)=(1-\epsilon)H(q,p)+\epsilon H(u,p) H(q′,p)=k=1∑K​logp(k)q′(k)=(1−ϵ)H(q,p)+ϵH(u,p)
也就是我们认为输入在标签空间的分布有 ( 1 − ϵ ) (1-\epsilon) (1−ϵ)的可能是冲激的,有 ϵ \epsilon ϵ
的可能是均匀的,分别计算和二者的差异再加权平均。

总结

 总的来看,InceptionV3改动不大,有些地方自己看着也不是特别合理,但最后损失函数的设计倒挺有意思的。除此之外文章还对Inception-V1中的分枝做出了评价,这些旁支分类器意义不大,更多的是以regularizer的形式发挥作用,和使用Batch Normlization差别不大。


  1. what exactly representational bottleneck in inceptionv3 means? ↩︎

  2. Inception-v2/v3结构解析 ↩︎

论文解析:Inception-V3设计思路分析相关推荐

  1. iOS-组件化 —— 路由设计思路分析

    iOS 组件化 -- 路由设计思路分析 一缕殇流化隐半边冰霜2017-03-01 10:48:3117066 原文 前言 随着用户的需求越来越多,对App的用户体验也变的要求越来越高.为了更好的应对各 ...

  2. iOS 组件化,插件化,模块化设计思路分析

    iOS 组件化,插件化设计思路分析 前言 随着用户的需求越来越多,对App的用户体验也变的要求越来越高.为了更好的应对各种需求,开发人员从软件工程的角度,将App架构由原来简单的MVC变成MVVM,V ...

  3. 天津地铁出行线路规划项目需求分析与设计思路分析

    天津地铁出行线路规划项目需求分析与设计思路分析 项目概要 以下是天津地铁线路总图,本项目的受众可以通过本软件,获得天津市地铁出行最便捷,最快速的线路推荐. 需求分析 实现一个帮助进行地铁出行路线规划的 ...

  4. iOS 组件化 —— 路由设计思路分析

    原文 前言 随着用户的需求越来越多,对App的用户体验也变的要求越来越高.为了更好的应对各种需求,开发人员从软件工程的角度,将App架构由原来简单的MVC变成MVVM,VIPER等复杂架构.更换适合业 ...

  5. iOS路由设计(四)路由设计思路分析

    http://www.jianshu.com/p/76da56b3bd55 前言 随着用户的需求越来越多,对App的用户体验也变的要求越来越高.为了更好的应对各种需求,开发人员从软件工程的角度,将Ap ...

  6. 借助尾号限行 API 实现限行规则应用的设计思路分析

    引言 尾号限行是指根据车牌号的末尾数字,规定某些时段内不能在特定区域行驶,这是城市交通管理的一种措施.尾号限行政策的实施可以缓解城市交通拥堵问题,减少环境污染和交通事故等问题. 尾号限行 API 是一 ...

  7. DirectUI相关文章(三)-DirectUI 设计思路分析

    DirectUI 最早见到时是拿spy++照microsoft的msn发现的,有人在论坛上抱怨说软件的mfc自己人都不用,其中就有举例说msn得directUI结构.其实我倒觉得,各有各的长处,dir ...

  8. 微服务架构下的自动化测试全链路设计思路分析

    背景 从 SOA 架构到现在大行其道的微服务架构,系统越拆越小,整体架构的复杂度也是直线上升,我们一直老生常谈的微服务架构下的技术难点及解决方案也日渐成熟(包括典型的数据一致性,系统调用带来的一致性问 ...

  9. 育碧是如何做AI的? 《全境封锁》敌人AI设计思路分析

    2016年,Tom Clancy's The Division 将玩家们带到了饱受战火蹂躏的曼哈顿市区,并在此与各个派系的敌人和其他特工展开战斗.这款Ubisoft出品的RPG式射击游戏为了让玩家们时 ...

最新文章

  1. linux修改bmc ip,RH1288 V2修改BMC IP不生效处理案例
  2. 计算机二级申请创新学分理由,创新学分申请书范文
  3. 云原生应用的10大关键属性
  4. ERP物料采购系统需求分析与效果展示 ERP实施以失败告终的四个原因分析
  5. django-内网项目上线测试部署步骤
  6. ThinkPHP之MVC简析
  7. C++Gaussian-elimination高斯消元法的实现算法(附完整源码)
  8. 转:Ubuntu下ibus-sunpinyin的安装及翻页快捷键设置!
  9. 无法打开输入文件mysql_错误LNK1181,pip安装“无法打开输入文件”mysqlclient.lib'...
  10. Thinking In Java 读书笔记
  11. Redis和MongoDB的区别
  12. 5月博客恢复更新的通知
  13. 计算机组成原理与系统结构裘雪红课后答案,计算机组成原理与系统结构课后作业答案(包健_冯建文章复嘉版).doc...
  14. hadoop 启动 报running beyond virtual memory错误的解决
  15. 单片机入门数字电路之边沿触发器
  16. 图片还原去遮挡_如何把人像照片上的遮盖物去除看到原来人像?
  17. 记录一下在云服务器上配置MYSQL主从。
  18. 解字谜:黑白皆算,对我等众猿而言中央C所在位置数优剃爱肤杠吧爱慕帝贰亿次的值是?...
  19. pythoninput输入数字_python如何保证输入键入数字的方法
  20. 大学本科计算机考试小抄,大学考试允许带小抄 一页开卷学生抄到手酸

热门文章

  1. 解决WSL2/ubuntu安装软件报错 E: Invalid operation insatll 问题
  2. 2020-09-272020压力管道巡检维护模拟考试题库及压力管道巡检维护作业考试题库
  3. 对傅里叶变换公式的理解
  4. Dijkstra算法原理及代码实现
  5. Outh2.0----支付宝接入
  6. 3月22日云栖精选夜读 | “阿里巴巴小程序繁星计划”:20亿扶持200万小程序开发者和100万商家...
  7. 高清分辨率4K到底咋算的,720P,1080P又是啥意思?
  8. 正则化(regularization)方法总结
  9. 如何保障数仓数据质量?(建议收藏)
  10. 基于云开发的助农业发展微信小程序源码