MTL多任务学习主要为了多任务之间能够共享信息。一般做法是将各任务的目标进行加权求和进行统一优化。如果各任务之间能够做到互不竞争,每个任务将得以充分优化。然而,多任务学习容易造成某些任务占主导地位,其他任务无法优化充分。本文主要是关于两篇动态调整多任务权重的论文的记录。
1、Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics
在贝叶斯建模中,主要为了解决两种不确定性:认知的不确定与偶然的不确定性。其中认知的不确定主要由数据不足产生,因此提供更多的训练数据。偶然的不确定性是不能仅从数据看到解释,又分为两类:数据依赖型(不同方差)和任务依赖型(相同方差),数据依赖型是说相同输入可能会产生不同输出,任务依赖型是对相同输入会有相同输出,但对不同任务却有不同的输出。该论文主要从任务依赖型的不确定性角度解决多任务学习的权重问题。
在回归问题中,一般假设预测误差满足高斯分布,对于多任务学习,最大似然可以得到如下
通过最小化损失可得
当一个任务的损失增大时,其权重参数缩小,反之亦然。
在分类问题中,往往会将最终的输出输入到softmax中,该文将方差看作softmax的温度。
将这两个参数作为训练参数带到多任务学习中进行训练。该算法最终在场景几何与语义多任务学习中进行了验证。
2、Multi-Task Learning as Multi-Objective Optimization
在多任务学习中,如何使某些任务尽可能优化,但却不影响其他任务的优化。这是一个寻找帕累托最优的过程即多目标优化问题。
将多任务学习转化为多目标学习,其中Θsh为多任务共享参数,Θ1…ΘT是不同任务之间的独有参数,多目标优化问题可以通过多梯度下降算法,该算法的kkt条件为
最终可转化为这样的优化问题:
从简单的两个任务来说,可以优化如下问题,通过求导可以求到最优的alpha。
将两个任务推广到多个任务,由于此时的约束是线性约束,可以转化为Frank-Wolfe,这是一个解决线性约束优化的一阶线性搜索方法。将其改为线性搜索算法
其中γ的计算参照两个任务的求解方法:
由于在计算过程每个任务进行单独计算共享参数进行更新,因此作者利用链式法则进行了改进,减少了计算量,优化目标进一步转化为。其中z是所有任务共享的表示函数。
[1] Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics
[2] Multi-Task Learning as Multi-Objective Optimization
[3] https://en.wikipedia.org/wiki/Frank%E2%80%93Wolfe_algorithm