论文详细说明了常用的多任务网络结构和训练方法。
2.1.2 soft and hard parameter sharing in deep learning
在Hard parameter sharing中,参数被分为共享参数和task-specific参数。执行流程如下:一张图片,经过一个主干网络(共享参数),再将主干网络的输出作为不同任务的输入。各个任务的head有各自的参数,即task-specific参数。
在soft parameter sharing中,每个任务都有其各自的参数,在不同任务的特征图之间,会加入一些交互(cross-task talk)。
2.1.4 A New Taxonomy of MTL Approaches
多任务网络一般被分为hard或者soft parameter sharing,在这里,根据task interactions(即不同任务的信息或者特征发生交换或者共享)发生的位置,提出了一种新的分类方式。
若task interactions发展的encoder部分,则叫Encoder-focused model。若发生在decoder部分,则叫Decoder-fcoused model。
2.2 Encoder-focused Architectures
cross-stitch networks,将不同任务前一层的特征,经过线性组合后,作为下一层网络的输入。公式如下:
其中,为前一层的输出,
为后一层的输入。
NDDR-Layer,将前一层的输出按通道数叠加,再经过一个1*1的卷积降维,作为后一层的输入。
Multi-Task Attention Networks(MTAN),各个人物共享backbone,然后不同的任务利用attention网络,从对应特征中提取有用信息。
cross-stitch networks和NDDR-Layer都会有一个scalability concern,但是MTAN可以规避这个问题。不过,这三个网络在做信息交互时,都只能使用有限的局部信息。
3 Optimization in MTL
在实际训练中,需要平衡各个任务对网络参数的影响,防止某一个任务占主导地位。
3.1.1 Uncertainty Weighting
和
为两个任务的损失,
、
为其对噪声参数,可学习。
3.1.2 Gradient Normalization
根据不同step计算的loss值,计算loss变化率(inverse training rate),在计算相对变化率(relative inverse training rate)。(有些地方不是特别明白,贴上原文,留待有缘人)
与Uncertainty weighting不同之处在于,它不考虑任务的不确定性,而是平衡任务训练的pace。
3.1.3 Dynamic Weight Averaging
根据各个任务的loss值,重新计算各个任务的权重.
n为任务数量,为任务的loss值。T控制softmax操作的softness,t为训练步数
3.1.4 Dynamic Task Prioritization(DTP)
3.1.1——3.1.3都属于uncertainty weighting的范畴,倾向于调节各个任务的权重,以此平衡各个任务的pace。与之不同的是,Dynamic Task Priorization对困难任务分配较高的权重。出发点在于,网络需要花费更大的资源去训练困难任务,而不确定性权重则是对简单任务分配更高的权重。
作者认为,在两个任务没有明确冲突的情况下,当有噪声标注数据时,uncertainty weighting更为合适。当标注数据比较干净时,DTP更为合适。
为评价任务的难易程度,DTP提出了一种KPIs方法,
类似于focal loss,为任务i的KPI值,至于计算KPI值的方法,看DTP原文。
未完待续......