深度学习中的多义务学习综述
作者头像
  • wubin123
  • 2019-10-31 06:45:04 1

导读

最近我在研究深度学习中的多任务学习(也称为多目标学习,Multi-Task Learning等),发现了一篇不错的综述,觉得非常值得分享。希望这篇文章也能给你带来启发。

背景

单一模型可能会忽略一些相关任务中的潜在信息,通过在不同任务之间共享参数,可以提升模型的泛化能力。从机器学习的角度来看,多任务学习可以被视为一种归纳转移(Inductive Transfer),通过提供归纳偏差(Inductive Bias)来改进模型效果。例如,使用L1正则化可以假设模型倾向于稀疏解(参数较少)。在多任务学习中,这种先验是通过辅助任务提供的,更具灵活性,引导模型关注其他任务,从而提高整体泛化性能。

多任务学习方法

硬参数共享

所有任务共享部分参数(通常是底层参数),而在特定任务层使用各自独立的参数。这种方法可以降低过拟合的概率,过拟合的概率与任务数成正比。

软参数共享

每个任务有自己的参数,通过约束不同任务参数间的差异来体现相似性,例如使用L2范数或迹范数。

优点及应用场景

  1. 隐式数据增强:每个任务的噪声不同,多个任务共同学习可以相互抵消一部分噪声。
  2. 噪声较大或样本不足的任务:某些任务可能噪声很大或样本不足,难以有效学习,而辅助任务可以帮助学习这些特征。
  3. 特征难学的任务:某些特征在一个任务中难以学习,但在另一个任务中容易学习,可以通过辅助任务学习这些特征。
  4. 未来任务的表现:通过学习足够大的假设空间,未来的新任务可以有更好的表现。
  5. 正则化约束模型:通过引入归纳偏差,约束模型,缓解过拟合,降低模型的Rademacher复杂度。

块稀疏正则化

目标是强制模型只关注部分特征,前提是不同任务之间必须相关。假设K个任务有相同的特征和模型参数,构成一个矩阵A(D×K),其中D为参数维度,K为任务数,目标是使这些任务只使用部分特征,即矩阵A的一些行变为0。最简单的想法是使其成为一个低秩矩阵,或者使用L1正则,因为L1可以将某些特征约束为0。通常,使用lq范数对每个特征进行约束,然后使用L1范数进行进一步约束。

  1. 组Lasso:l1/l2范数,通过迹范数处理非凸问题。
  2. 结合两种方法:分解参数矩阵为S+B,对S使用Lasso,对B使用l1/l无穷范数。
  3. 分布式组稀疏正则化:适用于大规模任务。

正则化方法学习任务关系

当任务之间相关性较弱时,使用上述方法可能导致负向效果。此时,希望添加的先验知识是某些任务之间是相关的,但某些任务之间相关性较差。可以通过引入任务聚类来约束模型,例如惩罚不同任务的参数向量及其方差,限制不同模型趋向于不同的聚类中心。

深度神经网络中的多任务学习案例

深度关系网络

在计算机视觉中,通常共享卷积层,然后是特定任务的深度神经网络层,通过设置任务层的先验,使模型学习任务间的关系。

完全自适应特征共享

从一个简单结构开始,贪婪地动态拓宽模型,使相似的模型聚类。虽然贪婪方法可能无法学到全局最优结构,但它可以简化模型。

交叉缝合网络

软参数共享,通过线性组合学习前一层的输入,允许模型决定不同任务之间的共享程度。

低监督

寻找更好的多任务结构,复杂的任务底层应由较低级别的任务目标监督。

任务层次结构

对多个自然语言处理任务预先设定层次结构,然后联合学习。

不确定性的加权损失

不考虑学习共享结构,而是考虑每个任务的不确定性。通过优化损失函数(高斯似然函数带任务依赖的不确定性),调节不同任务之间的相似性。

张量分解

对每层参数进行分解,分为共享和特定任务的参数。

滑道网络

硬参数共享、交叉缝合网络、块稀疏正则化和任务层次结构的结合,使模型自己学习哪些层和子空间共享,在哪里找到输入的最佳表示。

辅助任务的选择

我们主要关注主任务,但希望从有效的辅助任务中受益。目前选择辅助任务的方法包括:

  1. 相关任务:例如自动驾驶和路标识别、查询分类和网页搜索等。
  2. 对抗任务:在领域适应中,使用对抗任务作为负向任务。
  3. 提示任务:某些特征在某些任务中难以学习,选择辅助任务预测这些特征。
  4. 注意力聚焦:使模型注意那些在任务中不容易被注意到的部分。
  5. 量化平滑:某些任务的目标高度离散化,使用更平滑的辅助任务有助于学习。
  6. 预测输入:某些特征不便于预测目标,但对模型训练有帮助,这些特征可以作为输出。
  7. 利用未来预测现在:某些特征只有在决策之后才会出现,这些特征可以作为辅助任务,为训练过程提供信息。
  8. 表示学习:大多数辅助任务旨在隐式学习特征表示,这对主任务有益。

如何衡量任务之间的相关性

任务是否相似不是非黑即白的,越相似的任务收益越大。相关性的衡量方法包括:

  1. 使用相同的特征做决策。
  2. 相关任务共享相同的最优假设空间。
  3. F-related:如果两个任务的数据是由固定分布通过某些变换得到的。
  4. 分类边界接近。

多任务学习技巧

  1. 辅助任务的标签分布更紧凑平均(如NLP中的词性标注)。
  2. 主任务训练曲线较快平稳,辅助任务波动较小。
  3. 不同任务的尺度不同,最优学习率可能不同。
  4. 某些任务的输入可以作为其他任务的输入。
  5. 某些任务的迭代周期不同,可能需要异步训练。
  6. 总损失可能被某些任务主导,需要动态调整参数。
  7. 某些估计作为特征(交替训练)。

总结

硬参数共享已经存在了20多年,仍然是流行的方法。而学习什么要共享也非常有价值。我们对任务的理解(相似性、关系、层次结构、对多任务学习的好处)仍然有限,希望未来能有更多的进展。

研究方向

  1. 学习什么要共享。
  2. 任务相似性的测量。
  3. 使用任务不确定性。
  4. 引入异步任务(特征学习任务),采用交替迭代训练。
  5. 学习抽象子任务;学习任务结构(类似强化学习中的层次学习)。
  6. 参数学习辅助任务。

希望这些内容对你有所帮助。

    本文来源:图灵汇
责任编辑: : wubin123
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
学习综述深度义务
    下一篇