多任务学习Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics

Posted 征途黯然.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多任务学习Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics相关的知识,希望对你有一定的参考价值。

·阅读摘要:
  本文提出针对CV领域的多任务模型,设置一个可以学习损失权重的损失层,可以提高模型精度。
·参考文献:
  [1] Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics

  个人理解:我们使用传统的多任务时,损失函数一般都是各个任务的损失相加,最多会为每个任务的损失前添加权重系数。但是这样的超参数是很难去调参的,代价大,而且很难去调到一个最好的状态。最好的方式应该是交给深度学习。

  论文最重要的部分在损失函数的设置与推导。 这对我们优化自己的多任务学习模型有指导意义。

[1] Homoscedastic uncertainty as task-dependent uncertainty (同方差不确定性)

  作者的数学模型通过贝叶斯模型建立。作者首先提出贝叶斯建模中存在两类不确定性:

  · 认知不确定性(Epistemic uncertainty):由于缺少训练数据而引起的不确定性
  · 偶然不确定性(Aleatoric uncertainty):由于训练数据无法解释信息而引起的不确定性

  而对于偶然不确定性,又分为如下两个子类:

  · 数据依赖地(Data-dependant)或异方差(Heteroscedastic)不确定性
  · 任务依赖地(Task-dependant)或同方差(Homoscedastic)不确定性

  多任务中,任务不确定性捕获任务间相关置信度,反应回归或分类任务的内在不确定性。

【注】本篇论文的假设,是基于同方差不确定性的。关于同方差不确定性和异方差不确定性的通俗解释,可以参考知乎问题:https://www.zhihu.com/question/278182454/answer/398539763

[2] Multi-task likelihoods (多任务似然)

  基于极大似然估计,假设 f W \\mathbff^\\mathbfW fW为网络输出, W W W为该项输出的权重,则对于回归任务有:
p ( y ∣ f W ( x ) ) = N ( f W ( x ) , σ 2 ) p(y∣\\mathbff^\\mathbfW(x))=N(\\mathbff^\\mathbfW(x),σ^2 ) p(yfW(x))=N(fW(x),σ2)
  对于分类任务有:
p ( y ∣ f W ( x ) ) = S o f t m a x ( f W ( x ) ) p(y∣\\mathbff^\\mathbfW (x))=Softmax(\\mathbff^\\mathbfW (x)) p(yfW(x))=Softmax(fW(x))
  多任务的概率:
p ( y 1 , … , y K ​ ∣ f W ( x ) ) = p ( y 1 ​ ∣ f W ( x ) ) … p ( y K ​ ∣ f W ( x ) ) p(y_1,…,y_K​ ∣\\mathbff^\\mathbfW(x))=p(y_1​ ∣\\mathbff^\\mathbfW (x))…p(y_K​ ∣\\mathbff^\\mathbfW (x)) p(y1,,yKfW(x))=p(y1fW(x))p(yKfW(x))
  例如对于回归任务来说,极大似然估计转化为最小化负对数:
l o g p ( y ∣ f W ( x ) ) ∝ − 1 2 σ 2 ​ ∥ ∥ ​ y − f W ( x ) ∥ ∥ ​ 2 − l o g σ logp(y∣\\mathbff^\\mathbfW(x))∝− \\frac12σ^2​ ∥∥​ y−\\mathbff^\\mathbfW (x) ∥∥​^2 −log\\sigma logp(yfW(x))2σ21yfW(x)2logσ
  其中 σ \\sigma σ 表示测量噪声的方差。

  双任务:

  假设是两个回归任务,那么概率如下:

   p ( y 1 , y 2 ​ ∣ f W ( x ) ) ​ = p ( y 1 ​ ∣ f W ( x ) ) ⋅ p ( y 2 ​ ∣ f W ( x ) ) = N ( y 1 ​ ; f W ( x ) , σ 1 2 ​ ) ⋅ N ( y 2 ​ ; f W ( x ) , σ 2 2 ​ ) p(y_1 ,y_2​ ∣\\mathbff^\\mathbfW (x))​ =p(y_1​ ∣\\mathbff^\\mathbfW (x))⋅p(y_2​ ∣\\mathbff^\\mathbfW (x))=N(y_1​;\\mathbff^\\mathbfW (x),σ_1^2​ )⋅N(y_2​ ;\\mathbff^\\mathbfW (x),σ_2^2​ ) p(y1,y2fW(x))=p(y1fW(x))p(y2fW(x))=N(y1;fW(x),σ12)N(y2;fW(x),σ22)

  为了优化我们的 Loss 函数 L ( W , σ 1 , σ 2 ) \\mathcalL\\left(\\mathbfW, \\sigma_1, \\sigma_2\\right) L(W,σ1,σ2),取最小化负对数:

   = − l o g p ( y 1 ​ , y 2 ​ ∣ f W ( x ) ) =−logp(y_1​,y_2​ ∣\\mathbff^\\mathbfW (x)) =logp(y1,y2fW(x))

   ∝ 1 2 σ 1 2 ​ ∥ y 1 ​ − f W ( x ) ∥ ​ 2 + 1 2 σ 2 2 ​ ∥ ​ y 2 ​ − f W ( x ) ∥ ​ 2 + l o g σ 1 ​ σ 2 ∝ \\frac12σ_1^2​ ∥y_1​−\\mathbff^\\mathbfW (x) ∥^​2 + \\frac12σ_2^2​ ∥​ y_2​ −\\mathbff^\\mathbfW (x) ∥​^2 +logσ_1​ σ_2 2σ121y1fW(x)2+2σ221y2fW(x)2+logσ1σ2

   = 1 2 σ 1 2 ​ L 1 ​ ( W ) + 1 2 σ 2 2 ​ L 2 ​ ( W ) + l o g σ 1 ​ σ 2 ​ = \\frac12σ_1^2​ L_1​ (W)+ \\frac12σ_2^2​ L_2​ (W)+logσ_1​σ_2​ =2σ12以上是关于多任务学习Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics的主要内容,如果未能解决你的问题,请参考以下文章

多任务学习An Overview of Multi-Task Learning in Deep Neural Networks

多任务学习An Overview of Multi-Task Learning in Deep Neural Networks

多任务学习Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics

多任务学习Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics

论文阅读 | A Survey on Multi-Task Learning

论文导读- SpreadGNN: Serverless Multi-task Federated Learning for Graph Neural Networks(去服务器的多任务图联邦学习)