220108-论文阅读-多任务学习的综述

论文:An Overview of Multi-Task Learning in Deep Neural Networks(2017)
论文链接:arxiv.org/abs/1706.0509
文章主要是介绍了多任务(MTL)的一些基本概念以及为什么要应用多任务,多任务为什么会有效,接着介绍了几种多任务的深度模型结构,是一篇初步了解MTL比较好的综述论文。
MTL是什么
一般来说,当你同时优化多个loss函数时,就可以认为是多任务学习,即使你的主要目标可能只有一个,但如果你加了一些辅助任务,那么也算是在MTL的概念范围内。

为什么要研究MTL呢
人工智能最终的目标其实就是一种高级的MTL,因为人类去认知一种东西时,通常不会着重一点,而是同时获取了多个信息,产出了多个决策,而MTL就很类似这种输入和输出的形式。
从机器学习的角度看,MTL可以使得多个任务同时训练会比单个任务训练得到的效果更好,即使有时候不是这样,但至少MTL给你提供了另一种可能,这在经济学上就是一种收益,这是机器学习需要研究MTL的动力。

MTL为什么会有效
当我们知道解释复杂模型为什么有效,通常是一种玄学,所以我们一般是揣测,并不会严格的证明为什么是这样。

  1. 噪音多样化:每个任务的噪音的分布可能不一样,如果模型能够接受更多任务的噪音,那么它的表达就会更泛化通用,减少过拟合的风险
  2. 注意力集中:即push模型关注那些对所有任务都有益的特征
  3. 提升模型的学习能力:即某些特征对于某些目标来说,很难学习,即可能需要经过复杂的转换,但多任务可以辅助提升模型的学习能力
  4. 正则化:与1有点类似,MTL里面引入了一种"块正则"的概念,这是相对参数正则来讲的,块正则则是由于多任务对一组参数的影响而产生的


MTL的深度模型结构有哪些
通用结构分类


硬共享:即所有任务有部分共同的神经网络曾用来做参数共享;


软共享:相对硬共享,软共享则是每个任务有各自的特征抽取层,在这些层的参数上会有l2的正则来约束他们不要过于迥异;

其实从硬共享和软共享都可以看出来MTL想学到更通用的表达,但有效的前提仍然是任务之间有相关性,否则这些共享机制可能起到反作用。


深度学习MTL模型的几种结构
深度关系网络:cv任务的结构,技能看到硬共享结构的影子(卷积部分),也能看到软共享结构的影子(全连接输出层)



完全自适应特征共享:相当于可以自己控制共享的程度,但贪心的算法可能不利于共享结构的生成;


十字绣网络:在pooling和全链接层接了共享网络


联合多任务模型:看左侧的注释,可以看到任务的层级;


不确定损失加权:不太了解cv模型的结构,看上去encoder层是硬共享层,decoder是分task;


水闸网络:这里看上去比较复杂,其实是融合了很多之前的结构和方法,比如十字绣网络结构、块正则等;



辅助任务
在实际场景当中,我们遇到的往往是单个任务的需求,可能不需要多任务,但即使是这样,多任务的结构也能发挥作用,那就是添加一些辅助任务来帮助主任务达到更好的效果。
比如在分词的主任务中,可以将ner和词性标注作为辅助任务;
比如在识别信用欺诈任务中,添加信用违约风险任务作为辅助任务;

通篇看下来,MTL确实是一个值得在实际场景当中尝试的方向,还能拓宽一些思考的界限。

编辑于 2022-01-08 18:04