1. 程式人生 > >CVPR2018 Best Paper:Taskonomy: 揭開任務遷移學習的祕密

CVPR2018 Best Paper:Taskonomy: 揭開任務遷移學習的祕密

CVPR 2018 Best Paper | 任務學: 揭開任務遷移學習的祕密

Introduction

​ 直覺告訴我們視覺任務之間存在著關聯,但是這些關聯是怎樣的呢?這篇論文提出了一個完全通過計算的方法構建視覺任務的空間結構:

一個有向圖,節點為任務,每一條的權重作為任務間的關聯度。

​ 當我們得知任務的邊界的時候,知道哪些任務之間是有著比較好的關聯度,那麼利用遷移學習能夠降低我們對於目標任務的標記資料的需求,從而降低我們對於大資料集的依賴,減少計算,同時使訓練表現較好。而當前的深度學習忽視了這些任務之間的大量有用的關聯,導致標記資料的大量需求。

本文的一些約定的Definition或者使用的名詞

Structure(結構):通過計算髮現的特定的某些任務可以提供可用資訊另一個任務,包括提供的能力程度。(可以理解為有向圖的一條邊,以及其權重)

Binary Integer Programming: 0-1整數規劃

通過計算出任務間的緊密關係矩陣(也就是基於一個任務是否充分容易地將其提取出來的表示用於其他任務的學習)這樣的遷移是完全取樣的,並且用了0-1整數規劃來提取一個有效的全域性訓練策略。

由於這個方法是通過完全計算以及基於表示進行的,可以避免把自己的假設帶入任務空間,確保提取出來的圖是合理的,並且發現這種做法能夠用遠比單獨訓練一個任務少得多的資料來訓練出目標任務。(例如我們容易認為深度遷移到曲面法線應該更容易,然而實際上反之更好)

Method

1.問題定義:

我們希望在有限的監督能力(由於資金/計算能力/時間等限制)下,最優化在一系列任務集合中的表現。

T :目標任務(我們希望訓練出來/解決的任務)

S:源任務(我們已經訓練好的任務,或者我們能夠已有的充分的資料訓練出來的任務)

V =T U S ,即所有任務的並集

T - T\capS:不能被訓練出來的但是想解決的(這就是我們希望做好的地方

T\capS:能夠被訓練出來的而且是我們想解決的(這是極好的

S-T\capS:可以被訓練出來的,但是不是我們想解決的任務。(除非能夠提高目標任務的訓練結果,否則我們一般不理它)

Taskonomy (任務學): 一個計算髮現的有向圖,能夠捕獲從任意給定的一系列的任務當中提取其轉移能力。

2.大概流程:

  1. 每一個任務建模訓練
  2. 1v1,多v1的遷移學習建模
  3. 任務緊密程度的歸一化
  4. 計算出Taskonomy

3.論文設計相關的內容

  1. 任務字典:本設計包括有26個任務,包括了計算機視覺的多個方面。(這只是一個樣本集,而並不是全集)
  2. 資料集:400萬張圖片/600個建築,每一張圖片對於每一個任務都有對應的標記。

4. 具體流程

  1. 每一個特定任務的建模訓練:

對於每一個 S 中的任務訓練一個全監督的對於特定任務的網路。特定任務網路有一個編碼器和解碼器結構,編碼器有足夠的大小來提取特徵,解碼器有足夠的能力來獲得好的表現,但是相對於編碼器而言會更小。

  1. 遷移訓練建模

對於每一個源到目標任務,提出一個任務緊密程度的度量  ,

D: dataset

I: input

E_s(): 輸入經過Encoder 之後的表示

f_t():輸入的background輸出

 D_{\theta}:以 為引數的read out function,就是從編碼器之後的部分

L_t:預測與實際之間的損失

E_{T\in D}: 期望值

 D_{s->t}就是通過最小化預測的結果與實際結果的損失的期望值,為之引數,以此作為度量。

易得性:對於遷移來說,作為源,除了充足的資訊,還有資訊的易得性都是我們要考慮的內容。(因此評判遷移能力是在採用了低容量的模型來訓練少量的資料下評估,使得所有的所有的遷移都是在充足的資料以及足夠資料易得性下進行)

高階遷移:當是採用多個任務遷移到一個任務的時候,容易發生組合爆炸,因為當需要進行k v 1 的遷移學習的時候,會有|T|xC^k_{|S|}個可能。文中提出了採用Beam Search(寬度優先搜尋+啟發資訊)的方法進行取樣(當k<5的時候,取樣的個數為5,當k>5的時候,取樣個數為5個。)另外發現連續遷移(s->t_1->t_2對於遷移效果並沒好處)

  1. 利用層次分析法對遷移的效果進構建成一個行歸一化

通過遷移學習直接獲得的資料,對於同一個目標任務,輸出的 結果大小不一。直接的歸一化,如果在輸出的質量不同速度提升的時候,就不能夠很好的表現出實際的情況。

3.0 然後把每一個源任務和目標任務對(i,j),在遷移學習之後,通過held-out方法取出測試集,對於每一個任務t,通過計算D_{S_i->j}>D_{S_j->t},構建成一個W_t.

3.1 首先通過的是clip(藉助拉普拉斯平滑方法)將實際的產生的結果轉化到範圍為[0.001,0.999]

3.2 然後通過W_t'=W_t/W_t^T 來得到這個,然後得出對於目標任務,我們可以比較得出到底比好多少倍。顯然這裡的矩陣內容對角線元素互為倒數。與AHP中的比較轉移矩陣一致。

3.3 借鑑AHP中的方法,得到比較轉移矩陣的最大特徵值對應的特徵向量,該特徵向量stack得出的就是對於每一個任務其他任務提供資訊的能力的矩陣。

  1. 計算全域性的任務遷移能力圖

全域性的遷移策略來使整體的任務的表現最好,然後最小化監督的代價。其實就是對於子圖進行優化,在滿足不超出給定的監督代價的情況下,選出最理想的邊和源節點。因此採用了0-1整數規劃來解決。

這裡實際上就是在第3步計算得出的圖中作子圖選擇,挑選出合適的子圖作為輸出

然後對於定義一些引數:

\gamma: 監督的預算

P:任務間的緊密程度矩陣

r_j:目標任務的相對重要性

l_i :對於i任務獲得label的相對代價

對於0-1整數規劃,實際上被一個向量x引數化,每一個轉移的邊和任務都被表示成一個0-1整數,然後這向量確定了哪些源和哪些遷移是被選擇的。x表示的源和邊,如果為1就被選擇了。

c作為表現評估係數,然後做的就是是受限於三個條件,實現最大化表現。對於c中的每一個元素,使用者特定的目標任務重要程度和每一個的獨立的AHP表現 ,是兩者的乘積。

A為三個受限條件:

  1. 每一個遷移和節點/任務都在子圖中。
  2. 每一個目標任務都會有一個遷移進來
  3. 監督預算是不會超支

限制條件的數學表達:

Result

定義:Win Rate:test set中前者比後者效果好的比例。(勝率當然在0-1之間 遷移獲利 (Gain) : 如果我們不進行遷移學習,我們只能基於少量的資料從零學習。遷移獲利是指遷移學習相較於從零學習的勝率(見Ordinal Normalization部分)。 遷移質量 (Quality) : 用少量資料遷移學習相較於用大量資料從零學習的勝率

課件下載

Reference