ResNet && DenseNet(原理篇)

这篇博客讲现在很流行的两种网络模型,ResNetDenseNet,其实可以把DenseNet看做是ResNet的特例 文章地址: [1]Deep Residual Learning for Image Recognition,CVPR2015 [2]Densely Connected Convolutional Networks,CVPR2016

本篇博客不讲论文的内容,只讲主要思想和我自己的理解,细节问题请自行看论文

Introduction

When it comes to neural network design, the trend in the past few years has pointed in one direction: deeper. 但是问题是:

Is learning better networks as easy as stacking more layers ??

让我们看看在ImageNet上分类winner的网络的深度:

是不是我们通过简单的stack的方式把网络的深度增加就可以提高performance?? 答案是NO,存在两个原因

  • vanishing/exploding gradients
  • degradation problem

Residual

其实思想很简单:

Instead of hoping each few stacked layers directly fit a desired underlying mapping, we explicitly let these layers fit a residual mapping. Formally, denoting the desired underlying mapping as H(x),we let the stacked nonlinear layers fit another mapping of F(x): H(x)-x. The original mapping is recast into F(x)+x.

那么学习到的F(x)就是残差.

Shortcut Connections

思想起源于HighWay Nets,shortcut的好处是:

a few intermediate layers are directly connected to auxiliary classifiers for addressing vanishing/exploding gradients.

通过shortcut的方式(Residual)进行stack的nets(ResNet),可以在加深layers上获得更好的效果

对比在ImageNet上的效果:

再来个表格对比,更加明显:

DenseNet

一个词概括网络的结构特点就是Dense,一句话概括的话:

For each layer, the feature maps of all preceding layers are treated as separate inputs whereas its own feature maps are passed on as inputs to all subsequent layers.

结构如下所示:

和ResNet相比,最大的区别在于:

Never combine features through summation before they are passed into a layer, instead we provide them all as separate inputs.

对于此网络来说,很明显number of connections适合depth成平方的关系,所以问题是当depth很大的时候是不是已经无法训练了?? 作者是这么说的:

Although the number of connections grows quadratically with depth, the topology encourages heavy feature reuse.

对比ResNet来说:

Prior work has shown that there is great redundancy within the feature maps of the individual layers in ResNets. In DenseNets, all layers have direct access to every feature map from all preceding layers, which means that there is no need to re-learn redundant feature maps. Consequently, DenseNet layers are very narrow (on the order of 12 feature maps per layer) and only add a small set of feature maps to the “collective knowledge” of the whole network.

在Cifar 10等上做分类的网络模型是:

结果:

Conclusion

其实无论是ResNet还是DenseNet,核心的思想都是HighWay Nets的思想: 就是skip connection,对于某些的输入不加选择的让其进入之后的layer(skip),从而实现信息流的整合,避免了信息在层间传递的丢失和梯度消失的问题(还抑制了某些噪声的产生).

下篇说下使用Tensorflow做具体实现

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏null的专栏

《数学之美》拾遗——潜在语义索引(LSI)

一、潜在语义索引的提出     潜在语义索引(LSI),又称为潜在语义分析(LSA),是在信息检索领域提出来的一个概念。主要是在解决两类问题,一类是一词多义,如...

3379
来自专栏Deep learning进阶路

深度学习论文笔记(七)---Deconvolution network-2016年(Learning Deconvolution Network for Semantic Segmentation )

深度学习论文笔记(七)---Deconvolution network Learning Deconvolution Network for Semantic...

9070
来自专栏人人都是极客

OpenCV和SVM分类器在自动驾驶中的车辆检测

这次文章的车辆检测在车辆感知模块中是非常重要的功能,本节课我们的目标如下:

69810
来自专栏cs

Word2Vec,LDA 知识普及

Word2vec,Word2vec,是为一群用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。网络以词表现,并且需猜测相...

501
来自专栏机器学习算法原理与实践

word2vec原理(一) CBOW与Skip-Gram模型基础

    word2vec是google在2013年推出的一个NLP工具,它的特点是将所有的词向量化,这样词与词之间就可以定量的去度量他们之间的关系,挖掘词之间的...

1052
来自专栏Spark学习技巧

【深度学习】⑤--自然语言处理的相关应用

恩恩,关注我好了 1. 自然语言处理(NLP)的常见任务 先来看看在工业界对于自然语言处理的一些常见需求与任务。 自动摘要 这个在搜索引擎中非常常用。指计算机...

3578
来自专栏专知

【干货】对抗自编码器PyTorch手把手实战系列——PyTorch实现自编码器

即使是非计算机行业, 大家也知道很多有名的神经网络结构, 比如CNN在处理图像上非常厉害, RNN能够建模序列数据. 然而CNN, RNN之类的神经网络结构本身...

4627
来自专栏人工智能头条

斯坦福大学深度学习与自然语言处理第二讲:词向量

1493
来自专栏新智元

【邓侃】DeepMind 机器理解文本 NLP 技术复现与解析

【新智元导读】 本文对 DeepMind 的让计算机读懂文本、回答问题的深度学习技术进行复现与解析。文章对DeepMind的整个技术思路进行了清晰的重构:从问...

2956
来自专栏AI研习社

从零教你写一个完整的GAN(附代码)

导言 啦啦啦,现今 GAN 算法可以算作 ML 领域下比较热门的一个方向。事实上,GAN 已经作为一种思想来渗透在 ML 的其余领域,从而做出了很多很 Am...

2959

扫码关注云+社区