概述
Resnet 学习笔记
前言
学了几个月的神经网络,感觉也没学到什么东西,炼丹能力倒是提升不少。。。不能只停留在应用方面,还是要掌握理论,因此就想借助博客园把我学到的理论知识都记录下来,也算是加深记忆了。
最近在看一些著名的网络模型,就从Resnet着手写下第一篇博客(主要是GoogleNet太复杂。。。)
Why Resnet
当今世界,神经网络模型越来越深,那么是不是越深的模型就越好呢?
论文中首先提出了一个问题:Degradation problem。具体来说就是随着网络深度的加深,准确率饱和(包括test_acc 和 train_acc),甚至快速下降。造成这个问题的原因显然不是过拟合(过拟合train_acc应该高),论文中也说不是梯度消失/爆炸(各种normalization包括BN能有效解决梯度消失问题)。
那么为什么会造成Degradation,论文中其实也没有详细的解释,网上也是众说纷纭,但是这不影响resnet的提出。
我们设想有两个网络(N_1)和(N_2),两个网络要拟合同一个函数(H(x))。然而(N_1)只有10层,(N_2)有100层。两个网络训练出的函数我们记为(H_{N1}(x)),(H_{N2}(x)),实验表明(N_2)的拟合效果不如(N_1),即(H_{N1}(x))更接近(H(x))。
但是很明显,如果(N_2)的前10层训练出的函数刚好是(H_{N1}(x)),而后90层全是恒等映射,那么效果至少不会比(N_1)差。问题就在于现有的方法很难将多层非线性网络训练成恒等映射。因此Resnet就应运而生,利用所谓的Residue learning解决这一问题
What is Residue learning
先上图解释单个residue_unit
-
再上公式
[ y = F(x,{W})+x ]图中就是一个最简单的residue_unit
假设这个unit要拟合的仍然是(H(x)),但现在网络兵分两路,右路直接是恒等映射,没有需要学习的参数。
那么这个时候,左路就需要拟合(H(x)-x),我们记为(F(x)),需要学习的参数都在这一路上,(F(x))就是要学习的残差(residue),这就是所谓的残差学习(residue learning)
看起来是不是很简单,但这样一变的效果却很大。
回到刚刚的问题,现有多层非线性网络很难训练成恒等映射。
但是,residue_unit 要训练出恒等映射就相对容易。由于右路直接就是恒等映射,那么只需要左路学习出(F(x) = 0)的结构即可(比如所有权重置为0),这相对于(F(x) = x) 的结构更易于训练。因此就成功的将多层非线性的网络训练成恒等变换,于是也就能解决深层网络效果不如浅层网络的问题。但事实证明,带有residue unit的深层网络效果比浅层网络更好
Resnet就是在深层网络中加入shortcut(也就是上图中的右路),shortcut至少间隔两层(实验证明之间隔一层不会提高准确率),下图最右就是一个典型的Resnet网络
What does resnet solve
论文中说resnet解决的不是梯度消失,也不是过拟合。(当然网上也有其他论文证明resnet确实减弱了梯度消失)
按照论文中的说法解决的就是有效训练出恒等映射,使得深层网络不会遭受degradation problem
在另一篇论文(Identity Mappings in Deep Residual Networks)当中,作者提到了一个好处
the signal can be directly propagated from any unit to another, both forward and backward
具体推导可自行看论文。这篇论文还介绍了resnet的增强版,以及解释了为什么是
[ y = F(x,{W})+x ]
[ y = lambda_1 F(x,{W})+lambda_2x lambda_1,lambda_2不等于1 ]
结语
Resnet 就介绍这么多吧,都是鄙人的理解,不确保正确性,如有错误还希望各位指正。下一篇计划写写复杂的GoogleNet。
Resnet真简洁!
参考文献
[1] Deep Residue Learning for Image Recognition. Kaiming He
[2] Identity Mappings in Deep Residual Networks. Kaiming He
[3] https://www.zhihu.com/question/64494691/answer/271335912
转载于:https://www.cnblogs.com/buaa17231043/p/11408494.html
最后
以上就是热情招牌为你收集整理的DL 学习笔记———ResnetResnet 学习笔记的全部内容,希望文章能够帮你解决DL 学习笔记———ResnetResnet 学习笔记所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复