当在一个任务中要优化多于一个的目标函数[1] ,就可以叫多任务学习
由于所有任务都或多或少存在一些噪音,例如,当我们训练任务A上的模型时,我们的目标在于得到任务A的一个好的表示,而忽略了数据相关的噪音以及泛化性能。由于不同的任务有不同的噪音模式,同时学习到两个任务可以得到一个更为泛化的表示
如果主任务是那种,噪音严重,数据量小,数据维度高,则对于模型来说区分相关与不相关特征变得困难。其他辅助任务有助于将模型注意力集中在确实有影响的那些特征上。
在不同的任务之间的特征交互交流,对于任务B来说很容易学习到某些特征G,而这些特征对于任务A来说很难学到。这可能是因为任务A与特征G的交互方式更复杂,或者因为其他特征阻碍了特征G的学习。
多任务学习更倾向于学习到大部分模型都强调的部分。学到的空间更泛化,满足不同的任务。由于一个对足够多的训练任务都表现很好的假设空间,对来自于同一环境的新任务也会表现很好,所以这样有助于模型展示出对新任务的泛化能力(Deep Multi-Task Learning with Low Level Tasks Supervised at Lower Layers[4]、Emotion-Cause Pair Extraction: A New Task to Emotion Analysis in Texts[5]),非常适合迁移学习场景。
如归约迁移通过引入归约偏置来改进模型,使得模型更倾向于某些假设,能起到一种正则效果。常见的一种归约偏置是L1正则化,它使得模型更偏向于那些稀疏的解。在多任务学习场景中,这会导致模型更倾向于那些可以同时解释多个任务的解。
先说是不是,再问为什么.
在Identifying beneficial task relations for multi-task learning in deep neural networks[6]中,作者探究到底是什么让multi-task work, 作者使用严格意义上相同的参数用NLP任务做了对比实验,图中分别是两个任务结合时与单任务loss的对比,大部分多任务的效果比不上单任务,作者的结论是单任务的主要特征在起作用,那些多任务结合效果好的情况,是「主任务比较难学(梯度下降比较缓慢),辅助任务比价好学的时候,多任务会有好效果」
为什么会无效?因为所有有效的原因都有它的负向效果
如块稀疏正则化,对于不同任务的参数,加l1正则,或者l1/lx, x>1等的正则,起任务参数的选择,让模型自动去选择应该共享哪些参数, 在keras的multi-task框架中,就是多个任务的loss相加后,用一个优化器优化,就是这种思路
a是各个任务的参数
Cross-Stitch Networks for Multi-Task Learning[8]将两个独立的网络用参数的软共享方式连接起来, 用所谓的十字绣单元来决定怎么将这些任务相关的网络利用其他任务中学到的知识,并与前面层的输出进行线性组合。
NLP 领域中,各个任务间经常是有层级关系,A Joint Many-Task Model: Growing a Neural Network for Multiple NLP Tasks[9]中在多任务并行的同时,加了串行结构,例如具体任务:词性分析 POS->语块分析 CHUNK->依存句法分析 DEP->文本语义相关 Relatedness->文本蕴涵 Entailment,每个子任务都偶有自己的loss, 然后又会作为其他任务的输入
Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics[10] 用同方差不确定性对损失进行加权(Weighting losses with Uncertainty),作者认为最佳权值与不同任务的衡量规模和噪声相关,而噪声中除了认知不确定性,异方差不确定性,这些取决于数据的不确定性外,作者把同方差不确定性作为噪声来对多任务学习中的权重进行优化,作者根据噪声调整每个任务在代价函数中的相对权重,噪声大则降低权重,反之。
GradNorm: Gradient Normalization for Adaptive Loss Balancing in Deep Multitask Networks[11] 基于不同任务loss的降低速度来动态调整权值, 作者定义了另外一个专门针对权值的优化函数
是每个任务的loss相对第一步loss的优化程度,
是每一步
对 task 任务的梯度,即如果某个任务的优化程度小,这个loss会超那么就调大这个任务的权值优化,达到个loss学习程度的平衡
辅助任务,相关性任务,对抗性任务....等[12]
[1]
An Overview of Multi-task Learning in Deep Neural Networks: https://arxiv.org/abs/1706.05098
[2]
Identifying beneficial task relations for multi-task learning in deep neural networks: https://www.aclweb.org/anthology/E17-2026/
[3]
Multitask Learning. Autonomous Agents and Multi-Agent Systems: https://www.cs.cornell.edu/~caruana/mlj97.pdf
[4]
Deep Multi-Task Learning with Low Level Tasks Supervised at Lower Layers: https://www.aclweb.org/anthology/P16-2038/
[5]
Emotion-Cause Pair Extraction: A New Task to Emotion Analysis in Texts: https://www.aclweb.org/anthology/P19-1096/
[6]
Identifying beneficial task relations for multi-task learning in deep neural networks: https://www.aclweb.org/anthology/E17-2026/
[7]
Learning Multiple Tasks with Kernel Methods: https://jmlr.org/papers/v6/evgeniou05a.html
[8]
Cross-Stitch Networks for Multi-Task Learning: https://arxiv.org/abs/1604.03539
[9]
A Joint Many-Task Model: Growing a Neural Network for Multiple NLP Tasks: https://arxiv.org/abs/1611.01587
[10]
Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics: https://arxiv.org/abs/1705.07115
[11]
GradNorm: Gradient Normalization for Adaptive Loss Balancing in Deep Multitask Networks: https://arxiv.org/abs/1711.02257
[12]
辅助任务,相关性任务,对抗性任务....等: https://blog.csdn.net/qq280929090/article/details/79649163
- END -