

深度学习(二十)——Ultra Deep Network, 数据增强
source link: http://antkillerfarm.github.io/dl/2017/10/12/Deep_Learning_20.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Ultra Deep Network
FractalNet
《FractalNet: Ultra-Deep Neural Networks without Residuals》
Resnet in Resnet
《Resnet in Resnet: Generalizing Residual Architectures》
Highway
《Training Very Deep Networks》
Resnet对于残差的跨层传递是无条件的,而Highway则是有条件的。这种条件开关被称为gate,它也是由网络训练得到的。
ResNet可以被认为是Highway Network的一种特殊情况。然而,实验结果表明Highway Network的性能并不比ResNet好,这有点奇怪。Highway Network的解空间包含ResNet,因此它的性能至少应该和ResNet一样好。这表明,保持这些“梯度高速路”(gradient highway)的畅通比获取更大的解空间更为重要。
注意:Highway实际上比Resnet发表的更早。
DenseNet
DenseNet是康奈尔大学博士后黄高(Gao Huang)、清华大学本科生刘壮(Zhuang Liu)、Facebook人工智能研究院研究科学家Laurens van der Maaten 及康奈尔大学计算机系教授Kilian Q. Weinberger于2016年提出的。论文当选CVPR 2017最佳论文。
《Densely Connected Convolutional Networks》
https://github.com/liuzhuang13/DenseNet
原始版本是Torch写的,官网上列出了其他框架的实现代码的网址。
上图是DenseNet的整体网络结构图。从整体层面来看,DenseNet主要由3个dense block组成。
上图就是dense block的结构图。与Resnet的跨层加法不同,这里采用的是Concatenation,也就是将不同层的几个tensor组合成一个大的tensor。
这里的Concatenation是作用在channel上的,即dense block中的所有层的feature map都是等大的,只不过在channel数上,不仅包含本层生成的channel,还包含上层的channel。
这实际上带来了两个问题:
1.feature map的缩小问题。检测网络最后的FC是一定无法接收原始尺寸的feature map的。
2.channel数只增不减显然也是问题。
因此,在两个dense block之间,DenseNet还定义了一个transition layer。该layer包含两个操作:
1.1x1的conv用于降维。
2.avg pool用于缩小feature map。
DenseNet的设计思想
以下是原作者的访谈片段:
DenseNet的想法很大程度上源于我们去年发表在ECCV上的一个叫做随机深度网络(Deep networks with stochastic depth)工作。当时我们提出了一种类似于Dropout的方法来改进ResNet。我们发现在训练过程中的每一步都随机地“扔掉”(drop)一些层,可以显著的提高ResNet的泛化性能。这个方法的成功至少带给我们两点启发:
首先,它说明了神经网络其实并不一定要是一个递进层级结构,也就是说网络中的某一层可以不仅仅依赖于紧邻的上一层的特征,而可以依赖于更前面层学习的特征。想像一下在随机深度网络中,当第l层被扔掉之后,第l+1层就被直接连到了第l-1层;当第2到了第l层都被扔掉之后,第l+1层就直接用到了第1层的特征。因此,随机深度网络其实可以看成一个具有随机密集连接的DenseNet。
其次,我们在训练的过程中随机扔掉很多层也不会破坏算法的收敛,说明了ResNet具有比较明显的冗余性,网络中的每一层都只提取了很少的特征(即所谓的残差)。实际上,我们将训练好的ResNet随机的去掉几层,对网络的预测结果也不会产生太大的影响。既然每一层学习的特征这么少,能不能降低它的计算量来减小冗余呢?
DenseNet 的设计正是基于以上两点观察。我们让网络中的每一层都直接与其前面层相连,实现特征的重复利用;同时把网络的每一层设计得特别“窄”,即只学习非常少的特征图(最极端情况就是每一层只学习一个特征图),达到降低冗余性的目的。这两点也是DenseNet与其他网络最主要的不同。需要强调的是,第一点是第二点的前提,没有密集连接,我们是不可能把网络设计得太窄的,否则训练会出现欠拟合(under-fitting)现象,即使 ResNet 也是如此。
DenseNet的优点
省参数。在ImageNet分类数据集上达到同样的准确率,DenseNet所需的参数量不到ResNet的一半。对于工业界而言,小模型可以显著地节省带宽,降低存储开销。
省计算。达到与ResNet相当的精度,DenseNet所需的计算量也只有ResNet的一半左右。
抗过拟合。DenseNet具有非常好的抗过拟合性能,尤其适合于训练数据相对匮乏的应用。这一点从论文中DenseNet在不做数据增强(data augmentation)的CIFAR数据集上的表现就能看出来。
由于DenseNet不容易过拟合,在数据集不是很大的时候表现尤其突出。在一些图像分割和物体检测的任务上,基于DenseNet的模型往往可以省略在ImageNet上的预训练,直接从随机初始化的模型开始训练,最终达到相同甚至更好的效果。由于在很多应用中实际数据跟预训练的ImageNet自然图像存在明显的差别,这种不需要预训练的方法在医学图像,卫星图像等任务上都具有非常广阔的应用前景。
DenseNet的优化问题
当前的深度学习框架对DenseNet的密集连接没有很好的支持,我们只能借助于反复的拼接(Concatenation)操作,将之前层的输出与当前层的输出拼接在一起,然后传给下一层。对于大多数框架(如Torch和TensorFlow),每次拼接操作都会开辟新的内存来保存拼接后的特征。这样就导致一个L层的网络,要消耗相当于L(L+1)/2层网络的内存(第l层的输出在内存里被存了(L-l+1)份)。
解决这个问题的思路其实并不难,我们只需要预先分配一块缓存,供网络中所有的拼接层(Concatenation Layer)共享使用,这样DenseNet对内存的消耗便从平方级别降到了线性级别。
https://www.leiphone.com/news/201708/0MNOwwfvWiAu43WO.html
CVPR 2017最佳论文作者解读:DenseNet 的“what”、“why”和“how”
https://zhuanlan.zhihu.com/p/28124810
为什么ResNet和DenseNet可以这么深?一文详解残差块为何有助于解决梯度弥散问题
https://mp.weixin.qq.com/s?__biz=MzI3MTA0MTk1MA==&mid=2651988934&idx=2&sn=0e5ffa195ef67a1371f3b5b223519121
ResNets、HighwayNets、DenseNets:用TensorFlow实现超深度神经网络
https://mp.weixin.qq.com/s/okx0jZR6PmFm3ikCCUbNkg
从DensNet到CliqueNet,解读北大在卷积架构上的探索
https://mp.weixin.qq.com/s/geANIVbd4C0qpSig0IB2zA
梯形DenseNets结构实现语义分割新高度!
Dual Path Networks
DPN是冯佳时和颜水成团队的Yunpeng Chen的作品。
冯佳时,中国科学技术大学自动化系学士,新加坡国立大学电子与计算机工程系博士。现任新加坡国立大学电子与计算机工程系助理教授。
《Dual Path Networks》
https://github.com/cypw/DPNs
这篇论文首先从拓扑关系的角度分析了ResNet、DenseNet和HORNN(Higher Order RNN)之间的联系。
如上所示,RNN相当于共享权值的串联的ResNet,而DenseNet则相当于并联的RNN。
更进一步的,上述三者都可表述为以下通式:
hk=gk[∑t=0k−1ftk(ht)]
其中,ht表示t时刻的隐层状态;索引k表示当前时刻;xt表示t时刻的输入;ftk(⋅)表示特征提取;gk表示对提取特征做输出前的变换。
https://mp.weixin.qq.com/s/GqPfvWwH1T0XFwiZ86cW8A
SamplePairing:针对图像处理领域的高效数据增强方式
https://mp.weixin.qq.com/s/cQtXvOjSXFc4YKn7ANBc_w
谷歌大脑提出自动数据增强方法AutoAugment:可迁移至不同数据集
https://mp.weixin.qq.com/s/ojFo7-gUh73iK3uImFS2-Q
一文道尽主流开源框架中的数据增强
https://mp.weixin.qq.com/s/xJhWu-1FyhIWbFBC5oHMkw
一文道尽深度学习中的数据增强方法(上)
https://mp.weixin.qq.com/s/OctAGrcBB0a6TOGWMmVKUw
深度学习中的数据增强(下)
https://mp.weixin.qq.com/s/lMU6_ywQqneyunqEV6uDiA
如何改善你的训练数据集?
https://mp.weixin.qq.com/s/ooX9Hj5ejO6po6Ghb4zOug
一文解读合成数据在机器学习技术下的表现
https://zhuanlan.zhihu.com/p/33485388
mixup与paring samples ,ICLR2018投稿论文的数据增广两种方式
https://mp.weixin.qq.com/s/_7xFBLPGT0VRTJ22toHJ3g
深度学习中常用的图像数据增强方法
https://mp.weixin.qq.com/s/sXV9epWguGbJEZYo4yNp5Q
如何正确使用样本扩充改进目标检测性能
https://zhuanlan.zhihu.com/p/46833956
图像数据增强之弹性形变(Elastic Distortions)
https://mp.weixin.qq.com/s/ws1R-VPyJY6J18OttBDYog
超少量数据训练神经网络:IEEE论文提出径向变换实现图像增强
https://mp.weixin.qq.com/s/g4022Rc1RNvr3IOC_bWuaQ
深度学习中的数据增强方法都有哪些?
https://mp.weixin.qq.com/s/YuFVEhO3wzCN5dIM_YqA7A
EDA:最简单的自然语言处理数据增广方法
https://mp.weixin.qq.com/s/IeqSfjt4x8HquXBeQN2gdQ
深度学习中的数据增强方法总结
https://zhuanlan.zhihu.com/p/76044027
A survey on Image Data Augmentation数据增强文献综述
https://mp.weixin.qq.com/s/2B0NBY39noikPEO1dB06Sg
CV领域中数据增强相关的论文推荐
https://www.zhihu.com/question/35339639
使用深度学习(CNN)算法进行图像识别工作时,有哪些data augmentation的奇技淫巧?
https://mp.weixin.qq.com/s/YtL7GeIGYm9xtdofnabu1g
如何选择最合适的数据增强操作
https://zhuanlan.zhihu.com/p/43665254
数据增广之详细理解
https://mp.weixin.qq.com/s/g65jpWaf3Oo31zYCyquH1Q
基于深度学习的数据增广技术一览
https://mp.weixin.qq.com/s/r3pGr3FD1dGDzw2zgQdK9g
简易快速数据增强库使用手册
https://mp.weixin.qq.com/s/pny699UC-YzBIzxWRvPasw
全方位支持图文和音视频、100+增强功能,Facebook开源数据增强库AugLy
Recommend
-
94
-
52
五周第二次课(3月6日)7.6yum更换国内源7.7yum下载rpm包7.8/7.9源码包安装扩展配置yum源优先级http://ask.apelearn.com/question/7168把源码包打包成rpm包http://www.linuxidc.com/Linux/2012-09/70096.htmyum更换国内源假如外国的yum源会更新的比较慢。所以最好...
-
70
sed的用法比grep复杂一点,要想熟练就得多练
-
38
RBAC RBAC(Role Based Access Control 基于角色的访问控制) 是安全领域一种授权(Authorization)机制。权限被授予给角色,角色又被赋予给主体。
-
9
在Spring Cloud之Finchley版学习(十九)-配置中心-Spring Cloud Config 一节中,已实现使用Git仓库作为Config Server的后端存储,本节详细探讨如何配置Git仓库。 一、占位符支持 Config S...
-
6
关联规则挖掘(续) Apriori算法 Apriori算法的思路如下: 1.第一次扫描交易数据库D时,产生1-频繁集。在此基础上经过连接、修剪产生2-频繁集。以此类推,直到无法产生更高阶的频繁集为止。 2.在第k次循环中,也就是产生k-...
-
5
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 大家好我是费老师,相信不少读...
-
4
深度学习炼丹-数据预处理和增强 一般机器学习任...
-
8
学习ASP.NET Core Blazor编程系列文章之目录 学习ASP.NET Core Blazor...
-
6
TabR:检索增强能否让深度学习在表格数据上超过梯度增强模型? 作者:佚名 2023-08-11 10:58:04 这是一篇7月新发布的论文,他提出了使用自然语言处理的检索增强Retrieval Augmented技术,目的是让深度学习在表格数...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK