CNN常用技术

1. 1x1 卷积的作用

    在CNN中,卷积层主要是为了综合像素周边的信息,但1x1卷积不能综合周边信息。1x1卷积以通道为加权单位,将通道进行加权合并,用于通道升维核降维,常用于降维。总之,只希望改变通道个数时,就使用1x1卷积,需要输出多少个通道,就使用多少个1x1卷积核。

2. 3x3 卷积应用

    在CNN中,3x3卷积层是最常用的卷积层,而很少使用其他更大的卷积。大的卷积一般可以使用多个小卷积来替换,5x5卷积可以替换为2层3x3卷积层,7x7卷积可替换为3层卷积层,依次类推。

3. 批归一化BN

   在深度学习中网络很多层时,前几层的变化会经过层层传播、扩大。在训练时调整前层的权重时,很容易令后层网络的输入发生极大的变化,上述现象称为内部协变量,它导致后层的神经元出现饱和等各种问题,并给训练造成困难。BN层的主要目的是解决一般神经网络层之中的协变量偏移问题,通过加入BN层,可以一定程度抑制神经元值的内部协变量偏移,加速网络的训练。

4. ResNet

    (1) 什么是ResNet
      在添加连接之后,被跨越的那部分网络的输出意义就变成了增量(残差),换句话说,希望将哪部分的输出意义改为增量,就只需要将输入连接到输出就可以了在添加ResNet快捷连接后,最终网络的输出则为:y=subnet(X)+X , 这里的subnet指的是被连接的子模块的输出。
      (2)   什么是ResNet的快捷连接
      在ResNet模块中,最终的输出H(x)由输入x与残差模块F(x)相加得到y=F(x)+x. 因此,x与F(x)的维度必须相同,但有时F(x)与x的维度并不相同. 因此更一般的形式表达如下:y=F(x)+σ(x).也就是说,需要将x通过一个σ将x影射后成与F(x)的维度,再与F(x)相加其中σ是一个简单的、旨在与维度F(x)对齐的映射。
      (3) ResNet三种常用的连接方式
       ResNet原文中提供了三种连接方式,如下:
       a.恒等连接,即σ(x)=x .恒等连接只有x与F(x)维度一致时才能使用 
       b.零填充快捷连接,即σ(x)为"用0将x填充到与F(x)一样的维度"
       c.投影快捷连接 , 即σ(x)=wx ,假设F(x)有m个通道,x有n个通道, 则投影快捷连接可以理解为将x的n个维度重新线性组合成m个维度.
       恒等连接方式与零填充快捷方式都不需要额外的参数 ,而投影快捷则需要引入新的、待训练的参数w    
      (4) ResNet的作用
           ResNet主要用于解决网络退化的问题。
           a. 什么是网络退化
               当卷积神经网络已经达到一定的深度时,深度对于网络开始显得无力表现为随着卷积神经网络深度的加深,误差不会更加小,而是更加大。网络退化指的就是这种现象:网络的层数达到一定程度后,误差不但不降反而上升。
            b.ResNet为什么能解决网络退化
               网络退化中训练误差增加的主要原因是由求解能力引起的,当层数越来越深,参数越来越多,求解的复杂度越来越大,达到一定程度时,求解能力就跟不上了. 因此,当网络深到一定程度时,无法求得一个较好的解,效果就会比浅层网络的效果更加差而ResNet加入快捷连接后,可以使网络非常容易求得恒等网络,因为只需要被快捷连接部分的权重、阈值全为0,那么被快捷连接部分的输出为0,整体输出就与输入一致. 因此,增加一个ResNet模块,一般不会导致网络整体效果变得更差,也即解决了网络退化的问题.
       (5)加入ResNet的好处
               加入ResNet快捷连接后,网络的训练会更快效果更好 。而且网络更不容易退化,可以叠加更多的层 。
        (6)  注意事项
               加入ResNet需要注意子网络的输出必须与输入的维度对齐。如果不对齐,则在合并时需要通过一些方法把输入(或子网络的输出)的维度改到两者对齐 。

5 inception

     (1) Inception模块的思想
               Inception用多个子模块(卷积、池化)对输入进行处理,再将结果合并作为输出.。Inception模块并不是全连接,它属于稀疏连接。
     (2)什么是Inception模块
              日常所用、所说的Inception模块一般指的是GoogLeNet的Inception模块 . GoogLeNet的Inception模块主要在naive版本的基础上加入1×1卷积层对各个模块进行降维. 其中,卷积之前的1×1卷积是为了对通道进行降维,以减少之后的卷积模块的运算量.而池化之后加入的1×1卷积是为了对池化结果的输出通道进行降维. 加入降维的其中一个好处是,使得输入与输出的通道可以保持一致.如果不加入降维,那么光是池化部分的输出,就与输入的通道数一致,则总的输出通道肯定比输入通道大.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值