Variational Bayesian Group-Level Sparsification for Knowledge Distillation

Introduction

Variational Bayesian Group-Level Sparsification for Knowledge Distillation (VBGS-KD): 变分贝叶斯群级稀疏化知识蒸馏网络
DL占用大量运算资源和内存空间,阻碍了它们在实际场景中在资源受限的设备中的部署。(知识蒸馏的经典应用背景)
然而,KD的性能对知识定义和传输机制非常敏感。有不少的研究是从Teacher Net上获取更多的信息用来训练Student Net 但直接对SN动手的不多。

主要贡献:
1) 知识蒸馏的贝叶斯稀疏化:在KD中融入贝叶斯稀疏并微调
2)变分群集稀疏化:引入一组参数的稀疏诱导先验,而不是单个权重——描述模型权重张量的内在相关性
3)最新的压缩结果: 该方法通过知识蒸馏和变分稀疏的复杂度降低,可以同时实现精度和压缩比的提高。

Related work

低秩分解、权重共享和量化、网络稀疏和剪枝、知识蒸馏(网络轻量化的四大方向)

Method

在这里插入图片描述

KD

Softmax:
在这里插入图片描述
z i z_i zi-----logits
t t t------temperature

Soft knowledge:KL散度—可参照论文(Distilling the Knowledge in a Neural Network)
在这里插入图片描述
Q S 、 Q T Q_S、Q_T QSQT分别表示SN和TN的预测结果, t 2 t^2 t2消除软目标产生的梯度 1 T 2 \frac{1}{T^2} T21

Hard knowledge
在这里插入图片描述
两部分:数据误判评估(SN的预测值与标签之间的loss), 稀疏性评价(贝叶斯近似的先验知识施加稀疏约束)

Overall loss
在这里插入图片描述

Group sparseness in net(网络中的群体稀疏性)

使用稀疏促进loss函数的优化问题,使得模型参数大部分为0
LASSO回归: L 1 L1 L1范数
在这里插入图片描述
该稀疏建模是对个体权重施加
group-LASSO:稀疏性是在群体上执行
在这里插入图片描述
一个问题:
The ‘Group’ 在全连接中对应一个神经元,在卷积层中对应一个滤波器
1、输入组设置为0,忽略相应特征
2、隐藏组变量为0,删除相应神经元
3、偏置组变量为0,删除相应偏置

Variatonal Bayesian Sparsification(变分贝叶斯稀疏化)

在这里插入图片描述
K L KL KL散度测量:由参数分布 q ϕ ( θ ) q_\phi(\theta) qϕ(θ)近似的后验分布 p ( θ ∣ D ) p(\theta|D) p(θD)
最大化 L ( ϕ ) L(\phi) L(ϕ)寻找最优变分参数 ϕ \phi ϕ
θ \theta θ满足零均值高斯分布
在这里插入图片描述
引入新参数 γ \gamma γ为了细化 θ \theta θ上的后验分布
在这里插入图片描述
通过将稀疏诱导先验用于隐藏单元而不是单个权重,我们可以修剪神经元

利用标准卷积层和全连通层来代替相应的贝叶斯隐层
在这里插入图片描述
在这里插入图片描述

这种群级稀疏化是传统稀疏建模方法的自然推广。 它可以通过将相关权重聚类在一起,有效地模拟参数矩阵的结构性质,这些权重可能属于相同的神经元或滤波器。 与独立权重修剪相比,它在修剪不相关的耦合权重方面具有更高的性能。

Experiment

在这里插入图片描述
参数设置:
MNIST中200 e p o c h s epochs epochs b a t c h s i z e batch size batchsize: 256
CIFAR-10中300 e p o c h s epochs epochs b a t c h s i z e batch size batchsize: 128

SGD优化器,momentum=0.5
PyTorch框架

阈值确定:
修剪用的阈值是在training的过程中确定的,不需要fine-tune
计算 l o g α i log\alpha_i logαi,通过可视化 α \alpha α占主导地位的掩码值手动确定修剪的阈值
在这里插入图片描述
随着训练轮数增加, l o g α i log\alpha_i logαi分离成两个簇,左边的簇表示信号(Signals),右边的簇表示噪声(Noise)。纵轴表示相应簇下的神经元个数。

这边表示有点疑问,左信号右噪声,作者写的是随着训练,信号总数减少,意味着有用神经元减少,但(b)、©不是明显的信号总数增加么?还是说后面两层的总参数比LeNet要少很多?从图上看也没有这种数量级上的区别啊。

稀疏性分析
在这里插入图片描述
这张表其实不是很懂。。。没有给出稀疏化前的参数大小
在这里插入图片描述

这边表述和前面表1里有点冲突,感觉应该以这边为准。TN: LeNet-5, SN: LeNet-300-100

对比实验和消融实验
在这里插入图片描述

Reference

论文地址

Guess you like

Origin blog.csdn.net/Goodlick/article/details/109157728