这篇论文是作者2014年ECCV论文TCDCN的一个扩展。
在TCDCN中,作者提到在人脸特征点检测的时候,同时进行多个任务的学习,这些任务包括:性别,是否带眼镜,是否微笑和脸部的姿势。使用这些辅助的属性帮助更好的定位特征点,根据论文结果,这样的确对人脸特征点检测有一定的帮助。这种Multi-task learning的困难在于:不同的任务有不同的特点,不同的收敛速度。针对这两个问题,文章给出前者的解决办法是tasks-constrained deep model,对后者解决办法是task-wise early stopping。文章中的方法在处理有遮挡和姿势变化时表现较好,而且模型比较简单。
但是,tsak-wise eraly stopping的工作中,作者对一些关键阈值的设定并没有给出指示,作者在这篇文章也提到,这个阈值的选择是非常经验性的,因此工作需要进一步改善。
一、新工作思路
我们提出新的任务限制深度模型,在学习多个复杂任务时,不仅学习任务间的关联,而且利用动态任务系数来来加速优化收敛。
二、传统多任务学习体系的挑战
- 脸部对齐和属性的不同任务在学习难度上有着本质的区别。例如,学习是否“戴眼镜“任务比学习一个人在不在笑简单的多;
- 很难有正负样本数量相当的辅助任务。例如,性别分类的比例比表情分类的比例均衡的多。因此,不同的任务有不同的收敛率。很多情况下,辅助任务在训练开始加快标志点检测的收敛,但当辅助任务达到局部最优值或过拟合时,开始变得对主任务无效,继续训练所有任务会阻碍网络收敛,导致标志点检测性能变差;
三、符号定义
1.权重
Landmark:-
,其中M=10(共5个landmark点)
Attributes:-
,其中l=22(共22个辅助任务)
2.label
3.建模过程
如果所有任务都是独立的,W可以被简单建模为多元正态分布的乘积
但我们的工作需要探索辅助任务对标志点检测任务是重要的,表明我们需要对任务间的关联建模。因此,我们假设W服从矩阵正态分布
0是Dx(M+T)的0矩阵,γ是(M+T)x(M+T)的任务关联矩阵,γ在训练过程中学习,能自然捕捉到不同任务权重间的关联。
每个辅助属性被赋予一个动态系数,
总之,给定一系列面部图片和标签,我们同时估计过滤器K,权重矩阵W,任务协方差矩阵γ和动态系数。
4.之前工作的缺陷
早期工作提出的是task-wise early stopping机制,当一个任务对主任务不再有益时停止这个工作。这个方法比较粗暴,而且决定什么时候停止任务的标准是经验性的。另外,一旦任务停止,他在训练过程中不会再**。和早期工作不同的是,动态系数是动态更新的。因此,在训练过程中,一个有阻碍的任务可能在发现他对主任务有效时候再次被**。另外,动态任务系数在整个过程中不止一个最优解,它的值根据当前训练状态来更新。
四、问题公式化
上述问题可以被公式化为一个概率框架。我们通过最大化后验概率(MAP)来优化函数
等价于
式子前两项是极大似然概率,后三项是先验概率,下面分别介绍:
1.极大似然概率度量标志点检测的准确度,每个标志点位置变量可以被建模为一个线性回归加一个高斯噪音
2.衡量了属性预测的准确性。每个二进制属性被一个线性函数加一个逻辑分布随机噪声,表明
的可能性是一个sigmoid函数,
f(x)就是sigmoid函数。因此,最大似然可以被定义为伯努利分布的乘积
3.权重矩阵的先验概率通过一个均值为0的矩阵正态分布建模,能够捕捉标志点检测和辅助属性间的关联,被写作
Tr(.)计算矩阵的迹,γ是正半定矩阵来建模任务协方差,标记为
,根据上面方程,第m个landmark和第t个属性间的方差通过
得到,W(d,m)
代表d行m列元素,表示一对任务之间的关系是通过它们相对于每个特征维d的相应权重来衡量的。比如说。如果两个不同的任务选择或不选择同一组特征,他们是高度相关的。上述方程是多元正态分布的矩阵形式,如果W被reshape成一个长向量,它们是相等的。
4.
- 任务动态系数的先验权重被定义为正态分布的乘积
,平均值是根据训练和验证的错误调节。它和任务协方差矩阵有巨大差异。例如,辅助属性“戴眼镜”可能和眼的坐标位置相关。他们的关联可以用γ衡量。然而,如果“戴眼镜”任务收敛的比其他任务快,由于局部优化或过拟合变得无效。因此,动态系数可以减小来避免这些负面影响。
5.DCN filter可以被初始化为标准的多元正态分布。我们定义
综上,MAP目标函数变为:
方程(8)包含了6个式子,为了简化讨论,我们移除常量,同时我们假设诸如的方差变量和ε等于1。因此,上述正则化参数能被忽略。
方程(8)可通过更新一个参数固定剩余参数来最小化。尽管前三个式子是关于W的凸的,在前两个式子中的xi是和K高度非线性转变的,即。在这种情形下,不能保证全局最优。因此,根据CNN的优化策略,我们用权重衰退的SGD来搜索适合W、K的局部优化值。这种方法已在实践中被证明有效。在这里,第五个式子可以被看做过滤器的权重衰退。第二,方程(8)的第三个式子是关于γ的凸函数,但是第四项是凹的因为负对数是凸函数。也就是说,直接学习γ是一个凹凸问题,但根据一项定理,
有一个凸上限,
。因此,第四项可以被代替为
现在,第三四项都是关于γ的凸函数。最后,因为方程(8)中的动态系数都是线性和非独立的,寻找每个λt
用类似解决方案。
五、学习训练过程
我们通过迭代的方式解决MAP问题。首先我们固定任务间动态系数Λ和协方差矩阵γ来更新DCN的filters K和权重矩阵W。第二步以当前值固定其他参数来更新协方差矩阵γ。第三步以第二步类似的方式来更新参数Λ。
在第一步中,我们优化DCN中filter的K和W,并以当前值固定γ和Λ。在这种情形下,方程(8)的第四项和最后一项是常量可以被移除。Loss函数变为以下形式:
其中y是Mx1向量,l和1是Tx1向量,diag(Λ)是矩阵对角线和。方程(9)中的第四个式子可以看作W的参数权重衰退,最后一项是filters K的权重衰退,即。方程(9)结合了最小二乘损失和交叉熵损失来学习DCN,可以通过SGD优化,因为他们是用单独样本定义的。图二解释了DCN的结构,包含四个卷积层和一个全连接层。这个结构是标志点检测和计算消耗之间的权衡,在实践中结果很好。值得注意的是这项工作中介绍的方法可以在任何深度学习结构中兼容,探索他们超出了本文的研究范围。
现在我们介绍学习过程。在开始,每列W和每个filter K是根据多元标准正态分布初始化的。为了学习权重矩阵W,我们求它的导数,
,其中o和η分别代表网络输出和梯度下降的步长。简化导数可以得到:
其中Oi代表相应任务的预测,例如在方程(10)中
代表坐标点位置的预测,在方程(11)中
代表辅助属性的预测值。在(j+1)次迭代中,整个权重矩阵被更新为
,η1、η2是梯度下降和权重衰退的正则化参数。
为了更新filter K,我们从顶部到末尾宣传DCN的错误,根据反向传播策略,每个filter的梯度通过相关输入和error map的交叉关联来计算。尤其在图2中的全连接层,error是通过landmark检测和属性预测loss总和再乘以权重的转置得到的。对于每个卷积层,错误是通过filter间的反卷积和反向传播错误获取。
在第二步,我们优化协方差矩阵γ,W、K、Λ固定。和在方程(8)中讨论的类似,γ的对数可以被上边界relaxed。找到γ最优值问题变成:
为了简化,假设η=1.与γ相关的问题(12)是正半定问题,接近求解。
在第三步,我们将W,K,γ固定来更新动态系数Λ。忽略方程(8)中的常量,优化问题变为:
ε是一个接近0的常量,每个λt满足
表明每个动态系数被期望值和N个训练样本的loss平均值共同决定。我们定义μt
类似与task-wise early stopping。假设当前的迭代次数是j,
是任务t在验证集和训练集的损失函数值,得到
ρ是一个常量缩放因子,τ控制了训练长度间隔。方程式中的第二项代表了验证error的趋势。如果验证error在区间τ内迅速下降,第一项的值很大,表明训练应该被重视,任务很重要。类似的,第三项度量了训练error的趋势。Task-wise early stoppong可以被看作动态系数λt的一种特殊情况,另外,我们不需要设置决定任务是否停止的阈值,我们可以达到更好性能。
六、图二
七、一些总结
这么多论文中,这篇是我最想要的。首先利用辅助任务来促进主任务的训练。其次,辅助任务的训练过程中使用动态参数自动更新的模式,而且考虑到了辅助任务的训练学习难度可能差异性很大,让不同任务在没有作用的时候权重就变得很小,这一系列都对我的工作有很大启发意义,而且过程中有大量的数学推导过程,使得一切看起来都那么的有理可循。
但遗憾的是,这些公式和数学上的知识不足,导致现在还无法很好理解整个参数的迭代过程,所以本文的存在主要是翻译了下原论文,更多的理解就期待博主被打通任督二脉的那天吧!爱你哦!