【TL学习笔记】2:多任务学习(Multi-task Learning)在图像分类中的应用

1 MTL简述

1.1 单任务学习

早期的机器学习方法都是单任务学习(STL)的,即认为不同任务之间没有关联性,所以都是单独训练的。这样因为每个模型单独训练,数据量只有自己的这一部分,训练出的模型也没有很好的泛化性。另外因为模型之间训练时候没有关联,即没有考虑到这些学习之间可能有共通的地方,最终得到的模型性能也不够好。

1.2 多任务学习

在多任务学习(MTL)中考虑了不同任务之间的关联,所以将不同任务的训练数据都放在一起,来训练多个任务的模型。

1.3 MTL的构建原则

  • 找到建模任务之间的相关性
  • 同时对多个任务的模型的参数联合学习,以挖掘共通的信息
  • 考虑任务之间的差异性, 以增强模型适应能力

1.4 MTL的两种主要方式

  • 基于参数共享,例如:神经网络隐层结点共享
  • 基于正则化约束的共享,例如:均值约束、联合特征学习

2 基于参数共享的MTL

这种方式在综述里也叫硬参数共享,它的思路在上一篇学习的DA里也提到过,就是因为神经网络在浅层学习到的是一些比较通用的比较泛的知识,所以浅层都是共享的,但是到了深层每个学习任务要学习自己特定的知识,所以到了深层又不共享了。

【TL学习笔记】2:多任务学习(Multi-task Learning)在图像分类中的应用

这种方法的图像处理工作有这篇ECCV2014的论文,浅层都是共享的,然后得到了共享特征,再根据不同任务做不同的输出层。
【TL学习笔记】2:多任务学习(Multi-task Learning)在图像分类中的应用

3 基于正则化约束的共享的MTL

这种方式在综述里也叫软参数共享,即实际上每个任务还是有自己的参数,但是不同任务之间的参数共享是靠给参数的差异设置约束,主要是在模型的损失中加入正则化先验项,使得参数差异不会太大。

【TL学习笔记】2:多任务学习(Multi-task Learning)在图像分类中的应用

3.1 均值约束共享MTL

这种就是和前面说的一样,简单的认为不同任务模型的相关性是通过模型参数相接近来达到的。因为不知道是任务i和任务j接近,还是多任务中的哪些任务之间更接近,所以这里干脆就是让每个任务的模型参数接近所有任务模型参数的均值

【TL学习笔记】2:多任务学习(Multi-task Learning)在图像分类中的应用

3.2 联合特征约束MTL

这个方法里认为不同任务的模型参数可能会共享样本的某一个共同的特征集合,下图中左侧Y是每个任务的输出,右侧的W是每个任务的模型参数,中间是输入的样本,然后张图里W有一些非空白的地方,表示这些任务的模型参数挑选了其中的一些特征。
【TL学习笔记】2:多任务学习(Multi-task Learning)在图像分类中的应用
这里老师举了一个例子说明为什么可以这样,比如要预测不同来源学校的学生成绩,下图里右侧是五个任务,然后左边是7个特征,这些任务共同点都是预测成绩,共同影响成绩的特征就是上次成绩、上次排名、睡觉时间、父母教育背景。而身高或许会有影响,比如有的学校里可能身高高的必须坐在后排,但是不是每个学校都有这种情况,所以这个特征提供的更多的是任务内部的信息。
【TL学习笔记】2:多任务学习(Multi-task Learning)在图像分类中的应用

3.3 脏模型(Dirty Model)MTL

这里也是考虑到前面3.2中说的有些特征是对一些特定的任务有用的,所以任务的模型是由共同特征和自己提取的一些特征合成的。
【TL学习笔记】2:多任务学习(Multi-task Learning)在图像分类中的应用

3.4 低秩约束MTL

前面的方法都是挖掘模型参数的一些表面特征,实际上模型的参数不一定是要单纯的接近。这种方法里的不同任务的模型参数表面上不一样,但是都是由一组基向量组合而成的,只是组合的系数不一样。
【TL学习笔记】2:多任务学习(Multi-task Learning)在图像分类中的应用
从下面这张图里可以看到,这个方法里m个任务的参数向量是由p个基向量乘以一个系数矩阵得到的,其中p比m小,所以模型参数矩阵(m个任务的参数向量的排列)的秩肯定不会超过p,即具有低秩特性。
【TL学习笔记】2:多任务学习(Multi-task Learning)在图像分类中的应用

4 其它MTL方法

前述的方法中存在两个主要问题,一是它们都认为任务之间的相关性仅和模型参数有关,但是实际上还可能和其它因素有关;二是忽略了样本原始特征的差异性,如果从样本中提取的原始特征本来就不好,那么这些特征也许只能体现出不同任务的差异性,而导致无法在这个特征空间中建立相关性

4.1 交替结构优化MTL

交替结构优化(Alternating Structure Optimization)认为每个任务的模型参数uiu_i由两部分组成,其中wiw_i用来在图像所在的原始空间提取差异性特征,而θvi\theta v_i用于提取任务之间的共享特征,这里乘以一个θ\theta认为不同任务的样本共享一个特征空间,由于在原始空间无法很好的建立不同任务的相关性,所以用它投影到另一个特征空间上去。

【TL学习笔记】2:多任务学习(Multi-task Learning)在图像分类中的应用

下面是整个的结构,和上面公式表达的意思一样的,θ\theta是共享的用于投影到公共空间的这样一个Feature Map。
【TL学习笔记】2:多任务学习(Multi-task Learning)在图像分类中的应用
下图是这个ASO方法的Loss计算,第二行可以看到原始的ASO除了Loss之外只对提取差异性特征的wiw_i做了约束(所以加了一项αwi2\alpha ||w_i||^2),而改进后的iASO还对提取共同特征的θvi\theta v_i做了约束,当这个约束项的系数为0时候就退化成ASO了。式中θTθ=1\theta^T\theta=1说明总是投影到正交的空间上。

4.2 非相干的低秩稀疏结构MTL

原文是Incoherent Low Rank and Sparse Structure方法。之前的方法中不同任务非共享部分的模型参数还是独立学习的,这种方法里就考虑将参数组合在一起学习能不能获得更好的效果。

图中QQ是将不同任务的模型参数按列排成的矩阵,相当于4.1中的WW,而PP相当于θV\theta V。这种方法里选举一些零星的特征来挖掘不同任务的差异性,所以不是像4.1中一样直接乘以系数α\alpha来约束,而是认为差异性特征会受到一些零星的特征的影响(图中深色部分小块)。
【TL学习笔记】2:多任务学习(Multi-task Learning)在图像分类中的应用
而在Loss中除了QQ的一范数约束之外还对PP的秩进行了约束,保证低秩的性质:

【TL学习笔记】2:多任务学习(Multi-task Learning)在图像分类中的应用

参考阅读