第三周学习,ResNet+ResNext

一、ResNet

1.为解决梯度消失、梯度爆炸问题

        网络的深度对模型的性能至关重要。当增加网络层数后,网络可以进行更加复杂的特征模式的提取,获取到的图片特征信息越全,学习效果也就越好。所以当模型更深时理论上可以取得更好的结果。但是在实际的试验中发现,更深的网络其性能不一定会更好。
   一是梯度消失和梯度爆炸
梯度消失:若每一层的误差梯度小于1,反向传播时,网络越深,梯度越趋近于0
梯度爆炸:若每一层的误差梯度大于1,反向传播时,网络越深,梯度越来越大
   二是随着网络层数的增多,会带来退化问题,阻碍网络的训练。
如下图所示,随着层数的增加,预测效果反而越来越差。

         为了解决梯度消失或梯度爆炸问题,ResNet论文提出通过数据的预处理以及在网络中使用 BN(Batch Normalization)层来解决。
   为了解决深层网络中的退化问题,可以人为地让神经网络某些层跳过下一层神经元的连接,隔层相连,弱化每层之间的强联系。这种神经网络被称为 残差网络 (ResNets)。ResNet论文提出了 residual结构(残差结构)来减轻退化问题,下图是使用residual结构的卷积网络,可以看到随着网络的不断加深,效果并没有变差,而是变的更好了。

结构创新点
通过在block中加入identity map,假设之前想要学习的映射为H ( x ) H(x)H(x),那么现在可以知道H ( x ) = F ( x ) + x H(x)=F(x)+xH(x)=F(x)+x,则现在网络底层学习的映射变为了H ( x ) − x H(x)-xH(x)−x,这个部分的学习较之前更为容易。同时由于添加了short cut结构,使得整个网络在反向梯度传播的过程中梯度不至于过小为0,保证了不易出现梯度消失的问题,从而使网络深度大幅增加,使网络可以学习的特征能力大幅增强。
网络结构

 Batch Normalization

        Batch Normalization的目的是使得一批数据的特征矩阵满足均值为0,方差为1的分布规律。

下面是一个计算的例子。假设输入图像有2个通道,每个通道有两个特征图,其中表示第通道的数据,经过求均值和方差公式可以计算的到方差和均值,然后在经过Batch Normalization的计算公式可以得到新的te特征矩阵的值。

        在上图中的和初始值分别为1和0,并且其值在网络的训练过程中在反向传播过程中逐渐优化的。

需要注意的问题

   迁移学习

使用迁移学习的优势:

  1. 能够快速的训练出一个理想的结果
  2. 当数据集较小时也能训练出理想的结果

 

         conv1、conv2的角点信息和纹理信息都是比较通用的信息,在其他网络中也同样适用,因此可以将学习好的网络参数迁移到新网络中,通过这种方法可以较快的对一个网络进行训练。

二、RestNeXt

        RestNeXt是ResNet的一个小的升级,左边是ResNet的残差结构,右边是ResNeXt的结构。

 

分组卷积

三、 思考题

1. Residual learning 的基本原理?

        通过在block中加入identity map,假设之前想要学习的映射为H ( x ) H(x)H(x),那么现在可以知道H ( x ) = F ( x ) + x H(x)=F(x)+xH(x)=F(x)+x,则现在网络底层学习的映射变为了H ( x ) − x H(x)-xH(x)−x,这个部分的学习较之前更为容易。同时由于添加了short cut结构,使得整个网络在反向梯度传播的过程中梯度不至于过小为0,保证了不易出现梯度消失的问题,从而使网络深度大幅增加,使网络可以学习的特征能力大幅增强。

2、Batch Normailization 的原理,思考 BN、LN、IN 的主要区别

         针对每个神经元,使数据在进入激活函数之前,沿着通道计算每个batch的均值、方差,‘强迫’数据保持均值为0,方差为1的正态分布,避免发生梯度消失。具体来说,就是把第1个样本的第1个通道,加上第2个样本第1个通道 ...... 加上第 N 个样本第1个通道,求平均,得到通道 1 的均值(注意是除以 N×H×W 而不是单纯除以 N,最后得到的是一个代表这个 batch 第1个通道平均值的数字,而不是一个 H×W 的矩阵)。求通道 1 的方差也是同理。对所有通道都施加一遍这个操作,就得到了所有通道的均值和方差。BN的使用位置:全连接层或卷积操作之后,激活函数之前。

         1. BN是在batch上,对N、H、W做归一化,而保留通道 C 的维度。BN对较小的batch size效果不好。BN适用于固定深度的前向神经网络,如CNN,不适用于RNN;
        2. LN在通道方向上,对C、H、W归一化,主要对RNN效果明显;
        3. IN在图像像素上,对H、W做归一化,用在风格化迁移;
        4. GN将channel分组,然后再做归一化。

3、为什么分组卷积可以提升准确率?即然分组卷积可以提升准确率,同时还能降低计算量,分数数量尽量多不行吗?

        分组卷积可以减少参数量。
   分组卷积可以看成是稀疏操作,有时可以在较少参数量的情况下获得更好的效果。
   当分组数量等于输入feature map数量时,输出feature map数量也等于输入feature map数量,这时分组卷积就成了Depthwise卷积,可以使参数量进一步缩减。分组过多会导致不同组之间没有交流反而使效果变差。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值