https://blog.csdn.net/chanbo8205/article/details/84170813算法
多任务学习(Multitask learning)是迁移学习算法的一种,迁移学习可理解为定义一个一个源领域source domain和一个目标领域(target domain),在source domain学习,并把学习到的知识迁移到target domain,提高target domain的学习效果(performance)。网络
多任务学习(Multi-task learning):因为咱们的关注点集中在单个任务上,咱们忽略了可能帮助优化度量指标的其它信息。具体来讲,这些信息来自相关任务的训练信号。经过共享相关任务之间的表征,可使咱们的模型更好地归纳原始任务。这种方法被称为多任务学习(MTL)。其也是一种概括迁移机制,主要目标是利用隐含在多个相关任务的训练信号中的特定领域信息来提升泛化能力,多任务学习经过使用共享表示并行训练多个任务来完成这一目标。概括迁移是一种专一于将解决一个问题的知识应用到相关的问题的方法,从而提升学习的效率。好比,学习行走时掌握的能力能够帮助学会跑,学习识别椅子的知识能够用到识别桌子的学习,咱们能够在相关的学习任务之间迁移通用的知识。此外,因为使用共享表示,多个任务同时进行预测时,减小了数据来源的数量以及总体模型参数的规模,使预测更加高效。所以,在多个应用领域中,能够利用多任务学习来提升效果或性能,好比垃圾邮件过滤、网页检索、天然语言处理、图像识别、语音识别等。架构
概括偏执(inductive bias):概括迁移的目标是利用额外的信息来源来提升当前任务的学习性能,包括提升泛化准确率、学习速度和学习的模型的可理解性。提供更强的概括偏执是迁移提升泛化能力的一种方法,能够在固定的训练集上产生更好的泛化能力,或者减小达到同等性能水平所须要的训练样本数量。概括偏执会致使一个概括学习器更偏好一些假设,多任务学习正是利用隐含在相关任务训练信号中的信息做为一个概括偏执来提升泛化能力。概括偏置的做用就是用于指导学习算法如何在模型空间中进行搜索,搜索所得模型的性能优劣将直接受到概括偏置的影响,而任何一个缺少概括偏置的学习系统都不可能进行有效的学习。不一样的学习算法(如决策树,神经网络,支持向量机等)具备不一样的概括偏置,人们在解决实际问题时须要人工地肯定采用何种学习算法,实际上也就是主观地选择了不一样的概括偏置策略。一个很直观的想法就是,是否能够将概括偏置的肯定过程也经过学习过程来自动地完成,也就是采用“学习如何去学(learning to learn)”的思想。多任务学习偏偏为上述思想的实现提供了一条可行途径,即利用相关任务中所包含的有用信息,为所关注任务的学习提供更强的概括偏置。app
因为咱们的关注点集中在单个任务上,咱们忽略了可能帮助优化度量指标的其它信息。具体来讲,这些信息来自相关任务的训练信号。经过共享相关任务之间的表征,可使咱们的模型更好地归纳原始任务。这种方法被称为多任务学习(MTL)。dom
MTL 有不少形式:联合学习(joint learning)、自主学习(learning to learn)和带有辅助任务的学习(learning with auxiliary task)等均可以指 MTL。通常来讲,优化多个损失函数就等同于进行多任务学习(与单任务学习相反).分布式
在深度学习中,多任务学习MTL一般经过隐藏层的 Hard 或 Soft 参数共享来完成。函数
Hard 参数共享
共享 Hard 参数是神经网络 MTL 最经常使用的方法,能够追溯到 [2]。在实际应用中,一般经过在全部任务之间共享隐藏层,同时保留几个特定任务的输出层来实现。
共享 Hard 参数大大下降了过拟合的风险。实际上,[3] 代表过拟合共享参数的风险为 O(N)——其中 N 是任务数——小于过拟合特定任务参数,即输出层。这很直观:咱们同时学习的工做越多,咱们的模型找到一个含有全部任务的表征就越困难,而过拟合咱们原始任务的可能性就越小。
性能
Soft 参数共享
另外一方面,在共享 Soft 参数时,每一个任务都有本身的参数和模型。模型参数之间的距离是正则化的,以便鼓励参数类似化。例如使用 L2 距离进行正则化 [4],而 [5] 使用迹范数(trace norm)。
学习
约束深度神经网络 Soft 参数共享的思想受到了 MTL 正则化技术的极大启发,这种思想已经用于其它模型开发.优化
为何 MTL 有效?
即便多任务学习得到的概括偏置看起来是可信的,为了更好地了解 MTL,咱们仍须要阐述它所基于的机制。其中大部分最初都是由 Caruana(1998)提出的。对于全部例子,假设咱们有两个相关的任务 A 和 B,它们依赖于一个共同的隐藏层表征 F。
隐式数据增长
MTL 有效地增长了咱们用于训练模型的样本大小。因为全部任务不一样程度地存在噪声,当在某些任务 A 上训练模型时,咱们的目标是为任务 A 学习一个很好的表征,理想状况下,这个表征能忽略与数据相关的噪声并具备良好的泛化性。因为不一样的任务具备不一样的噪声模式,因此同时学习两个任务的模型可以学习更通常的表征。只学习任务 A 有可能过拟合任务 A,而联合地学习 A 和 B 使模型可以经过平均噪声模式得到更好的表征。
注意力机制
若是一个任务很是嘈杂或数据量有限而且高维,模型可能难以区分相关与不相关的特征。MTL 能够帮助模型将注意力集中在重要的特征上,由于其它任务将为这些特征的相关性或不相关性提供额外的证据。
窃听(eavesdroping)
某特征 G 很容易被任务 B 学习,可是难以被另外一个任务 A 学习。这多是由于 A 以更复杂的方式与特征进行交互,或者由于其它特征阻碍了模型学习 G 的能力。经过 MTL,咱们能够容许模型「窃听」,即经过任务 B 学习 G。最简单的方法是经过提示(hint)[6],即直接训练模型来预测最重要的特征。
表征偏置
MTL 任务偏好其它任务也偏好的表征,这形成模型误差。这将有助于模型在未来泛化到新任务,由于在足够数量的训练任务上表现很好的假设空间也将很好地用于学习具备相同环境的新任务 [7]。
正则化
最后,MTL 经过引入概括偏置做为正则化项。所以,它下降了过拟合的风险以及模型的 Rademacher 复杂度(即适合随机噪声的能力)。
非神经模型中的 MTL
为了更好地了解深度神经网络中的 MTL,咱们将研究关于 MTL 在线性模型、核函数方法和贝叶斯算法方面的论文。特别地,咱们将讨论一直以来在多任务学习的历史中广泛存在的两个主要思想:经过范数正则化制造各任务间的稀疏性;对任务间的关系进行建模。 请注意,许多 MTL 的论文具备同构性假设:它们假设全部任务与单个输出相关,例如,多类 MNIST 数据集一般被转换为 10 个二进制分类任务。最近的方法更加接近实际,对问题进行异构性假设,即每一个任务对应于一组惟一的输出。
块稀疏(block-sparse)正则化
许多现有的方法对模型的参数作了稀疏性假设。例如,假设全部模型共享一小组特征 [8]。对咱们任务的参数矩阵 A 来讲,这意味着除了几行以外,全部数据都是 0,对应于全部任务只共同使用几个特性。为了实现这一点,他们将 L1 范数推广到 MTL。回想一下,L1 范数是对参数之和的约束,这迫使除几个参数以外的全部参数都为 0。这也被称为 lasso(最小绝对收缩与选择算子)。
能够看到,根据咱们但愿对每一行的约束,咱们可使用不一样的 Lq。通常来讲,咱们将这些混合范数约束称为 L1/Lq 范数,也被称为块稀疏正则化,由于它们致使 A 的整行被设置为 0。[9] 使用 L1/L∞ 正则化,而 Argyriou 等人(2007)使用混合的 L1/L2 范数。后者也被称为组合 lasso(group lasso),最先由 [10] 提出。 Argyriou 等人(2007)也代表,优化非凸组合 lasso 的问题能够经过惩罚 A 的迹范数(trace norm)来转化成凸问题,这迫使 A 变成低秩(low-rank),从而约束列参数向量 a_{.,1},...,a_{.,t} 在低维子空间中。[11] 进一步使用组合 lasso 在多任务学习中创建上限。 尽管这种块稀疏正则化直观上彷佛是可信的,但它很是依赖于任务间共享特征的程度。[12] 显示,若是特征不重叠太多,则 Ll/Lq 正则化可能实际上会比元素通常(element-wise)的 L1 正则化更差。 所以,[13] 经过提出一种组合了块稀疏和元素通常的稀疏(element-wise sparse)正则化的方法来改进块稀疏模型。他们将任务参数矩阵 A 分解为两个矩阵 B 和 S,其中 A=B+S。而后使用 L1/L∞ 正则化强制 B 为块稀疏,而使用 lasso 使 S 成为元素通常的稀疏。最近,[14] 提出了组合稀疏正则化的分布式版本。
学习任务的关系
尽管组合稀疏约束迫使咱们的模型仅考虑几个特征,但这些特征大部分用于全部任务。全部以前的方法都基于假设:多任务学习的任务是紧密相关的。可是,不可能每一个任务都与全部任务紧密相关。在这些状况下,与无关任务共享信息可能会伤害模型的性能,这种现象称为负迁移(negative transfer)。 与稀疏性不一样,咱们但愿利用先验信息,指出相关任务和不相关任务。在这种状况下,一个能迫使任务聚类的约束可能更适合。[15] 建议经过惩罚任务列向量 a_{.,1},...,a_{.,t} 的范数与它们具备如下约束形式的方差来强加聚类约束:
深度关系网络
在用于计算机视觉的 MTL 中,一般的方法是共享卷积层,同时学习特定任务的全链接层。[34] 经过提出深度关系网络(Deep Relationship Network)来改进这些模型。除了图 3 中能够看到的共享和特定任务层的结构以外,他们在全链接层上使用矩阵先验(matrix priors),这样可让模型学习任务之间的关系,相似于一些以前看过的贝叶斯模型。然而,这种方法仍然依赖于预约义的共享结构,这可能对于已经充分研究的计算机视觉问题是可行的,可是其证实对于新任务来讲容易出错。
加权损失与不肯定性
与学习共享的结构不一样,[39] 经过考虑每一个任务的不肯定性应用正交方法(orthogonal approach)。而后,他们经过基于最大化任务决定的不肯定性的高斯似然估计,求导多任务损失函数,并以此来调整成本函数中的每一个任务的相对权重。每一像素的深度回归(per-pixel depth regression)、语义和实例分割的架构能够在图 7 中看到。
机器视觉领域有普遍的多任务学习应用,主要方式包括: 多个任务并行输出; 同时作分类和回归或使用不一样的损失函数; 多个任务如流水线般,辅助任务附加在主任务后面。