前言
在目前一些零樣本或小樣本學習任務中,通常將圖像映射到embedding空間,然後利用feature embedding進行後續的操作。這樣就存在一個問題,任務間共享的是通用的feature embedding,那麼就會存在feature embedding可能並不適用於某些任務這樣的情況,就會導致不好的結果。
本文基於這一點,提出了一種task-aware feature embedding network(TAFF-Net),它的基本思想是特徵的動態表示,利用一個基於元學習的參數生成器將通用圖像特徵轉換爲task-ware feature embedding(TAFEs)。
上圖是對TAFE的說明,TAFE的意思其實就是,同樣的圖像在不同的任務中可能會有不同的embedding,TAFE與給定任務的語義是相適應的,因此在測試時能夠滿足新任務的需要。特徵轉換是通過一個task-aware元學習器實現的,它爲feature embedding層生成參數,這樣的話生成的embedding也是task-aware。通過使用TAFE,可以採用一個簡單的二值分類器來學習一個獨立於任務的線性邊界,從而將正樣本與負樣本分隔開,並泛化到新任務中。
本文還提出了兩種方法以解決遇到的挑戰:
- 訓練任務的數量有限。爲了解決這個問題,本文利用基於元學習的embedding loss將task embedding和TAFE結合起來,由此提升了跨任務的泛化能力;
- 參數生成的複雜性。在生成參數時需要從低維task embedding中預測大量的權值,這是非常複雜的。因此,利用因式分解將權值分解爲低維的特定於任務的權值,和高維的在所有任務間共享的靜態權值。
方法實現
1. TAFE-Net模型
上圖是TAFE-Net模型的結構,它由兩個子網構成:task-aware元學習器和預測網絡。以任務描述(word2vec編碼或圖像樣本)作爲輸入,然後爲中的特徵層生成權值。對於一個輸入圖像,的輸出爲:
是一個二值標籤,它說明輸入圖像是否與相兼容,也就是說判斷是否屬於任務。
具體來說就是,採用一個在ImageNet上經過預訓練的特徵提取器,用它生成輸入圖像的通用特徵,然後將這些通用特徵送入一系列動態特徵層(dynamic featur layer)中(動態特徵層的參數是由生成的),那麼動態特徵層的輸入就是TAFE(task-aware feature embedding),也就是說同樣一個圖像,它的feature embedding在不同的中可能是是不同的。可以看到,雖然沒有直接將作爲的輸入,但卻控制着中特徵層的參數,從而進一步將任務信息與圖像的feature embedding結合起來。
在中有一個二值分類器,它以TAFE作爲輸入,進而學習一個獨立於任務的決策邊界。當需要多個類的預測值時,就可以利用在不同上的預測值作爲概率分數。
由進行參數化,它包括一個embedding網絡和一系列權值生成器。是爲了生成task embedding ;而是用來在相同的task embedding 的條件下,爲中的個動態特徵層生成參數。
2. 權值的分解
生成TAFE的特徵層可以是卷積層也可以是全連接層,爲了生成特徵層的權值,需要將的輸出維度與第個特徵層的權值尺度相匹配。但是,通常來說權值的數量比任務數要多得多,因此很難從少量任務樣本中學習權值生成。而且,的參數化會消耗很大一部分存儲空間。由此,本文提出一種權值分解機制,即沿着每個全連接層的輸出維度和卷積層的輸出通道維數進行權值分解。
卷積層的權值分解
給定中第個特徵層的輸入張量,它的權值是(是卷積核大小,和分別是輸入和輸出的通道數),偏差是,那麼卷積層的輸出就爲:
其中代表卷積操作。是是中第個權值生成器的輸出,它可以被分解爲:
其中是一個在所有任務間共享的權值,而是特定於任務的權值。表示沿着輸出通道維數的分組卷積,即的每個通道只是和中相應通道的卷積。
這樣的話,就只需要生成即可,它將的輸出維數由減少到
全連接層的權值分解
全連接層的權值可以被分解爲:
其中是一個在所有任務間共享的權值,而是特定於任務的參數。其實這個分解與特徵激活調製(feature activation modulation)是等價的:
經過以上權值分解,權值生成器就只需要爲每個任務生成低維的特定於任務的參數,而高維參數是在任務間共享的。
3. 元學習器的embedding loss
用於訓練元學習器的任務數量遠遠少於用於訓練預測網絡的圖像數量,因此,本文爲元學習器添加一個embedding loss ,以及一個用於預測網絡的分類損失。在預測網絡中有一個二值分類器,用來預測任務描述和輸入圖像之間的兼容性。爲了分辨輸入圖像屬於哪個任務(即類別),本文采用多類別交叉熵損失:
其中是數據集中的第個樣本,是對gt標籤的one-hot編碼,是任務數量。
接下來,對於embedding loss,本文的想法是將task embedding 和TAFE投影到一個聯合embedding空間中。這裏用到了度量學習的方法,對於給定任務的正樣本,對應的TAFE應該和離得很近,而如果是負樣本,對應的TAFE就因該和離得很遠。使用hinged cosine similarity作爲距離度量,那麼embedding loss就是:
那麼整個模型的loss就是:
是超參數,用於控制兩個loss的貢獻。
結論
本文提出的TAFE是一種能夠對不同的任務進行自適應的feature embedding,也就是說,同樣的圖像在不同的任務中可能會有不同的feature embedding。先由一個元學習器根據給定的任務爲預測網絡中的特徵層生成權值,然後再由這些特徵層生成TAFE,也就是說不同的任務對於TAFE的控制是間接的。在生成權值時,利用權值分解機制使得權值的生成更有效率;此外還添加embedding loss來提升元學習器的泛化能力。