当前位置:   article > 正文

【论文-人脸剪枝】Low-Cost Transfer Learning of Face Tasks_low-cost learning

low-cost learning

这篇文章是要干什么?

文中这样解释,VGG-Face最后一层的卷积层拥有512个filters,这层的512个filters中有些filters也可以处理本职工作以外的face tasks,用下图描述:

作者觉得如果将这些与本职任务不相关的filter剪掉,就可以提速减少内存消耗;

那问题来了:1)怎样知道卷积层中有哪些不做本职工作又占着位置的filter了?

                      2)即使解决了第一个问题,那又如何将这些filter剪掉?

本文做的贡献如下:

1)介绍一个方法用于分析预训练网络结构内部代表(什么)和什么样的信息涉及到其他相关的任务,而与使用本网络初衷不符合。

2)提出了一个计算简单的方法将信息迁移到另一个网络,而不是使用了迁移学习(without explicit explicit transfer learning);

3)作者展示了关于其他任务的信息是集中在少数filters上,通过去掉这部分filters,可以减少空间占用和计算复杂度;

3.learning relationship between Face Tasks

CNN相关的视觉任务学到的一般的特征可以用于各种相关的任务:例如用于人脸识别的CNN,它的conv filers可以用于预测例如头部姿态,年龄,性别等任务。简言之,这些共享的filters可以用于非本职工作以外的任务。这就是作者的意图。

作者研究了VGG-Face网络在人脸识别任务中最后一个卷积层,作者使用了一个头部姿态的数据集,这个数据集的特点是头部的角度偏转在-90度到90度之间,且角度间隔为15度。(?)作者选用这个数据集是由于本数据除了头部姿态(head pose)以外,是保持连续的图片;作者将这些图片输入VGG-Face网络,研究特征图与每一个filter的L2距离(L2-norm),然后结果如图2所示:

这个实验结果证明,针对人脸识别的网络并没有针对性的训练人脸角度数据,而从figure2可以看出,有少部分的filter关心头部角度偏转(yaw)信息;所以可以使用这些filters去预测人脸识别以外的任务 ;研究特征图与每一个filter的L2距离(L2-norm):

这是作者在文中介绍的算法,结合Figure2,可以这样理解,假设有一个做primary face task f’(如:脸部识别)的模型M,找了一堆用于satellite task f^t(除了人脸识别识别任务)的图片{I1,... ...,In},和相应标签Y^t ;还是画个示意图吧:

通过上面的算法操作就得到了figure2,figure中就包含了15个人的头部姿态在不同filter上的W^t结果。

为了验证作者上面提出的算法,作者对表一中的数据做了实验:

然后得到的实验结果:

Figure5的实验结果这样解读:左边栏是基本任务从上到下分别是(Face Recognition,Age,Gender,Emotion,Facial Hair Accesssories和pose),第一栏是satellite task;通过Figure5中的右表,可以看出脸部识别方法用于性别识别效果非常好,而年龄估计用于表情识别效果欠佳;

Relation to Transfer Learning(本文方法与迁移学习方法的关系):

作者做了这样一个实验:就是训练一个人脸识别的模型,然后将全连接层进行初始化,而卷积层的参数固定,对网络中的线性层进行进行训练用于satellite task。通过图六发现本文的回归方法和迁移学习的方法结果差距不大:

该实验证明我们可以使用简单的回归方法用于发现任务之间的关系,从而代替迁移学习。同时文中指出作者的回归方法跑一次消耗10ms,而使用迁移学习的方法,需要使用780ms,所以体现了本文方法在时间上的优势; 

4.Pruning across Face Tasks(跨人脸任务剪枝)

动机:想知道那样的filter可以从原始任务中挑选出来用于其他的任务;

方法:为了发现layer中那些filters是有用的,而那些事多余的。作者对每组filter按照在satellite任务上的表现进行了排序;与整体检测每层的filter不同,作者通过特征挑选进行排序;而且,作者使用了LASSO和L1回归用于对最终模型挑选了一个变量子集,而不是对目标整体变量做了实验。

Lasso的基本思想是在回归系数的绝对值之和小于一个常数的约束条件下,使残差平方和最小化,从而能够产生某些严格等于0的回归系数,得到解释力较强的模型。(参考:https://blog.csdn.net/xxzhangx/article/details/53002871

使用lasso回归:

随着labma的增加,filters的个数就会减少。然后作者训练lasso使用100个不同值的labma;对于每一层,作者都得到了100个回归模型,每个模型训练都使用了不同数量的filters。下面是vggface人脸识别在性别识别的结果:

通过figure7可以看出,只有少量的100以内的flters对gender识别影响很大,后面的再增加filters,误差并没有再降低;

作者有使用该方法在头部水平偏转角度,年龄和情感(valence,唤起)上做了相应的实验,实验曲线图如图Figure 8:

通过实验可以看出,yaw和age的识别都只需要少量的filters,但是表情曲线较平滑,说明表情信息在filters中分布比较均衡;这也侧面反应了剪枝率;

pruning for filters(对滤波器的剪枝):

作者的剪枝分两步:

1)移除网络结构中的top layers(我理解为网络结构中最初的几层);

2)利用characteristic curves作为参考,选择部分filters保留下来,其他的都修剪掉;

具体操作:选择曲线拐点(knee-point)来平衡压缩率和模型表现;将拐点处的filters数量定义为该层保留的最少filters,如同标准误差(RMSE)不能超过一个阈值。使用公式表示如下:

m是在曲线某点的RMSE。k指的是拐点,RMSE(K)就是拐点处的RMSE。r代表了某层RMSE范围上的比例。作者将所有拐点处k的filters进行保留,其他的都减掉;删除方法使用L1回归方法:本文使用的是filter的绝对值的和来衡量这个filter的作用,即 ∑|Fi,j|,(L1范数) ,选择前m最小的绝对值删除(参考:https://blog.csdn.net/u013082989/article/details/77943240)。作者的删减过程如算法2所示:

这个算法我理解的较简单(若有异议,请留言):对layer L,就是通过L1剪枝后,第一个for循环就是将剩下的filters替换原始layer中的filters,第二个for循环就是更新L+1 layer;

作者为了扩展VGG网络结构,还研究了LightCNN结构,LIghtCNN引入了一种Max-Feature-Map(MFM)操作。

MFM内容转载自(https://blog.csdn.net/tinyzhao/article/details/53127870):

本文使用了一种称为MFM的激活函数,这个结构也很简单。在输入的卷积层中,选择两层,取相同位置较大的值。

 

 

写成公式:

 

输入的卷积层为2n层,取第k层和第k+n层中较大的值作为输出,MFM输出就变成了n层。激活函数的梯度为:

 

这样激活层有一半的梯度为0,MFM可以得到稀疏的梯度。MFM激活函数相比于ReLU函数,ReLU函数得到的特征是稀疏高维的,MFM可以得到紧实(compact)的特征,还能实现特征选择和降维的效果。

实验结果如Table2:

作者对table2做出的结论:网络结构的计算和大小明显减少了,而且与从头开始训练相比较,误差还下降了(同时可以知道由于valence的参数是均匀分布在filters中的,所以它的压缩率与yaw和age相比较少)。

同时作者通过设定不同的阈值(0.1,0.01,0.001),对剪枝的网络结构在satellite tasks的任务进行微调。结果如figure9所示:

通过Figure9所示:随着阈值增加,减少的size越多,精度降低,同时FLOP也减少了。

作者总结了以下几条原因:

首先,全连接层移除了;

其次,从Figure7中得知,在VGGFace中,真正与satellite task任务相关的filters数量非常少;

剪枝压缩后对网络结构进行时间对比:

通过figure10可以看出,剪枝后,时间提升很快; 

5.Discussion

作者将他主要关注的东西总结如下:

1)作者的方法可以将没有进行目标数据集训练的模型特征用于处理目标数据集;

2)许多人脸任务是相关联的,所以可以很方便对其中的信息进行迁移(除了人脸表情);

3)人脸中与非目标任务相关的任务只涉及到目标任务中很少的filters,因而提升了压缩率;

4)该方法不限制于网络结构,例如:可以使用在VGG,也可以用在LightCNN上;

Performance of Different Convolutional Layers:

作者提出疑问:VGG-16结构中有13个卷积层,那么在作者自己的方法中,那一层对于信息迁移更加重要?

作者做了实验后,Figure11中展示了最后6层卷积对不同任务的精度:

通过Figure11可以得知:Layer13对gender,age,FacialHair,Accessories和HeadPose的效果较好,而Layer10会对emotion影响较大;

可以扩展到不同的数据集,任务和网络结构;

6.Conclusion

本文主要探索了人脸任务之间的关系;

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/697831
推荐阅读
相关标签
  

闽ICP备14008679号