Paper Reading Note
TL;DR
区别于传统的share-split multi-task网络结构,作者提出一种Partially Shared结构,将各个任务的网络分支通过该结构连接起来,从而同时学习shared 和 task specific representations;作者将该结构用于人脸属性识别,在训练中除了利用属性标签,同时考虑了人脸的id信息,达到涨点效果。
Dataset/Algorithm/Model/Experiment Detail
Motivation
经典的基于CNN的multi-task leraning 方法,使用被称为share-split结构的网络,这种网络有个share的主干网络学习各个任务共享的特征,然后各split的分支学习和任务相关的特征,那么共享的特征只处于low-level layer,high-level layer就只学习了任务相关特征。作者认为共享特征应该在网络开头到结尾都存在。以下是本文中设计的Partially Shared结构和经典share-split结构的对比:
Partially shared multi-task convolutional neural network
基于以上的Partially Shared结构,作者构建的网络如下:
可以看出,网络中包含4个任务分支(将所有属性按照区域分为4个group,对应4个分支网络,产生对应分类loss)和一个共享分支,任务相关分支的每层输入的feature map会结合share部分feature map;share 部分每层的输入会结合前一层所有分支的feature map。
如此,可以加强任务之间的interaction,从而更好的学习任务间的关系。
网络的可设置参数:
- 网络初始化方法:(1)所有分支从头训;(2)对share分支使用识别数据预训练,任务相关分支使用属性数据预训练;(3)所有分支使用识别数据预训练。之后实验验证第(2)种方法最好。
- share部分网络的channel数:可以通过实验选择(论文中通过实验选择share部分channels是任务分支的1/4),两种极端情况是没有share分支和只有share分支。
Local learning constraint
本文的另一个insight是,作者将id信息加入属性训练中,在loss中使得相同人的不同图片对应的属性特征相近,这种loss被称为local learning constraint loss(LCLoss)。但是,讲道理,这中限制感觉对于一些和id相关的属性(比如单眼皮,肤色,发色)有用,对于一些属性,如戴帽子,戴口罩等属性可能不work。LCLoss定义如下:
最终结合partial-shared 结构和LCLoss的网络结构及loss如下:
Experiments
实验结果在CelebA和LFWA数据集上均有涨点。
另一个有意思的实验是关于loss中 λ 参数的不同选择对性能的影响:
以上,当 λ=0 时就相当于没有使用id信息。从结果可以看出当增大 λ ,模型先涨点,后掉点,这是因为当 λ 太大时,会使得模型只关注id相关的特征,而影响属性分类的结果。
最后,作者也如前面我在介绍 LCLoss中担忧的那样,指出 λ 参数的选择是同id图像属性一致性和属性label差异性的一种trade off。
Thoughts
新的multi-task learning 的网络结构,是一个创新点,但是结合id信息的做法是否work感觉还是要看具体的任务而定。