【卷积神经网络】ResNets 残差网络

通常来说,增加卷积神经网络的层数有利于提高模型的准确率,但是深层的神经网络也变得难以训练的,因为存在梯度消失与梯度爆炸问题。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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洋洋Young

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值