ResNet
ResNet(Residual Neural Network)是一种深度卷积神经网络模型,由Kaiming He等人在2015年提出。它的设计目的是解决深度神经网络训练过程中的梯度消失和梯度爆炸问题,以便训练更深的网络。
ResNet的成功证明了通过残差连接构建深层网络的有效性,为后续的模型设计提供了重要的启示和参考。
Resnet之后的网络应用在ImageNet之外的问题上,效果不一定好。
参考
ResNet论文:Deep Residual Learning for Image Recognition
产生背景
卷积网络深度越深,是否性能越好?
实验:持续向一个“基础”的卷积神经网络上面叠加更深的层数会发生什么?
贡献
残差模块
研究者考虑了这样一个问题:
浅层网络学习到了有效的分类模式后,如何向上堆积新层来建立更深的网络,使其满足即使不能提升浅层网络的性能,深层网络也不应降低性能。
提出了一种残差模块,通过堆叠残差模块可以构建任意深度的神经网络,而不会出现“退化”现象。
前向传递:原始信息一直被保存的很好,没有丢失信息,信号不容易衰减,前向信息流就很顺畅。
反向传递:即使F(x)=0,反向信息也可以传递。
类比锐化过程理解,原图x+细节F(x)=锐化H(x)。
残差结构
残差结构能够避免普通的卷积层堆叠存在信息丢失问题,保证前向信息流的顺畅。
残差结构能够应对梯度反传过程中的梯度消失问题,保证反向梯度流的通顺。
X之后的1×1卷积核:降维,减少3×3卷积的运算量。
conv(3×3)之后的1×1卷积核:升维(还原X的维度),为了实现X+F(X)。
批归一化
提出了批归一化方法来对抗梯度消失,该方法降低了网络训练过程对于权重初始化的依赖。
ReLU激活函数的初始化方法
提出了一种针对ReLU激活函数的初始化方法。
网络结构
为什么残差网络性能好?
一种典型的解释:残差网络可以看作是一种集成模型!