深度学习论文随记(四)ResNet 残差网络-2015年Deep Residual Learning for Image Recognition

深度学习论文随记(四)ResNet 残差网络

DeepResidual Learning for Image Recognition

Author:Kaiming He,  XiangyuZhang,  Shaoqing Ren,  Jian Sun,

 Microsoft Research

Year:2015

1、导引

之前文章谈到GoogLeNet和VGG,人们开始认为增加网络的层数,即让网络变深似乎能进一步提高分类任务的准确性。于是,微软研究院的何凯明团队提出了这样一个问题:

Is learning better networks as easy as stacking more layers?

然后他们通过增加层数就发现一个奇怪的现象:

When deeper networks areable to start converging, adegradationproblem has been exposed:

网络加深了, accuracy却下降了。如上图20-layer和50-layer的对比图所示,第20层网络相比,第56层网络存在更高的训练误差与测试误差。这个问题称为degradation。并且,他们发现这个问题is not caused by overfitting. 所以degradation问题说明不是所有网络都那么容易优化。

正因如此,他们提出了残差网络的idea. 构建了Deep Residual Net

然后在2015年的各类比赛中,他们取得了如下成果。

然后大家可以感受一下深度学习网络的“深度革命”

在ILSVRC2010年左右还主要是浅层网络,大部分需要手动调教特征。在ILSVRC2012年时,出现了8层的网络——AlexNet,降低了10%的错误率。而后ILSVRC2014出现的VGG和GoogleNet是相当成功的,它们分别将层级提到了19层、22层,错误率也降低到了7.3、6.7。到ILSVRC2015, ResNet将层级提到了152层,将错误率降到了3.57。

2、模型分析

通过在输出个输入之间引入一个shortcut connection,而不是简单的堆叠网络,这样可以解决网络由于很深出现梯度消失的问题,从而可可以把网络做的很深。

实际中,考虑计算的成本,对残差块做了计算优化,即将两个3x3的卷积层替换为1x1 + 3x3 + 1x1, 如下图。新结构中的中间3x3的卷积层首先在一个降维1x1卷积层下减少了计算,然后在另一个1x1的卷积层下做了还原,既保持了精度又减少了计算量。

3、特点分析

在ImageNet上进行了综合性实验展示精准度下降问题,并对他们的方法做出评估。发现:

(1)特别深的残差网络很容易优化,但当深度增加时对应的“平面”网(即简单的堆栈层)表现出更高的训练误差。

(2)深度残差网络能够在大大增加深度的同时获得高精准度,产生的结果本质上优于以前的网络。

公式F(x)+x可以通过“快捷连接”前馈神经网络实现。

快捷连接是那些跳过中的一层或更多层。在我们的情景中,快捷连接简单的执行身份映射,并将它们的输出添加到叠加层的输出。身份快捷连接添加既不产生额外的参数,也会增加不计算的复杂度。

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习那些事儿

利用pytorch实现神经网络风格迁移Neural Transfer

载入图像输入大小无要求,最终会被剪裁到相同大小,这是因为神经网络设计了一个特定的输入大小,因此内容图像和风格图像必须大小一致。

2462
来自专栏有趣的Python

6- 深度学习之神经网络核心原理与算法-学习率

1002
来自专栏人工智能LeadAI

LeNet5的基本结构 | 卷积神经网络

在机器视觉,图像处理领域,卷积神经网络取得了巨大的成功。本文将参考UFLDL和DEEPLEARNING.NET的教程,结合自己的理解,梳理一下卷积神经网络的构成...

3597
来自专栏贾志刚-OpenCV学堂

使用OpenCV与sklearn实现基于词袋模型(Bag of Word)的图像分类预测与搜索

基于OpenCV实现SIFT特征提取与BOW(Bag of Word)生成向量数据,然后使用sklearn的线性SVM分类器训练模型,实现图像分类预测。实现基于...

2493
来自专栏企鹅号快讯

常用的像素操作算法:Resize、Flip、Rotate

Resize 图像缩放是把原图像按照目标尺寸放大或者缩小,是图像处理的一种。 图像缩放有多种算法。最为简单的是最临近插值算法,它是根据原图像和目标图像的尺寸,计...

41310
来自专栏瓜大三哥

竞争型神经网络续1

1.竞争神经网络函数 1.1创建函数 1.1.1 newc函数 newc函数用于创建一个竞争层,这是一个旧版本的函数,现在用competlayer函数代替。函数...

33510
来自专栏AI科技大本营的专栏

数据科学家必须要掌握的5种聚类算法

编译 | AI科技大本营 参与 | 刘 畅 编辑 | 明 明 【AI科技大本营导读】聚类是一种将数据点按一定规则分群的机器学习技术。给定一组数据点,我们可...

2965
来自专栏机器学习算法与Python学习

反向传播算法

反向传播算法 目录 关键词 损失函数 反向传播算法 BP算法伪代码 上一篇----》神经网络 》点击查看 1 关键词 反向传播算法 Backpropagatio...

3485
来自专栏PPV课数据科学社区

Tensorflow入门-白话mnist手写数字识别

文章目录 mnist数据集 简介 图片和标签 One-hot编码(独热编码) 神经网络的重要概念 输入(x)输出(y)、标签(label) 损失函数(loss ...

45510
来自专栏ml

神经网络模型之AlexNet的一些总结

说明: 这个属于个人的一些理解,有错误的地方,还希望给予教育哈~ 此处以caffe官方提供的AlexNet为例. 目录: 1.背景 2.框架介绍 3.步骤详细说...

3225

扫码关注云+社区