高效神经网络设计II

发布 : 2020-01-29 分类 : 深度学习 浏览 :

模型设计

卷积方式的使用和设计

  • 通道拆分:7*7->1*7+7*1,7*7*7->1*1*7+1*7*1+7*1*1

  • 提升单层通道利用率

    • 特征通道补偿:输入通道取反和输入通道进行concat(CReLU)
    • 密集连接网络:DenseNet
  • 1通道/2.3多尺度分组卷积:

    • Depthwise conv + Pointwise conv
    • BigLittleNet:将通道分为高分辨率网络和低分辨率网络
    • Octave Convolution:将通道分解为低频+高频分量,低频使用更小的分辨率
  • 多尺度卷积核与感受野卷积

    • Squeezenet:使用1*13*3的卷积核

    1580300524822.png

  • MixNet:分组卷积时使用不同大小的卷积核

    1580300587261.png

  • ScaleNet:使用不同大小的特征图

1580300636636.png

  • 分数+整数的分组卷积
    • DSConv:VQK只有整数值,不可训练,从预训练模型中来。KDS是浮点数值,可训练。KDS相当于学习VQK带来的残差。

1580301018628.png

  • 剪枝与分组卷积
    • condensenet:去除权重小的层,重组,做分组卷积

1580301281521.png

  • 可学习的分组
    • FLGC、DGC

剪枝

  • 剪枝维度

1580301574844.png
通道级别的最常用

  • Pruning Filters
  • 根据卷积核的L1Norm(即绝对值)判断是否裁剪掉卷积核
  • ThiNet:使用网络下一层来指导当前层的剪枝,通过最小化剪枝前后的下一层网络的输出。
  • Network Slimming:利用BN中的缩放因子来对不重要的通道进行裁剪

量化

  • 二值量化:Binarized Neural Networks(BNN)

    权重和每层的激活值全部二值化
  • 三值量化:Ternary weight networks

    最小化全精度权值W和三元权值$W^t$之间的欧氏距离
$$
 \left\{\begin{array}{rl}
 {\alpha^{*}, \mathbf{W}^{t *}=} & {\underset{\alpha, \mathbf{W}^{t}}{\arg \min } J\left(\alpha, \mathbf{W}^{t}\right)=\left\|\mathbf{W}-\alpha \mathbf{W}^{t}\right\|_{2}^{2}} \\
 {} & {\text { s.t. } \quad \alpha \geq 0, \mathbf{w}_{i}^{t} \in\{-1,0,1\}, i=1,2, \ldots, n}
 \end{array} \quad \mathbf{W}_{i}^{t}=f_{t}\left(\mathbf{W}_{i} | \Delta\right)=\left\{\begin{aligned}
 +1, & \text { if } \mathbf{W}_{i}>\Delta \\
 0, & \text { if }\left|\mathbf{W}_{i}\right| \leq \Delta \\
 -1, & \text { if } \mathbf{W}_{i}<-\delta
 \end{aligned}\right.\right.
 $$
  • Google的8位量化

    前向传播中使用量化,反向时仍然按照全进度的浮点进行计算

1580304949280.png

  • NVIDIA的8位量化

    根据每一层的校准集上的激活值确定阈值T

1580305026789.png

  • 混合精度量化HAQ (AutoML模型)
  • 剪枝与量化的结合:Deep Compression

1580305126891.png

知识蒸馏

  • teacher模型+更小的模型(studnet模型)

1580305234095.png

  • FitNet:比较浅而宽的teacher模型的知识迁移到更窄更深的student模型

1580305327225.png

  • ProjectNet:同时训练一个大模型和一个小模型,实现高比率的压缩
    $$
    \mathcal{L}(\theta, p)=\lambda_{1} \cdot \mathcal{L}_{\theta}(.)+\lambda_{2} \cdot \mathcal{L}^{p}(.)+\lambda_{3} \cdot \widehat{\mathcal{L}}^{p}(.)
    $$

1580305417713.png

  • 量化与蒸馏的结合

    teacher模型是一个全精度模型,Apprentice模型是一个低精度模型

1580305523600.png

  • 协同学习

动态推理

  • BranchyNet:不同难度的样本,根据累积的熵来决定是否提前退出inference

1580305673573.png

  • Blockdrop:训练一个网络来决定每一个block是否drop的概率

1580305711353.png

参考

本文作者 : HeoLis
原文链接 : http://ishero.net/%E9%AB%98%E6%95%88%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E8%AE%BE%E8%AE%A1II.html
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

学习、记录、分享、获得

微信扫一扫, 向我投食

微信扫一扫, 向我投食