卷积神经网络中十大拍案叫绝的操作
作者 | Justin ho
来源 | 知乎
CNN从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一个比一个深,一个比一个准确,一个比一个轻量。下面会对近几年一些具有变革性的工作进行简单盘点,从这些充满革新性的工作中探讨日后的CNN变革方向。
一、卷积只能在同一组进行吗?-- Group convolution
Group convolution 分组卷积,最早在AlexNet中出现,由于当时的硬件资源有限,训练AlexNet时卷积操作不能全部放在同一个GPU处理,因此作者把feature maps分给多个GPU分别进行处理,最后把多个GPU的结果进行融合。
Alexnet
分组卷积的思想影响比较深远,当前一些轻量级的SOTA(State Of The Art)网络,都用到了分组卷积的操作,以节省计算量。但题主有个疑问是,如果分组卷积是分在不同GPU上的话,每个GPU的计算量就降低到 1/groups,但如果依然在同一个GPU上计算,最终整体的计算量是否不变?找了pytorch上有关组卷积操作的介绍,望读者解答我的疑问。
关于这个问题,知乎用户朋友 @蔡冠羽 提出了他的见解:
https://www.zhihu.com/people/cai-guan-yu-62/activities
我感觉group conv本身应该就大大减少了参数,比如当input channel为256,output channel也为256,kernel size为3*3,不做group conv参数为256*3*3*256,若group为8,每个group的input channel和output channel均为32,参数为8*32*3*3*32,是原来的八分之一。这是我的理解。
我的理解是分组卷积最后每一组输出的feature maps应该是以concatenate的方式组合,而不是element-wise add,所以每组输出的channel是 input channels / #groups,这样参数量就大大减少了。
二、卷积核一定越大越好?-- 3×3卷积核
AlexNet中用到了一些非常大的卷积核,比如11×11、5×5卷积核,之前人们的观念是,卷积核越大,receptive field(感受野)越大,看到的图片信息越多,因此获得的特征越好。虽说如此,但是大的卷积核会导致计算量的暴增,不利于模型深度的增加,计算性能也会降低。于是在VGG(最早使用)、Inception网络中,利用2个3×3卷积核的组合比1个5×5卷积核的效果更佳,同时参数量(3×3×2+1 VS 5×5×1+1)被降低,因此后来3×3卷积核被广泛应用在各种模型中。
三、每层卷积只能用一种尺寸的卷积核?-- Inception结构
传统的层叠式网络,基本上都是一个个卷积层的堆叠,每层只用一个尺寸的卷积核,例如VGG结构中使用了大量的3×3卷积层。事实上,同一层feature map可以分别使用多个不同尺寸的卷积核,以获得不同尺度的特征,再把这些特征结合起来,得到的特征往往比使用单一卷积核的要好,谷歌的GoogleNet,或者说Inception系列的网络,就使用了多个卷积核的结构:
最初版本的Inception结构
如上图所示,一个输入的feature map分别同时经过1×1、3×3、5×5的卷积核的处理,得出的特征再组合起来,获得更佳的特征。但这个结构会存在一个严重的问题:参数量比单个卷积核要多很多,如此庞大的计算量会使得模型效率低下。这就引出了一个新的结构。
四、怎样才能减少卷积层参数量?-- Bottleneck
发明GoogleNet的团队发现,如果仅仅引入多个尺寸的卷积核,会带来大量的额外的参数,受到Network In Network中1×1卷积核的启发,为了解决这个问题,他们往Inception结构中加入了一些1×1的卷积核,如图所示:
加入1×1卷积核的Inception结构
根据上图,我们来做个对比计算,假设输入feature map的维度为256维,要求输出维度也是256维。有以下两种操作:
五、越深的网络就越难训练吗?-- Resnet残差网络
[1]张俊林博客:https://blog.csdn.net/malefactor/article/details/67637785 [2]https://zhuanlan.zhihu.com/p/28124810?group_id=883267168542789632
六、卷积操作时必须同时考虑通道和区域吗?-- DepthWise操作
七、分组卷积能否对通道进行随机分组?-- ShuffleNet
八、通道间的特征都是平等的吗?-- SEnet
九、能否让固定大小的卷积核看到更大范围的区域?-- Dilated convolution
十、卷积核形状一定是矩形吗?-- Deformable convolution 可变形卷积核
启发与思考
卷积核方面:
- 大卷积核用多个小卷积核代替;
- 单一尺寸卷积核用多尺寸卷积核代替;
- 固定形状卷积核趋于使用可变形卷积核;
- 使用1×1卷积核(bottleneck结构)。
卷积层通道方面:
- 标准卷积用depthwise卷积代替;
- 使用分组卷积;
- 分组卷积前使用channel shuffle;
- 通道加权计算。
使用skip connection,让模型更深;
densely connection,使每一层都融合上其它层的特征输出(DenseNet)
谷歌NIPS论文Transformer模型解读:只要Attention就够了
阿里云弹性计算负责人蒋林泉:亿级场景驱动的技术自研之路
开源sk-dist,超参数调优仅需3.4秒,sk-learn训练速度提升100倍
你在北边的西二旗被水淹没,我在东边的八通线不知所措
为什么说边缘计算的发展比5G更重要?
C/C++ 最易受攻击、70% 漏洞无效,揭秘全球开源组件安全现状
首批共享单车死于 2019
公钥加密、加密Hash散列、Merkle树……区块链的密码学你知多少?
卷积神经网络中十大拍案叫绝的操作相关推荐
- 赞!卷积神经网络中十大拍案叫绝的操作
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者:Justin ho:程序员遇见GitHub https ...
- 神经网络 mse一直不变_卷积神经网络中十大拍案叫绝的操作
公众号关注 "DL-CVer" 设为 "星标",DLCV消息即可送达! 来自 | 知乎作者丨Justin ho来源丨https://zhuanlan.zhihu ...
- 卷积神经网络中十大拍案叫绝的操作!
作者 | Justin ho 来源 | 机器学习算法那些事 整理 | AI科技大本营 从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一个比一个深,一个比一个准确,一个比一个 ...
- 【技术干货】卷积神经网络中十大拍案叫绝的操作
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 作者:Justin ho 知乎链接:https://zhuanlan.zhihu. ...
- 收藏 | 卷积神经网络中十大拍案叫绝的操作
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:程序员遇见GitHub 作者:Justin ho http ...
- 卷积神经网络中10大拍案叫绝的操作!
来源:AI蜗牛车 本文约4000字,建议阅读8分钟. 本文我们从变革性工作中探讨日后的CNN变革方向. 标签:人工智能技术 从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一 ...
- 收藏 | 卷积神经网络中10大拍案叫绝的操作!
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:知乎,https://zhuanlan.zhihu.com/ ...
- 盘点卷积神经网络中十大令人拍案叫绝的操作
转载自https://www.jianshu.com/p/71804c97123d CNN从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一个比一个深,一个比一个准确,一个比 ...
- 卷积神经网络中十大令人拍案叫绝的操作
一只小狐狸带你解锁 炼丹术&NLP 秘籍 作者:Justin ho 来源:https://zhuanlan.zhihu.com/p/28749411 前言 CNN从2012年的AlexNet发 ...
最新文章
- ​iOS的界面触摸事件处理机制,然后用一个实例来说明下应用场景.
- Eclipse-Java代码规范和质量检查插件-SonarLint
- 如何对512M内存的vps apache进行优化配置(perfork模式)
- PostgreSQL创建一个数据库
- 自己设计java流程审核_关于工作流引擎取回审批的设计方案与实现过程
- 关于CTeX的几个大坑
- Docker Consul Fabio ASP.NET Core 2.0 微服务跨平台实践
- 编译win10的WSL2内核(windows subsystem linux)
- Perlin noise(一)
- Mac上WineSkin游戏无法正常运行
- keil5破解(备忘,有需要的可以下载)
- TeamTalk Lock模块
- Win10激活彻底破解:一键获取数字权利工具问世
- FOne easyModelVerifier™ 模型/代码Back-to-Back自动化验证工具
- 计算机桌面分区,明基XL2430T如何使用桌面分区?
- csi-provisioner源码分析
- 最新猫眼电影反爬虫解密
- ConstraintLayout中Chains和Guideline的使用
- error C2899: 不能在模板声明之外使用类型名称
- 百度地图 省市级三级行政区域显示(附带点聚合标记)