权重压缩:三值神经网络
背景
卷积神经网络(Convolutional Neural Network,CNN)尤其适合于目标识别、分类、检测及图像分割等计算机视觉应用。 典型的模型有数百万参数并运算量大;例如,AlexNet有6100万参数(浮点数权值共占用249MB存储空间),分类一张图片需要15亿高精度运算。 所以为降低CNN规模和使用资源,现在有模型修剪(model pruning,去掉值较小的权值)和权值压缩(weight compression,利用少数几位量化权值) 两种方法。
权值压缩:二值神经网络
三值神经网络
重要点:网络中的权重更新使用三值{+1,0,-1};并最小化全精度权重W和三值权重W的欧式距离。
原理:
- 原始问题:设置传播中的权重为三值,用三值的权重逼近全精度权重WWW, 三值权重WtW^tWt;目标:W≈αWtW ≈ \alpha W^tW≈αWt
KaTeX parse error: No such environment: equation at position 45: …^{t*}=
\begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲
\mathop{\a…
传播过程:
(2){Z=X∗W≈X∗(αWt)=(αX)⨁WtXnext=g(Z)
\begin{cases}
Z = X*W \approx X*(\alpha W^t)=(\alpha X) \bigoplus W^t \\
X^{next} = g(Z)
\end{cases}
\tag{2}
{Z=X∗W≈X∗(αWt)=(αX)⨁WtXnext=g(Z)(2)
2. 使用特定阈值来设置权重WitW^t_iWit 为 {+1, 0, 1}, 寻找一个适当的阈值Δ\DeltaΔ和α\alphaα来拟合上述问题;这样用阈值和WiW_iWi来确定权重WtW^tWt,简化了计算量;而且使用+1/-1/0更使计算从原先的乘法变成加法(+1/-1直接是本身的加减);此外Δ\DeltaΔ和α\alphaα都是正数。
(3)Wit=ft(Wi∣Δ)={+1, if Wi >Δ 0, if ∣Wi∣≤Δ−1, if Wi <−Δ
W^t_i = f_t(W_i|\Delta) =
\begin{cases}
+1, if W_i > \Delta \\
0, if |W_i| \leq \Delta \\
-1, if W_i < -\Delta \\
\end{cases}
\tag{3}
Wit=ft(Wi∣Δ)=⎩⎪⎨⎪⎧+1, if Wi >Δ 0, if ∣Wi∣≤Δ−1, if Wi <−Δ(3)
公式1的优化问题化解为如下:
从而α,Δ\alpha, \Deltaα,Δ 解:
(5)αΔ∗=1∣IΔ∣(∑i∈IΔ∣Wi∣)
\alpha_\Delta^* = \frac{1}{|I_\Delta|}(\sum_ {i \in I_\Delta}{|W_i|}) \\ \tag{5}
αΔ∗=∣IΔ∣1(i∈IΔ∑∣Wi∣)(5)
KaTeX parse error: No such environment: equation at position 20: …lta^* = \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ \mathop{\arg\m…
最终确定一个阈值Δ\DeltaΔ、α\alphaα 来构建三值神经网络;根据W具体的分布情况来确定阈值Δ\DeltaΔ:
均匀分布:在∣Wi∣|W_i|∣Wi∣大于阈值的条件下 :$\sum_{i \in I_\Delta}{W_i} $ 约等于均值(a+Δ2\frac{a+\Delta}{2}2a+Δ)*数量(∣IΔ∣|I_\Delta|∣IΔ∣)
正态分布:
最后本文章作者根据经验:
确定三值网络中的阈值与W期望的关系Δ∗/E(∣W∣)\Delta^*/E(|W|)Δ∗/E(∣W∣)::Δ∗=0.7∗E(W)≈0.7n∑i=1n∣Wi∣\Delta^* = 0.7 * E({W}) \approx \frac{0.7}{n} \sum_{i=1}^{n}{|W_i|} Δ∗=0.7∗E(W)≈n0.7i=1∑n∣Wi∣
均值分布:Δ∗/E(∣W∣)=23≈0.66\Delta^*/E(|W|) = \frac{2}{3} \approx 0.66Δ∗/E(∣W∣)=32≈0.66 (注WWW在[-a,a]均匀取值,均值为E(∣W∣)=a/2E(|W|)= a/2E(∣W∣)=a/2)
正态分布:Δ∗/E(∣W∣)=0.6σ2σ/2π≈0.75\Delta^*/E(|W|) = \frac {0.6\sigma} {2\sigma/\sqrt{2\pi}} \approx 0.75 Δ∗/E(∣W∣)=2σ/2π0.6σ≈0.75 (注:E(∣W∣)=2σ/2π)E(|W|)=2\sigma/\sqrt{2\pi} )E(∣W∣)=2σ/2π)