Ternary weight networks


文章链接

Ternary weight networks​

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

Expressive ability:能够表达的滤波器更多,例如对于一个 3 × 3 3\times3 3×3的滤波器,可以有 3 3 ∗ 3 = 19683 3^{3*3}=19683 333=19683种模板,而BPWNs只有 2 3 ∗ 3 = 512 2^{3*3}=512 233=512种模板

Model compression:比BPWNs大一倍

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

Problem formulation

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

Approximated solution with threshold-based ternary function

W i t = f t ( W i ∣ Δ ) = { + 1 ,    i f W i    > Δ 0 ,    i f ∣ W i ∣ ⩽ Δ − 1 ,    i f W i    < − Δ (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  ifWi  WiWi  ><ΔΔΔ(3)

式中, Δ \Delta Δ是一个正的阈值,将 ( 3 ) (3) (3)代入 ( 2 ) (2) (2)中,可得
α ∗ , Δ ∗ = a r g m i n α ≥ 0 , Δ ≥ 0 ( ∣ I Δ ∣ α 2 − 2 ( ∑ i ∈ I Δ ∣ W i ∣ ) α + 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Δα22(iIΔWi)α+cΔ)(4)

其中, I Δ = { i ∣ ∣ W i ∣ } > Δ I_{\Delta}=\{i|\begin{vmatrix} W_i \end{vmatrix} \}>\Delta IΔ={iWi}>Δ ∣ I Δ ∣ \begin{vmatrix} I_{\Delta} \end{vmatrix} IΔ表示 I Δ I_{\Delta} IΔ中权值大于 Δ \Delta Δ的个数。 c Δ = ∑ i ∈ I Δ c W i 2 c_\Delta=\sum_{i\in {I_{\Delta}^{c}}}W_i^2 cΔ=iIΔcWi2是一个与 α \alpha α无关的常量。因此,对于一个给定的 Δ \Delta Δ α \alpha α的最优值为:
α Δ ∗ = 1 ∣ I Δ ∣ ∑ i ∈ I Δ ∣ W i ∣ (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Δ1iIΔWi(5)
( 4 ) (4) (4)式中的 Δ \Delta Δ固定, c Δ c_\Delta cΔ是一个常数可忽略,对 α \alpha α求导即可得到 ( 5 ) (5) (5)。将 ( 5 ) (5) (5)式代入 ( 4 ) (4) (4)中,可以得到一个与 Δ \Delta Δ相关的方程,简化可得:
Δ ∗ = a r g m a x Δ > 0 1 ∣ I Δ ∣ ( ∑ i ∈ I Δ ∣ W i ∣ ) 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Δ>0IΔ1(iIΔWi)2(6)
但是式 ( 6 ) (6) (6)没有一个直接的解,因此假设 W i W_i Wis是均匀分布或者正态分布的(uniform or normal distribution),为了简化计算,估计
Δ ∗ ≈ 0.7 ⋅ E ( ∣ W ∣ ) ≈ 1 n ∑ i = 1 n ∣ W i ∣ (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.7E(W)n1i=1nWi(7)
在具体的实现过程中,即先计算出网络的阈值 Δ ∗ \Delta^* Δ,利用它根据 ( 3 ) (3) (3)式把网络的权值变为 { − 1 , 0 , 1 } \{-1,0,1\} {1,0,1},对于某一层的输入 X X X,根据 ( 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

具体可参见论文
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值