【论文阅读笔记】Trained Ternary Quantization

论文发布时间:2016-12
论文地址:https://arxiv.org/pdf/1612.01064.pdf

全文概括

  TTQ只量化权重,该方法将权重量化成三元,即2-bit。
  与其他方法不同的是,该方法的尺度因子更具有“包容性”,不是某层权重元素绝对值的均值 α l = ∑ ∣ w ∣ c o u n t l \alpha_l=\sum\frac{|w|}{count_l} αl=countlw,而是将正负尺度因子设定为参数(正负尺度都大于零),通过反向传播学习获得。即从 { − α , 0 , α } ⟶ { − W l n , 0 , W l p } \{ -\alpha,0,\alpha\}\longrightarrow\{-W_l^n,0,W_l^p\} {α,0,α}{Wln,0,Wlp}

  提出了启发性的稀疏化思想:将最大值的 t t t( t ∈ ( 0 , 1 ) t\in(0,1) t(0,1) )作为判断稀疏的阈值,即 w q = 0 ; i f   w r ≤ ∣ t w m a x ∣ w_q=0; if\ w_r \leq |tw_{max}| wq=0;if wrtwmax t t t是超参数。

  提出了新的训练结构,其每层的两个尺度因子,直接通过网络模型反向传播学习,而不是通过学习网络参数后统计得到。即反向传播有两条路劲,一条指向全精度权重以学习参数分布,一条指向尺度因子以学习量化“边界”

  得到一个结论:第一个卷积层量化后,两个尺度因子变小,稀疏性更低;而最后一个卷积层和全连接层量化后,两个尺度因子变大,稀疏性更高。(个人猜测,第一层是因为要传播信息,所以分布比较紧凑;最后一层是因为要进行分类,所以大值与小值差距较大)

  对尺度因子进行训练的好处在于,正负尺度因子的不对称使得模型能力更强,且针对所有层有一个常数稀疏r,调整超参数r可以调整量化阈值,能够获得不同稀疏度的三值网络。


简介

  原来的三元权重网络, { − 1 , 0 , 1 } \{-1,0,1\} {1,0,1} { − E , 0 , E } \{-E,0,E\} {E,0,E}都不是通过学习得到的,而是粗精度地取符号。在本文的三元权重网络,每层有两个参数,得到的网络权重为 { − W l n , 0 , W l p } \{-W_l^n,0,W_l^p\} {Wln,0,Wlp}

相关网络
Binary Neural Network(BNN)
  该方法使用类似概率的方法将 32-bit 的权重转成 二值/三值 权重: w b ∼ B e r n o u l l i ( w ^ + 1 2 ) ∗ 2 − 1 w^b\sim Bernoulli(\frac{\hat{w}+1}2)*2-1 wbBernoulli(2w^+1)21 w t ∼ B e r n o u l l i ( ∣ w ^ ∣ ) ∗ s i g n ( ∣ w ^ ∣ ) w^t\sim Bernoulli(|\hat{w}|)*sign(|\hat{w}|) wtBernoulli(w^)sign(w^)  其中, w ^ \hat{w} w^表示全精度权重。

DoREFA-Net
w b = E ( ∣ w ^ ∣ ) ∗ s i g n ( w ^ ) w^b=E(|\hat{w}|)*sign(\hat{w}) wb=E(w^)sign(w^)  其中, E ( ∣ w ^ ∣ ) E(|\hat{w}|) E(w^)表示权重绝对值的平均值。

Ternary Weight Networks(TWN)
w l t = { W l w l ^ &gt; Δ l 0 ∣ w l ^ ∣ ≤ Δ l − W l w ^ l &lt; − Δ l w^t_l=\begin{cases}W_l&amp;\hat{w_l}&gt;\Delta_l \\ 0 &amp; |\hat{w_l}|\leq \Delta_l \\ -W_l &amp;\hat{w}_l&lt;-\Delta_l\end{cases} wlt=Wl0Wlwl^>Δlwl^Δlw^l<Δl
Δ l = 0.7 ∗ E ( ∣ w l ^ ∣ ) \Delta_l=0.7*E(|\hat{w_l}|) Δl=0.7E(wl^) W l = E i ∈ { i ∣ w l ^ &gt; Δ } ( ∣ w l ( i ) ^ ∣ ) W_l=\mathop{E}\limits_{i\in\{i|\hat{w_l}&gt;\Delta\}}(|\hat{w_l(i)}|) Wl=i{iwl^>Δ}E(wl(i)^)


方法介绍

  在前向传播时,权重量化如下: w l t = { W l p w l ^ &gt; Δ l 0 ∣ w l ^ ∣ ≤ Δ l − W l n w ^ l &lt; − Δ l w^t_l=\begin{cases}W_l^p&amp;\hat{w_l}&gt;\Delta_l \\ 0 &amp; |\hat{w_l}|\leq \Delta_l \\ -W_l^n &amp;\hat{w}_l&lt;-\Delta_l\end{cases} wlt=Wlp0Wlnwl^>Δlwl^Δlw^l<Δl
  求导如下: ∂ L ∂ W l p = ∑ i ∈ I l p ∂ L ∂ w l t ( i ) , ∂ L ∂ W l n = ∑ i ∈ I l n ∂ L ∂ w l t ( i ) \frac{\partial L}{\partial W_l^p}=\sum\limits_{i\in I^p_l}\frac{\partial L}{\partial w_l^t(i)},\frac{\partial L}{\partial W_l^n}=\sum\limits_{i\in I^n_l}\frac{\partial L}{\partial w_l^t(i)} WlpL=iIlpwlt(i)LWlnL=iIlnwlt(i)L  其中, I l p = { i ∣ w l ^ ( i ) &gt; Δ l } I_l^p=\{i|\hat{w_l}(i)&gt;\Delta_l\} Ilp={iwl^(i)>Δl} I l n = { i ∣ w l ^ ( i ) &lt; Δ l } I_l^n=\{i|\hat{w_l}(i)&lt;\Delta_l\} Iln={iwl^(i)<Δl}

  全精度权重的求导如下: ∂ L ∂ w l ^ = { W l p ∗ ∂ L ∂ w l t w ^ l &gt; Δ l 1 ∗ ∂ L ∂ w l t ∣ w l ^ ∣ ≤ Δ l W l n ∗ ∂ L ∂ w l t w ^ l &lt; − Δ l \frac{\partial L}{\partial \hat{w_l}}=\begin{cases}W_l^p*\frac{\partial L}{\partial w_l^t} &amp; \hat{w}_l&gt;\Delta_l \\ 1* \frac{\partial L}{\partial w_l^t} &amp;|\hat{w_l}|\leq \Delta_l \\ W_l^n*\frac{\partial L}{\partial w_l^t} &amp; \hat{w}_l&lt;-\Delta_l \end{cases} wl^L=WlpwltL1wltLWlnwltLw^l>Δlwl^Δlw^l<Δl

  阈值: Δ l = t ∗ m a x ( ∣ w ^ ∣ ) \Delta_l=t*\mathop{max}(|\hat{w}|) Δl=tmax(w^)  在 CIFAR-10数据集中, t 设为 0.05 0.05 0.05


实验

CIFAR-10

  初始学习率设为 0.1 0.1 0.1,在80、120、300个周期时乘以 0.1 0.1 0.1;L2正则化权重衰减设为 0.0002 0.0002 0.0002。一般 160 160 160个周期就能收敛。
在这里插入图片描述
在这里插入图片描述

ImageNet

  batch_size设为128;初始学习率设为10-4,每56个周期乘以0.2;L2权重衰减设为5*10-6;大概在64个周期时,就比其他 low-bit 网络要好了。
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值