当前位置:网站首页>经典模型——ResNet
经典模型——ResNet
2022-06-26 02:41:00 【右边是我女神】
Introduction
深度卷积神经网络的好处在于其层比较多,每一层都能捕捉不同的信息。从低级的视觉特征到高级的语义特征。
但是层这么多是一件好事吗?
显然不是,随着网络层次的加深,会出现梯度爆炸与梯度消失。
常见的解决方案是好的初始化或者加入BN层。
然而,虽然做了这些操作之后,模型收敛了,但是精度却下降了。这也不是过拟合造成的,因为训练误差和测试误差都上升了。如下图所示。

进一步思考:按理来说,如果我浅层网络性能比较好的话,深层网络的性能不应该下降的。因为至少可以让新加的层成为一个identity mapping(恒等映射)。但是,简单的SGD是做不到的。
因此,该文章提出了deep residual learning framework,保证网络的性能不会随着深度的增加而变差,这相当于显式地构造出一个identity mapping。

核心思想:假设模型的输出是 H ( x ) H(x) H(x),但是我不让模型直接学 H ( x ) H(x) H(x),而是去学习 H ( x ) − x H(x)-x H(x)−x,我我们记为 F ( x ) F(x) F(x)。最后的输出就是 F ( x ) + x F(x)+x F(x)+x。我们将 F ( x ) F(x) F(x)称为残差。直观地来讲,就是不要去学习怎么得到H(x),而是去学习已经学习到的东西和真实的东西之间的残差。
优势在于:模型复杂度不会提升;计算量不会增加。
通过实验证明:plain版本效果差一些(没有residual/shortcut connection);随着深度的增加,性能也会提升。
Deep Residual Learning


上图是四个版本的ResNet的结构。可以看到50layer及以上的版本和18、34的版本的结构有所差别,这是因为随着网络层数的加深,我们希望通道数能增加,因为深度意味着可以学到更多的东西,但考虑到随之带来的参数量的增加,所以构造一个bottleneck的结构,通过1x1卷积实现通道的压缩与恢复。
模型中采用了BN层、数据增广来提升模型的泛化性能,但是没有用dropout,因为不包含全连接层。
那么残差连接如何处理输入输出形状不同的情况呢?
第一个方案是在输入和输出上分别添加一些额外的0,使得两者的形状能够对应起来;
第二个方案是用1x1卷积进行投影。
Experiments

这个图展示的是18和34版本在有无residual connection的区别。指的说明的有:
- 最开始训练误差要比测试误差大,这是数据增强导致的结果;
- 每一次突然的下降都是因为学习率的降低。现在一般不采用乘0.1的手段,因为时机难以掌握,乘得太早会导致后期收敛无力;
- 这个实验说明的是有残差连接后收敛速度快了、性能也相对更好了;
为什么ResNet训练起来速度快?
梯度消失的原因是因为随着网络的加深,链式法则将很多非常小的数相乘,使得梯度下降法减去一个近乎为0的值,当然,要是陷入了局部最优的位置,都不用深层网络,梯度就很容易消失;
但是ResNet的话,好处在于在原有基础上加了一个浅层网络的梯度,这样深层的梯度虽然小了,但是浅层的还是比较大的,所以从数学上来看,梯度不会轻易消失。
所谓的模型复杂度降低了不是说不能够表示别的东西了,而是能够找到一个不那么复杂的模型去拟合数据,就如作者所说,不加残差连接的时候,理论上也能够学出一个有一个identity的东西(不要后面的东西),但是实际上做不到,因为没有引导整个网络这么走的话,其实理论上的结果它根本过不去,所以一定是得手动的把这个结果加进去,使得它更容易训练出一个简单的模型来拟合数据的情况下,等价于把模型的复杂度降低了。(摘录自此处)
边栏推荐
- Literature reading --- optimize RNA SEQ research to study herbicide resistance (review)
- Utonmos adheres to the principle of "collection and copyright" to help the high-quality development of traditional culture
- On virtual memory and oom in project development
- ORB-SLAM3论文概述
- 解析社交机器人中的技术变革
- Multi surveyor Gongshu campus Xiao sir_ Page error in Jenkins
- GD32 ADC采集电压
- Fresh graduates talk about their graduation stories
- [solution] the blue screen restart problem of the virtual machine started by the VMware of Lenovo Savior
- The difference between like,%, - in database query SQL
猜你喜欢

ArrayList#subList这四个坑,一不小心就中招

Win10 computer power management turns on excellence mode

2021-08-04

用元分析法驱动教育机器人的发展
![[机器翻译]—BLEU值的计算](/img/c3/8f98db33eb0ab5a016621d21d971e4.png)
[机器翻译]—BLEU值的计算

少儿编程对国内传统学科的推进作用

【论文笔记】Supersizing Self-supervision: Learning to Grasp from 50K Tries and 700 Robot Hours

Camtasia 2022全新版超清录制电脑视频

Matlab| short term load forecasting of power system based on BP neural network

小 P 周刊 Vol.10
随机推荐
Business process diagram design
数据库查询语句SQL中like、%、-的区别
【论文笔记】Learning to Grasp with Primitive Shaped Object Policies
arduino字符串转16进制数 大彩串口屏用。
校园创客空间的硬件造物原理
NoSQL之Redis配置与优化
如何筹备一场感人的婚礼
UTONMOS坚持“藏品、版权”双优原则助力传统文化高质量发展
Install development cross process communication
【flask入门系列】flask处理请求和处理响应
Teach you to quickly record sounds on PC web pages as audio files
学习太极创客 — MQTT(五)发布、订阅和取消订阅
解析创客空间机制建设的多样化
浅谈虚拟内存与项目开发中的OOM问题
Leetcode 175 Combine two tables (2022.06.24)
培育项目式Steam教育理念下的儿童创造力
Components and routing
工业机器人之“慧眼”——机器视觉
[machinetranslation] - Calculation of Bleu value
2021-08-04