文章目录

  • Ternary weight networks​
    • Problem formulation
    • Approximated solution with threshold-based ternary function
    • Training with stochastic gradient descent method
    • Model compression and run time usage
    • Experiments

文章链接

Ternary weight networks​

主要提出了一个Ternary weight networks(TWNs),它将网络的权值限制为{−1,0,1}\{-1, 0, 1\}{−1,0,1}。并且把它的性能和binary precision weight networks(BPWNs)和full precision weight networks(FPWNs)做了比较。

Expressive ability:能够表达的滤波器更多,例如对于一个3×33\times33×3的滤波器,可以有33∗3=196833^{3*3}=1968333∗3=19683种模板,而BPWNs只有23∗3=5122^{3*3}=51223∗3=512种模板

Model compression:比BPWNs大一倍

Computation requirement:就计算量而言,由于0是不需要任何的乘法计算的,所以计算量和BPWNs相同。

Problem formulation

目标:最小化原始的权重W和乘以一个非负的尺度因子α\alphaα的三值化之后的权重WtW^tWt之间的欧拉距离(Euclidian distance),即:
Cannot read property 'type' of undefined
这里n是滤波器的大小。TWNs在前向时的传播如下所示;
Cannot read property 'type' of undefined
其中,XXX是一个block的输入,∗*∗表示卷积运算或者inner product,ggg是非线性激活函数,⊕\oplus⊕表示inner product或者是不做乘法的卷积运算。XnextX^{next}Xnext表示这个block的输出,或者下一个block的输入。

Approximated solution with threshold-based ternary function

Wit=ft(Wi∣Δ)={+1,ifWi>Δ0,if∣Wi∣⩽Δ−1,ifWi<−Δ(3)W_i^t=f_t(W_i |\Delta)= \begin{cases} +1,&\ \ if &W_i\ \ &>&\Delta \\ 0,&\ \ if &\begin{vmatrix} W_i \end{vmatrix}&\leqslant &\Delta\\ -1,&\ \ if &W_i\ \ &<-&\Delta \end{cases} \tag{3} Wit​=ft​(Wi​∣Δ)=⎩⎪⎨⎪⎧​+1,0,−1,​  if  if  if​Wi​  ∣∣​Wi​​∣∣​Wi​  ​>⩽<−​ΔΔΔ​(3)

式中,Δ\DeltaΔ是一个正的阈值,将(3)(3)(3)代入(2)(2)(2)中,可得
α∗,Δ∗=argminα≥0,Δ≥0(∣IΔ∣α2−2(∑i∈IΔ∣Wi∣)α+cΔ)(4)\alpha^*,\Delta^*=\mathop {argmin}_{\alpha \geq 0, \Delta \geq 0}(\begin{vmatrix} I_{\Delta} \end{vmatrix}\alpha^2-2(\sum_{i \in I_{\Delta}}\begin{vmatrix} W_i \end{vmatrix})\alpha+c_\Delta) \tag{4} α∗,Δ∗=argminα≥0,Δ≥0​(∣∣​IΔ​​∣∣​α2−2(i∈IΔ​∑​∣∣​Wi​​∣∣​)α+cΔ​)(4)

其中,IΔ={i∣∣Wi∣}>ΔI_{\Delta}=\{i|\begin{vmatrix} W_i \end{vmatrix} \}>\DeltaIΔ​={i∣∣∣​Wi​​∣∣​}>Δ,∣IΔ∣\begin{vmatrix} I_{\Delta} \end{vmatrix}∣∣​IΔ​​∣∣​表示IΔI_{\Delta}IΔ​中权值大于Δ\DeltaΔ的个数。cΔ=∑i∈IΔcWi2c_\Delta=\sum_{i\in {I_{\Delta}^{c}}}W_i^2cΔ​=∑i∈IΔc​​Wi2​是一个与α\alphaα无关的常量。因此,对于一个给定的Δ\DeltaΔ,α\alphaα的最优值为:
αΔ∗=1∣IΔ∣∑i∈IΔ∣Wi∣(5)\alpha_\Delta^*={1\over\begin{vmatrix} I_{\Delta} \end{vmatrix}}\sum_{i \in I_{\Delta}}\begin{vmatrix} W_i \end{vmatrix} \tag{5} αΔ∗​=∣∣​IΔ​​∣∣​1​i∈IΔ​∑​∣∣​Wi​​∣∣​(5)
将(4)(4)(4)式中的Δ\DeltaΔ固定,cΔc_\DeltacΔ​是一个常数可忽略,对α\alphaα求导即可得到(5)(5)(5)。将(5)(5)(5)式代入(4)(4)(4)中,可以得到一个与Δ\DeltaΔ相关的方程,简化可得:
Δ∗=argmaxΔ>01∣IΔ∣(∑i∈IΔ∣Wi∣)2(6)\Delta^*=\mathop {argmax}_{\Delta > 0}{{1\over\begin{vmatrix} I_{\Delta} \end{vmatrix}}(\sum_{i \in I_{\Delta}}\begin{vmatrix} W_i \end{vmatrix})^2} \tag{6} Δ∗=argmaxΔ>0​∣∣​IΔ​​∣∣​1​(i∈IΔ​∑​∣∣​Wi​​∣∣​)2(6)
但是式(6)(6)(6)没有一个直接的解,因此假设WiW_iWi​s是均匀分布或者正态分布的(uniform or normal distribution),为了简化计算,估计
Δ∗≈0.7⋅E(∣W∣)≈1n∑i=1n∣Wi∣(7)\Delta^* \approx 0.7\cdot E(\begin{vmatrix} W \end{vmatrix}) \approx{1\over n}\sum_{i=1}^n\begin{vmatrix} W_i \end{vmatrix} \tag{7} Δ∗≈0.7⋅E(∣∣​W​∣∣​)≈n1​i=1∑n​∣∣​Wi​​∣∣​(7)
在具体的实现过程中,即先计算出网络的阈值Δ∗\Delta^*Δ∗,利用它根据(3)(3)(3)式把网络的权值变为{−1,0,1}\{-1,0,1\}{−1,0,1},对于某一层的输入XXX,根据(2)(2)(2)式把它乘以α\alphaα得到αX\alpha XαX作为新的输入,然后进行前向的传播。

Training with stochastic gradient descent method

使用了SGD训练TWNs,三值化的权重在前向传播和反向传播时使用,但是在参数更新时不使用,另外,还使用了Batch Normalization、learning rate scaling、momentum。

Model compression and run time usage

相对于float和double精度的模型,就运行时间而言,该模型可达到16倍或者32倍的压缩倍率。

Experiments

具体可参见论文

Ternary weight networks相关推荐

  1. Ternary weight networks 论文笔记

    前言 就目前而言,深度神经网络的层数和训练时间变得越来越多.一方面,人们想要在处理器上面下功夫,但是处理器的处理速度也十分有限.造成目前一个比较深的神经网络的训练时间有时候往往需要一到两周,基于目前的 ...

  2. 权值简化(1):三值神经网络(Ternary Weight Networks)

    三值神经网络: 本文是对中科院两位科研工作者的文章的理解翻译: 就目前而言,深度神经网络的层数和训练时间变得越来越多.一方面,人们想要在处理器上面下功夫,但是处理器的处理速度也十分有限.造成目前一个比 ...

  3. 二值网络--Training Binary Weight Networks via Semi-Binary Decomposition

    Training Binary Weight Networks via Semi-Binary Decomposition ECCV2018 CNN模型的压缩或加速总体上分为三类: pruning-b ...

  4. 三值网络--Trained Ternary Quantization

    Trained Ternary Quantization ICLR 2017 https://github.com/TropComplique/trained-ternary-quantization ...

  5. deeplearning模型量化实战

    deeplearning模型量化实战 MegEngine 提供从训练到部署完整的量化支持,包括量化感知训练以及训练后量化,凭借"训练推理一体"的特性,MegEngine更能保证量化 ...

  6. 【知识星球】模型量化从1bit到8bit,二值到三值

    欢迎大家来到<知识星球>专栏,这里是网络结构1000变小专题,模型量化是当前工业界的核心技术,我们最近在知识星球更新相关的内容. 作者&编辑 | 言有三 1 1bit量化-二值网络 ...

  7. 工程之道,深度学习的工业级模型量化实战

    MegEngine 提供从训练到部署完整的量化支持,包括量化感知训练以及训练后量化,凭借"训练推理一体"的特性,MegEngine更能保证量化之后的模型与部署之后的效果一致.本文将 ...

  8. 低精度神经网络:从数值计算角度优化模型效率

    作者丨林野 学校丨东北大学自然语言处理实验室2019级博士生 研究方向丨机器翻译.模型压缩.模型加速 背景 近年来,随着人工智能的不断兴起,神经网络已经在语音识别.计算机视觉和自然语言处理领域等多个任 ...

  9. 超全总结:神经网络加速之量化模型 | 附带代码

    作者丨郝泽宇 学校丨西安交通大学人机所硕士生 研究方向丨深度神经网络压缩 鸣谢 | XJTU @魏亚东 I.C. @董豪 量化模型(Quantized Model)是一种模型加速(Model Acce ...

最新文章

  1. 清华朱民:数据「资产化」,将是大变革!
  2. 机器学习的中流砥柱:用于模型构建的基础架构工具有哪些?
  3. int/double/string使用
  4. 电视机检测大巴徘徊在英格兰的大街上
  5. OVS DPDK--数据结构关系(七)
  6. 自带的数据集_机器学习练习数据哪里找?两行代码搞定!
  7. Leetcode-88:合并两个有序数组
  8. 语音识别现状与工程师必备技能
  9. python常用包有哪些品牌_python 常用包总结
  10. 腾讯2018春招笔试题,翻转数列
  11. 文本的编码格式: ANSI、ASCII、UTF8、UNICODE、GB2312、UCS-2、UTF16
  12. Java完全自学手册pdf,由浅入深,循序渐进(1)
  13. 九橡项目工时管理系统部署笔记
  14. Java项目开发-基于Java的宠物领养管理系统(附源码)
  15. 在线直播系统源码,进入新的界面后自动刷新内容
  16. 基于php061在线问卷调查系统
  17. 化繁为简的终极指南化繁为简的终极指南
  18. 施一公:如何做一名优秀的博士生
  19. 日语学习的实用网址大全!
  20. cartographer中分支定界法理解——为什么能保证上界

热门文章

  1. 今日小程序推荐:纸塘-这个壁池真高清!
  2. [Unity Mirror] FAQ
  3. sdn网络搭建以及负载均衡
  4. python基础 日常总结——列表(二)
  5. Auto.js实现自动删除朋友圈照片
  6. Oracle域完整性约束
  7. win10资源管理器窗口无法缩小
  8. 用户扫码微信支付后自动默认关注微信公众号
  9. 关于Mysql插入繁体字等特殊字符显示异常及查询异常
  10. 如何查看mysql技术文档_数据库