本文介绍一下2015 ImageNet中分类任务的冠军——MSRA何凯明团队的Residual Networks。实际上。MSRA是今年Imagenet的大赢家。不单在分类任务,MSRA还用residual networks赢了 ImageNet的detection, localization, 以及COCO数据集上的detection和segmentation, 那本文就简单分析下Residual Networks。

文件夹

————————————

1. Motivation

2. 网络结构

3. 实验结果

4. 重要reference


1. Motivation

作者首先抛出了这个问题, 深度神经网络是不是越深越好。

照我们一般的经验,仅仅要网络不训飞(也就是最早在LSTM中提出的vanishing/exploding problem),并且只是拟合, 那应该是越深越好。

可是有这么个情况,网络加深了, accuracy却下降了,称这样的情况为degradation。例如以下图所看到的(详见[1]):




Cifar-10 上的training/testing error. 网络从20层加到56层。error却上升了。

按理说我们有一个shallow net,在只是拟合的情况下再往深加几层怎么说也不会比shallow的结果差,所以degradation说明不是全部网络都那么easy优化。这篇文章的motivation就是通过“deep residual network“解决degradation问题。

2. 网络结构

Shortcut Connections

事实上本文想法和Highway networks(Jurgen Schmidhuber的文章)很类似, 就连要解决的问题(degradation)都一样。Highway networks一文借用LSTM中gate的概念,除了正常的非线性映射H(x, Wh)外,还设置了一条从x直接到y的通路,以T(x, Wt)作为gate来把握两者之间的权重。例如以下公式所看到的:

y=H(x,WH)⋅T(x,WT)+x⋅(1−T(x,WT))






shortcut原意指捷径。在这里就表示越层连接,就比方上面Highway networks里从x直接到y的连接。

事实上早在googleNet的inception层中就有这样的表示:



Residual Networks一文中,作者将Highway network中的含參加权连接变为固定加权连接。即

y=H(x,WH)⋅WT+x

Residual Learning

至此。我们一直没有提及residual networks中residual的含义。

那这个“残差“指什么呢?我们想:

假设能用几层网络去逼近一个复杂的非线性映射H(x),那么相同能够用这几层网络去逼近它的residual function:F(x)=H(x)−x,但我们“猜想“优化residual mapping要比直接优化H(x)简单。

推荐读者们还是看一下本文最后列出的这篇reference paper。本文中作者说与Highway network相比的优势在于:

x Highway Network Residual Network 评论
gate參数 有參数变量WT 没參数,定死的, 方便和没有residual的网络比較 算不上优势,參数少又data-independent。结果肯定不会是最优的,文章实验部分也对照了效果,确实是带參数的error更小,可是WT这个变量与解决degradation问题无关
关门? 有可能关门(T(x,WT)=0) 不会关门 T(x,WT)∈[0,1], 但一般不会为0

所以说这个比較还是比較牵强。。anyway。人家讲个故事也是不easy了。

34层 residual network

网络构建思路:基本保持各层complexity不变,也就是哪层down-sampling了,就把filter数*2, 网络太大,此处不贴了,大家看paper去吧。 paper中画了一个34层全卷积网络。 没有了后面的几层fc,难怪说152层的网络比16-19层VGG的计算量还低。

这里再讲下文章中讲实现部分的 tricks:

  1. 图片resize:短边长random.randint(256,480)
  2. 裁剪:224*224随机採样,含水平翻转
  3. 减均值
  4. 标准颜色扩充[2]
  5. conv和activation间加batch normalization[3]

    帮助解决vanishing/exploding问题
  6. minibatch-size:256
  7. learning-rate: 初始0.1, error平了lr就除以10
  8. weight decay:0.0001
  9. momentum:0.9
  10. 没用dropout[3]

事实上看下来都是挺常规的方法。

3. 实验结果

  1. 34层与18层网络比較:训练过程中,

    34层plain net(不带residual function)比18层plain net的error大

    34层residual net(不带residual function)比18层residual net的error小。更比34层plain net小了3.5%(top1)

    18层residual net比18层plain net收敛快

  2. Residual function的设置:

    A)在H(x)与x维度不同一时候。 用0充填补足

    B) 在H(x)与x维度不同一时候。 带WT

    C)不论什么shortcut都带WT

    loss效果: A>B>C

4. 重要reference

[1]. Highway Networks

[2]. ImageNet Classification with Deep Convolutional Neural Networks

[3]. Batch Normalization

[4]. VGG

Residual Networks <2015 ICCV, ImageNet 图像分类Top1>的更多相关文章

  1. Residual Networks <2015 ICCV, ImageNet 图像分类Top1>

    本文介绍一下2015 ImageNet中分类任务的冠军——MSRA何凯明团队的Residual Networks.实际上,MSRA是今年Imagenet的大赢家,不单在分类任务,MSRA还用resid ...

  2. 课程四(Convolutional Neural Networks),第二 周(Deep convolutional models: case studies) ——3.Programming assignments : Residual Networks

    Residual Networks Welcome to the second assignment of this week! You will learn how to build very de ...

  3. Re-thinking Deep Residual Networks

    本文是对ImageNet 2015的冠军ResNet(Deep Residual Networks)以及目前围绕ResNet这个工作研究者后续所发论文的总结,主要涉及到下面5篇论文. 1. Link: ...

  4. 残差网络(Residual Networks, ResNets)

    1. 什么是残差(residual)? “残差在数理统计中是指实际观察值与估计值(拟合值)之间的差.”“如果回归模型正确的话, 我们可以将残差看作误差的观测值.” 更准确地,假设我们想要找一个 $x$ ...

  5. Residual Networks

    Andrew Ng deeplearning courese-4:Convolutional Neural Network Convolutional Neural Networks: Step by ...

  6. 深度残差网(deep residual networks)的训练过程

    这里介绍一种深度残差网(deep residual networks)的训练过程: 1.通过下面的地址下载基于python的训练代码: https://github.com/dnlcrl/deep-r ...

  7. 深度学习论文笔记:Deep Residual Networks with Dynamically Weighted Wavelet Coefficients for Fault Diagnosis of Planetary Gearboxes

    这篇文章将深度学习算法应用于机械故障诊断,采用了“小波包分解+深度残差网络(ResNet)”的思路,将机械振动信号按照故障类型进行分类. 文章的核心创新点:复杂旋转机械系统的振动信号包含着很多不同频率 ...

  8. 解析Wide Residual Networks

    Wide Residual Networks (WRNs)是2016年被提出的基于扩展通道数学习机制的卷积神经网络.对深度卷积神经网络有了解的应该知道随着网络越深性能越好,但是训练深度卷积神经网络存在 ...

  9. Convolutional Neural Network-week2编程题2(Residual Networks)

    1. Residual Networks(残差网络) 残差网络 就是为了解决深网络的难以训练的问题的. In this assignment, you will: Implement the basi ...

随机推荐

  1. oracle经常使用函数(2)

    1.TRIM([ { { LEADING | TRAILING | BOTH }[ trim_character ]| trim_character} FROM ]trim_source) 函数 參数 ...

  2. JAVA Excel API学习案例

    先贴代码吧,执行一下.看看效果,然后看看凝视,再看看代码后面的基础介绍 创建一个新excel并写入数据: public static void myExcel2() throws IOExceptio ...

  3. 再续iOS开发中的这些权限

    前言 上篇文章iOS开发中的这些权限,你搞懂了吗?介绍了一些常用权限的获取和请求方法,知道这些方法的使用基本上可以搞定大部分应用的权限访问的需求.但是,这些方法并不全面,不能涵盖住所有权限访问的方法. ...

  4. 最大似然估计的缺陷 —— 方差和均值的 bias

    0. 均匀分布期望的最大似然估计 首先我们来看,如何通过最大似然估计的形式估计均匀分布的期望.均匀分布的概率密度函数为:f(x|θ)=1θ,0≤x≤θ.不失一般性地,将 x1,x2,-,xn 排序为顺 ...

  5. SAN和NAS

    SAN针对海量.面向数据块的数据传输,而NAS则提供文件级的数据访问功能. SAN和NAS都基于开放的.业界标准的网络协议:用于SAN的光纤通道协议和用于NAS的网络协议(如TCP/IP). SAN的 ...

  6. C# Keywords - as

    记录一下在日常开发过程中遇到的一些C# 基础编程的知识! 希望以后能用的着.知识是在平常的开发过程中去学到的.只有用到了,你才能深入的理解它,并用好它. 本资料来源于:MSND 下面是一些相关的cod ...

  7. Redis学习笔记(七) 基本命令:Set操作

    原文链接:http://doc.redisfans.com/set/index.html 虽然set和list很相似但还是有一些差别的,如set中的顺序没有先后之分,所以不像list一样可以在首尾增删 ...

  8. Unity设置Turorials-Wide布局

    在bilibili上看关于UGUI官翻视频时,很喜欢对方的布局,自己照着改了下,改的步骤如下: 1, 先选用 2by3 布局 2, 把Project面板拖到Hierarchy下边 3, 把2列布局改成 ...

  9. 使用css选择器来定位元素

    public void CSS(){ driver.get(Constant.baidu_url); //绝对路径 // driver.findElement(By.cssSelector(" ...

  10. CF859C Pie Rules 动态规划 逆推_思维题

    题意:有 nnn 个物品,每个物品有不同的价值,物品按顺序分给两个人,有一块令牌,每回合拥有令牌的人拥有物品的分配权,但是该回合未获得物品的那个人会在下回合获得令牌,开始令牌在Bob手里,两个人都采取 ...