目录
存在的问题
核心思想
结果
总结
残差神经网络(ResNet)是由微软研究院的何恺明、张祥雨、任少卿、孙剑等人提出的。ResNet 在2015 年的ILSVRC(ImageNet Large Scale Visual Recognition Challenge)中取得了冠军。
详细论文见《Deep Residual Learning for Image Recognition》
从论文标题可以看出,本文提到的最重要的思想 Deep Residual Learning,以及应用Image Recognition 图像识别,图像分类等领域。
存在的问题
大家都知道的,所谓深度学习,即我们的神经网络的层数越来越多,效果会越来越好。但是层数太多了之后,也会导致 梯度爆炸或梯度消失。一般我们通过在初始化权重的时候,给定一些合适的值,以及在层中间加一些 batch normolization 来解决。但虽然使用这些技术后,我们能够使他收敛,但是网络变深的时候,精度也会变差。如下图:
从图中我们发现,在网络层数由20层到50层,训练误差以及测试误差都变的更高了。就是说随着模型的变得复杂,精度也在下降。但是注意,这不是 overfitting,因为训练误差和测试误差都变高了,过拟合是训练误差变低,测试误差变高。
核心思想
但是其实深的网络不应该比浅的网络变得更差,于是本文就提出了一个Residual的思想。如下图,原来的输出X,通过一层网络,经过Relu函数,再经过一层网络变成F(X), 而Residual即残差的思想就是将X再加到F(X)上,变成新的输出 F(X)+X .
那我们为什么要这么做呢,简单来讲,这种简单的加法,不会增加任何需要学习的参数(即模型复杂度),也不会让计算变得更复杂。
结果
从下图可以看出,左边是没有加残差,模型越深,精度越差。而右边加了残差之后,模型越深,精度越好。
总结
- 提出方法:残差神经网络---将我们原来学习的H(X),在中间加一个残差层,使我们学习的东西变成H(X)-X。
- 解决的问题:解决了神经网络越深,精度越差的问题。在加入残差层之后,模型越深,精度越高。
- 仍待解决的问题:在引入残差结构后,网络权重的轻微变化就引起了教大的输出变化,所以,如果想要得到好的输出结构,必须小心的调整权重。
- 启发:在一些比较深的神经网络中,我们可以尝试加入这些残差结构,也许模型精度会变得更好。