摘要
对于使用多任务学习模型来学习不同的任务时,每个任务最适合的共享层数不完全一样。因此针对不同的多任务学习,我们需要根据任务需求设计不同的共享层。故文章提出了一种称为“十字绣”单元的共享单元,使用多任务学习来学习卷积网络中的共享表示,通过端对端的学习来自动决定共享层。
方法
文章提出了十字绣单元,主要用于卷积网络,该单元主要是试图找到用于多任务学习的最好的共享表示。为了限制文章范围,故此处只讨论相同单一输入的任务,如输入一张图片。
考虑一个输入同一张图像、有A和B两个任务,和两个单独训练的网络,然后使用十字绣单元将这两个网络组合成一个多任务网络,如图1所示。主要是通过十字绣单元学习activation map的线性组合来表示参数共享。
图1
对于两个网络中第l层的activation maps
x
A
x_A
xA、
x
B
x_B
xB,网络学习一个线性组合作为下一次filters的输入:
这就是十字绣操作,每一层l层就称为十字绣单元。网络可以通过设置
α
A
B
\alpha_{AB}
αAB和
α
B
A
\alpha_{BA}
αBA为0来使某一次使特定为某个任务使用的,或者分配更高的值来选择更多的共享表示。
整体网络如图2所示。
图2 使用⼗字绣单元拼接两个 AlexNet网络。仅在池化层和全连接层之后使用十字绣单元。将从任务 A 直接监督的⼦⽹络称为⽹络 A(顶部),另一个称为⽹络 B。
网络的初始化:十字绣单元把两个网络组合在一起。对于两个网络的初始化,可以先分别在对应任务上独立训练得到网络,再对A、B进行初始化,或者直接联合训练A、B网络。
实验
在 NYU-v2 数据集进行了图像语义分割及图片平面法向量生成实验,在 PASCAL VOC 2008 数据集上进行了物体检测和属性预测实验。
平面法向量生成及图像语义分割的实验结果如下。使用“十字绣”单元的网络均能在两个任务上得到较好的结果。
图像检测及属性预测的实验结果及增益情况如下。