当前位置: 首页 > news >正文

googlenet网络结构_图像处理必读论文之五GoogLeNet-3

cad1c194093360d433843aae58801de5.png

晓强Deep Learning的读书分享会,先从这里开始,从大学开始。大家好,我是晓强,计算机科学与技术专业研究生在读。我会不定时的更新我的文章,内容可能包括深度学习入门知识,具体包括CV,NLP方向的基础知识和学习的论文;网络表征学习的相关论文解读。当然我每天的读书心得也会分享给大家,可能涉及我们生活各个方面的书籍。我也会不定时回答大家的问题与大家一同进步,共同交流,互相监督,结交更多的朋友。希望大家多留言,多交流,多多关照。

【晓白】今天继续更新图像处理必读论文系列了!大家久等了,之前的几天都更新了算法设计与分析的内容,感兴趣的朋友可以关注我,继续阅读其他的文章。最近我分享了一些AI领域会议的总结,每天都涨粉,谢谢精神合伙人的支持,我会继续努力。以后我会不定期更文章,先从计算机视觉开始,逐步更新多个深度学习应用领域的知识点,如有错误大家多指正,多交流,多讨论,共同学习,互相进步。如果内容对大家有一些帮助,请大家多点赞支持,分享。接下来我们来分享深度学习技术应用到图像处理方向的另一篇佳作-它是Rethinking the Inception Architecture for Computer Vision.这才是GoogLeNet-V3,也是最常用的版本,想了解前面的GoogLeNet-1,GoogLeNet-2的知识,可以看前面的文章。如果对基础知识掌握不熟可以阅读我的其他论文,或者私信与我讨论,进入我们的学习家族,一起进步。如果对大家有帮助的话,可以点赞,收藏,关注支持一下。

Rethinking the Inception Architecture for Computer Vision

重新思考计算机视觉中的 Inception 结构

作者: Christian Szegedy etc.

单位: Google Inc.

时间: 2015

研究背景:与前面所有的baseline papers的背景都一样,想了解可以看我前面的文章,在这里不再赘述。

相关研究

Research background

GoogLeNet –V1 采用多尺度卷积核,1*1卷积操作,

辅助损失函数,实现更深的22层卷积神经网络,夺得

ILSVRC-2014 分类和检测冠军,定位亚军

GoogLeNet-V2 基础上加入BN层,并将5*5卷积全面替

换为2个3*3卷积堆叠的形式,进一步提高模型性能

VGG网络模型大,参数多,计算量大,不适用于真实场

研究成果

Research Results

研究成果

1. 提出Inception-V2 和 Inception-V3, Inception-V3模型获得 ILSVRC 分类任务 SOTA

2. 提出4个网络模型设计准则,为模型设计提供参考

3. 提出卷积分解、高效降低特征图分辨率方法和标签平滑技巧,提升网络速度与精度

ab096e9db9beb381d29621b9fd5821f1.png
top5 -3.5%

研究意义

研究意义

1. 总结模型设计准则,为卷积神经网络模型设计提供参考

2. 提出3个技巧,结合Inception,奠定Inception系列最常用模型——Inception-V3

补充说明:GoogLeNet-V2(论文) 不是 Inception-V2, Inception-V2是GoogLeNet-V3(论文)中提出的,这在【晓白】的部分,我已经提到了,值得大家注意。

摘要 abstract

摘要核心:

1. 介绍背景:自2014年以来,深度卷积神经网络成为主流,在多个任务中获得优异成绩

2. 提出问题:目前精度高的卷积神经网络,参数多,计算量大,存在落地困难问题

3. 解决问题:本文提出分解卷积及正则化策略,提升深度卷积神经网络速度和精度

4. 本文成果:单模型+single crop,top-5, 5.6%; 模型融合+multi-crop,top-5,3.5%

论文图表:

750de5b599f5320c15b74e55095c81ab.png
图1. 1个5*5卷积等价替换为2个3*3卷积示意图

9fc1c1d944e2009547e22c2a2cbd7037.png
图2. 卷积分解结构中对比Linear激活函数与ReLU激活函数的对比

452fc17d4d0765a127b5ad6f7fb1b8fd.png
图3. 1个3*3卷积等价替换为1*3和3*1卷积

a70f9c385f6f7117a26aef3be20b5ac9.png
图4. GooLeNet-V1中Inception结构

想了解更多,请看下面文章:GooLeNet-V1

晓强DL:图像处理必读论文之三:Going Deeper with Convolutions​zhuanlan.zhihu.com
7d5ec4715cfc5d9952bb97087a9c0a2e.png

791c31ac07b6b4695ea9791cc96450b4.png
图5. 5*5卷积替换成2个3*3卷积之后的Inception

V2论文中已采用,具体请看下面这个文章:

晓强DL:图像处理必读论文之四GoogLe-2:Batch Normalization​zhuanlan.zhihu.com
7d5ec4715cfc5d9952bb97087a9c0a2e.png

5eee9c9001e6375ebc5343740030c153.png
图6. 针对17*17大小的特征图,Inception结构示意图

a2c5a6c4f1659ef429abd296e579227d.png
图7. 针对8*8大小的特征图,Inception结构示意图

8abc504588b734100127e2d00f385afc.png
图8. 辅助分类器结构

bb803806f08fbfc163bb989d9f47e559.png
图9. 降低图像分辨率的两种方式

740f460ac6b8d22a118fcde9649c4c58.png
图10. 改进后的降低特征图分辨率的方法

c696830ea3c2dea902ce05e9d98c259c.png
表1. Inception-V2 网络结构

282f0e2e122d86917d694379e0b2a441.png
表2. 不同分辨率图片下,分类精度对比

1b71a5b405a959773f1d28f6bc844123.png
表3. GoogLeNet系列及改进模型的精度对比

a37f553a4245dcc6024e4b9808b92ba1.png
表4. 单模型精度对比

3fa28a28eab958d45e02b3ccc8c91990.png
表5. 模型融合精度对比

二.网络设计准则

4个网络结构设计准则

通过大量实验得出的结论,并无理论证明

1. 尽量避免信息瓶颈,通常发生在池化层,即特征图变小,信息量减少,类似一个瓶颈

2. 采用更高维的表示方法能够更容易的处理网络的局部信息

3. 大的卷积核可以分解为数个小卷积核,且不会降低网络能力

4. 把握好深度和宽度的平衡

注释:1和3还可以理解,至于2很难理解,并不清楚文章表达的意思,4属于常识,一般大家都是这么考虑的。

三.卷积分解

卷积分解(1):大卷积核分解为小卷积核堆叠

1个5*5卷积分解为2个3*3卷积

参数减少 1 - (9+9)/25 = 28%

这个在VGG中也已讲过,感兴趣的同学们可以看:

晓强DL:图像处理必读论文之二:VGG网络​zhuanlan.zhihu.com
7d5ec4715cfc5d9952bb97087a9c0a2e.png

卷积分解(2):分解为非对称卷积(Asymmetric Convolutionals)

1个n*n卷积分解为 1*n卷积 和 n*1卷积堆叠

对于3*3而言,参数减少 1 - (3+3)/9 = 33%

注意事项:非对称卷积在后半段使用效果才好,特别是特

征图分辨率在12-20之间,本文在分辨率为17*17的时候使

用非对称卷积分解,细节可以看图.3。

077a6cf2a2c916dd495ad357f4122c67.png

四.辅助分类层

辅助分类层再探讨

GoogLeNet-V1中提出辅助分类层,用于缓解梯度消失,

提升低层的特征提取能力

本文对辅助分类层进行分析,得出结论

1. 辅助分类层在初期起不到作用,在后期才能提升网

络性能

2. 移除第一个辅助分类层不影响精度

3. 辅助分类层可辅助低层提取特征是不正确的

4. 辅助分类层对模型起到正则的作用

5. googlenet-v3在17*17特征图结束接入辅助分类

五.高效特征图下降策略

特征图下降方式探讨

传统池化方法存在信息表征瓶颈( representational

bottlenecks)问题(违反模型设计准则1),即特征

图信息变少了(如图9左图所示)

简单解决方法:先用卷积将特征图通道数翻倍,再用

池化

存在问题:计算量过大

解决方法:用卷积得到一半特征图,用池化得到一半

特征.如图9所示

特征图下降方式探讨

高效特征图分辨率下降策略:

用卷积得到一半特征图,用池化得到一半特征图

用较少的计算量获得较多的信息,避免信息表征

瓶颈( representational bottlenecks)

该Inception-module用于35*35下降至17*17

以及17*17下降至8*8,如图10所示。

六.标签平滑

具体案例,可参考下图。

ebb87b083ee1a4f29dbe67680b9e7fa1.png

1e53c3b9c422592c7c6533e231d6c75b.png

1bfd02d11b667b20f46059700143dd3e.png

为了更好理解,我分享一段代码,大家可以跑一下,理解具体计算和编码的技巧:

import torch
import numpy as np
import torch.nn as nn

output = torch.tensor([[4.0, 5.0, 10.0], [1.0, 5.0, 4.0], [1.0, 15.0, 4.0]])
label = torch.tensor([2, 1, 1], dtype=torch.int64)

criterion = nn.CrossEntropyLoss()#solfmax+crossentropyloss
loss = criterion(output, label)

print("CrossEntropy:{}".format(loss))

454a79b9c1f87f7d0bd37b8f625e9230.png

5c7b6ef287bf2565e0b4a0717045bd15.png
import torch
import numpy as np
import torch.nn as nn

class LabelSmoothingCrossEntropy(nn.Module):


    def __init__(self, eps=0.001):

        super(LabelSmoothingCrossEntropy, self).__init__()
        self.eps = eps

    def forward(self, x, target):#x->p;target->q
        # CE(q, p) = - sigma(q_i * log(p_i))
        log_probs = torch.nn.functional.log_softmax(x, dim=-1)  # 实现  log(p_i)  

        # H(q, p)
        H_qp = -log_probs.gather(index=target.unsqueeze(1), dim=-1)  # 只需要q_i == 1的地方, 此时已经得到CE
        print("index:" , target.unsqueeze(1), target.unsqueeze(1).shape,)
        print("log_probs: ", log_probs, log_probs.shape)
        print("H_qp: ", H_qp, H_qp.shape)
        H_qp = H_qp.squeeze(1)  
        
        # H(u, p)
        H_uq = -log_probs.mean()  # 由于u是均匀分布,等价于求均值
                                                
        loss = (1-self.eps) * H_qp + self.eps * H_uq
        
        return loss.mean()

    
criterion = LabelSmoothingCrossEntropy(eps=0.001)
loss_ls = criterion(output, label)

print("CrossEntropy:{}".format(loss))
print("LableSmoothingCrossEntropy:{}".format(loss_ls))

至于,用到的函数,请小伙伴儿们自行查阅文档,了解其用法。

Inception-V2/V3

Inception-V2:

针对V1主要变化:

1. 采用3个3*3卷积替换1个7*7卷积,并且在第一个卷积就 采用stride=2来降低分辨率

2. 第二个3个3*3卷积,在第2个卷积才下降分辨率

3. 第一个block增加一个inception-module,第一个 inception-module只是将5*5卷积替换为2个3*3卷积

4. 第二个block,处理17*17特征图,采用非对称卷积

5. 第三个block,处理8*8特征图,遵循准则2,提出拓展的卷积

6. 最后输出2048个神经元,V1是1024个神经

347f56ac15d2ead170556054ce03e474.png

InceptionV3:在InceptionV2基础上改进4点

1. 采用RMSProp优化方法

2. 采用Label Smoothing正则化方法

3. 采用非对称卷积提取17*17特征图

4. 采用带BN的辅助分类

150166e1a5f5338946aefeb130cd81ee.png

八.低分辨率图像分类策略

低分辨率图片如何分类?

低分辨率图片分类在目标检测中广泛应用,而如何有效对低分辨率图像进行分类值得思考

本文方案: 将第一个卷积层stride=2改为stride=1,用于151*151的图像 将第一个卷积层stride=2改为stride=1,移除第一个池化层,用于79*79的图像

借鉴思路:修改网络模型头部stride和池化,来处理低分辨率图片,

可尽可能的保留原网络模型结构,不损失网络精度

21a973356ed95e7be40464128c9c21cb.png

实验结果及分析:

GoogLeNet系列对比

对比GoogLeNet-V1、V2,以及Inception-V2和本文采用的

4个技巧,得到最优的Inception-V2 BN auxiliary

(Inception-V3)

416cd48fb33480415f802c643fb77832.png

单模型对比

单模型上横向对比,Inception-V3优于目前各模型

1205dad6b82e33655e68ca65cc855a5a.png

多模型融合对比

采用4个Inception-v3进行融合,得到当时SOTA,

Top5-error为 3.58%

8a10969324aac51d278c60294fe74d73.png

论文总结

关键点&创新点

• 非对称卷积分解:减少参数计算量,为卷积结构设计提供新思路

• 高效特征图下降策略:利用stride=2的卷积与池化,避免信息表征瓶颈

• 标签平滑:避免网络过度自信,减轻过拟合

启发点

1. CNN的分类是CNN视觉任务的基础:在分类上表现好的CNN,通常在其它视觉任务中表现也良好

One interesting observation was that gains in the classification performance tend to transfer to significant

quality gains in a wide variety of application domains. (1 Introduction p2)

2. Google很多论文的最优结果均是通过大量实验得出,一般玩家难以复现

Here we will describe a few design principles based on large-scale experimentation with various architectural

choices with convolutional networks. (2 General Design Principles p1)

3. 非对称卷积分解在分辨率为12-20的特征图上效果较好,且用1*7和7*1进行特征提取 In practice, we have found that employing this factorization does not work well on early layers, but it gives very good results on medium grid-sizes (On m×m feature maps, where m ranges between 12 and 20). On that level, very good results can be achieved by using 1 × 7 convolutions followed by 7 × 1 convolutions (3.2. Spatial Factorization into Asymmetric Convolutions p2)

4. 在网络训练初期,辅助分类层的加入并没有加快网络收敛,在训练后期,才加快网络的收敛

(是否可针对性的设定训练方式?论文中并未详细说明这一点)

Interestingly, we found that auxiliary classifiers did not result in improved convergence early in the training

(4. Utility of Auxiliary Classifiers p1)

5. 移除两个辅助分类层中的第一个,并不影响网络性能

The removal of the lower auxiliary branch did not have any adverse effect on the final quality of the network. (4.

Utility of Auxiliary Classifiers p2)

6. 标签平滑参数设置,让非标签的概率保持在 10-4 左右

In our ImageNet experiments with K = 1000 classes, we used u(k) = 1=1000 and ε = 0.1. (7. Model Regularization via Label Smoothing p6)

自此,今天文章更新完毕,可以关注,看我的其他文章:

晓强DL:数据分析及机器学习之数据分析处理库pandas​zhuanlan.zhihu.com
7d5ec4715cfc5d9952bb97087a9c0a2e.png
晓强DL:数据分析及机器学习之科学计算库numpy​zhuanlan.zhihu.com
7d5ec4715cfc5d9952bb97087a9c0a2e.png
晓强DL:NLP入门必读系列之TextCNN模型​zhuanlan.zhihu.com
7d5ec4715cfc5d9952bb97087a9c0a2e.png
晓强DL:NLP入门必读系列之C2W模型​zhuanlan.zhihu.com
7d5ec4715cfc5d9952bb97087a9c0a2e.png
晓强DL:NLP入门必读系列之WORD2VECTOR​zhuanlan.zhihu.com
83ebebb231647cdb42d4baf55da31937.png
晓强DL:GloVe: Global Vectors for Word Representation​zhuanlan.zhihu.com
98f90bf10ab8354fa5edcec2a613ec27.png
晓强DL:图像处理必读论文之四GoogLe-2:Batch Normalization​zhuanlan.zhihu.com
7d5ec4715cfc5d9952bb97087a9c0a2e.png
晓强DL:图像处理必读论文之三:Going Deeper with Convolutions​zhuanlan.zhihu.com
7d5ec4715cfc5d9952bb97087a9c0a2e.png
晓强DL:图像处理必读论文之二:VGG网络​zhuanlan.zhihu.com
7d5ec4715cfc5d9952bb97087a9c0a2e.png
晓强DL:图像处理必读论文之AlexNet​zhuanlan.zhihu.com
98f90bf10ab8354fa5edcec2a613ec27.png
晓强DL:Opencv图像处理(一)​zhuanlan.zhihu.com
28af5d861ac012c19e988fe86db0fabd.png
晓强DL:OpenCV图像处理(二)​zhuanlan.zhihu.com
28af5d861ac012c19e988fe86db0fabd.png
晓强DL:Opencv图像处理(三)​zhuanlan.zhihu.com
28af5d861ac012c19e988fe86db0fabd.png
晓强DL:Opencv图像处理 (四)​zhuanlan.zhihu.com
30c07a0ce1402a059739b48b6d3a1fe0.png
晓强DL:近似算法​zhuanlan.zhihu.com
32c956af87915e4b6694c57b10363371.png
晓强DL:分支限界法​zhuanlan.zhihu.com
7d5ec4715cfc5d9952bb97087a9c0a2e.png
晓强DL:第五章 回溯法(Backtrack)​zhuanlan.zhihu.com
7d5ec4715cfc5d9952bb97087a9c0a2e.png
晓强DL:第五章、第六章补充Tree Searching Strategies​zhuanlan.zhihu.com
83ebebb231647cdb42d4baf55da31937.png
晓强DL:第四章 贪心算法(Greedy Algorithms)​zhuanlan.zhihu.com
7d5ec4715cfc5d9952bb97087a9c0a2e.png
晓强DL:第三章 动态规划(Dynamic Programming )​zhuanlan.zhihu.com
7d5ec4715cfc5d9952bb97087a9c0a2e.png
晓强DL:第二章 递归与分治​zhuanlan.zhihu.com
7d5ec4715cfc5d9952bb97087a9c0a2e.png
晓强DL:计算机算法设计与分析第一章 算法概述​zhuanlan.zhihu.com
7d5ec4715cfc5d9952bb97087a9c0a2e.png
晓强DL:计算理论与计算模型​zhuanlan.zhihu.com
7d5ec4715cfc5d9952bb97087a9c0a2e.png

相关文章:

  • 编写tcp服务器发送hex格式_恶意程序编写之免杀基础
  • webgis从基础到开发实践_WebGIS开发进阶练手题(二)
  • idea 启动vue 一会自己停了_这 几个 IDEA,调试的骚操作,用了都说爽!
  • java 桌面应用程序_针对初学Java的小伙伴,入门时应该了解的Java基础知识
  • python面向对象思路_Python基础之面向对象的软件开发思路
  • python主要应用于云计算的哪些方面_python在云计算的应用领域
  • python小程序_如何使用 Python 开发微信小程序
  • 华为平板wps语音朗读_年轻人智慧生活:荣耀笔记本、平板V6,智慧屏X1等多款新品再升级...
  • python复制文件夹所有文件到另外目录_如何使用Python将文件的整个目录复制到现有目录中?...
  • python输入多个数字 找出只出现一个的数字_【算法14】找出数组中两个只出现一次的数字...
  • python随机抽人小程序_python抽人程序初试
  • lodop打印不显示页码_教你9招,一次性解决Excel表格打印问题!
  • 原型和原型链的理解_理解Javascript的原型和原型链
  • 一个事务中 可以查询自己未提交的数据吗_来谈谈MySQL事务及事务引发的问题
  • python填写表单并提交_form表单提交方式
  • hexo+github搭建个人博客
  • extjs4学习之配置
  • JS实现简单的MVC模式开发小游戏
  • JS学习笔记——闭包
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Magento 1.x 中文订单打印乱码
  • MySQL数据库运维之数据恢复
  • mysql中InnoDB引擎中页的概念
  • 产品三维模型在线预览
  • 程序员最讨厌的9句话,你可有补充?
  • 初探 Vue 生命周期和钩子函数
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 类orAPI - 收藏集 - 掘金
  • 力扣(LeetCode)965
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 使用权重正则化较少模型过拟合
  • 2017年360最后一道编程题
  • 通过调用文摘列表API获取文摘
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (八)c52学习之旅-中断实验
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (转)Scala的“=”符号简介
  • .libPaths()设置包加载目录
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • @Autowired标签与 @Resource标签 的区别
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • @JsonFormat与@DateTimeFormat注解的使用
  • @Transient注解
  • @软考考生,这份软考高分攻略你须知道
  • [100天算法】-实现 strStr()(day 52)
  • [ACTF2020 新生赛]Upload 1
  • [AX]AX2012 AIF(四):文档服务应用实例
  • [AX]AX2012 R2 出差申请和支出报告
  • [c++] 什么是平凡类型,标准布局类型,POD类型,聚合体