深度残差网络(ResNet)浅析

深度残差网络是2015年提出的深度卷积网络,一经出世,便在ImageNet中斩获图像分类、检测、定位三项的冠军。
我们都知道增加网络的宽度和深度可以很好的提高网络的性能,深的网络一般都比浅的的网络效果好,比如说一个深的网络A和一个浅的网络B,那A的性能至少都能跟B一样,为什么呢?因为就算我们把A的网络参数全部迁移到B的前面几层,而B后面的层只是做一个等价的映射,就达到了A网络的一样的效果。一个比较好的例子就是VGG,该网络就是在AlexNex的基础上通过增加网络深度大幅度提高了网络性能。
这里写图片描述
但事实真的是这样的吗?不然,通过实验我们发现,当网络层数达到一定的数目以后,网络的性能就会饱和,再增加网络的性能就会开始退化,但是这种退化并不是由过拟合引起的,因为我们发现训练精度和测试精度都在下降,这说明当网络变得很深以后,深度网络就变得难以训练了。
ResNet的出现其实就是为了解决网络深度变深以后的性能退化问题。
这里写图片描述
ResNet就是用这种跳跃结构来作为网络的基本结构。为什么要使用这种结构呢?作者认为,本来我们要优化的目标是H(x)=F(x)+x(x就是该结构的输入)但是通过这种结构以后就把优化的目标由H(x)转化为H(x)-x。
那么问题又来了,优化目标转化后又有什么用呢,为什么可以通过这种方式来解决退化问题呢?我们之前说到,深网络在浅网络的基础上只要上面几层做一个等价映射就可以达到浅网络同样的效果,但是为什么不行呢,就是因为我们的算法很难将其训练到那个程度,也就是说没办法将上面几层训练到一个等价映射,以至于深网络最后达到了一个更差的效果。那么这时,我们把训练目标转变,由原来的H(x)转为H(x)-x,因为这时候就不是把上面几层训练到一个等价映射了,而是将其逼近与0,这样训练的难度比训练到一个等价映射应该下降了很多。
也就是说,在一个网络中(假设有5层),如果前面四层已经达到一个最优的函数,那第五层就是没有必要的了,这时我们通过这种跳跃结构,我们的优化目标就从一个等价映射变为逼近0了,逼近其他任何函数都会造成网络退化。通过这种方式就可以解决网络太深难训练的问题。
这里写图片描述
右边就是ResNet,其实就是普通的网络上面的插入跳跃结构。
这里写图片描述
对于跳跃结构,当输入与输出的维度一样时,不需要做其他处理,两者相加就可,但当两者维度不同时,输入要进行变换以后去匹配输出的维度,主要经过两种方式,1)用zero-padding去增加维度,2)用1x1卷积来增加维度
这里写图片描述
上面是两种不同的跳跃结构,主要就是使用了不同的卷积核。左边参数要比右边的多很多(快一倍)。所以当网络很深时,用右边的比较好。
其实我觉得,那么多层数中间肯定有一些层是不起作用的,也就是等价映射。可能就是从那么多层里面选取一个最优的层数。

  • 19
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值