模型压缩(0) - background

模型压缩出了一系列文章,包括 MobileNet,Xception,ShuffleNet,SqueezeNet等,对相关论文进行阅读与总结。 服务器

 

CNN模型设计研究点
  • 模型压缩:

    对pre-trained的模型进行压缩,使其变成小模型,如采用网络剪枝和量化等 网络

  • layer优化:

    采用1x1的小卷积核,可分解卷积(factorized convolution)结构,模块化结构(blocks, modules) 架构

  • 网络架构设计与优化:

    网络深度、Resnet残差链接(bypass connection, shortcut) 分布式

  • 组合优化:

    不一样超参数、网络结构、优化其等的组合优化模块化

 

 

模型压缩Background

增长网络的深度有利于提升Accuracy 学习

在Accuracy接近的状况下,参数量少的模型更有优点: 优化

  • 高效的分布式训练:

    服务器间通讯影响分布式CNN训练的computation performance, 小模型对通讯需求低 编码

  • 减小通讯开销:

    自动驾驶等应用中常常要更新模型,小的model须要的额外通讯开销小,更容易更新 spa

  • 减少内存消耗:

    利于在小内存的硬件上部署,如FPGA .net

 

常见模型压缩技术
  • 奇异值分解 (Singular Value Decomposition, SVD)
  • 网络剪枝(Network Pruning):

    网络剪枝和稀疏矩阵(调整卷积方式)

    经过dropout,L1/L2-regularization等能产生权重稀疏性的方法训练体积和密度都很大的网络,

    把网络中贡献小(也就是被稀疏过)的权重裁剪掉,至关于去除一些冗余链接,

    最后对模型作一下fine-tune,获得30%的压缩率。可是效率提升上不适合大多数通用CPU,

    由于存储不连续,索引权重时容易发生Cache miss,得不偿失。

  • 深度压缩(Deep Compression):

    网络剪枝、数字化(quantization)、Huffman编码

  • 硬件加速器 (Hardware Accelerator)

 

 

Reference

CNN网络优化学习总结——从MobileNet到ShuffleNet

相关文章
相关标签/搜索