zoukankan      html  css  js  c++  java
  • 最新分类网络和模型压缩网络简记

    分类的深度网络最新的两个注意点:

    1、SENet(Squeeze-and-Excitation Networks)
    - 论文的动机是从特征通道之间的关系入手,希望显式地建模特征通道之间的相互依赖关系。另外,没有引入一个新的空间维度来进行特征通道间的融合,而是采用了一种全新的“特征重标定”策略。具体来说,就是通过学习的方式来自动获取到每个特征通道的重要程度,然后依照这个重要程度去增强有用的特征并抑制对当前任务用处不大的特征,通俗来讲,就是让网络利用全局信息有选择的增强有益feature通道并抑制无用feature通道,从而能实现feature通道自适应校准。
    - 核心:挤压和激励

    2、Residual Attention Network
    - 可堆叠的网络结构,堆叠Residual Attention Module结构
    - 基于Attention的残差学习方式。Attetion机制:下采样和上采样而已

    图像分类网络发展:
    AlexNet
    ZFnet
    VGG Net
    GoogleNet
    ResNet
    DenseNet
    SENet(new)
    Residual Attention Network(new)

    网络参数优化和模型压缩:

    SqueezeNet
    1、常用的模型压缩技术有:
    (1)奇异值分解(singular value decomposition (SVD))1
    (2)网络剪枝(Network Pruning)2:使用网络剪枝和稀疏矩阵
    (3)深度压缩(Deep compression)3:使用网络剪枝,数字化和huffman编码
    (4)硬件加速器(hardware accelerator)4
    2、由于超参数繁多,深度神经网络具有很大的设计空间(design space)。通常进行设计空间探索的方法有:
    (1)贝叶斯优化
    (2)模拟退火
    (3)随机搜索
    (4)遗传算法
    3、使用以下三个策略来减少SqueezeNet设计参数
    (1)使用1∗1卷积代替3∗3 卷积:参数减少为原来的1/9
    (2)减少输入通道数量:这一部分使用squeeze layers来实现
    (3)将欠采样操作延后,可以给卷积层提供更大的激活图:更大的激活图保留了更多的信息,可以提供更高的分类准确率
    4、the fire module结构


    MobileNetV1:
    1、将标准卷积分解成深度卷积和逐点卷积,大幅降低参数量和计算量。
    标准卷积:输入的第m个通道对应第n个卷积核的m通道,将各通道计算结果相加,得到输出结果的第n个通道。(每三相加)
    深度卷积:输入中第m个通道作用第m个深度卷积核,产生输出特征内的第m个通道。(每跳三相加)
    2、网络结构:
    3×3 Depthwise Conv(Conv dw) -> BN -> ReLU -> 1*1 Conv -> BN -> ReLU
    比标准卷积层多了1×1 Conv,
    3、宽度因子,用于控制输入和输出的通道数;分辨率因子,用于控制输入的分辨率。


    MobileNetV2:
    加入了线性bottlenecks和反转残差模块构成了高效的基本模块
    MobileNetV2:
    mobilenetv1:           dw -> pw  -RelU>
    mobilenetv2: pw -ReLU> dw -> pw -Linear>
    v2前面多个pw是为了提升通道数,获取更多特征。最后采用linear目的使防止relu破换特征。


    MobileNetV3:
    1、综合了以下三种模型的思想:MobileNetV1的深度可分离卷积(depthwise separable convolutions)、MobileNetV2的具有线性瓶颈的逆残差结构(the inverted residual with linear bottleneck)和MnasNet的基于squeeze and excitation结构的轻量级注意力模型。
    2、互补搜索技术组合:由资源受限的NAS执行模块级搜索,NetAdapt执行局部搜索。
    3、网络结构改进:将最后一步的平均池化层前移并移除最后一个卷积层,引入h-swish激活函数。


    ShuffleNet:
    1、群卷积(通道混洗shuffle unit)和深度可分卷积


    CondenseNet:
    1、引入卷积group操作,而且在1*1卷积中引入group操作时做了改进。
    2、训练一开始就对权重做剪枝,而不是对训练好的模型做剪枝。
    3、在DenseNet基础上引入跨block的dense连接。

    总结:

    从SqueezeNet开始模型的参数量就不断下降,为了进一步减少模型的实际操作数(MAdds),MobileNetV1利用了深度可分离卷积提高了计算效率,而MobileNetV2则加入了线性bottlenecks和反转残差模块构成了高效的基本模块。随后的ShuffleNet充分利用了组卷积和通道shuffle进一步提高模型效率。CondenseNet则学习保留有效的dense连接在保持精度的同时降低,ShiftNet则利用shift操作和逐点卷积代替了昂贵的空间卷积。

    网络简化的发展历程:
    多个不同尺寸的卷积核,提高对不同尺度特征的适应能力。
    PW 卷积,降维或升维的同时,提高网络的表达能力。
    多个小尺寸卷积核替代大卷积核,加深网络的同时减少参数量。
    精巧的 Bottleneck 结构,大大减少网络参数量。
    精巧的 Depthwise Separable Conv 设计,再度减少参数量。

    注意点:

    Pointwise Convolution,俗称叫做 1x1 卷积,简写为 PW,主要用于数据降维,减少参数量。
    也有使用 PW 做升维的,在 MobileNet v2 中就使用 PW 将 3 个特征图变成 6 个特征图,丰富输入数据的特征。
    使用多个小卷积核替代大卷积核 的方法,这就是 Inception v3。
    Xception(极致的 Inception):先进行普通卷积操作,再对 1×11×1 卷积后的每个channel分别进行 3×33×3 卷积操作,最后将结果 concat。

  • 相关阅读:
    MySQL与OLAP:分析型SQL查询最佳实践探索
    创建与删除索引
    第三方推送-个推使用
    test
    图床_搭建本地yum仓库及自制rpm包(无需镜像)
    图床_有趣的linux命令行工具-lolcat
    图床_fdisk一键操作分区-无需脚本
    图床_将你的CentOS 7 配置yum源
    图床_使用Putty远程连接管理Linux实践
    图床_使用Xshell远程连接管理Linux实践
  • 原文地址:https://www.cnblogs.com/hotsnow/p/11015085.html
Copyright © 2011-2022 走看看