深度学习领域的多任务学习综述


前言

本文通过对论文An Overview of Multi-Task Learning in Deep Neural Network的解读来对多任务学习做一个大概的了解,把握多任务学习的方向。

多任务学习的应用领域:自然语言处理、语音识别、计算机视觉、药物发现。


1. 什么是多任务学习?

含义:通过相关任务间的参数或权重的共享,模型的性能表现的更加优越,这便是多任务学习。
界定:同时优化多个损失函数便可界定为多任务学习。
目标:通过利用包含在相关任务的训练参数中特定领域的训练参数,多任务学习提高了模型的泛化能力。


2. 为何要使用多任务学习?

在生物学角度,多任务学习受到人类学习的启发——在认识新事物的时候,人会使用之前认识旧事物时所获得的旧知识。
在教与学角度,不断学习的简单技术能够为我们提供掌握复杂技术的必要技能。
机器学习角度,归纳转移。


3. 多任务学习有哪些类型?

:此处的多任务学习类型是指在深度学习领域下的多任务学习类型。

3.1 基于硬参数共享的多任务学习

在这里插入图片描述
在各个任务的共有隐藏层中共享权重参数,在各任务的隐藏层中独享参数,这大大降低了模型过拟合的风险;

3.2 基于软参数共享的多任务学习

在这里插入图片描述
每个任务都有自己的模型和自己的参数,通过正则化模型中部分隐藏层参数之间的距离来促进参数的相似性。


4. 为什么多任务学习能提升模型的性能?

:假设存在相似的任务A和B,A与B有相同的隐藏层F。

4.1 隐藏数据扩充(Implicit data augmentation)

多任务学习有效地增加了用于训练模型的样本数量。不同的任务有不同的偏差,一个同时学习两个任务的模型能够学习一个更一般的权重表示。只学习A任务,A任务存在过拟合的风险,而共同学习A任务和B任务可以使模型通过对偏差的平均获得更好的隐藏层F的权重表示。

4.2 注意力聚焦 ( Attention focusing)

若在一个任务中,其数据集中数据偏差较大或数据维度较高且数据量有限,那么单任务获得的一个模型可能很难区分相关的和不相关的特征。由于在多任务学习中其他任务能为原任务中的某些特征提供相关性大小的参考,所以在多任务学习中模型能够将其注意力集中在那些有用的特征上。

4.3 窃听(Eavesdropping)

有些特性G对于B任务很容易学习,而对于A任务则很难学习 (这可能是因为A以一种更复杂的方式与特征进行交互,或者是因为其他特征阻碍了模型学习G的能力)。通过多任务学习,A任务能够窃听到B任务学习到的特征G。

4.4 表示偏差(Representation bias)

多任务学习在训练的过程中偏向于选择其他任务也喜欢的权重参数,这将有助于模型泛化到新任务中,由于模型在来自同一个环境的多个任务中表现良好,那么其在来自相同环境的任务上也会表现良好。

4.5 正则化(Regularization)

多任务学习引入一个归纳偏置来作为一个正则化器。其降低了模型过拟合的风险以及模型的复杂性。

5 非神经模型的多任务学习

存在模型:线性模型、核方法和贝叶斯算法

通过范数正则化来加强任务间的稀疏性;以及建模任务之间的关系


5.1 块稀疏正则化

:假定存在T个任务,对于其中的每一个任务t,都有与其对应的模型 m t m_t mt和一个维度为d的权重参数向量 a t a_t at:
a t = [ a 1 , t . . . a d , t ] T a_t = \left[ \begin{matrix} a_{1,t}\\ . \\ . \\ . \\ a_{d,t} \end{matrix} \right] ^T at= a1,t...ad,t T

5.2 学习任务关系


6 深度学习领域的多任务学习有哪些方法?

6.1 深度关系网络(Deep Relation Networks)

在计算机视觉的MTL中,通常共享卷积层,学习特定任务的全连接层。通过对任务层设定先验,使模型学习任务间的关系。
在这里插入图片描述

6.2 全自适应特征共享(Fully-Adaptive Feature Sharing)

首先构建共享参数的权重共享层以及各个分任务的任务层,之后使用贪心算法从底层开始将权重共享层不断拓宽网络(网络结构不变,不同组的权重共享层中的权重参数不一样),贪心方法可能无法做到全局最优。
在这里插入图片描述

6.3 十字绣网络(Cross-stitch Networks)

在这里插入图片描述构建两个独立的模型架构,在模型的池化和完全连接的层后放置十字绣单元,从而允许模型学习其他任务的特征,本质上是一种软参数共享的多任务学习,十字绣单元如下,详情请参考Cross-stitch Networks for Multi-task Learning
在这里插入图片描述

6.4 低监督(Low supervision)

低层任务在网络低层建模的性能高于在网络高层建模。低层任务在低层建模,高层任务才能使用低层任务的共享表示,预训练+微调。

6.5 多任务联合模型(A Joint Many-Task Model)

这是个怪兽一般的模型,多层LSTM并联,从下往上看在文本颗粒度上是越来越大,在任务上是越来越复杂。由底而上分别是词性标注(POS)、句子分块(CHUNK)、句法分析(DEP)、句子相关性判断(DEP)、逻辑蕴涵关系。输入可以是词,也可以是字符ngram。底层任务的隐藏状态有到其他层级的直接路径,相关性encoder的输出卷积一下,供逻辑关系分类器使用。整个模型使用同一个目标函数。左右对称只是示意可以接受两个句子用于关联分析,其实是同一套参数。
在这里插入图片描述

6.6 不确定性权重损失(Weighting losses with uncertainty )

此框架不存在分任务权重参数共享,而是采用正交的方法来考虑每个任务的不确定性。然后通过推导一个基于任务相关不确定性高斯似然最大化的多任务损失函数来调整每个任务在代价函数中的相对权重。
(在计算联合损失函数时,各任务的损失占比由模型自动计算出来,而且这个占比在训练过程中自动调整)。
在这里插入图片描述

6.7 MTL的张量因子分解(Tensor factorisation for MTL)

对模型中的每层参数使用张量分解分为共享参数和特定于任务的参数。

6.8 水闸网络(Sluice Networks)

该模型综合使用了现有的基于深度学习的MTL方法,这些技术包括硬参数共享、交叉缝合网络、块稀疏正则化方法、创建任务层次结构的NLP方法。该模型能够学习到应该共享的层和子空间以及能够将输入序列最佳表示的层。
在这里插入图片描述


总结

以上就是本文依据论文对深度学习领域的多任务学习进行了简要介绍,多任务学习有着广泛的应用,后文将深入学习。

猜你喜欢

转载自blog.csdn.net/qq_40940944/article/details/129263273