《Facial Landmark Detection by Deep Multi-task Learning》论文解读
这篇文章发表于ECCV2014,来自香港中文大学汤晓鸥课题组。论文原文见:
http://mmlab.ie.cuhk.edu.hk/projects/TCDCN.html
文章提出了人脸特征点检测的新方法,使用与人脸相关的属性共同学习人脸的特征点位置。
we wish to optimize facial landmark detection together with heterogeneous but subtly correlated tasks, e.g.head pose estimation and facial attribute inference.
具体而言,就是在人脸特征点检测的时候,同时进行多个任务的学习,这些任务包括:性别,是否带眼镜,是否微笑和脸部的姿势。使用这些辅助的属性帮助更好的定位特征点,根据论文结果,这样的确对人脸特征点检测有一定的帮助。这种Multi-task learning的困难在于:不同的任务有不同的特点,不同的收敛速度。针对这两个问题,文章给出前者的解决办法是tasks-constrained deep model
,对后者解决办法是task-wise early stopping
。文章中的方法在处理有遮挡和姿势变化时表现较好,而且模型比较简单。
如图,人脸特征点检测这一任务可以和多个辅助任务同时进行,对比前人的CNN和Cascaded CNN,本文具有更好的表现。
传统的多任务学习(multi-task learning)把每个任务都赋予相同的权重
针对多任务学习的特点,本文提出了一种新的early stopping方法。当辅助任务达到最好表现以后,这个任务就对主要任务没有帮助了,就可以停止这个任务。那么问题来了,什么时候停止辅助任务呢?如下式所示, Eaval 是任务a的验证集loss, Eatr 是训练集loss,如果下面式子超过了某个阈值 ϵ 就会停止这个任务。
本文网络结构比较简单:
输入图片为40*40的黑白图片,然后经过4个卷积层变成2*2*64的图像,其中激活函数采用 |tanh| ,即对tanh取绝对值。在最后的全连接层将2*2*64的多层结构变成100个shared feature,以上部分都可以看成特征提取的操作。在最后一层由这些特征进行不同操作,对特征点检测问题就是linear regression,对于其他分类问题就是logistic regression(softmax)。
将不同任务进行结合可以有效减低error和failure rate,可见这个方法效果良好。
Task-wise early stopping可以连续降低验证集误差,而且也能提高收敛速度。
不用说,也很好。文章在Intel Corei5 CPU上表现为每张图片17ms。
本文方法比较简单,模型也容易搭建,重现的难点在于task-wise early stopping和几个超参数的选择,这个问题需要进一步研究。