ResNet论文精读总结

        他解决了层数越多越难训练的问题。(如果一个复杂的模型训练效果不是很好的话,可以将其变成一个简单的模型,使模型不会过度复杂化)

        他提出好的网络不是通过将网络堆积在一起而成的,当网络很深的时候梯度会爆炸,解决办法是初始化权重的时候不要太大也不要太小,或者在中间添加一些BN层。

        网络越来越深导致精准度越来越差并不是因为模型变复杂导致的过拟合因为她的训练误差和测试误差都很高

        以20层网络为例,已经训练好的20层加上14层identity mapping正常情况下精准度是不应该变差的,可实际上再SGD中并不能并不能实现。因此本文的目的是想一个办法使你构造出的14层identity mapping 不会使深的网络比浅的网络更差

        他解决了层数越多越难训练的问题。(如果一个复杂的模型训练效果不是很好的话,可以将其变成一个简单的模型,使模型不会过度复杂化)

        他提出好的网络不是通过将网络堆积在一起而成的,当网络很深的时候梯度会爆炸,解决办法是初始化权重的时候不要太大也不要太小,或者在中间添加一些BN层。

        网络越来越深导致精准度越来越差并不是因为模型变复杂导致的过拟合因为她的训练误差和测试误差都很高

        以20层网络为例,已经训练好的20层加上14层identity mapping正常情况下精准度是不应该变差的,可实际上再SGD中并不能并不能实现。因此本文的目的是想一个办法使你构造出的14层identity mapping 不会使深的网络比浅的网络更差

        核心思想:x是原来训练好的参数,我们现在想要学习H(x),不用ResNet的话,模型会直接学习H(x),但ResNet会学习F(x),F(x)=H(x)-x,即ResNet学习的是学习的与真实的差距,也可以理解为ResNet在学习模型与真实值之间的差距。原始做法是不断优化H(x),而ResNet是不断优化F(x)即学习与真实之间的差距,最终输出的是F(x)+x,即根据identity mapping的思想,x不变,而差距越来越小,因此网络越深不会导致训练结果越来越差。

残差连接处理输入和输出不等的情况:

        1)在输入和输出加上额外的零,从而使两张图片分辨率相同。

        2)通过1*1的卷积层进行,它在空间维度上不做任何的事情但是能改变通道维度数,通过1*1卷积层,让输出通道是输入通道的两倍,这样就可以通过使用残差连接的输入和输出对上。因为让输出通道数变为输入通道的两倍的话,一般高和宽都会变成原来的一半,因此会用到步长为2。

        卷积层的浮点运算等于输入的高乘宽乘通道数乘输出通道数乘输出的高乘输出的宽乘全连接

 Bottleneck 瓶颈层

一般在深度较深的网络中使用(ResNet 101) 

         左侧是正常的,右侧是使用bottleneck,先用1*1卷积层将通道数减少到64,再用与左侧相同的3*3 64个通道的卷积进行运算,最后再用1*1卷积层将通道数增回256。

这样做的目的:虽然右侧的通道数是左侧的4倍,但他俩的算法复杂度类似了。

 其中50-layer相较于34-layer,就是增加了bottleneck。

回顾本文做总结:

1)为什么ResNet会使模型训练很快?因为在误差反传过程中的梯度问题上,他解决了传统做法的梯度消失问题。比如

传统做法:

        这里的g(x)代表原来的小网络,f(g(x))表示g(x)网络又经过了f()这层网络,因此αf(g(x))/αx就代表计算梯度问题。因为随着网络的加深,公式右侧累乘的公式数量会一直增多,但由于求导都是在0-1之间的数,所以会出现越乘越小的趋势,因此到后来会出现梯度消失的情况,也就会导致训练很慢训练不动的情况。

ResNet:

        由于ResNet是相加的关系。因此右侧公式中总会偏左侧方框内的值与传统做法相同都会随着层数的变深从而值越来越小进而梯度消失,但偏右侧的值却无论在多少层的时候都不会梯度消失,因此ResNet才不会出现梯度消失问题,也正如此,它训练的速度才会如此之快。

2)为什么图片中会有断崖式下降?因为有断崖式下降的地方,他都是通过学习率*0.5导致的。

3)为什么在CIFAR这种小数据集中使用ResNet不会过拟合?虽然ResNet会使参数变多,但是使用ResNet后会使模型的复杂度降低,因此不会过拟合。

4)最终的模型:

 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MrRoose

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值