目录
原文链接:MultiTask Survey
一、常见Multi-Task 架构
Hard和Soft区分:Hard共享底层参数,在高层提取中相互独立;Soft使用十字绣的形式,使得不同的“独立”Task网络之间有交互;
缺点:这两种方式都会随着Task增长模型的规模线性变大;在Hard中何处“分支”是一个较难解决的问题;
Encoder-based和Decoder-based区分:在底层特征提取时可以结合使用Hard和Soft的架构,但是Encoder在高层特征预测时候相互独立,Decoder的在高层依旧进行信息通信;
下面着重讲一下基于Encoder和Decoder架构思想的方法
Encoder-based
1. 左侧NDDRCNN同样是十字绣架构,会有分支问题确定的出现(已经有BMTAS,LTB使用树模型思想,自动确定branch节点),右侧MTAN使用Attention架构(其实可以理解为不同维度的W对backbone进行特征提取)
Decoder-based
1. PAD-Net,先进行附属目标的训练,然后使用附属目标来进行最终目标的分类,有点像Stacking策略的感觉
2. PAP Net:将相似度矩阵也输入到Model中进行训练
3. JTRL:递归训练,不再并行,改为交叉预测
4.MTR-Net:感觉像是不同的size的Conv去提取特征,然后融合特征去做最后的预测
注意:在上述模型中的Task,可以先检验Task相似性比较好。完全不相关的Task会干扰模型。
二、MTL的一些优化方法
1. Uncertainty Weighting:其实就是在目标函数中添加噪声扰动
2. Gradient Normalization:鼓励所有的tasks按照相同的速度进行训练,避免出现不同程度的梯度
3. Dynamic Weight Averaging (DWA):当一个任务相对下降速率变慢,其weight就上升。
4. Dynamic Task Prioritization(DTP):给予更难的任务更高的权重,引入了KPI的概念,但需要手动设置权重
5. MTL:利用进化计算的思想寻找帕累托最优解
三、Experiment+Conclusion
评价准则:当然不能和单任务的评价准则一致,需要综合考虑多个任务。
BackBone:作者选取了Res-Net50和HRNet-18。
发现结论如下:
1. 好的MTL架构的效果比优化方法的效果提升度要大。
2. Decoder-Focused的效果一般比Encoder-Focused的效果要好。
3. Encoder-Focused的模型最终效果和Single-task的训练好坏相关性较大。当性能至关重要的时候建议使用十字绣网络架构,如果资源有限,建议使用MTAN Model。Decoder-Focused的模型最终效果里面PAP-Net的效果最好,但消耗资源比JTRL多。
4. GradNorm的效果在Balance方法中是最优的,Fixed weighted和Uncertainty是最Robust的,Grid-search相比于auto-balanced的方法要好。