本文主要介紹剛剛被IEEE Transactions on Pattern Analysis and Machine Intelligence (T-PAMI)錄用的一篇文章:Regularizing Deep Networks with Semantic Data Augmentation。

期刊論文:https://arxiv.org/abs/2007.10538

會議論文:https://arxiv.org/abs/1909.12220

代碼和預訓練模型已開源

知乎鏈接:

在計算機視覺任務中,數據擴增是一種基於較少數據、產生大量訓練樣本,進而提升模型性能的有效方法。傳統數據擴增方法主要藉助於圖像域的翻轉、平移、旋轉等簡單變換,如圖1中第一行所示。

我們的工作則提出了一種隱式語義數據擴增算法:ISDA,意在實現對樣本進行更爲「高級」的、「語義」層面的變換,例如改變物體的背景、顏色、視角等,如圖1中第二行所示,注意這些變換並不改變任務標籤。

具體而言,ISDA具有幾個重要的特點:

  1. 與傳統數據擴增方法高度互補,有效地增進擴增多樣性和進一步提升性能
  2. 巧妙地利用深度神經網絡長於學習線性化表徵的性質,在特徵空間完成擴增過程,無需訓練任何輔助生成模型(如GAN等),幾乎不引入任何額外計算或時間開銷
  3. 直接優化無窮擴增樣本期望損失的一個上界,最終形式僅爲一個全新的損失函數,簡單易用,便於實現
  4. 可以廣泛應用於全監督、半監督圖像識別、語義分割等視覺任務,在ImageNet、Cityscapes等較大規模的數據集上效果比較明顯

圖1:傳統數據擴增與語義數據擴增的比較

Introduction (研究動機及簡介)

數據擴增是一種非常有效的提升深度學習模型泛化性能的方法,一般而言,我們會在輸入空間進行一些特定的變換,以基於有限的數據產生大量的樣本用於訓練,如圖2中對汽車圖像進行旋轉、左右翻轉、放縮、裁剪等。
其效果往往非常顯著,例如,在圖2右側柱狀圖中,我們展示了在相同的實驗設置(優化器、訓練時長等)下,在 CIFAR 圖像識別數據集上,是否進行數據擴增所導致的性能差異。
在 CIFAR-10 數據集上,測試誤差從 13.6% 降至 6.4%;在 CIFAR-100 數據集上,測試誤差從 44% 降至 27%。
圖2:傳統數據擴增簡介
本質上,數據擴增的效果來源於促進模型對於我們定義的這些變換的不變性。然而,從生物體的角度出發,視覺的不變性並不僅限於簡單的幾何變換,而是更多地體現在更爲高級的語義層面。
例如在圖3中,當我們改變汽車的顏色、視角和背景時,我們仍然可以辨識出,這是一輛汽車。
這就啓發我們:能不能將這些不改變類別主體的語義變換引入到數據擴增中?

圖3:語義數據擴增簡介

那麼,如何實現這樣的語義數據擴增呢?
顯然,一個最簡單的方法就是在數據集上訓練一個或多個生成模型,如GAN,去捕捉不同類別的語義分佈,再從中得到大量擴增後的樣本,但這樣做有幾個明顯的弊端:
(1)這一方法比較複雜,訓練GAN需要設計特定的模型和配套算法,實現起來比較困難;
(2)時間和計算開銷較大,一方面,訓練GAN需要消耗大量額外的時間和計算資源,另一方面,將GAN應用於產生擴增樣本將引入額外的推理開銷,並可能減慢主要模型的訓練;
(3)根據我們的實驗結果,這一方法效果比較有限(關於這一點的詳情,請參見我們的paper,
簡而言之,GAN的訓練同樣依賴於比較多的數據,於是有一個悖論:數據少->GAN難以訓練->擴增效果不好;數據多->雖然GAN可以訓練好->但是與直接用這些數據訓練模型相比,GAN難以提供超出數據集範疇的信息,效果有限)。
圖4:基於生成模型的語義數據擴增
如何更簡單高效的實現我們所希望的語義變換呢?
事實上,我們可以藉助卷積神經網絡的一個非常有趣的性質:之前的研究工作證明,由於我們往往用線性分類器約束網絡的輸出,深度網絡的特徵空間往往是線性化的,輸入空間中不同樣本之間複雜的語義關係傾向於表現爲其對應深度特徵之間的簡單空間線性關係。
換言之,深度特徵空間中的一些方向是對應於特定語義變換的。以Deep Feature Interpolation爲例(圖5),若我們任意收集一定數量藍色汽車和紅色汽車的圖片,取得前者深度特徵均值指向後者深度特徵均值的向量,則這一向量就代表了“將汽車的顏色由藍色變爲紅色”這一語義變換。
對於任意一張全新的藍色汽車圖片,我們將其深度特徵沿這一方向平移後,就可以得到將這輛汽車的顏色換爲紅色後,所得圖片對應的深度特徵(這一方法的合理性證明自,此特徵可以以特定方式映射回圖像空間)。
圖5:藉助深度特徵空間的圖像語義變換 —— Deep Feature Interpolation
我們的工作受到了這一現象的啓發,在深度特徵空間中,我們爲訓練樣本尋找改變顏色、視角、動作和背景等不影響類別標籤的語義變換所對應的方向,通過將訓練數據的深度特徵在這些方向上平移,低成本地實現多樣化的語義數據擴增,以彌補傳統擴增方法在語義不變性上的不足。

Method (方法詳述)

爲了實現前文所述的目標,一個顯而易見的問題是:如何在深度特徵空間中尋找這些“有意義的語義方向”?
Deep Feature Interpolation中所採用的的方法是人工收集對應於具體變換的特定數據,再對語義方向進行標註。
顯然,這一思路是不適用於數據擴增的,
其一,對於每一類別甚至每一樣本,可行的語義方向都是有所不同的,對每一變換人工收集數據成本巨大;
其二,可能的語義變換數量極多,通過預先定義、人工尋找的方只能找到非常有限的少數方向。
爲了解決這兩點不足,一個可能的選擇是:通過隨機採樣得到擴增所需的語義方向。
這樣一方面節省了人工標註的開銷,另一方面可以保證語義方向的在特徵空間中連續分佈,發現更多潛在的語義方向,從而提升擴增的多樣性。
但如此一來,採樣的方式就變得尤爲重要,考慮到特徵空間維度極高(例如ResNet-50在ImageNet上產生2048維的特徵空間,即便以二值化的假設近似,可能的取值也有 種)。
若完全隨機採樣,得到的語義方向極有可能是沒有任何意義的,如圖6所示,將汽車的圖片沿“飛翔”或是“變老”的方向平移是完全沒有意義的。
圖6:通過隨機採樣尋找語義方向
那麼,如何設計合適的採樣方法呢?我們的工作巧妙地利用了已有的訓練數據。具體而言,每一類別的樣本都是有其類內特徵分佈的,實際上這種數據分佈隱含了這類數據可能變化的方向。
爲了說明這一點,我們首先考慮下面這一個例子(圖7)。“鳥”這一類的樣本在“飛翔”這一方向上具有較大的方差,因爲訓練數據中同時包含“飛翔”和“不飛翔”的鳥,相對而言,其在“變老”這一方向上方差幾乎爲0,因爲數據中不可能存在“老”或“年輕”的鳥。
同理,數據中存在“老”或“年輕”的人,而不存在“飛翔”的人,因此“人”這一類的樣本在“變老”這一方向上應當有較大的方差,在“飛翔”這一方向上方差幾乎爲0。
總而言之,在多維空間中,我們可以利用類內特徵分佈刻畫某類圖像可能在哪些方向上有語義的變化。
圖7:類內深度特徵分佈
出於這一點,我們通過統計每一類別的類內協方差矩陣,爲每一類別構建了一個零均值的高斯分佈,進而從中採樣出有意義的語義變換方向,用於各自類別內的數據擴增,以此來近似手工標註的過程,以取得正確性、高效性、多樣性的良好權衡。
其示意圖如圖8所示,關於具體的技術細節(例如協方差估計方法),請參閱我們的paper。
圖8:基於類內分佈的高斯採樣
在數學上講,給定第 個樣本對應的深度特徵 ,其擴增後的形式應當是一個以 爲均值的正態分佈隨機變量 :
圖9:語義數據擴增的數學形式
其中 爲一常數。給定這一形式後,一個來源於傳統數據擴增的自然思路是從隨機變量 的分佈中採樣 次,優化其平均損失:
其中 爲樣本數目, 爲 對應的標籤, 爲網絡最後一線性分類層的參數,爲類別數目, 爲網絡參數。但事實上, 較大、樣本數目較多、特徵空間維度較高時,採樣 次並計算損失所引入的額外訓練開銷同樣是不容小視的。因此,我們考慮採樣無窮次,即 的情況:
此時,我們實質上得到了在擴增分佈上的期望損失。對於傳統數據擴增方法而言,這一期望損失是難以計算的。
但是,由於我們的擴增操作是在特徵空間完成的,在數學上,我們可以方便的對上式進行處理。
通過利用 Jensen 不等式,我們可以得到其一個易於計算的上界:
通過將這一上界作爲我們的實際優化目標,我們得到了一個簡單易行且高效的語義數據擴增算法,如下所示:
我們的算法被稱爲Implicit Semantic Data Augmentation(ISDA,隱式語義數據擴增) ,其最有趣的一點是,我們從語義數據擴增的角度出發,得到的算法最終卻可以歸化爲一個全新的損失函數。
除標準的圖像識別外,本算法也可應用於任何使用Soft-Max交叉熵損失的視覺任務,例如圖像分割等。
事實上,除了上述介紹的基本的監督學習情境外,ISDA也可以在一致性正則(consistency regularization)的思路下拓展至半監督學習,其最終算法同樣體現爲一個全新的損失函數(期望KL散度的一個上界),且同樣可以與現有方法實現很好的互補。關於這一點的細節,由於空間所限不在此贅述,請參閱我們的paper~

Experiments (實驗結果)

圖10:ImageNet 圖像識別效果
圖11:與 state-of-the-art 的傳統數據擴增方法有效互補
圖12:半監督學習的實驗結果

Cityscapes 語義分割,可以在PSPNet[6]和DeepLab-V3[7]的基礎上將mIOU提升1%以上

圖13:Cityscapes 語義分割的實驗結果
爲了證實我們的確實現了語義數據擴增,我們利用BigGAN[8]在ImageNet上進行了可視化實驗,其結果如下圖所示。
其中 Augmented 中的圖片爲ISDA擴增的結果,Randomly Generated 中的圖片爲BigGAN隨機生成的圖片。
可以看到,ISDA所改變的語義包括狗的動作、鳥的背景、帆船的遠近及位置、車的視角、熱氣球的顏色等,並不改變類別標籤,且可以顯著地看出,這些擴增得到的樣本分佈與原圖片更爲接近,而與類內隨機樣本差距較大。
這些觀察與我們前文所述的假設是高度吻合的。
圖14:ImageNet上的可視化結果

Conclusion (結語)

最後總結一下,在我個人看來,這項工作的主要價值在於其爲數據擴增算法的設計帶來了三個啓發性的思路:

(1)關注語義層面的數據擴增;

(2)利用特徵空間的性質,對深度特徵進行數據擴增;

(3)從期望損失的形式出發,向大家展示了數據擴增不一定是隨機化的方法,亦可以體現爲一個確定的形式,例如損失函數。

歡迎大家follow我們的工作~。
@inproceedings{NIPS2019_9426,
title = {Implicit Semantic Data Augmentation for Deep Networks},
author = {Wang, Yulin and Pan, Xuran and Song, Shiji and Zhang, Hong and Huang, Gao and Wu, Cheng},
booktitle = {Advances in Neural Information Processing Systems (NeurIPS)},
pages = {12635--12644},
year = {2019},
}

@article{wang2021regularizing,
title = {Regularizing deep networks with semantic data augmentation},
author = {Wang, Yulin and Huang, Gao and Song, Shiji and Pan, Xuran and Xia, Yitong and Wu, Cheng},
journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence},
year = {2021}
}

相關文章