多任务学习(Multi-Task Learning, MTL)

目录 [显示]

  • 1 背景
  • 2 什么是多任务学习?
  • 3 多任务学习如何发挥作用?
    • 3.1 提高泛化能力的潜在原因
    • 3.2 多任务学习机制
    • 3.3 后向传播多任务学习如何发现任务是相关的
  • 4 多任务学习可被广泛应用?
    • 4.1 使用未来预测现在
    • 4.2 多种表示和度量
    • 4.3 时间序列预测
    • 4.4 使用不可操作特征
    • 4.5 使用额外任务来聚焦
    • 4.6 有序迁移
    • 4.7 多个任务自然地出现
    • 4.8 将输入变成输出
  • 5 多任务深度学习应用
    • 5.1 脸部特征点检测
    • 5.2 DeepID2 (Deep Identification-verification)
    • 5.3 Fast R-CNN
    • 5.4 旋转人脸网络
  • 6 总结
  • 7 参考文献

作者:猿辅导研究团队

多任务学习(Multi-Task Learning, MTL)是一种归纳迁移机制,主要目标是利用隐含在多个相关任务的训练信号中的特定领域信息来提高泛化能力,多任务学习通过使用共享表示并行训练多个任务来完成这一目标[1]。一言以蔽之,多任务学习在学习一个问题的同时,可以通过使用共享表示来获得其他相关问题的知识[2]。归纳迁移是一种专注于将解决一个问题的知识应用到相关的问题的方法,从而提高学习的效率。比如,学习行走时掌握的能力可以帮助学会跑,学习识别椅子的知识可以用到识别桌子的学习,我们可以在相关的学习任务之间迁移通用的知识。

1 背景

在1997年之前,很多的归纳学习系统仅专注于单一任务,因此归纳迁移领域的研究者提出了这个问题:如何通过使用多个学习任务的知识来增强学习能力[3]?为达到同等水平的性能,归纳迁移学习可以减少训练样本的数目或训练的迭代次数 ,这对于训练样本不足的学习任务而言是非常有意义的。1997年,机器学习杂志发表了一个关于归纳迁移的特刊[4],归纳迁移领域的主要研究者发表了一系列文章研究如何训练多个学习任务的问题。其中[1]提出一种学习多个任务的算法并介绍多任务学习的过程,在三个领域展现了多任务学习的能力以及讨论该算法可以应用的场景,实验结果表明,在现实中有很多可以应用多任务学习的场景。

首先,多任务学习可以学到多个任务的共享表示,这个共享表示具有较强的抽象能力,能够适应多个不同但相关的目标,通常可以使主任务获得更好的泛化能力。此外,由于使用共享表示,多个任务同时进行预测时,减少了数据来源的数量以及整体模型参数的规模,使预测更加高效。因此,在多个应用领域中,可以利用多任务学习来提高效果或性能,比如垃圾邮件过滤、网页检索、自然语言处理、图像识别、语音识别等。

既然同时学习多个相关任务有重要的意义,那么什么是相关任务?有些理论对任务的相关性的刻画已经很清楚了:

  • 如果两个任务是处理输入的相同函数,但是在任务信号中加入独立的噪声处理,很明显这两个任务是相关的。
  • 如果两个任务用于预测同个个体的属性的不同方面,这些任务比预测不同个体的属性的不同方面更相关。
  • 两个任务共同训练时能相互帮助并不意味着它们是相关的:有时通过在后向传播网络的一个额外输出加入噪声可以提高泛化能力,但是这个噪声任务与其它任务不相关。

随着深度学习被广泛应用,计算机视觉和语音识别领域也有了更深远的发展。深度学习网络是具有多个隐层的神经网络,逐层将输入数据转化成非线性的、更抽象的特征表示。并且深度学习网络中各层的模型参数不是人为设定的,而是给定学习器的参数后在训练过程中学到的,这给了多任务学习施展拳脚的空间,具备足够的能力在训练过程中学习多个任务的共同特征。

2 什么是多任务学习?

图1展示了4个独立的神经网络,每个网络是一个针对同样输入的仅有一个输出的函数。误差后向传播被应用于这些网络来单独训练每个网络,由于这些网络相互之间没有任何连接,因此其中一个网络学习到的特征并不能帮助另一个网络的学习。本文称这种方法为单任务学习(STL,Single Task Learning)。


图1. 四个输入相同的任务的单任务后向传播

图2展示了一个输入与图1中的四个网络一致的单一网络,但该网络有四个输出,每个输出对应图1中的一个任务。需要注意的是,这些输出可以连接他们共享的一个隐层的所有神经元,也可以如图2所示,在共享的一个隐层后形成独立的子网络,训练不与其他任务共享的参数。本文称这种方法为多任务学习(MTL,Multi Task Learning),在多任务学习网络中,后向传播并行地作用于4个输出。由于4个输出共享底部的隐层,这些隐层中用于某个任务的特征表示也可以被其他任务利用,促使多个任务共同学习。多个任务并行训练并共享不同任务已学到的特征表示,是多任务学习的核心思想。

多任务学习是一种归纳迁移方法,充分利用隐含在多个相关任务训练信号中的特定领域信息。在后向传播过程中,多任务学习允许共享隐层中专用于某个任务的特征被其他任务使用;多任务学习将可以学习到可适用于几个不同任务的特征,这样的特征在单任务学习网络中往往不容易学到。

归纳迁移的目标是利用额外的信息来源来提高当前任务的学习性能,包括提高泛化准确率、学习速度和学习的模型的可理解性。提供更强的归纳偏向是迁移提高泛化能力的一种方法,可以在固定的训练集上产生更好的泛化能力,或者减少达到同等性能水平所需要的训练样本数量。归纳偏向会导致一个归纳学习器更偏好一些假设,多任务学习正是利用隐含在相关任务训练信号中的信息作为一个归纳偏向来提高泛化能力。

图2. 四个输入相同的任务的多任务后向传播

3 多任务学习如何发挥作用?

为什么在一个神经网络上同时训练一个任务及其相关任务的学习效果会更好?这是因为额外任务的信息有助于共享的隐层学到更好的内部表示。那么,多任务学习是如何利用相关任务的训练信号中的信息呢?

3.1 提高泛化能力的潜在原因

有很多潜在原因解释了为什么往后向传播网络增加额外的输出可以提高泛化性能。比如,[5] 通过偶尔为后向传播网络增加噪声来增强泛化能力。某种程度上,不相关任务对于聚合梯度的贡献对于其他任务来说可以视为噪声。那么,不相关任务也可以通过作为噪声源来提高泛化能力。另一种可能性是增加任务会影响网络参数的更新,比如增加额外的任务增加了隐层有效的学习率,具体取决于每个任务输出的错误反馈权重。第三种可能性是网络的容量,多任务网络在所有任务之间共享网络底部的隐层,或许更小的容量就可以获得同水平或更好的泛化能力。

可以设计实验来验证这些可能的解释,但最好可以揭示多任务学习可受益于和主任务相关的任务的训练信号。[1] 做了一组实验:准备一个训练集,对于训练集中的每一个样例,包含一组输入特征、主任务训练信号和一组额外任务的训练信号。在所有样例中打乱额外任务的训练信号,在没有改变额外任务的其他属性的情况下改变了主任务和额外任务的关系,但是额外任务的分布依旧保持不变。如果多任务学习依赖于训练信号中与主任务相关的额外信息,打乱顺序将会削弱这种关系,进而减少多任务学习的收益;如果多任务学习的收益依赖于多个输出的某些其他属性,打乱顺序将不会影响最终的收益。实验结果是打乱额外任务顺序降低了多任务学习的性能,这表明观察到的多任务学习的收益应归功于额外训练信号中的信息。

3.2 多任务学习机制

这一节总结了几种帮助多任务学习网络更好地泛化的机制,它们都衍生于对不同任务在隐层的误差梯度求和,但是各自又利用任务间的不同关系。

  • 统计数据增强

相关任务训练信号中的额外信息相当于有效增加了样本大小,特别是训练信号中存在噪声时,相当于做了数据增强。假定有两个任务T和T’,它们的训练信号中都加入独立的噪声,都受益于计算隐层中输入的特征F。一个同时学习了T和T’的网络,如果发现了两个任务共享F,可以使用两个训练信号通过在不同的噪声处理过程中平均化F,从而更好地学习F。

  • 属性选择

考虑两个任务T和T’,使用共同的特征F,假定网络有很多个输入。如果训练数据比较有限或噪声比较明显,一个学习T的网络有时难以区分与F相关的和不相关的数据。然而,一个同时学习T和T’的网络将可以更好地选择与F相关的属性,因为数据增强为F提供更好的训练信号,使该网络能更好地判断哪些输入用于计算F。属性选择是数据增强的结果。

  • 信息窃取

考虑一个对任务T和T’都有用的隐层特征F,该特征在学习T时比较容易学到,而在学习T’时比较难学到(因为T’用一种更复杂的方式使用F或者没有F时T’学到的残留误差更大)。一个网络学习T将可以学到F,但一个只学习T’的网络将不能做到。如果一个网络在学习T’时还学习T,那么T’可以在隐层中窃取T已经学到的信息,因此可以学得更好。一旦T’和F的表示的建立了连接,从T’关于F的额外信息将帮助网络通过其它的机制更好地学习F。

  • 表示偏置

因为神经网络以随机权重初始化,后向传播是一个随机搜索过程,多次运行很少产生同样的网络。假定任务T能够发现两个极小值区域A和B,一个学习任务T’的网络同样有两个极小值区域A和C,它们在A共享极小值,但在B和C没有重叠区域,[1] 对此做了两个实验。在第一个实验中,单独训练T的网络以均等概率找到A和B,单独训练T’的网络以均等概率找到A和C。而同时训练T和T’的网络,通常对于两个任务都只找到了A。这表明多任务学习任务偏好其他任务也偏好的隐层表示,搜索对T或T’单独学习到的表示的交集倾斜。

图3. 相关任务极小值区域重叠示意图

另一个实验中,选择使T对B有强烈偏好的极小值:一个训练T的网络总是落入B。然而,T’依然对A或C没有倾向。当T和T’同时在一个网络上训练,T如预料中落入B:T’未能帮助T从B拉入A。令人惊讶的是,T’通常落入C,未与T共享极小值。T在隐层表示中创建一个潮流从A流向B,而T’对A或C没有任何倾向,但受制于T创建的潮流,因此通常落入C。多任务学习任务倾向于不使用其它任务不偏好使用的隐层表示。

3.3 后向传播多任务学习如何发现任务是相关的

多任务学习后向传播网络能否发现任务是否相关?答案是肯定的。后向传播网络虽然主要用于监督学习,但可以在不同任务学习的隐层特征上完成有限的非监督学习,揭示后向传播网络是如何发现任务之间的相关性非常有意义。

[1] 设计了一系列测试问题称为峰值函数,每个峰值函数的形式如下:

IF (1 > ½) THEN2, ELSE $3

其中 1 2和$3从{A、B、C、D、E、F}中取3个字母的排列进行实例化,共有120个函数:

P001=IF(A > ½) THEN B, ELSE C

P002=IF(A > ½) THEN B, ELSE D

P014=IF(A > ½) THEN E, ELSE C

P024=IF(B > ½) THEN A, ELSE F

P120=IF(F > ½) THEN E, ELSE D

这些变量A-F是定义域为[0, 1]的实数,作为一个后向传播网络学习峰值函数的输入。A-F的值以编码的方式给神经网络,而不是简单的连续输入。一个学习峰值函数的网络不仅需要学习函数,还必须学习正确地解码输入。这里A-F中的每个值使用10个输入来编码,总共有60个输入。

在所有120个函数上训练一个多任务学习网络,这个网络有60个输入和120个输出,每个输出对应120个函数中的一个。分析网络的参数可以观察多少个不同的输出共享了隐层,[1] 对每个输出和每个隐藏单元做了敏感度分析。通过对比输出P001对每个隐藏单元和输出P002对每个隐藏单元的敏感度,可以测量P001和P002共享隐层的程度。结果表明两个峰值的相关性取决于它们使用几个相同的变量以及它们是否以同样的方式使用这些变量。比如P001和P120不共享任何变量,因此它们是不相关的。P001和P024共享了两个变量,但以不同的方式使用它们;P001和P014也共享两个变量,并且以同样的方式使用它们。因此P001与P014比与P024更相关。通过更加深入的分析,可以发现在条件IF测试的重叠比在THEN或ELSE部分的重叠更重要。

4 多任务学习可被广泛应用?

4.1 使用未来预测现在

通常有价值的特征在作出预测之后才变得可用,这些特征在运行时不可用,因此不能作为输入。如果可以离线学习的话,这些特征可以收集起来作为训练集,在额外的任务中使用。学习器为这些额外任务作出的预测在系统被使用时可能会被忽略,这些预测的主要功能是为学习器在训练时提供额外的信息。

一个从未来学习的应用是医疗风险预测,比如肺炎风险问题,在这个问题中,可以使用可用的实验室测试作为额外输出任务,但在为病人诊断时这些测试是不可用的。来自未来测量方法中的有价值的信息将会帮助网络学习可以更好支持风险预估的隐层表示。

未来测量方法在很多离线学习问题中可用,有些特征不能在运行时实时获得,因此不能作为输入。但作为多任务学习的输出,它们提供了可以帮助学习的额外信息,即使这些输出在运行时不能获得。

4.2 多种表示和度量

有时获得在一个误差度量或一种输出表示中比较重要的一切是很困难的。当可替代的度量或输出表示可以捕获一个问题的不同但有用的方面时,多任务学习可以从中收益。

4.3 时间序列预测

这种类型的应用是用未来预测现在的一种分类,未来任务和现在任务是相同的除了它们发生在更迟的时候。将多任务学习用于时间序列

预测的最简单方式是使用一个有多个输出的单一网络,每个输出和在不同时间的相同任务对应。图2展示的是一个有四个输出的神经网络,如果输出k指的是任务在时间Tk的预测,那么该网络可以对相同任务在四个不同时间做出预测。

4.4 使用不可操作特征

有些特征在运行时使用是不现实的因为它们的计算代价太高,或者因为它们需要不可利用的人类专门知识。训练集通常比较小,并且我们会花费大量的时间来准备。为训练集计算的不可操作特征可以用作多任务的输出。

一个很好的例子是场景分析,通常需要人类知识来标注重要的特征,而学习系统在使用时人不会参与其中。那么这意味着有人标注的特征就不能用于学习吗?当然不是,如果训练集可以获得这些标注数据,它们能够作为额外任务来使用,在系统使用时这些额外任务将不是必要的。

4.5 使用额外任务来聚焦

学习器通常学会使用输入中大量的、普遍存在的模式,而忽视少量或不常见的但有用的输入。多任务学习可通过强制学习支持严重依赖可能会被忽略模式的任务的内部表示。

4.6 有序迁移

有时我们已经根据之前的学习有了相关任务的领域理论,而用于训练这些模型的数据可能不再可用了。多任务学习可以在没训练数据的条件下从这些预训练的模型中受益吗?我们可以使用模型来生成人造数据,并在人造数据中使用训练信号作为额外任务。

4.7 多个任务自然地出现

通常这个世界给予我们一系列相关任务可供学习,传统的方法是将它们划分成独立的问题各自训练;如果相关任务一起训练的话能够使彼此受益。一个很好的例子是语音识别需要学习单词的音素和重音。

4.8 将输入变成输出

很多可以应用多任务学习的领域是那些将一些特征作为输入是不现实的地方,多任务学习提供一种通过使用这些特征作为额外任务并从中获益的方式。有些特征作为输出比作为输入会更好,我们可以构造一些问题,使得特征作为输出比输入更有用。

假定有下面的函数:

考虑如图4所示的后向传播网络,有20个输入、16个隐藏单元和一个输出,通过训练来学习F1(A,B)。F1(A,B)的数据是通过在区间[-5,5]随机采样A和B的数值生成的,用输入中的10位二进制编码表示A和B。目标输出是F1(A,B)的实数值。

图4. 三个学习F1的网络架构。A:STD是一个不适用额外特征的标准网络;B:STD+IN是一个使用额外特征作为一个额外输入;C:STD+OUT是多任务学习网络,额外特征是作为额外输出使用。(图片引用自 [1])

表1展示了三个后向传播网络进行50次试验的平均性能,对于每次试验,重新生成随机训练集、验证集和测试集。

 

表1. 单任务学习、有额外输入的单任务学习和多任务学习在F1函数上的性能对比

网络 试验次数 平均RMSE
STD (没有额外输入、输出) 50 0.0648
STD+IN (有额外输入) 50 0.0647
MTL (有额外输出) 50 0.0631

 

现在考虑F1的相关函数:

假设除了用于A和B的20个输入,还多一个输入给F2(A,B)作为额外输入特征,如图4b中的网络所示。这个额外输入会帮助F1(A,B)学得更好吗?不一定!对于随机数值A和B,A+B和A-B并不相关,对于生成的训练集这两个随机变量的相关系数的绝对值小于0.01。这将削弱后向传播网络学习使用F2(A,B)来预测F1(A,B)的能力。表1的STD+IN说明了增加额外输入的单任务学习网络的性能,相比没有额外输入,性能没有显著变化。可见将特征作为输入时,包含在特征F2(A,B)中的额外信息并不会帮助后向传播网络学习F1(A,B)。

如果使用F2(A,B)作为额外输入不会帮助后向传播学习F1(A,B),我们是否可以忽略F2(A,B)?当然不可以,因为F1(A,B)和F2(A,B)是强相关的。它们都需要计算同样的子特征A和B。如果将F2(A,B)作为必须学习的额外输出,它将使共享的隐层更好地学习A和B,因此最终将帮助网络更好地学习预测F1(A,B)的能力。

图4c展示了一个有20个输入和2个输入的网络,一个输出用于F1(A,B),另一个用于F2(A,B)。只在F1(A,B)的输出上对网络做性能评估,但在两个输出都做后向传播。表1中的最后一行说明了多任务学习网络在F1(A,B)上的平均性能。使用F2(A,B)作为额外输出提高了F1(A,B)的性能。在这个问题上,使用额外特征作为额外输出比作为额外输入好。

有一类特别有趣的问题是当特征中存在噪声时,将特征作为输出比作为输入更有用,因为额外输出中的噪声比额外输入中的噪声危害更小。

5 多任务深度学习应用

5.1 脸部特征点检测

脸部特征点检测受遮挡和姿势变化等问题的影响,[6] 研究通过多任务学习提高检测健壮性的可能性,而不是把检测任务视为单一和独立的问题,希望优化脸部特征点检测和一些不同但细微相关的任务,比如头部姿势估计和脸部属性推断。这是有意义的,因为不同的任务有不同的学习困难和收敛率。为了定位这个问题,他们构想一个新的限制任务的深度模型,通过尽早停止辅助任务来促使学习收敛。

脸部特征点检测不是一个独立的问题,它的预测会被一些不同但细微相关的因素影响。比如一个正在笑的孩子会张开嘴,有效地发现和利用这个相关的脸部属性将帮助更准确地检测嘴角。 如图5所示,TCDCN除了检测特征点任务,还有识别眼镜、笑脸、性别和姿态这四个辅助任务,通过与其它网络的对比,可以看出辅助任务使主任务的检测更准确。

TCDCN通过随机梯度下降进行学习,不同的任务有不同的损失函数和学习难度,因此有不同的收敛速度,网络结构如图6所示。早期的方法通过探索任务之间的关系,比如学习所有任务权重的协方差矩阵来解决收敛速度不同的问题,但是这种方法只能在所有任务的损失函数相同时才能应用。TCDCN采用一种尽快停止辅助任务的方法,避免这些任务对训练集过拟合后影响主任务的学习:在训练开始时,TCDCD受所有任务的约束,避免陷入不好的局部最优;随着训练的进行,有些辅助任务将不再使主任务受益,它们的学习过程将被停止。

图5.卷积神经网络、级联卷积神经网络和任务约束深度卷积网络(TCDCN)的脸部特征点检测例子

(图片引用自 [6])

 
图6. TCDCN网络结构示意图 (图片引用自 [6])

 

5.2 DeepID2 (Deep Identification-verification)

[7] 提出一个同时使用人脸鉴定和确认信号作为监督的方法,以解决发掘扩大个体之间差异同时减少个体内部变化的有效特征的挑战。DeepID2通过精心设计的深度卷积网络来学习,人脸分类任务通过刻画从不同个体提取的DeepID2特征来增加个体之间的差异,而人脸确认任务通过激励从相同个体提取的DeepID2特征减少个体内部的变化。在LFW[8] 数据集上达到99.15%的人脸确认准确度。DeepID2的网络结构如下图所示:

 

图7. DeepID2特征提取卷积网络结构示意图 (图片引用自 [7])

DeepID2网络中包含四个卷积层,在最后一层(DeepID2层)提取一个160维的DeepID2特征向量。DeepID2特征提取过程可以表示为:

f=Conv(x, θc)

其中x是输入的人脸图片,f是提取的DeepID2特征向量,θc表示卷积网络将要学习的参数。

DeepID2特征是通过两个监督信号来学习。第一个是人脸鉴定信号,把每张人脸图片归类为n个不同个体的其中一个,通过最后一层中的一个n路Softmax层来实现人脸鉴定。该网络是训练来最小化交叉熵损失,论文中称人脸鉴定损失:

其中,f是DeepID2特征向量,t是目标分类,θid 表示Softmax层的参数。

第二个是人脸确认信号,激励从相同个体的人脸提取的DeepID2特征。确认信号直接规范DeepID2特征并且能够有效减少个体内部的差异。常用的约束包括L1/L2范数和余弦相似度,DeepID2采用如下基于L2范数的损失函数:

其中,fi和fj是从两张对比的人脸图片中提取的DeepID2特征向量。yij=1表示fi和fj来自相同个体,在这里最小化两个DeepID2特征向量的L2距离。yij=-1表示不同个体,要求距离大于m。θve = {m} 是确认损失函数要学习的参数。

训练过程只要有如下步骤:

  • 从训练集中取两个训练样本
  • 计算两张人脸图片的特征向量
  • 计算参数θid、θve、fi、fj、θc的梯度
  • 更新θid、θve、θc的值
  • 重复1)直到收敛

5.3 Fast R-CNN

Fast R-CNN [9] 是一个物体检测的快速的基于区域的卷积网络,其中也有多任务深度学习的应用,图8展示了Fast R-CNN的网络结构。


图8. Fast R-CNN网络结构示意图。一张图片和多个RoI(感兴趣区域)输入到一个全卷积网络,每个RoI会进入一个固定大小的feature map,然后被全连接层映射到一个特征向量。每个RoI有两个输出:softmax概率和每个分类的矩形框回归补偿。 (图片引用自 [9])

 

从图8可看出,一个Fast R-CNN网络有两个输出层:第一个输出K+1个分类的概率分布,p = (p0,…,pk);第二个输出每个分类的边框回归补偿,tk = (tkx, tky, tkw, tkh)。每个训练RoI标注为一个参考标准分类u和一个参考标准边框回归对象v,在每个标注的RoI用多任务损失函数L来共同训练分类和矩形框回归:

上式中的Lcls(p,u) = -log(pu)是正确分类u的log损失函数 。Lloc是分类u对应的矩形框回归目标的损失函数:

其中,

通过λ来控制两个任务的损失均衡。

5.4 旋转人脸网络

视角和光照变化给人脸识别带来了困难,一些研究者试图通过引入姿态和光照不变特征来解决这个问题。[10] 提出一个基于多任务学习的深度神经网络,在旋转一张任意角度和光照的人脸图片到特定角度的人脸图片方面达到很好的性能,在卡内基梅隆大学的MultiPIE人脸数据库上的表现超出文章发表时的最佳算法4-6%。如图9所示,新的模型可以合成正面光照条件下不同角度的图片。

早前的多任务学习模型通过共享一些层来决定公共特征,共享层后剩余的层被分割成多个任务,如图9所示,这个用于旋转人脸的深度神经网络提供一种新颖的多任务学习方式:多任务模型共享主任务的所有层,辅助任务附加在主任务后面以提高保留个体身份的能力。

图9的深度神经网络共由四部分组成:抽取特征、旋转特征、生成图片和重建任务。模型的主要目标是生成特定角度的图片,但在这个任务的后面又附加一个用于重建输入图片的任务,这两个任务都使用L2范数作为损失函数。对于第一个任务,生成新图片的输出层的损失函数定义如下:

其中Yi,GT和Yi分别是标注数据和输出数据。


图9. 第一列表示MultiPIE数据库中两个人在不同关照条件下的输入测试图片。剩下的列是输入图片完成不同编码后的输出。 (图片引用自 [10])

图10. DNN模型结构示意图 (图片引用自 [10])

 

对于第二个任务,重建输入图片的损失函数定义如下:

Er=Ni=1|Xi,GTXi|22

最终的损失函数是对两个任务损失函数的加权求和:

E=λcEc+λrEr

6 总结

多任务学习是一种归纳迁移机制,利用额外的信息来源来提高当前任务的学习性能,包括提高泛化准确率、学习速度和已学习模型的可理解性。在学习一个问题的同时,可以通过使用共享表示来获得其他相关问题的知识,多个任务并行训练并共享不同任务已学到的特征表示,是多任务学习的核心思想。

通过往后向传播网络增加额外输出可提高神经网络的泛化能力,是一件很有意义的事情,能提高泛化能力的可能原因有三:第一,不相关任务对于聚合梯度的贡献相对于其他任务来说可以视为噪声,不相关任务也可以通过作为噪声源来提高泛化能力;第二,增加任务会影响网络参数的更新,比如增加了隐层有效的学习率;第三,多任务网络在所有任务之间共享网络底部的隐层,或许更小的容量就可以获得同水平或更好的泛化能力。因此,我们需要关注如何选择多个相关任务及数据集使网络更好地泛化,有四种机制可以帮助多任务学习网络更好地泛化:统计数据增强、属性选择、信息窃取、表示偏置。

多任务学习已经在多个领域中应用,本文列举了一些可应用多任务学习的场景:

  • 使用未来预测现在
  • 多种表示和度量
  • 时间序列预测
  • 使用不可操作特征
  • 使用额外任务来聚焦
  • 有序迁移
  • 多个任务自然地出现
  • 将输入变成输出

深度学习网络是具有多个隐层的神经网络,在深度学习网络中应用多任务学习是一种很自然的想法。机器视觉领域有广泛的多任务学习应用,主要方式包括:多个任务并行输出,同时做分类和回归或使用不同的损失函数;多个任务如流水线般,辅助任务附加在主任务后面。

多任务学习将会在越来越多的领域作为一种提高神经网络学习能力的手段被广泛应用。 

7 参考文献

[1] R. Caruana, “Multitask Learning,” Mach Learn, vol. 28, no. 1, pp. 41–75, Jul. 1997.

[2] “Multi-task learning.” [Online]. Available: https://en.wikipedia.org/wiki/Multi-task_learning.

[3] L. Pratt and S. Thrun, “Guest Editors‘ Introduction,” Mach Learn, vol. 28, no. 1, pp. 5–5, Jul. 1997.

[4] T. G. Dietterich, L. Pratt, and S. Thrun, Eds., “Machine Learning – Special issue on inductive transfer,” Mach Learn, vol. 28, no. 1, 1997.

[5] L. Holmstrom and P. Koistinen, “Using additive noise in back-propagation training,” IEEE Trans. Neural Netw., vol. 3, no. 1, pp. 24–38, Jan. 1992.

[6] Z. Zhang, P. Luo, C. C. Loy, and X. Tang, “Facial Landmark Detection by Deep Multi-task Learning,” in Computer Vision – ECCV 2014: 13th European Conference, Zurich, Switzerland, September 6-12, 2014, Proceedings, Part VI, D. Fleet, T. Pajdla, B. Schiele, and T. Tuytelaars, Eds. Cham: Springer International Publishing, 2014, pp. 94–108.

[7] Y. Sun, Y. Chen, X. Wang, and X. Tang, “Deep Learning Face Representation by Joint Identification-Verification,” in Advances in Neural Information Processing Systems 27, Z. Ghahramani, M. Welling, C. Cortes, N. D. Lawrence, and K. Q. Weinberger, Eds. Curran Associates, Inc., 2014, pp. 1988–1996.

[8] G. B. Huang, M. Ramesh, T. Berg, and E. Learned-Miller, “Labeled faces in the wild: A database for studying face recognition in unconstrained environments,” Technical Report 07-49, University of Massachusetts, Amherst, 2007.

[9] R. Girshick, “Fast R-CNN,” in The IEEE International Conference on Computer Vision (ICCV), 2015.

[10]   J. Yim, H. Jung, B. Yoo, C. Choi, D. Park, and J. Kim, “Rotating Your Face Using Multi-Task Deep Neural Network,” in The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015.

 

你可能感兴趣的:(多任务学习(Multi-Task Learning, MTL))