本文介绍一下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说明不是所有网络都那么容易优化,这篇文章的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,人家讲个故事也是不容易了。

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相关推荐

  1. 语义分割--Full-Resolution Residual Networks for Semantic Segmentation in Street Scenes

    Full-Resolution Residual Networks for Semantic Segmentation in Street Scenes CVPR2017 Theano/Lasagne ...

  2. 语义分割--Dilated Residual Networks 之转载

    Dilated Residual Networks CVPR2017 http://vladlen.info/publications/dilated-residual-networks/ 这里转载了 ...

  3. Identity Mappings in Deep Residual Networks

    论文地址:Identity Mappings in Deep Residual Networks 译文地址:http://blog.csdn.net/wspba/article/details/607 ...

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

    1. 什么是残差(residual)? "残差在数理统计中是指实际观察值与估计值(拟合值)之间的差.""如果回归模型正确的话, 我们可以将残差看作误差的观测值." ...

  5. 吴恩达深度学习课程deeplearning.ai课程作业:Class 4 Week 2 Residual Networks

    吴恩达deeplearning.ai课程作业,自己写的答案. 补充说明: 1. 评论中总有人问为什么直接复制这些notebook运行不了?请不要直接复制粘贴,不可能运行通过的,这个只是notebook ...

  6. 12.深度学习练习:Residual Networks(注定成为经典)

    本文节选自吴恩达老师<深度学习专项课程>编程作业,在此表示感谢. 课程链接:https://www.deeplearning.ai/deep-learning-specialization ...

  7. 吴恩达深度学习4.2练习_Convolutional Neural Networks_Happy House Residual Networks

    1.Happy House 1.1. Load Dataset 1.2.构建流图:def HappyModel 1.3.PlaceHolder --> happyModel = HappyMod ...

  8. Dilated Residual Networks

    如何理解空洞卷积(dilated convolution) 『计算机视觉』空洞卷积 1. Background   文章原文可在作者主页阅览:Fisher Yu主页  这篇文章实则是作者将何恺明(Ka ...

  9. Pseudo-3D Residual Networks算法的pytorch代码

    作者:AI之路 原文:https://blog.csdn.net/u014380165/article/details/78986430 本篇博客是对第三方实现的Pseudo-3D Residual ...

最新文章

  1. 《杀破狼》:可能是华语动作电影最后的绝唱!
  2. 问题解决-Failed to resolve: com.android.support.constraint:constraint-layout:1.0.0-alpha7
  3. Metasploit Shell升级Meterpreter会话技巧
  4. 美国要求台积电、三星45天内主动交出商业数据,不配合将采取必要行动
  5. springboot 开发入门,及问题汇总
  6. 【渝粤题库】国家开放大学2021春1032成本管理题目
  7. 【100亿次的挑战】之春晚控制后台故事分享
  8. 信息学奥赛一本通 1040:输出绝对值 | OpenJudge NOI 1.4 02
  9. vue项目中更新element-ui版本
  10. iOS 图形处理 翻译
  11. Android零基础入门第66节:RecyclerView点击事件处理
  12. ionic3 百度地图插件定位 问题
  13. 电脑上没有iis组件,怎么才能安装iis?
  14. 【c语言】打印出100以内奇数
  15. 2022年上半年软考-嵌入式系统设计师-回忆版
  16. csgo星空天空代码_csgo天空背景怎么改
  17. Android 9.0 cmds
  18. oracle错误号提示ORA-
  19. arm服务器安装docker及docker-compose
  20. 【工具】60 个相见恨晚的神器工具

热门文章

  1. java-数组排序--冒泡排序、鸡尾酒排序、地精排序
  2. 记一次ssh登录异常
  3. mac电脑 显示隐藏文件 取消显示隐藏文件
  4. 常用Shell脚本编写的内置变量
  5. redis info命令中各个参数的含义
  6. C++编程题,开心的小明
  7. CNCF 云原生系列文章
  8. Kubernetes — 基于层级命名空间的多租户隔离
  9. OpenStack RPM Sample 解析
  10. 命令提示符(cmd)中的tracert命令使用