3.3 卷积神经网络进阶-Inception-mobile_net

519 阅读3分钟

4.2.3 卷积神经网络进阶(inception-mobile-net)

  • Inception-Net

    • 工程优化 — 同样的参数数量更加有效率

      image.png

    • 深层网络遇到的问题

      • 更深的网络更容易过拟合
      • 更深的网络有更大的计算量
        • 稀疏网络虽然减少了参数但没有减少计算量
    • V1结构

      • 分组卷积

        相对于一个普通3*3的卷积核,在inception-net中采用了多种卷积核,每种卷积核都可以进行扩展(多加一些层)形成一个组,组和组之间计算就不相互交叉了。不相互交叉就能降低计算量(相当于每个组的输入都不包含其他组的输入)

        image.png

      • Inception优势

        • 一层上同时使用多种卷积核,看到各种层级的feature
        • 不同组之间的feature不交叉计算,减少了计算量
      • 卷积计算量

        • 一个卷积层计算量
         ((kw*kh)*Ci)((oW*Oh)*Co)
         kw:卷积核的宽
         kh:卷积核的高
         ow:输出图像的宽
         oh:输出图像的高
         ci:输入的通道数
         co:输出的通道数
        

        image.png

        image.png

        image.png

        我们可以继续优化Inception的参数数目和计算量,这里Inception比较高还是因为有一个5*5的卷积核,那么我们可以用1*1的卷积核去优化他,先使用1*1做非线性变换,将输入通道数减小(比如从100通道变成25通道),然后再做5*5的卷积,因为输入通道数变小了,所以参数数目和计算量肯定也就变小了

      • 用V1结构组装网络结构

        [图片上传失败...(image-6736d9-1538918313502)]

    • V2结构

      • 引入3*3视野同等卷积替换

        image.png

    • v3结构

      image.png

      - 3\*3不是最小卷积
      
      
          - 3\*3 = 1\*3 和 3\*1
          - 参数降低33%
      
    • v4结构

      • 引入skip connection

        就是残差链接(inceptionnet和resnet组合)

        image.png

  • Mobile Net

    能够保证精度损失在可控制范围之内,可以大幅度降低参数数目和计算量

    • 模型结构

      • 引入深度可分离卷积

        下左图是普通的神经网络结构,下右图是深度可分离的神经网络结构,其中BN是归一化,后面会讲

        image.png

      • 回顾InceptionNet

      • 分到极致

        首先使用1*1 的卷积核将输入变成多通道,然后一个卷积核只关注其中的一个通道,关注某个通道后生成一个通道,在将所有输出通道拼接,降低了所有卷积核对输入的一个范畴

        image.png

    • 计算量对比

      image.png

      优化比例:

      (Kw*Kh*Co*OW*Oh + Ci*Co*Ow*Oh) / (Kw*Kh*Ci*Co*OW*Oh) = 1/Ci+1/(Kw*Kh)
      

      深度可分离卷积可以大幅度降低参数数目和计算量,当然这么大幅度的降低肯定能够会带来精度的损失,但是经过试验表明,这个损失是可控的,可以控制在百分之10以内

  • 不同模型结构优劣对比

    • 效果分析

      image.png

    • 效果层次分析

      image.png

    • 效果计算量分析

      image.png

      • 横坐标:计算量

      • 纵坐标:精准率

      • 圆圈大小:参数量多少