CVPR 2018最佳論文作者親筆解讀:研究視覺任務關聯性的Taskonomy

机器之心發表於2018-06-27

本文作者沈博魁是史丹佛本科生/準博士生,也是 CVPR 2018 最佳論文《Taskonomy:Disentangling Task Transfer Learning》的共同二作。鑑於作者在 Poster Session時發現很多人對Taskonomy的理解有偏差,沈博魁在知乎寫了一篇Taskonomy的中文解讀,希望能對大家有幫助。很多專業詞彙的中文翻譯可能有偏差,希望大家見諒。如果有問題,歡迎大家評論私信。

➤ 細節請檢視知乎文章:https://zhuanlan.zhihu.com/p/38425434

➤ Taskonomy的網站:taskonomy.stanford.edu

梗概

人類的視覺具備多種多樣的能力,計算機視覺界基於此定義了許多不同的視覺任務。長遠來看,計算機視覺著眼於解決大多數甚至所有視覺任務,但現有方法大多嘗試將視覺任務逐一擊破。這種方法造成了兩個問題:

  • 第一,逐一擊破需要為每一項任務收集大量資料,隨著任務數量的增多,這將會是不可行的。

  • 第二,逐一擊破會帶來不同任務之間的冗餘計算和重複學習。

一般來說,逐一擊破的策略忽略了視覺任務之間的關聯性,比如法線(Surface Normals)是由深度(Depth)求導得來,語義分割(Semantic Segmentation)又似乎和遮擋邊緣測試(Occlusion edge detection)有著千絲萬縷的關聯。基於上述兩個問題,我們希望能有效測量並利用視覺任務之間的關聯來避免重複學習,從而用更少的資料學習我們感興趣的一組任務。

CVPR 2018最佳論文作者親筆解讀:研究視覺任務關聯性的Taskonomy

Taskonomy是一項量化不同視覺任務之間關聯、並利用這些關聯來最優化學習策略的研究。如果兩個視覺任務A、B具有關聯性,那麼在任務A中習得的representations理應可為解決任務B提供有效的統計資訊。由此我們通過遷移學習計算了26個不同視覺任務之間的一階以及高階關聯。

如圖一,如果有預測法線的網路和預測遮擋邊緣測試的網路,我們可以通過結合兩個網路的representations來快速通過少量資料解決Reshading和點匹配 (Point matching)。基於這些關聯,我們利用BIP (Binary Integer Programming) 求得對於一組我們感興趣的任務,如何去最優分配訓練資料量。比如,如果想最高效地解決10個問題,利用Taskonomy提供的學習策略可以減少2/3的訓練資料量。

方法

簡單概括,方法分為兩個大階段,四個小步。

第一大階段涉及前三小步,我們要量化不同視覺任務之間的關聯,並將任務關聯表達成一個affinity matrix(關聯矩陣)。

第二大階段,也就是最後一小步,我們對求得的affinity matrix進行最優化,求得如何最高效地去學習一組任務。這個最高效的策略會由一個指向圖 (directed graph)  來表示,我們稱此指向圖為Taskonomy。詞語上Taskonomy是Task (任務) 和 Taxonomy (分類論) 的合併簡稱。

CVPR 2018最佳論文作者親筆解讀:研究視覺任務關聯性的Taskonomy

>>>> 問題定義

首先,我們來定義我們想要解決的問題。我們想在有限的監督預算γ下最大化我們在一組目標任務(target tasks) T =  {t1,...,tn}上的表現。同時,我們有一組起始任務 (source tasks) S,其定義為我們可從零學習的任務。監督預算γ的定義為多少起始任務我們願意從零開始學習(從零開始學習需要收集大量資料,監督預算表達了我們所面對的金錢、計算力和時間上的限制)。其中,

  • T \ S 代表了我們感興趣但不能從零學習的任務,比如一個只能有少量資料的任務。

  • S \ T 代表了我們不感興趣但可以從零學習(來幫助我們更好的學習?)的任務,如jigsaw、colorization等自我監督的視覺任務。

  • TS 代表了我們既感興趣又能從零學習的任務,但因為從零學習會消耗監督預算,我們希望從中選擇出符合預算的一組從零學習,餘下的通過少量資料的遷移學習來實現。

我們稱 V = TS 為我們的任務詞典 (task dictionary)。最後,我們對視覺任務t的定義為一個基於圖片的方程 f(t)。

如下圖所示,我們收集了一個有四百萬張圖片的資料題,每張圖片均有26個不同視覺任務的標註 (ground truth)。這26個任務涵蓋了2D的、3D的和語義的任務,構成了本項research的任務詞典。因為這26個任務均有標答,S也為這26個任務。

CVPR 2018最佳論文作者親筆解讀:研究視覺任務關聯性的Taskonomy

下面,我們進入第一大階段,量化視覺任務的關聯。

>>>> 第一步:從零學習

對於每個起始任務,我們為其從零開始學習一個神經網路。為了能更好地控制變數從而比較任務關聯,每個任務的神經網路具有相似的encoder-decoder結構。所有的encoder都是相同的類ResNet50結構。因為每個任務的output維度各不相同,decoder的結構對不同的任務各不相同,但都只有幾層,遠小於encoder的大小。

(注:CVPR poster session期間有人問起,decoder泛指readout functions,比如classification的FC Layers也算為decoder)

>>>> 第二步:遷移學習

CVPR 2018最佳論文作者親筆解讀:研究視覺任務關聯性的Taskonomy

如上圖所示,對於每一對起始任務 s ∈ S 和目標任務 t ∈ T,我們將以s的representation作為輸入來學習t。我們將凍結任務s的encoder 引數,並基於encoder的輸出 (representations) 學習一個淺層神經網路read out function。

如下圖所示,對於t,不同的起始任務的representation會對遷移表現造成不同的影響。更具關聯的s會為t提供更有效的統計資訊,從而僅用1/60的訓練資料(相較於從零學習)就能取得不錯的結果;相反不具備關聯的s則並不能有此表現。因此,我們認為基於s的representation的遷移學習在t任務中的表現可以很好地代表了s之於t的關聯性。

CVPR 2018最佳論文作者親筆解讀:研究視覺任務關聯性的Taskonomy

上述遷移代表了任務之間一對一的關聯,我們稱其為一階關聯。如下圖,幾個任務之間可能具有互補性,結合幾個起始任務的representations會對解決目標任務起到幫助。因此,我們也研究了任務之間多對一的關聯,我們稱其問高階關聯。在這種情況下,我們concatenate幾個起始任務的representation當作目標任務的輸入,其餘細節跟上段類似。

因為高階的任務組合數量太大,我們基於一階表現選擇了一部分的組合進行遷移學習。對於小於五階的高階,我們根據一階的表現,將前五的所有組合作為輸入。對於n > 5階,我們選擇結合一階表現前n的起始任務作為輸入。

CVPR 2018最佳論文作者親筆解讀:研究視覺任務關聯性的Taskonomy

>>>> 第三步:Ordinal Normalization

CVPR 2018最佳論文作者親筆解讀:研究視覺任務關聯性的Taskonomy

這一步的目標為用一個affinity matrix量化任務之間的關聯。雖然從上步習得的遷移網路中我們獲得了許多的loss值 ,但因這些loss值來自於不同的loss 函式,它們的值域有很大差別。

如果我們把這些loss值直接放入一個矩陣(上圖左,縱軸為目標任務、橫軸為起始任務),那麼這個矩陣內的值及其不均勻,並不能有效反應任務之間的關聯。同時,簡單的線性規範化也並不能解決問題,因為任務的loss值和表現並不構成線性關係(0.01的l2 loss並不代表其表現兩倍好於0.02)。

由此,我們採用Ordinal Normalization(基於序數的規範化)來將loss值轉換為關聯度。該方法基於運籌學中的AHP (Analytic Hierarchy Process)。具體細節見論文或知乎,概括來講,affinity matrix中的第 (i, j) 個值為利用第 i 個起始任務遷移後,其網路有多大的機率表現好於用第 j 個網路(我們在下文稱其為 i 對於 j 的勝率)。

至此第一大階段完結,我們通過上述affinity matrix量化了任務之間的關聯性。

>>>> 第四步:BIP最優化

最後一步,我們要基於affinity matrix求得如何最有效地學習一組我們感興趣的任務。我們可以這個問題想象成一個subgraph selection的問題:選擇一些任務從零學習,剩下的任務用少量資料進行遷移學習,具體遷移學習的策略由subgraph中的edge來決定(對一條directed edge,起始點代表我們從零學習的一個任務,終點代表要進行遷移的目標任務)。基於此,我們可以通過解如下最優化問題來得到最優解:

CVPR 2018最佳論文作者親筆解讀:研究視覺任務關聯性的Taskonomy

這個最優問題有三個限制條件。

1.    如果我們選擇了一個遷移,那麼遷移的起始任務(可能為高階起始集)和目標任務均要出現在subgraph中

2.    每個目標任務有且僅有一個遷移(我們將從零學習在途中定義為從自己到自己的遷移,即一條自己到自己的edge)

3.    不超過監督預算

這三個限制條件的具體數學表達如下:

CVPR 2018最佳論文作者親筆解讀:研究視覺任務關聯性的Taskonomy

至此,我們通過解最優subgraph selection從而獲得了最有效遷移學習策略,如下圖:

CVPR 2018最佳論文作者親筆解讀:研究視覺任務關聯性的Taskonomy

實驗結果


Taskonomy專案訓練了3000+個神經網路,總耗時~50000小時的GPU。從零學習消耗120k張圖片,遷移學習為16k張圖片。

我認為現有公眾號對Taskonomy翻譯中最不準確的是對Taskonomy實驗部分的評論。如文章一開頭所說,Taskonomy的目標為用有限的監督預算來最有效地解決一組任務,並不是將state of the art提高百分之幾。本文想宣揚的中心思想是計算機視覺界應注重視覺任務間的關聯性,並讓這些關聯性為我們所用。回到本文的具體用途,Taskonomy的用途有兩個:

1.    Taskonomy作為解決一組任務的方法。

2.    用Taskonomy的任務詞典解決一個只有少量資料的新任務。

以下試驗結果分為兩個部分,分別對應以上兩點。

>>>> 一:解決一組任務

如何衡量Taskonomy解決一組任務的有效性?我們設定了兩個評判標準。

1.    遷移獲利 (Gain) : 如果我們不進行遷移學習,我們只能基於少量的資料從零學習。遷移獲利是指遷移學習相較於從零學習的勝率(見Ordinal Normalization部分)。

2.    遷移質量 (Quality) : 用少量資料遷移學習相較於用大量資料從零學習的勝率。

下圖是Taskonomy的遷移獲利 (左) 和質量 (右) 的圖表。兩圖的縱軸為所有目標任務,橫軸為監督預算,勝率在0-1之間。可見,對於一個26個任務的目標集,在只有一半甚至1/3的監督預算時,Taskonomy計算出的監督分配會使整體表現遠遠打敗從零學習(遷移獲利),並近似於(勝率超過40%)大量資料完全監督學習(遷移質量)。

>>>> 二:解決新任務

對於解決新任務,我們可以把我們任務詞典裡的目標任務當作一個新任務,模擬只有少量資料的情況。實驗結果如下,我們可以發現Taskonomy的表現超過了現有的行業pretrained features(包括imagenet fc7)。

CVPR 2018最佳論文作者親筆解讀:研究視覺任務關聯性的Taskonomy

總結

在Taskonomy專案裡,我們的目標是著眼於一組任務,並利用任務之間的關聯性減少總體資料使用量。為此,我們量化了視覺任務的關聯性,並基於求得的affinity matrix最優化得到如何分配任務監督資料量。實驗表明,視覺任務之間確實存在很強的關聯性,我們能通過更少的資料很好地解決一組任務。

相關文章