ResNet原理是什么,为什么ResNet能做到那么深?

引入

非常深的网络,是难以训练的,因为有梯度消失梯度爆炸的问题存在。

但残差网络(ResNet)却能够做到非常深,2015年,微软亚洲研究院的何凯明等人使用152层的残差网络ResNet参加了当年的ILSVRC,在图像分类、目标检测等任务中的表现大幅超越前一年的比赛的性能水准。

ResNet与其他的深层次网络有什么区别?为什么它能做到这样的效果?

普通深层次网络的问题

普通的深层次网络,比如堆叠3x3卷积网络,训练误差如下:

这里写图片描述

与20层网络相比,56层网络存在更高的训练误差与测试误差。

ResNet原理

下面是普通全连接网络和ResNet的网络结构对比。

这里写图片描述

在ResNet中,这个结构单元叫残差块

可以看到,他们之间最大的区别,就是ResNet的网络结构中出现了跨层连接。

  • H(x)是任意一种理想的映射
  • 希望第2类权重层能够与F(x)拟合
  • 使H(x) = F(x) + x

F(x)是一个残差映射w.r.t 恒等

  • 如果说恒等是理想,很容易将权重值设定为0
  • 如果理想化映射更接近于恒等映射,便更容易发现微小波动

多个这种残差块结构组成的网络,就是ResNet。ResNet在实际数据集上的表现如下图

这里写图片描述

可见,在ResNet上,层数越多,训练误差越小。这就是我们想要的理想情况。

ResNet细节

  • 残差块的结构,是由卷积层池化层组成的
  • 一般CNN的结构,都是C+C+C+P,依次这样重复,比如:cccpcccpcccp…

结论

残差网络结构简单,解决了极深度条件下深度卷积神经网络性能退化的问题,分类性能表现出色。从ILSVRC 2015至今半年多的时间里,残差网络的广泛使用已推进计算机视觉各任务的性能升入新的高度。

参考

猜你喜欢

转载自blog.csdn.net/ybdesire/article/details/80232457