【深度学习】(10)--ResNet残差网络

ResNet残差网络

ResNet 网络是在 2015年 由微软实验室中的何凯明等几位大神提出,斩获当年ImageNet竞赛中分类任务第一名,目标检测第一名。获得COCO数据集中目标检测第一名,图像分割第一名。

ResNet残差网络有两个核心特征:1. 残差结构;2. BN(Batch Normalization)

1. 传统卷积神经网络的问题

神经网络都是通过卷积层和池化层的叠加组成的。在实际的试验中发现,随着卷积层和池化层的叠加,学习效果不会逐渐变好,反而出现2个问题:

1.1 梯度消失和梯度爆炸

梯度消失:若每一层的误差梯度小于1,反向传播时,网络越深,梯度越趋近于0。

梯度爆炸:若每一层的误差梯度大于1,反向传播时,网络越深,梯度越来越大。

1.2 退化问题

由下图发现,训练的层数20层的错误率竟然比56层的错误率还要低。训练层数越多准确率反而下降了,这就是所谓的退化问题。

在这里插入图片描述

2. 解决问题

那么,我们该如何解决上述出现的问题呢?

2.1 梯度消失与爆炸

我们知道,对于解决梯度消失与爆炸问题,我们可以通过更换激活函数,比如ReLU函数。但是我们更改完激活函数之后,还是发生了梯度消失与爆炸问题,,该怎么解决呢?

为了解决梯度消失或梯度爆炸问题,论文提出通过数据的预处理以及在网络中使用 **BN(Batch Normalization)**层来解决。

2.2 退化问题

为了解决深层网络中的退化问题,可以人为地让神经网络某些层跳过下一层神经元的连接,隔层相连,弱化每层之间的强联系。这种神经网络被称为残差网络 (ResNets)

使用后结果如下图所示,随着卷积层和池化层的叠加,学习效果逐渐变好:

在这里插入图片描述

3. 残差结构

残差网络的结构有5种,分别为:

在这里插入图片描述

我们以18层结构为例,来介绍残差网络中的残差结构
在这里插入图片描述

在整个18层结构中,我们发现了残差网络由很多的小残差结构组成:

在这里插入图片描述

对于残差结构的运作:当有图片传进卷积层后,将图片复制成两份,一份直接通过“捷径”抵达卷积后出口,另一份要经过卷积层计算,最后两者进行“整合”。

所谓“整合”,即两个图片对应矩阵位置相加。那这样,图片的值不会变的很大嘛?不会发生梯度爆炸的问题吗?

由于调整权重参数时是反向传播的,使得参数在调整时,会将两个图片整合调整在一个很好的位置,不是盲目相加,能够保留下有效信息,无效信息给剔除掉。当然,相加后值肯定会变大一点点,我们就是要让他增大一点点,防止退化呀!

结构归纳

残差结构:residual结构使用了一种shortcut的连接方式,也可理解为捷径。让特征矩阵隔层相加,注意F(X)和X形状要相同,所谓相加是特征矩阵相同位置上的数字进行相加。

在这里插入图片描述

4. BN(Batch Normalization)

Batch Normalization(批量归一化)目的:使所有的feature map满足均值为0,方差为1的分布规律。

在这里插入图片描述

我们一般在构建传统卷积神经网络模型中,在传入数据图片时,都对数据进行了归一化处理:

transforms.Normalize([0.485,0.456,0.406],[0.229,0.224,0.225]

在整个卷积神经网络中,每次卷积都会得到一批特征图,既然归一化能够使所有的特征都分布在相同大小的区域内,那为什么不对特征图也归一化呢?

所以,Batch Normalization(批量归一化)就是将每批次得到的特征图都进行归一化,减少大量对模型参数微调的时间。

总结

本篇介绍了:

  1. ResNet残差网络的好处:解决梯度消失和梯度爆炸以及退化问题。
  2. ResNet残差网络有两个核心特征:1. 残差结构;2. BN(Batch Normalization)。
    1. 残差结构:防止退化。
    2. BN:减少梯度消失和梯度爆炸问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值