当前位置:网站首页>ResNet 残差网络 一些粗略的理解
ResNet 残差网络 一些粗略的理解
2022-08-09 14:57:00 【明天一定早睡早起】
Deep Residual Learning for Image Recognition
ResNet是何凯明等人在2015年的论文《Deep Residual Learning for Image Recognition》提出的一种结构。其主要使用了残差块,来解决训练困难的问题以及模型退化问题。在2015年ImageNet检测、ImageNet定位、COCO检测和COCO分割任务的第一名。
ResNet的由来
深度卷积神经网络为图像分类带来了一系列突破。当年一系列的研究也表明网络深度是至关重要的,在具有挑战性的ImageNet数据集上的主要成果也都采用了“非常深”的模型,深度从16到30。大多数模型都可以通过加深网络来提高性能。
但是一个问题出现了:学习一个更好的网络是否只需简单地叠加更多层?通常来说,叠加更多层会导致梯度消失/爆炸问题,这从一开始就阻碍了模型收敛。然而,这个问题可以通过归一化解决(例如batch normalization),这些归一化层使具有数十层的网络得以收敛。
当更深层的网络能够收敛时,另一个问题又出现了:随着网络深度的增加,精度趋于饱和(这可能并不令人惊讶),然后迅速退化。出乎意料的是,这种退化并不是由过拟合引起的,在一个合适深度的模型中添加更多的层会导致更高的训练误差,如图所示
观察20层和56层的“普通”网络在CIFAR-10上的训练误差(左)和测试误差(右),作者发现网络越深,训练误差越大,测试误差也越大。我们知道,神经网络具有很强的拟合能力,深度越深这种能力应当越强,神经网络就更能“记住”训练样本。虽然在训练更深的网络时可能会遇到上面提到的梯度爆炸/消失问题,但是这个问题可以通过normalization缓解。而即便我们使用了normalization,56层的深网络的训练误差还是比20层的浅网络大,说明这不是过拟合(过拟合应当是深网络的训练误差比浅网络小,测试/验证误差比浅网络大),而是模型发生了“退化”,作者把这种现象称为模型退化。
训练精度的下降表明,想要训练一个深的网络是不容易的。现在让我们考虑一种在浅层模型的结构上添加更多层的体系结构。在这种结构下存在一种构造深层模型的解决方案:在浅层模型的基础上添加的层都是恒等映射(即 H ( X ) = X H(X)=X H(X)=X)。这种构造方案从理论上来说,更深的模型相比于其对应的浅层模型,应该不会产生更高的训练误差。但实验表明,现有的求解器无法找到这样的解(即无法学习恒等映射),或者说不能在合适的时间内找到这样的解。
因此,作者引入深度残差学习框架来解决退化问题。
残差结构
残差块是残差结构的核心,残差块如图所示
与其让每个堆叠的层直接拟合我们所需要的底层映射 H ( x ) H(x) H(x)( H ( x ) H(x) H(x)不只是恒等映射,还可以是其它任何映射),不如显式地让这些层拟合残差映射 F ( x ) F(x) F(x)。形式上,将所需拟合的底层映射表示为 H ( x ) H(x) H(x),让堆叠的非线性层拟合另一个映射: F ( x ) = H ( x ) − x F(x)= H(x)−x F(x)=H(x)−x。则底层映射 H ( x ) H(x) H(x)就转换为 F ( x ) + x F(x)+x F(x)+x。作者假设优化残差映射 F ( x ) F(x) F(x)比优化原始的映射 H ( x ) H(x) H(x)更容易。在某些极端情况下,如果恒等映射是最优的,那么将残差映射 F ( x ) F(x) F(x)拟合为零即可,这比通过一堆非线性层来拟合恒等映射更容易。
F ( x ) + x F(x) + x F(x)+x的表达式可以通过“短路连接”来实现。这也是ResNet的核心。短路连接既不增加额外的参数,也不增加计算复杂度。而且短路连接一定程度上也有助于训练,这是因为在反向传播的过程当中我们需要计算梯度,根据链式法则,网络越深,相乘的项也就越多,越来越多小于1/大于1的项相乘会导致梯度消失/爆炸,而短路连接加过来的 x x x在一定程度上缓解了小于1/大于1的程度。
最后再总结和补充一些:
- 为什么需要恒等映射 H ( x ) = x H(x)=x H(x)=x
如果增加的层被构建为恒等映射,那么理论上,更深的模型的训练误差不应当大于浅层模型,但是退化问题的出现表明,求解器可能比较难以通过许多非线性层逼近恒等映射。但是,残差的表示形式使得多层网络近似恒等映射要容易的多,如果恒等映射是最优的,只需要将非线性层的权重置零(求解器是可以做到的),就可以得到恒等映射,即 F ( x ) = 0 F(x)=0 F(x)=0 - 为什么叫残差网络
在统计学中,残差和误差是非常容易混淆的两个概念。误差是衡量观测值和真实值之间的差距,残差是指预测值和观测值之间的差距。对于残差网络的命名原因,作者给出的解释是,网络的一层通常可以看做 y = H ( x ) y=H(x) y=H(x), 而残差网络的一个残差块可以表示为 H ( x ) = F ( x ) + x H(x)=F(x)+x H(x)=F(x)+x,也就是 F ( x ) = H ( x ) − x F(x)=H(x)-x F(x)=H(x)−x,在恒等映射中, y = x y=x y=x便是观测值,而 H ( x ) H(x) H(x)是预测值,所以 F ( x ) F(x) F(x)便对应着残差,因此叫做残差网络。
边栏推荐
- "Deep learning" evaluation index of target detection
- Photoshop CS6的使用心得
- 链表翻转 全翻转 部分翻转
- 深入浅出最优化(4) 拟牛顿法
- Noun concept summary (not regularly updated ~ ~)
- PHP开源 | ysKit(ys工具包) - 微型Web框架
- hugging face tutorial - Chinese translation - preprocessing
- 【 graduate work weekly 】 (10 weeks)
- hugging face tutorial - Chinese translation - Loading pre-trained instances with AutoClass
- 对导入的 excel 的时间的处理 将excel表中的时间,转成 标准的时间
猜你喜欢

用广搜和动态规划写个路径规划程序

【Postgraduate Work Weekly】(Week 7)

Android面试题基础集锦《一》

Xgboost系列-XGB实际参数调优指南附源码

OpenCV下载、安装以及使用

AsyncTask 串行还是并行

人脸识别示例代码解析(二)——人脸识别解析

记一次解决Mysql:Incorrect string value: ‘\xF0\x9F\x8D\x83\xF0\x9F...‘ for column 插入emoji表情报错问题

Linux安装mysql8.0详细步骤--(快速安装好)
Example of file operations - downloading and merging streaming video files
随机推荐
深入浅出最优化(7) 罚函数法
【Leetcode】433. 最小基因变化
深入浅出最优化(2) 步长的计算方法
你知道亚马逊代运营的成本是多少吗?
什么是跨境电商测评?
抱抱脸(hugging face)教程-中文翻译-任务总结
研究生工作周报(第十三周)
流式布局总结
Server运维:设置.htaccess按IP和UA禁止访问
关于亚马逊测评你了解多少?
面试合集
关于亚马逊的坑你知道几个?
对导入的 excel 的时间的处理 将excel表中的时间,转成 标准的时间
【Postgraduate Work Weekly】(Week 9)
【Postgraduate Work Weekly】(Week 7)
自定义指令,实现默认头像和用户上传头像的切换
PAT1027 Printing Hourglass
微信小程序禁止页面左右滑动
Noun concept summary (not regularly updated ~ ~)
地铁预约Postman脚本使用