論文題目:Multi-Task Learning Using Uncertainty to Weigh Losses
for Scene Geometry and Semantics
中文翻譯:使用不確定性來衡量權重損失的多任務學習——用於幾何和語義場景
代碼鏈接:https://github.com/yaringal/multi-task-learning-example
摘要
只專注於單個模型可能會忽略一些相關任務中可能提升目標任務的潛在信息,通過進行一定程度的共享不同任務之間的參數,可能會使原任務泛化更好,許多深度學習應用受益於多任務學習——多元迴歸和目標分類。在本篇論文中,我們觀察到不同任務的損失之間的尺度差異非常大,我們不能直接將各個任務的損失相加作爲整體的損失,這樣會導致一個任務收斂的很快,其他的任務表現很差,一個簡單的解決方案是,將損失簡單相加替換爲加權和,以使所有任務損失的尺度接近。但是,這引入了需要進行調節的超參數。而對這些加權值進行手工微調是一件很困難且昂貴的事情,會使得多任務學習在實踐中讓人望而卻步。由此我們提出了一種新的確定每個任務加權值的方法——引入同方差的不確定性來確定 MTL 中損失的權重:在每個任務的損失函數中學習另一個噪聲參數(noise parameter)。此方法可以接受多任務(可以是迴歸和分類),並統一所有損失的尺度。這樣,我們就能像一開始那樣,直接相加得到總損失了。
1. Introduction
多任務學習通過從共享的特徵表達中學習多個目標來提高學習效率和預測精度,多任務學習現在已經應用在機器學習的方方面面——從計算機視覺到自然語言處理到語言識別。
我們在計算機視覺的環境理解中探索多任務學習,環境理解算法必須同時理解環境的幾何和語義信息,這引入了一個有趣的多任務問題——環境理解涉及到不同單元和尺度的各種分類和迴歸任務的聯合學習,視覺環境理解的多任務學習在系統中是非常重要的,因爲在這樣的系統中長時間的計算力投入是禁止的,比如機器人中。將所有的任務結合成一個模型可以減少計算力,並且允許這些系統實時運行。
之前同時學習多個任務的方法是簡單使用損失的加權和,損失的加權值或是均勻的,或是需要手工微調,然而,我們證明了這樣做的模型的表現強烈依賴於每個任務損失的加權值,而手工去微調這些加權值達到最優是很昂貴且困難的。我們觀察到每個任務最佳權重依賴於一個衡量尺度——最後發現這個尺度就是任務噪聲的幅度。
在這篇工作中,我們提出了一個原則性的方法——使用同方差不確定性來將多個任務損失結合來同時學習多個目標,我們將同方差不確定性看作和任務相關的加權值,同時展示了怎樣得到一個原則性的多任務損失函數,它可以很好的平衡不同迴歸和分類損失,我們的方法可以學着去平衡這些加權值,與單獨學習每個任務相比,產生了更加優越的性能。
具體來講,我們展示了在學習環境幾何和語義等三個任務中我們方法的表現。首先,我們學着去針對每個像素點對目標分類(稱之爲語義分割),其次,我們的模型執行實例分割,這是更難的任務——因爲它不僅需要判斷每個像素的類別,還需要判斷這個像素點屬於哪個目標。這比單獨的目標檢測也要難。最後,我們證明了使用語義標籤和多任務深度學習可以提高几何和深度估計。
在現有文獻中,經常使用單獨的深度學習模型來學習深度迴歸、語義分割和實例分割來構建一個完整的系統。給一張單目的輸入圖片,我們的系統首先去做語義分割、實例分割和深度密集估計(如Figure 1所示)。而其他的視覺模型已經展示了多任務學習,我們展示瞭如何將幾何和語義信息結合起來,將這些任務結合起來構成單個模型確保了在減少計算的同時完成單個任務的輸出,最後,我們展示了多任務中的共享表達可以提高在不同指標上的性能,來使得模型更高效:
總的來說,本篇論文的主要貢獻在於:
- 一個新穎且原則性的多任務損失使用同方差不確定性來同時學習不同數量和單元的各種分類和迴歸損失;
- 一個用來完成語義分割、實例分割和 depth regression;
- 展示了多任務學習中損失加權值得重要性,相比於單獨訓練每個模型,我們如何才能通過多任務學習獲得更優越的表現;
2. Multi Task Learning with Homoscedastic Uncertainty
多任務學習涉及到優化到多個目標,是現在深度學習很流行的一個問題。原來將多個目標損失結合在一起的方法就是對單個任務的損失簡單多一個加權和:
這是之前的工作中使用的主要方法,其中模型的表現力對於 特別敏感(如上面的Figure 2所示),這些加權超參數手工調參代價很高,因此發現一種便利的方法來學習最佳加權值是很迫切的。
更具體的講,我們考慮一個網絡來學習從輸入圖片中預測像素深度和語義類別。在Figure 2中每張圖的邊界表示分別在單個任務上訓練的模型,曲線刻畫了對於不同權重的表現,我們觀察到在一些最佳加權值中,這種聯合網絡表現得比分別訓練每個網絡要好。Figure 2也展示了兩個迴歸任務的相似結果:實例分割和深度迴歸。我們接下來展示瞭如何使用概率建模的想法來學習最佳任務權重。
3.1. 同方差不確定性(任務依賴型不確定性)
在貝葉斯建模中,有兩種不同類型的不確定性可以建模。
- 認知不確定性是模型中常見的一種不確定性,通常由數據不足產生,可以通過增加訓練數據來解釋,認知不確定性測量的,是我們的input data是否存在於已經見過的數據的分佈之中;
- 偶然不確定性捕捉到的是我們的數據不能解釋的信息;
偶然不確定性可以再分爲兩個子類:
- 數據依賴型(不同方差)是一種依賴於輸入數據的偶然不確定性,可以作爲一個模型輸出預測;
- 任務依賴性(相同方差)是不依賴於輸入數據的偶然不確定性,它不是一個模型輸入,對於所有輸入數據來說都是常量,但是不同任務之間不同。因此被描述爲任務依賴型不確定性;
在多任務設置中,我們展示了任務不確定性捕捉到了任務之間的相關置信度,反映了迴歸和分類任務的不確定性,它也依賴於任務的表徵和衡量單元,我們提出了我們可以使用同方差不確定性作爲多任務學習問題中加權損失的基礎。
3.2. Multi-task likelihoods
在本節中,我們提出了基於最大化同方差高斯似然函數的多任務損失函數,我們令作爲輸入x權重W的神經網絡輸出,我們定義了下面的概率模型,對於迴歸任務,我們講我們的似然函數定義爲高斯分佈(均值爲模型輸出,方差爲噪聲):
加入了一個噪聲因子,對於分類任務我們經常用softmax函數壓縮模型輸出,並從結果概率向量中採樣:
在有多個模型輸出的情況下,我們經常多任務似然函數定義爲:
模型輸出爲,爲我們充足的統計,其實就是將網絡看作一個作用在輸入上的函數f。
在最大化似然函數中,我們一般選擇最大化對數似然函數,在迴歸問題中,舉個例子,對數似然函數可以寫爲:
對於高斯似然,是模型觀察到的噪聲參數——捕捉到了輸出中有多少噪聲,接着我們最大化和模型參數W和觀察噪聲參數有關的對數似然函數。
讓我們現在假設模型輸出由兩個向量組成,每一個都遵循高斯分佈:
最大化似然函數(6)相當於最小化對數似然函數的相反數,於是我們要最小化的多目標輸出模型爲:
這裏我們將記爲第一個輸出變量的損失,類似。
我們通過最小化(7)式,來自適應地學習損失的相對權重。當的噪聲參數增加時意味着損失的加權值降低了,另一方面,當噪聲減少時,目標損失的相關權重增大了,同時通過(7)式中的最後一項來限制,使得其不能太大,起了一個正則化的作用。這個地方我是這麼想的,噪聲參數大意味着輸出變量的方差太大,結果不可靠,所以在目標損失中該損失的加權值應該減少。
這種結構可以簡單擴展到多個迴歸輸出中,然而,擴展到分類似然函數中更有趣,我們將噪聲參數作爲一個縮放因子加入到(3)式中:
是一個正因子,這個可以看成是一個玻爾茲曼分佈(輸入被放縮了),這個因子可以是固定的,也可以學習得到,參數的幅度決定了離散分佈的均勻性,這和不確定性有關,輸出的對數似然可以被寫爲:
可以看作是向量的第c個元素。
接下來,我們假設模型的多個輸出由一個連續的輸出(迴歸值)和離散的輸出(分類值)組成,分別由高斯似然和softmax似然建模,就像之前定義一個聯合損失,可以寫成:
這裏的,這裏觀察到當趨向於1時,最後一項可以通過來近似,這極大地簡化了優化目標。
這種結構可以到連續和離散損失函數的任意結合,允許我們以一種原則性的方法學習每個損失的相關權重,這種損失可以平滑地區分,相關權重不會收斂到0。相反,使用(1)中簡單地加權和會導致相關權重可能收斂到0。
在實踐中,我們訓練網絡來預測對數方差,這是因爲迴歸s比迴歸更穩定,這樣也可以避免分母項爲0,同時指數映射也允許來回歸沒有約束的縮放值,這裏的exp(-s)被解析到正值,給了方差一個有效值。