【论文阅读】多任务学习软参数共享经典论文:Cross-stitch Networks for Multi-task Learning

多任务学习软参数共享之Cross-stitch Networks 网络结构

前言

现有的多任务学习的结构基本需要具体任务具体设计,其通用性很差;本文提出了一个'cross-stich'的结构,Cross-stitch单元通过一个可学习的权重矩阵,将各任务特征图以线性组合的形式混合,实现端到端自动化学习最优的特征共享模式。该结构可以用于多样任务中,具备通用性,实验证明优于单一的硬参数共享或完全独立训练.

论文获取

任务背景

本文通过两两强相关任务(语义分割(Semantic segmentation)和曲面法线预测(Surface normal prediction),以及物体检测(Object detection)和属性预测(Attribute prediction)),使用不同硬参数结构,进行任务性能检验,其实验结构与结果如下两图所示

通过实验我们可以看到,最后的效果是没有共享的效果,中间是使用不同共享结构的结果,可以看到不同任务其最佳性能所对应的结构并不一致,第一对任务最佳在最后,第二对最佳在第5个结构上;该实验说明最佳分、合结构因任务而异

Cross-stitch网络结构

核心结构如下图所示,两个任务各自提取表征信息,然后通过两个参数矩阵(共享权重),对不同任务的表征进行组合,组合后再给到下一个任务表征结构中进行表征信息提取.

本文使用的完整网络结构如下所示

1、参数矩阵说明

其具体的表达式,与求导如下,解释了其交叉组合的具体形式与可学习性

2、参数矩阵初始化

为了保证交叉结构前后数据量级不变,很自然地规定初始状态下超参数之和为1.经过实验发现初始化在**(0,1)范围内,不同初始值,其性能差异较小,说明 对初始值差异性的鲁棒性较好**.

3、参数矩阵学习率

由于这些超参数的初始值是网络中一般参数的一到二倍大,因此在实验中发现,这些超参数调整过慢。

为了加快收敛,这些超参数的学习率被直接乘以10的若干次方。

通过实验发现,10的2到3次方最佳,此时收敛速度更快,实验结果也更好。

4、全网络初始化

前面说的是超参数的初始化值的选取,那么在整个网络中,其'cross-stitch'外的结构如何初始化(参考第3点,两者初始化值差异较大)

本文提出了两种方式 第一种就是网络全用由 ImageNet 训练出的参数进行初始化,然后对整个"cross-stitch"网络进行训练。第二种是对单一任务在网络上进行微调,然后再添加"cross-stitch"单元,进行训练。通过实验可以看到使用后者方式效果更好 .

实验

任务性能提升洞察

比较能说明本文结构在多任务中的效果图如下所示,该数据是在属性分类预测中实验得到图中的蓝色柱子代表其相比于未使用该结构单独预测时的性能变化,黑色曲线是每个分类下的样本数,可以看到其样本较少的类,其收益更大 ,说明该结构能够学习到任务之间一些共同信息,有助于提升任务性能.

总结

本文针对多任务学习(Multi-task Learning, MTL)中不同任务特征共享的难题,提出一个新架构------Cross-stitch Networks,旨在自动学习不同任务之间的信息共享程度。具体方法是

  • 为每个任务保留一条独立的网络分支(例如每个任务一个CNN分支)。
  • 在每一层插入Cross-stitch单元。Cross-stitch单元通过一个可学习的权重矩阵,将各任务特征图以线性组合的形式混合,实现特征的共享与任务个性的平衡。
  • 类似于每层特征经过一个"交叉组合",按比例和其他任务的特征相互融合,权重参数在网络训练过程中学习得到。

该方式在面对较多任务时,因为一个任务一个网络,这将会面临更复杂的参数初始化与参数调优问题