Max Welling团队2017年5月发布在arXiv sta.ML。
[abstract]考虑深度学习中的压缩和计算效率问题。采用以bayesian的视角,通过先验分布引入稀疏性,进而对网络进行剪枝。(这确实是最principled的方式,真的是effective的方式吗?)文章的两个新颖之处在于,使用的层次先验最后剪枝的是节点(结构),而非单个权重(参数);使用后验不确定性确定最优的固定点准确率来编码权重。
从压缩率来看达到最新水平,与那些专门设计的优化速度/能源效率的模型水平差不多。
[key points]为网络权重参数w设置0均值高斯先验,讨论了高斯先验的scale的两种先验分布。变分贝叶斯估计,全贝叶斯学习。目的是让网络的各层的(有效)size减小。
背景:深度神经网络 模型压缩
深度学习的复杂的网络在实际应用中意味着 计算、带宽的巨大消耗,以及延时。
Alexnet的卷积层占4%的参数,91%的计算量。
现有方法大多数是减少网络结构,同时减少每个权重的有效的固定点precision(?)。
减少网络结构。NN有很严重的参数冗余。网络剪枝减掉不必要的连接。用一个大网络来训练一个小网络。
从bayesian视角看,网络剪枝 与 减小权重的bit precision 是aligned。bayesian方法搜索最优的模型结构(先验 稀疏性 剪枝),同时 通过 bit back argument 奖励参数的不确定性后验移除不重要的bit。
变分bayes, MDL
N
个输入-输出数据点构成的数据集
后验分布
p(w|D)=p(D|w)p(w)/p(D)
是intractable,我们用一个固定形式的近似后验
qϕ(w)
,
ϕ
是变分参数。
数据拟合误差error cost
LE=Eqϕ(w)[logp(D|w)]
模型复杂度cost
LC=Eqϕ(w)[logp(w)]+H(qϕ(w))
evidence下界ELBO/正变分自由能量
L(ϕ)=LE+LC
表示出了通讯的最小代价。
一种方法,为权重引入先验得到稀疏性。
另一种方法,
通过 qϕ(w)噪声权重编码,利用熵H项的bits−backargument.
无限准确权重 H(δ(w))=−inf
实践中 噪声权重编码的神经网络的数据拟合误差项是intractable的,常采用蒙特卡洛积分。 连续的 qϕ(w) 可以使用reparametrization技巧,不是从 qϕ(w) 中采样,而是通过噪声变量 ϵ 和变分参数 ϕ 的确定函数采样。 LE=Ep(ϵ)[logp(D|f(ϕ,ϵ))]
高斯分布的比例混合,bayes压缩
scale-mixtures of normals
分布族:
z∼p(z);w∼N(w;0,z2)
z
是参数
将z看做随机变量,得到w的边界先验分布(积分掉z后的w的(相对于数据D来说是)先验的分布)有(相对于把z看做固定值?更)长尾,且更聚集在0点。随后w的后验分布就会偏向稀疏。
这是一种比较通用的分布族,许多能导致稀疏性的分布都是它的特例。
spike&slab
分布 p(w)是伯努利分布。dropout(2012,2014)神经网络种受欢迎的正则技巧。- Laplace分布 p(z2)=exp(λ) 。laplace先验的后验分布的mode是Lasso估计。有被用到稀疏化神经网络(2016)。易压榨大信号,只提供点估计,没有保留不确定性,overfit,不足够compression。
- 不含超参数的 log-uniform先验,half-cauchy先验得到horseshoe分布,spike$slab先验的连续松弛。
对数一致先验
p(z)∝1|z| , w∼N(0,z2)
得到对数一致先验/normal-Jeffreys先验
p(w)∝1|w|
联合分布
p(w,z)∝∏Ai1|zi|∏A,Bi,jN(wij|0,z2i)
一层网络,输入A维, 输出B维
变分估计
qϕ(w,z)=∏AiN(zi|μzi,μ2ziαi)∏A,Bi,jN(wij|ziμij,z2iσ2ij)
,其中变分参数
ϕ=(μzi,αi,μij,σ2ij)
,第i个输入维参数组的dropout率
αi
….
W^=...
半柯西比例先验
C+(0,a)=2(aπ(1+(z/a)2)−1)
w~ij∼N(0,1)
zi∼C+(0,1)
s∼C+(0,τ)
wij=w~ijzis
…
实验
全连接卷积网络
比较剪枝前后的网络结构,bit-precision
时间消耗