多任务学习-An Overview of Multi-Task Learning in Deep Neural Networks论文笔记

An Overview of Multi-Task Learning in Deep Neural Networks论文笔记

 

  • 概述:多任务学习有很多形式,如联合学习(Joint Learning),自主学习(Learning to Learn),借助辅助任务学习(Learning with Auxiliary Tasks)等。一旦发现正在优化多于一个的目标函数,就可以通过多任务学习来进行有效求解。即使优化目标只有一个,利用辅助任务仍然有可能改善主任务的学习性能。
  • 目标:利用额外的信息来源来提高当前任务的学习性能,包括提高泛化准确率、学习速度和学习的模型的可理解性。
  • 从机器学习的角度来看,多任务学习可视为一种归纳迁移(inductive transfer)。归纳迁移(inductive transfer)通过引入归纳偏置(inductive bias)来改进模型,使得模型更倾向于某些假设。举例来说,常见的一种归纳偏置(Inductive bias)是L1正则化,它使得模型更偏向于那些稀疏的解。在多任务学习场景中,归纳偏置(Inductive bias)是由辅助任务来提供的,这会导致模型更倾向于那些可以同时解释多个任务的解,这样做会使得模型的泛化性能更好。
  • 归纳偏置:提供更强的归纳偏置是迁移提高泛化能力的一种方法,可以在固定的训练集上产生更好的泛化能力,或者减少达到同等性能水平所需要的训练样本数量。归纳偏置会导致一个归纳学习器更偏好一些假设,多任务学习正是利用隐含在相关任务训练信号中的信息作为一个归纳偏置来提高泛化能力。
  • 参数的硬共享机制:

参数的硬共享机制是神经网络的多任务学习中最常见的一种方式,在实际应用中,通常通过在所有任务之间共享隐藏层,同时保留几个特定任务的输出层来实现。硬共享机制降低了过拟合的风险。事实上,有文献证明了这些共享参数过拟合风险的阶数是N,其中N为任务的数量,比任务相关参数的过拟合风险要小。这表明越多任务同时学习,模型就能捕捉到越多任务的同一个表示,从而导致在原始任务上的过拟合风险越小。

多任务学习-An Overview of Multi-Task Learning in Deep Neural Networks论文笔记_第1张图片

  • 参数的软共享机制:

在共享 Soft 参数时,每个任务都有自己的参数和模型,对模型参数的距离进行正则化来保障参数的相似性。通常使用L2距离正则化或者迹正则化(trace norm)。

多任务学习-An Overview of Multi-Task Learning in Deep Neural Networks论文笔记_第2张图片

  • 多任务学习的有效性
  1. 隐世数据增加机制:由于所有任务都或多或少存在一些噪音,例如,当我们训练任务A上的模型时,我们的目标在于得到任务A的一个好的表示,而忽略了数据相关的噪音以及泛化性能。由于不同的任务有不同的噪音模式,同时学习到两个任务可以得到一个更为泛化的表示。如果只学习任务A要承担对任务A过拟合的风险,然而同时学习任务A与任务B对噪音模式进行平均,可以使得模型获得更好表示F;
  2. 注意力集中机制:若任务噪音严重,数据量小,数据维度高,则对于模型来说区分相关与不相关特征变得困难。多任务有助于将模型注意力集中在确实有影响的那些特征上,是因为其他任务可以为特征的相关与不相关性提供额外的证据;
  3. 窃听机制:对于任务B来说很容易学习到某些特征G,而这些特征对于任务A来说很难学到。这可能是因为任务A与特征G的交互方式更复杂,或者因为其他特征阻碍了特征G的学习。通过多任务学习,我们可以允许模型窃听(eavesdrop),即使用任务B来学习特征G;
  4. 表示偏置机制:多任务学习更倾向于学习到一类模型,这类模型更强调与其他任务也强调的那部分表示。由于一个对足够多的训练任务都表现很好的假设空间,对来自于同一环境的新任务也会表现很好,所以这样有助于模型展示出对新任务的泛化能力;
  5. 正则化机制:多任务学习通过引入归纳偏置起到与正则化相同的作用。正是如此,它减小了模型过拟合的风险,同时降低了模型的Rademacher复杂度,即拟合随机噪音的能力。
  • 辅助任务(Auxiliary Tasks)

辅助任务应该是与主任务密切相关的,或者是能够对主任务的学习过程有益的。对于如何定义辅助任务,Caruana在1997年给出的定义是:若两个任务使用相同的特征来做决策,那么两个任务是相似的。Baxer于2000年补充道:理论上讲相关的任务共享同一个最优的假设类,也就是同样的归纳偏置。另一文献提出若两个任务中的数据都产生自由同一类变换F得到固定的概率分布,那么两个任务是F相关的。尽管可以使用于同一个分类问题,但是不能用于处理不同问题的任务。Xue等人2007年提出若两个任务的分类边界(参数向量)是闭合的,那么两个任务是相似的。

常见的辅助任务类型如下:

1. 相关任务(Related Tasks)

可以使用相关任务作为一个辅助任务。例如:使用预测不同道路的特征来辅助学习自动驾驶的方向掌控、使用头部姿势估计与面部特征属性推断辅助脸部轮廓检测任务、同时学习查询分类与网页搜索、同时预测图像中物体的类别和位置、同时预测文本到语言的过程中音素的持续时间和频率。

2.对抗性(Adversarial)任务

在一些场景下,可以用与想要实现的目标是相反的任务做辅助任务。相反任务的数据是可以用来做对抗损失,对抗损失不用最小化的,而是使用Gradient Reversal Layer来做最大化训练误差。

3. 提示(Hints)性任务

多任务学习可以学到单任务学不到的特征。使用Hints就是这样一种有效的机制:在辅助任务中预测特征。例如在自然语言处理中,可以在情感分析中将一个输入句子中是否包含正负面情感词作为辅助任务,或者在错误名字识别中将判断一个句子中是否包含名字作为辅助任务。

4. 注意力机制

辅助任务可以用来将注意力集中在网络可能忽略的图像的某部分上。例如,对于学习方向掌控的任务中,单一的任务模型通常忽略那些图像的细微之处,如路标等。那么预测路标就可以作为一个辅助任务。对于人脸识别来说,可以将预测脸部特征的位置作为辅助任务。

5. 量化平滑

对于多任务来讲,优化目标是已经被量化的。在大多数情况下,需要人工评价来收集数据,例如,预测疾病的风险或情感分析(正面、负面、中立),由于目标函数是光滑的,所以使用较少量的量化辅助任务会使主任务得学习变得容易。

6. 预测输入

在一些情况下使用某些特征作为输入并不会对预测目标输出有益,但是它们可能可以指导监督学习的过程。在这些情形下,特征是作为输出的一部分,而非输入。

7. 用未来预测现在

许多场景中一些特征仅在做出预测后才可用。例如,在自动驾驶中,一旦汽车经过障碍物或路标,便可以对它们做出准确的度量。Caruana于1997年举了一个肺炎的例子,只有事发后才能又额外的诊断案例可用。对于这些例子来讲,这些额外的数据由于在输入的时刻并不可用,所以并不能作为特征。然而,可以用作辅助任务来为模型传授额外的知识以辅助训练。

8. 表示学习

多任务学习中辅助任务的目标在于使得模型学习到共享的表示,以帮助主任务的学习。一个显式的做法是利用一个辅助任务专门来学习一个可以迁移的表示。

 

你可能感兴趣的:(多任务学习-An Overview of Multi-Task Learning in Deep Neural Networks论文笔记)