Distillation论文总结(3)Face Model Compression by Distill Knowledge from Neurons

文章链接:AAAI

Face Model Compression by Distill Knowledge from Neurons

目前一流的人脸识别都是用深度神经网络或者是其集成系统,然而,昂贵的计算成本阻碍了其实际应用。我们提出了一种人脸检测系统的压缩方法,用一个大的教师网络去监督学习一个小的学生网络。不同于用soften label这种难以拟合的监督方式,我们用高隐层的神经元来代表网络知识,其具有相同的知识量但是更加紧凑。同时,利用学到的人脸表示基本特征,我们提出了一种神经元选择方法来选取那些和人脸识别关系密切的神经元。利用选中的神经元去监督学习单个**DeepID2+和DeepID3+**网络(人脸识别的主流),学生网络可以在LFW上得到两市的认证准确率;而用DeepID2+的一个集成系统,蒸馏后的学生系统则用51.6倍的压缩比和90倍的加速。

引言

由于大数据的出现,为了更好地监督这么多训练数据,许多人喜欢训练大的深的网络。而人脸识别移动化和嵌入式化的需求让其难以使用,这让人们有动力研究如何用小网络去拟合大数据。这篇论文以网络压缩为主,但也会牵扯到人脸表征的域知识

之前,人们曾经用类概率输出来表征网络的知识,这比0-1标签包含了更多信息,可以更有效训练。但是,由于很多类的概率过于接近0使信息大量流失。后来人们用softmax之前的Logits减均值来表征,然而,由于没有约束里面包含了许多噪声,可能引起过拟合,影响学生网络的泛化性能。最新的一篇论文表示用Logits和用概率是softmax输出的两种极端,我们可以给softmax加上一个参数温度,通过寻找一个合适的温度来得到好的结果。然而这个方案在人脸识别的任务上收敛性能并不好,因为人脸类别太多了,导致soft targets的维度也很大。

我们认为,我们也可以用高隐层的神经元表征网络知识,这和Labels有一样的信息量但是更简洁。然而,不加选择的用这些神经元必然会受到噪声和无关信息的影响,所以我们会根据每个神经元的作用大小来作选择。我们的选择基于三点观察。

  • 人脸识别的特征包括标签相关特征(IA如脸型)和无关特征(NA如光线)。每个特征是由若干个神经元决定的且每个神经元可能决定不止一个特征。
  • 未懂
  • 有一小部分的神经元与特征无关,纯粹就是噪声

在这些观察的基础上,我们……。一个有效的平均场算法可以让我们选出和IA有关的特征。然后利用这些特征作监督学习。

为了检验我们的神经元选择算法,我们把DeepID2+当作教师T1,它在LFW上是state-of-the-art,为人脸识别集成了许多复杂的部件。而通过神经元选择,我们的简单网络可以超出T1及其集成的表现。同时,我们也可以很好地压缩DeepID3+模型。

论文的三个主要结论:

  • 更简洁的特征表示更高效,soft targets在人脸识别中因为维度太高惨遭放弃
  • 三个重要的观察结论,告诉我们哪些神经元是有用的
  • 神经元选择算法

人脸模型压缩

用神经元选择算法训练学生网络

本文模型的宗旨就是选择最高隐层中含有信息的神经元,然后用这些神经元去监督训练学生网络。目标函数可以用这样的L2损失函数表示。
L ( D ) = 1 2 M ∑ i = 1 M ∣ ∣ f i − g ( I i ; W ) ∣ ∣ 2 2 L(D)=\frac{1}{2M}\sum_{i=1}^{M}||f_i-g(I_i;W)||_2^2 L(D)=2M1i=1Mfig(Ii;W)22
那么,怎么去选择特征 f i f_i fi呢?我们把它化为一个全连接图下的推断问题,其中每个点表示一个神经元,每条边表示神经元之间相关性。然后给定一组隐变量 y i ∈ { 0 , 1 } y_i\in\{0,1\} yi{0,1}决定每个神经元是否被选中,我们的目标就是优化下面这个能量函数。
E ( y ) = ∑ i = 1 N Φ ( y i ) + λ ∑ i = 1 N ∑ j = 1 , j ≠ i N Ψ ( y i , y j ) E(y)=\sum_{i=1}^N\Phi(y_i)+\lambda\sum_{i=1}^N\sum_{j=1,j \neq i}^N\Psi(y_i,y_j) E(y)=i=1NΦ(yi)+λi=1Nj=1,j̸=iNΨ(yi,yj)
其中 Φ ( y i ) = f ( x i ) \Phi(y_i)=f(x_i) Φ(yi)=f(xi) f f f是惩罚函数而 x i x_i xi表征这个神经元的特征区分能力,而另一项则用来衡量两个神经元的相关度,如 Ψ ( y i , y j ) = e x p { − 1 2 ∣ ∣ x i − x j ∣ ∣ 2 2 } \Psi(y_i,y_j)=exp\{-\frac{1}{2}||x_i-x_j||_2^2\} Ψ(yi,yj)=exp{21xixj22}这样,我们就可以选择有很强区分性但是又不相关的神经元来表征我们的网络。这个式子的求解方法可以用平均场算法

神经元的特征区分能力

即决定xi的部分,回头补

师/生网络的结构

训练所用的网络结构
如上图,即是给出了两个教师T网络和一个学生S网络的具体结构图,其中打*的层,如T1的第2层也与两个fc层相连,就新添了两个很大的参数矩阵(128x26x22x512与512x12K)。而学生网络则基本是从T1网络中改变万恶,将第5、7组的lconv改为了一个conv和一个fc,从而将参数减少了11倍。

实验

我们用来训练模型的数据综合了Celeb-Faces+和WDRed两个数据集总计12294个个体的290,000张脸部照片,然后在LFW上评判模型。对于人脸验证,我们从最高隐层中提出向量,然后用欧氏距离来判定,不同于以往训练SVM或Joint Bayesian。

对T1的学习

我们用不同的S(仅仅是最后一层不同)来学习同一个T1模型。用神经元选择算法的结果要好于原T1,而用其他的方法则不好。对于soft targets的训练,我们将t=1一直到无穷进了试了,发现在t=10时最好 但是还是有0.68%的下降。而直接用所有的神经元则会有0.1%的下降。我们试图加上一个额外监督’S-1-of-K’,发现对个体与属性的预测并不能改善人脸识别,毕竟特征是可以学习的。

然后一些观察结论。

  • 一个大的网络有更好的拟合能力,所以收敛更快
  • 用更简洁具有信息量的知识来蒸馏收敛更快,说得就是S-selection,少了42倍的参数,学习有5倍快。
  • 对soft targets而言,温度越高,收敛率越高。

对T2的学习

T2网络比S要深两倍,而S-selection最后比T2的表现还要高0.1%。我们不使用LFW中的标签,而用一个10-folds的交叉验证在LFW上进行无监督的finetune。如果不finetune的话结果是会下降0.15%,说明深网络难以学习,然而,在更多的无监督数据上finetune能有较大提高。

对T1的集成系统学习

6个T1组成的集成系统,分别学习不同的脸部区域(双眼、鼻、双嘴角、整脸),这样可以比单个T1高出0.54%。然后每个S网络学习的时候,将6个T1的soft targets平均一下。当我们用S-selection之后,表现下降了0.12%,而加上finetune之后则又上升了0.18%,超过原T1集成系统。

模型复杂性与效率

运行时间按CPU上的算,而复杂性则用训练和测试时的参数量表示。用S-selection可以用更少的参数与快的速度得到更好的结果。它可以用4M的存储空间达到每秒250帧的处理,使其在移动设备上具有可行性。

总结与讨论

在人脸领域,hard & soft labels由于维度过高都不能很好地拟合,而在最高层的神经元则是更好的选择,因为它在含有等量知识的同时有更简洁的形式。实验也表明了其有效性和快速收敛。观察表明高层特征表示即不是不变的也不是好好划分的,它们包含了很多噪声与无关知识,所以我们采用了神经元选择方法来减少维度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值