Resnet

1. 梯度消失 & 梯度爆炸

  •                                  假设有:        Resnet_第1张图片

 

  •                                  表达式为:                

 

  • 对W1求梯度,由链式法则有:            Resnet_第2张图片

 

  • 若采用sigmod激活函数,其导数为:Resnet_第3张图片

 

  • 可以看出,导数不超过0.25,若W1,W2......是很大的数,连乘之后结果会很大,导致梯度爆炸;W1,W2初始化为很小的数,连乘之后结果很小,在回传时,容易梯度消失。

2. 增加网络层数---提取更多特征

  • 导致问题:1)梯度爆炸或梯度消失; 2)退化问题(准确率下降)
  • 方法:残差网络

 

3. 过拟合 VS 退化问题

  • 过拟合导致训练集准确率极高,而退化问题是训练集准确率下降
  • 方法:L2正则化

4. L2正则化(权重衰减)

 

  • L2正则化就是在代价函数后面再加上一个正则化项:  

 

  • C0代表原始的代价函数,后面那一项就是L2正则化项,它是这样来的:所有参数w的平方的和,除以训练集的样本大小n。λ就是正则项系数,权衡正则项与C0项的比重。另外还有一个系数1/2,1/2经常会看到,主要是为了后面求导的结果方便,后面那一项求导会产生一个2,与1/2相乘刚好凑整。

 

  • 求导..............................................................................  

 

  • 可以发现L2正则化项对b的更新没有影响,但是对于w的更新有影响:Resnet_第4张图片

 

  • 在不使用L2正则化时,求导结果中w前系数为1,现在w前面系数为 1−ηλ/n ,因为η、λ、n都是正的,所以 1−ηλ/n小于1,它的效果是减小w,这也就是权重衰减(weight decay)的由来。

 

  • 为什么权重衰减能降低过拟合: 1)更小的权值w,从某种意义上说,表示网络的复杂度更低,对数据的拟合刚刚好(这个法则也叫做奥卡姆剃刀);2)参照下图。过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。

 

                                                                           

(Reference: https://blog.csdn.net/kyang624823/article/details/78646234   深度学习:正则化(L2、dropout))

5.为了平衡梯度消失和梯度爆炸,以及提取特征的网络结构的深度,提出了残差网络。

F是求和前网络映射,H是从输入到求和后的网络映射。

比如把5映射到5.1,

那么引入残差前是F'(5)=5.1,

引入残差后是H(5)=5.1, H(5)=F(5)+5, F(5)=0.1。

这里的F'和F都表示网络参数映射,引入残差后的映射对输出的变化更敏感。比如原来是从5.1到5.2,映射F'的输出增加了1/51=2%,而对于残差结构从5.1到5.2,映射F是从0.1到0.2,增加了100%。明显残差结构输出变化对权重的调整作用更大,所以效果更好。

残差的思想都是去掉相同的主体部分,从而突出微小的变化,看到残差网络我第一反应就是差分放大器...



作者:theone
链接:https://www.zhihu.com/question/53224378/answer/159102095
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

 

你可能感兴趣的:(CNN)