邮箱注册网站申请,电商平台商户,域名交易,国内软件公司排名通常来说#xff0c;增加卷积神经网络的层数有利于提高模型的准确率#xff0c;但是深层的神经网络也变得难以训练的#xff0c;因为存在梯度消失与梯度爆炸问题。Microsoft 亚洲研究院的 Kaiming He 等人提出了一个残差学习框架#xff0c;以简化对 CNN 网络的训练。通过将… 通常来说增加卷积神经网络的层数有利于提高模型的准确率但是深层的神经网络也变得难以训练的因为存在梯度消失与梯度爆炸问题。Microsoft 亚洲研究院的 Kaiming He 等人提出了一个残差学习框架以简化对 CNN 网络的训练。通过将层重新表述为参考层输入的学习残差函数深层神经网络变得更容易优化并且可以从显著增加网络的准确性。本文主要介绍 ResNet 残差网络的基本结构Residual block及其工作原理。 目录
1 深层网络的瓶颈
2 残差块与残差网络 1 深层网络的瓶颈 在 ImageNet 挑战赛中排名靠前的团队都使用深度较深的模型一般是深度在 16 到 30 层之间的神经网络。通过叠加多个网络层神经网络能够更容易地提取出丰富的分类特征从而提高分类准确性。 但随之而来的问题是简单地增加网络层数就能获得学习效果更好的模型吗前面提到的梯度消失与梯度爆炸问题是一个阻碍。实际上神经网络的学习误差一开始会随着网络层数的增加而减少但是当层数增大到一定数量时学习误差反而会增加这种问题被称为退化Degradation problem。 下图展现了 20 层模型与 56 层模型的训练误差和测试误差随迭代次数的变化情况图片来源《Deep Residual Learning for Image Recognition》论文。 2 残差块与残差网络 在《Deep Residual Learning for Image Recognition》论文中Kaiming He 等人通过引入深度残差学习框架来解决退化问题。 残差网络使用了被称为残差块的基本结构如下图所示。 在残差块中输入 x 除了沿着主分支即经过两层线性加权与非线性激活传播之外还沿着一条捷径进行传播作为第二层非线性激活的输入这条捷径被称为 “Shortcur connection”。 假设神经网络需要学习的函数为 H(x) x对于不存在捷径的网络神经网络需要学习 F(x) H(x) x 这个函数当神经网络的层数增加时优化算法训练模型的复杂度会增加。 而引入 Shortcut connection 之后模型学习的函数变为 F(x) H(x) - x 0这只需要让 weight layer 的权重为 0 即可实现这说明残差网络更擅长学习 H(x) x 恒等映射。当神经网络的层数增加时Shortcut connection 的引入不会增额外的训练参数也不会增加训练的复杂度可以有效解决前面提到的退化问题。 残差网络Residual Networks使用了多个堆叠的残差块在《Deep Residual Learning for Image Recognition》论文中Kaiming He 等人对比了使用与未使用残差结构网络的表现网络结构如下图所示。 当残差块的输入与输出具有相同维度时x 可以直接加到 F(x) 之上当输出维度增加时可以使用 0 值填充多出来的维度也可以使用 1x1 卷积上图中用虚线连接表示。 在 ImageNet 训练集上ResNet-34 实现了比 ResNet-18 更低的误差。 【参考文献】
[1] Kaiming He, Xiangyu Zhang, Xiangyu Zhang, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.