Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics

論文:https://arxiv.org/abs/1705.07115v3

1 問題引出

多任務聯合學習可以提升各任務的學習效果,因爲多任務可以共享數據集、共享低層特徵。但多任務聯合學習時,該如何對各子任務的損失函數進行加權才能取得最優的訓練效果,這是本文所關心的問題。

本文中作者提出的多任務如下圖所示:
在這裏插入圖片描述對各任務的損失確定加權係數wiw_i可以有多種方式,把這些係數作爲超參數進行調試的代價很大,因此作者提出了基於任務的不確定性確定係數。

2 解決方案

在貝葉斯建模中,需要解決兩種不同類型的不確定性。

  • 認知不確定性:表示的是模型本身的不確定性,這是因爲缺乏訓練數據,模型認知不足,可以通過擴充訓練集進行解決;
  • 偶然不確定性:偶然不確定性表示數據不能解釋的信息。

偶然不確定性又分成兩類:

  • 數據依賴(異方差)不確定性:依賴於輸入數據的不確定性,體現在模型的輸出上;
  • 任務依賴(同方差)不確定性:不取決於輸入數據,而是取決於不同的任務。

在多任務聯合學習中,任務依賴不確定性能夠表示不同任務間的相對難度。下面證明了在多任務學習中可以通過通過任務依賴不確定性對不同的損失進行加權。

2.1 多任務似然

下面通過最大化同方差不確定性的最大高斯似然推導多任務損失函數。

假設輸入爲X,參數矩陣爲W,輸出爲fW(x)f^W(x)

對於迴歸任務,定義其概率爲以輸出爲均值的高斯似然,即
p(yfW(x))=N(fW(x),σ2)(2)p(y|f^W(x)) = N(f^W(x),\sigma^2)\tag{2}

對於分類任務,定義:
p(yfW(x))=Softmax(fW(x))(3)p(y|f^W(x)) = Softmax(f^W(x))\tag{3}

多任務模型,其似然爲:
p(y1,,ykfW(x))=p(y1fW(x))p(yKfW(x))(4)p(y_1,\cdots,y_k|f^W(x)) = p(y_1|f^W(x))\cdots p(y_K|f^W(x)) \tag{4}

迴歸任務

對於迴歸任務,即公式(2),其對數似然爲:
logp(yfW(x))12σ2yfW(x)2logσ(5)\log p(y|f^W(x)) \varpropto -\frac{1}{2 \sigma^2}||y - f^W(x)||^2 - \log \sigma \tag{5}
對於高斯似然,σ\sigma爲模型的觀測噪聲參數,表示輸出數據中的噪聲量。

我們的目的是基於參數矩陣WW和標準差σ\sigma最大化對數似然。

假設多任務模型進行兩個迴歸任務,兩個任務都符合高斯分佈,輸出分別是y1y_1y2y_2,那麼總的對數似然爲:
p(y1,y2fW(x))=p(y1fW(x))p(y2fW(x))=N(y1;fW(x),σ12)N(y2;fW(x),σ22)(6)p(y1,y2|f^W(x)) = p(y1|f^W(x))p(y2|f^W(x)) \\ =N(y1;f^W(x),\sigma_1^2)N(y2;f^W(x),\sigma_2^2) \tag{6}

取對數,優化目標變成了最大化對數似然,也是最小化負對數似然,即:
logp(y1,y2fW(x))12σ12y1fW(x)2+12σ22y2fW(x)2+logσ1σ2=12σ12L1(w)+12σ22L2(w)+logσ1σ2(7)-\log p(y1,y2|f^W(x)) \\ \varpropto \frac{1}{2\sigma _1^2}||y_1 - f^W(x)||^2 + \frac{1}{2\sigma _2 ^2}||y_2 - f^W(x)||^2 + \log \sigma_1 \sigma_2 \\ = \frac{1}{2\sigma _1^2}L_1(w) + \frac{1}{2\sigma _2^2}L_2(w) + \log \sigma_1 \sigma_2 \tag{7}

要是想最小化負對數似然,就需要調整σ1\sigma_1σ2\sigma_2的值。σ1\sigma_1增加,L1(w)L_1(w)會減小,反之亦然。最後項影響不大,可以當作正則化項。

分類任務

對於分類任務的概率,添加一個標量縮放係數σ2\sigma^2

p(yfW(x),σ)=Softmax(1σ2fW(x))(8)p(y|f^W(x),\sigma) = Softmax(\frac{1}{\sigma^2}f^W(x)) \tag{8}

這被稱作是Boltzmann分佈,也叫做吉布斯分佈。係數σ2\sigma^2可以是設定的,也可以是通過學習得到的,決定離散分佈的平坦程度。該值和分佈的不確定性(熵)有關。其對數似然可以寫成:
logp(y=cfW(x),σ)=1σ2fcW(x)log(cexp(1σ2fcW(x)))(9)\log p(y=c|f^W(x),\sigma) = \frac{1}{\sigma^2}f_c^W(x) - \log (\sum_{c^{'}}\exp(\frac{1}{\sigma^2}f_{c^{'}}^{W}(x))) \tag{9}

迴歸和分類任務

假設一個多任務模型由一個分類任務和一個迴歸任務組成,那麼聯合損失爲:
在這裏插入圖片描述
上式中,L1(W)=y1fW(x)2L_1(W) = ||y_1 - f^W(x)||^2,爲迴歸子任務輸出和真實labely1y_1間的歐式距離。L2(W)=log(Softmax(y2,fW(x)))L_2(W) = -\log(Softmax(y_2,f^W(x)))是分類子任務的交叉熵損失。優化的目的是同時尋找最優的WWσ1\sigma_1σ2\sigma_2

最終的目標可以看成是學習每一個子任務輸出的相對權重。大的σ2\sigma_2會降低L2(W)L_2(W)的影響,小的σ2\sigma_2會增大L2(W)L_2(W)的影響。

作者最終的做法是在模型訓練的過程中去優化σ1\sigma_1σ2\sigma_2,並且爲了提升數值穩定性,作者去學習參數s:=logσ2s := \log \sigma^2

實驗結果
在這裏插入圖片描述基於三個任務的不確定性進行損失加權的效果最好。

參考:https://blog.csdn.net/u013453936/article/details/83475590

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章