多任务学习是归纳传递的一种方法,它将相关联任务的训练集中包含的域信息作为归纳偏差来提高泛化能力。通过使用共享表示进行并行学习,每个任务学习的内容都可以帮助其他任务进行更好的学习。

主要内容

  1. 介绍多任务学习,归纳传递的重要性;
  2. 比较单任务学习和多任务学习的性能;
  3. 反向传播网络中 MTL 的工作方式;
  4. 针对 k-nearest neighbor 和 决策树的 MTL 算法;

反向传播网络中的多任务学习

多任务反向传播-4个具有相同输入的任务

输入相同,但是具有四个连接到共享隐藏层的输出。

在 MTL 网络中,四个输出并行进行反向传播。 因为共享一个隐藏层,所以在隐藏层中出现的内部表示形式可能会使一个任务的信息被其他任务使用。

在并行训练任务时,共享不同任务所学内容是多任务学习的中心思想。

训练信号作为归纳偏置

归纳传递的目的是利用其他信息源来提高当前任务学习的性能。归纳传递可用于提高泛化精度,学习速度和学习模型的精确度。

多任务学习在反向传播中的三种应用

1D-ALVINN

1D-ALVINN 用来快速测试有关道路跟踪领域的道路图像模拟器,文章生成由单个32像素水平扫描线组成的一维道路图像。这样生成的一维 ALVINN 保留了原始二维域的大部分复杂性,主要的复杂性损失是道路弯度不再可见。

1D-ALVINN 和 2D-ALVINN 的主要任务是预测转向方向。对于的MTL实验,使用了八个附加任务:

  • 道路是一车道还是两条车道
  • 道路左边缘的位置
  • 道路右边缘的位置
  • 道路中心的位置
  • 路面强度
  • 道路边缘的强度
  • 中心线的位置(仅2车道道路)
  • 中心线的强度(仅2车道道路)

MTL 网络具有32个输入,16个隐藏单元和9个输出,MTL网络的大小未优化。

STL 网络具有32个输入,2、4、8或16个隐藏单元,每个都有1个输出。

stl vs mtl

最后两列比较 STL 和 MTL。

  • 倒数第二列是与最佳 STL 运行相比 MTL 的错误减少的百分比。负百分比表示MTL性能更好。

  • 最后一列是 MTL 比平均 STL 性能提高的百分比。 标有 “*” 的在统计学上显著差异为0.05或更高。

在最重要的转向任务上,MTL 的性能优于 STL 15–30%。STL 和 MTL 使用完全相同的训练模式,即无需使用任何额外的训练模式。唯一的区别是,MTL 训练模式具有针对所有九项任务的训练信号,而 STL 训练模式一次仅具有针对一项任务的训练信号。

1D-DOORS

1D-DOORS 中,主要任务是定位门把手并识别门类型(单门或双门)。

MTL 使用了十个任务:

  • 门把手的水平位置
  • 门中央的水平位置
  • 左侧门板的水平位置
  • 左侧门板的宽度
  • 门左边缘的水平位置
  • 单门或双门
  • 门口的宽度
  • 右侧门板的水平位置
  • 右侧门板宽度
  • 门右边缘的水平位置

对最重要的两个任务进行比较:门把手的位置和门的类型。STL 使用 6、24 和 96 个隐藏单元。MTL 在具有 120 个隐藏单元的网络上进行测试。

stl vs mtl

与三种不同的 STL 中的最佳结果相比,MTL 在这些任务上的结果也要好 20–30%。

Pneumonia Prediction

pass

多任务学习工作机理

相关联任务的训练信号中,所具有的额外信息导致了 MTL 的性能提高。

文章总结了几种有助于 MTL 反向传播网络更好地进行泛化的机制。这些机制都基于不同任务在隐藏层的误差梯度项之和。

考虑两个任务 TTTT',它们共享隐藏层特征 FF

统计数据增强

相关联任务的训练信号中具有的额外信息,有效增加了样本量。

属性选择

属性选择是数据放大的结果。

同时学习 TTTT' 网络将更好地选择与 FF 相关的属性,因为数据放大为 FF 提供了更好的训练信号,从而使其能够更好地确定用于计算 FF 的输入属性。

窃听

TT' 可以窃听为 $T $学习的隐藏层,从而更好地学习。

一旦在 TT'FF 的演化表示之间建立了联系,来自 TT' 的有关 FF 的额外信息将帮助 TT 网络通过其他机制更好地学习 FF

搜索偏向

因为网络是用随机权重初始化的,所以反向传播是一种随机的搜索过程。 多次运行很少产生相同的网络。

假设任务 TT 有两个局部最小值 AABB;任务 TT' 也有两个最小值 AACC。两者在A处共享最小值(即,如果网络进入权重空间区域,两者都将表现良好),但在B和C处不重叠。

搜索表示区域

  • 仅在 TT 上训练的网络可能找到 AABB;
  • 仅在 TT' 上训练的网络可能找到 AACC;
  • TTTT' 上训练的网络则会找到 AA;

表明 MTL 任务的搜索偏向于仅针对 TTTT' 的交集中的表示形式。

反向传播 MTL 发现任务之间的关系

文章设计了一组“峰函数”进行测试,发现任务相关性与隐藏单元共享呈正相关。 这表明,至少对于峰函数而言,使用共享隐藏层的反向传播,能够发现任务与隐藏层特征之间的关系,而无需提供明确的有关任务相关性的训练信号。

MTL 应用

多表示和多指标

有时,一种表示/指标不能完全体现所有的重要内容,而备用表示/指标能够体现不同的方面时,将两种表示/指标结合并使用 MTL 可以获得更好的效果。

哪种输出编码效果最好并非总是显而易见的,可以将主要任务的备用编码用作额外的输出。

时间序列预测

pass

使用免操作的特征

可以计算一些免操作的特征,用作额外的 MTL 输出。

使用额外的任务调整注意力

网络可能会使用较大、较明显的模式,而忽略较小但非常有用的模式。MTL 可以在训练时强制注意这些模式。

例如本文中的道路转向跟踪。STL 网络在学习转向时通常会忽略车道标记、道路线等,因为车道标记、道路线通常只是图像的一小部分,并不总是存在,并且经常改变。

MTL 将道路条纹识别作为一项额外的输出任务,则该网络将学会关注出现条纹的图像部分。 由于网络也使用相同的隐藏层学习转向,因此转向任务可以使用条纹表示形式中对转向有用的部分表示。

Sequential Transfer

pass

Multiple Task Arise Naturally

pass

量化平滑

每个任务都可以用来填补其他任务量化带来的空白。尽管一个量化任务与其相关的,量化程度较低的任务之间的潜在复杂关系可能使受益更加困难,但通常会产生一些收益。

MTL in KNN and Kernel Regression

pass

MTL Decision Tree Induction

pass

讨论及未来

使用多任务进行预测

MTL 可以并行地训练许多任务,但这并不应该使用一个模型对许多任务进行预测。

在所有任务的平均性能与某项任务的最佳性能之间进行权衡,最好一次优化一个任务的性能,并允许额外任务的性能降低。学习者甚至可以忽略某些任务以在主要任务上获得更好的表现。

反向传播MTL中的学习率

通常,当所有任务以相似的速率学习并且大致同时达到最佳性能时,在反向传播 MTL 中可以获得更好的性能。

控制不同任务学习速度的最简单方法是调整每个输出任务的学习速度。

对所有任务使用相等的学习率训练网络,训练一次后,降低学习最快的任务的学习率。 通常,对该过程进行几次迭代就足以使大多数任务在大约同一时间达到最高性能。 然后使用每个任务的 early stopping 来确定每个任务的最佳停止点。

并行传输与顺序传输

pass

架构

可以尝试对主任务使用较小的私有隐藏层,而对主任务和其他任务共享较大的隐藏层,这种操作通常可能带来正收益。但是太多的私有隐藏层(例如,每个任务都使用私有隐藏层)会减少共享和 MTL 带来的的好处。

MTL 可以使用正则化方法(例如权重衰减)。通过减少模型中有效自由参数的数量,并通过正则化促进共享。