论文笔记:深度残差网络

  • 为何使用深度残差网络
    • 深层卷积网络的退化问题
    • 残差网络结构
      • 残差结构块
      • 快捷层的恒等映射
    • 三种不同的网络结构
      • VGG-19 与 34-layer plain
      • 残差网络结构
    • 更深的网络结构

论文地址:Deep Residual Learning for Image Recognition.

为何使用深度残差网络

理论上来说,神经网络的层数越深,它拟合函数的能力就越强,也就是表达能力越强,按理来说效果会更好,但在实际的处理过程中,越深的网络是越难训练的,模型也会处于一种很难收敛的状态。该论文提出了残差网络结构,这种网络结构解决了深层网络难以优化的问题,并且可以搭建更深的网络结构以获得更高的准确率。

深层卷积网络的退化问题

由于深度学习模型的网络深度对于准确率来说是非常重要的,大家都在探索如何建立更深的网络结构以获得更高的准确率。随着网络深度的增加,梯度爆炸和梯度消失等各种问题会使网络的性能大幅度下滑,传统的解决方法就是使用数据的初始化(normlized initializatiton)和(batch normlization)正则化。
数据的初始化和正则化虽然很大程度上解决了梯度问题,但随着网络层数的增加,出现了一个网络退化的问题。当网络的准确率达到饱和之后,出现了迅速退化的现象,但这种退化并不是由过拟合造成的,并且在一个合理的模型中增加层数却导致了更高的错误率。

如上图所示,训练的错误率和测试错误率在iter为3之前,都有在下降,但在3之后,训练错误率有在继续下降,测试错误率却处于一个平缓的状态,这说明影响错误率下降的原因并不是过拟合,而是网络发生了退化现象。

残差网络结构

在这篇论文中,提出了一种深度残差学习框架来解决网络退化的问题,我们使用这些层来拟合残差映射。残差结构使得深度网络的训练变得更加的容易,由此我们也能搭建更深的网络来实现更高的检测准确率。

残差结构块


残差网络结构块将上层的输出叠加到下层的输入中去。设残差块的输出为H(x),那么我们学习到的残差函数为F(x)=H(x)-x,那么当我们训练网络时,只需要学习残差映射F(x),这样比学习原始映射更加容易,更容易优化。在极端的情况下,如果某个恒等映射是最优的,那么将残差变为0 比用非线性层的堆叠来拟合恒等映射更简单。
在原来网络的基础上,使用浅层网络的输出与后几层的输出的叠加,这样并不会增加计算难度和参数量。

快捷层的恒等映射

残差网络的定义如下:
(1)当结构块的输入和输出一致时,恒等映射直接叠加到输出上:

(2)当结构块的输入和输出不一致时,使用x进行线性映射之后,叠加到输出中:

Wi和Ws都是一个方阵,我们使用Ws来进行维度匹配。

三种不同的网络结构

VGG-19 与 34-layer plain

基于VGG网络,设计了plain网络,该网络的下采样是直接采用stride=2的3*3卷积核完成的,在网络的最后使用的平均池化处理。
卷积层主要为3x3的滤波器,设计时有以下规则:
(1) 输出维度相同的层含有相同数量的滤波器;
(2) 如果输出维度减半,则滤波器的数量增加一倍来保证网络的时间复杂度相同。

残差网络结构

在plain网络的基础上,插入了快捷连接,网络由多个残差块构成。实线部分表示的是当前残差块的输入和输出维度不变,虚线则表示的是维度改变,有以下两种解决方法:
(1)shortcut仍然使用恒等映射,使用0来填充增加的维度。
(2)将输入进行线性映射之后,将输入叠加至输出,使维度保持一致。

更深的网络结构

在更深的网络模型中,考虑到训练时间的限制,将残差网络的构建块修改为下图右边的结构。对于每一个残差块,我们都使用了三个叠加层,1x1–3x3–1x1的卷积。第一个1x1的卷积层首先进行了降维操作,使计算量有一定程度的减少,第三层的卷积层又进行了一个升维的操作,这样一来即减少了计算量又维持了原有的精度。

这种网络结构对于层数相同的网络而言,减少了许多的参数量,于是就可以在相应的网络上拓展更多的神经网络层。作者又进一步提出了50、101、152层的深度残差网络,网络也并没有出现像前文说的退化问题,准确率也有一定的提升。

论文笔记:深度残差网络相关推荐

  1. 大话深度残差网络(DRN)ResNet网络原理

    -- 原文发布于本人的微信公众号"大数据与人工智能Lab"(BigdataAILab),欢迎关注. 一说起"深度学习",自然就联想到它非常显著的特点" ...

  2. CNN经典模型:深度残差网络(DRN)ResNet

    一说起"深度学习",自然就联想到它非常显著的特点"深.深.深"(重要的事说三遍),通过很深层次的网络实现准确率非常高的图像识别.语音识别等能力.因此,我们自然很 ...

  3. 【论文泛读】 ResNet:深度残差网络

    [论文泛读] ResNet:深度残差网络 文章目录 [论文泛读] ResNet:深度残差网络 摘要 Abstract 介绍 Introduction 残差结构的提出 残差结构的一些问题 深度残差网络 ...

  4. 42_ResNet (深度残差网络)---学习笔记

    1.39.ResNet (深度残差网络) Why call Residual # -*- coding: UTF-8 -*-import torch.nn as nn import torch.nn. ...

  5. TensorFlow人工智能引擎入门教程之十 最强网络 RSNN深度残差网络 平均准确率96-99%

    摘要: 这一章节我们讲一下 RSNN深度残差网络 ,他准确率非常好,比CNN还要高.而且非常新 出现在2015 residual network http://blog.csdn.net/sunbai ...

  6. 深度残差网络和Highway网络

    今天讲的这两种网络结构都是最新被业界针对图像处理问题提出的最新的结构,主要解决就是超深层的网络在训练优化中遇到的问题.说实话这两种模型就本身来说数学公式都不复杂,但是确实在实战中取得了非常好的效果(深 ...

  7. 深度学习之卷积神经网络(12)深度残差网络

    深度学习之卷积神经网络(12)深度残差网络 ResNet原理 ResBlock实现 AlexNet.VGG.GoogleLeNet等网络模型的出现将神经网络的法阵带入了几十层的阶段,研究人员发现网络的 ...

  8. 【深度学习之ResNet】——深度残差网络—ResNet总结

    目录 论文名称:Deep Residual Learning for Image Recognition 摘要: 1.引言 2.为什么会提出ResNet残差网络呢? 3.深度残差网络结构学习(Deep ...

  9. 深度残差网络ResNet解析

    ResNet在2015年被提出,在ImageNet比赛classification任务上获得第一名,因为它"简单与实用"并存,之后很多方法都建立在ResNet50或者ResNet1 ...

最新文章

  1. 全球及中国自动驾驶行业应用领域及投资前景展望报告2022-2028年版
  2. 浓缩版java8新特性
  3. P2P技术如何拯救一家直播网站
  4. IIS网站的权限设置问题
  5. try catch finally
  6. 前端开发必备:js中的sort()排序函数
  7. django生成文件txt、pdf(在生成 PDF 文件之前,需要安装 ReportLab 库)
  8. Linux中shell运行方式,linux脚本中父shell与子shell 执行的几种方式
  9. 支持hicar的华为手机
  10. 应用时间序列分析(王燕)学习笔记2
  11. [BZOJ2286] [Sdoi2011]消耗战
  12. SQL分组统计-每个学科前三名
  13. Oracle 12c升级指南
  14. Python自动生成巡检报告
  15. 几种经典的下肢力量练习方式
  16. python 修改文件只读_Python脚本去除文件的只读性操作
  17. ctfshow web入门 命令执行:55-57
  18. 软件企业税收优惠政策
  19. vscode代码格式管理插件prettier-Code formatter安装和设置
  20. idea 远程debug调试

热门文章

  1. 类似于贾维斯的数字人的实现
  2. 基于onenet物联网平台---宠物智能喂食监测系统
  3. Android Studio的ADV无法启动解决办法
  4. 什么是Flat File
  5. ACP敏捷4.规模敏捷.多团队多迭代多产品.敏捷框架
  6. 2017大学生程序设计邀请赛(华东师范大学) A.拼音魔法
  7. 核心频率个加速频率_255W TDP不算啥,英特尔14核酷睿i9-9990XE处理器全核加速5.0GHz...
  8. 2018年经满洲里口岸进出境中欧班列突破1800列
  9. 树莓派配置路由_使用树莓派搭建无线路由器
  10. 【干货#011】小程序页面滚动实现广告条隐藏