選自Stanford AI Lab Blog

作者:Sharon Y. Li

機器之心編譯

參與:Panda

對當今需要大量數據的機器學習模型而言,數據增強是一種具有顯著價值的技術——既可用於緩解數據量不足的問題,也可用於提升模型的穩健性。常規的數據增強技術往往依賴相關領域的專家,耗時耗力成本高昂,因此研究者開始探索自動化數據增強技術。近日,斯坦福大學 AI 實驗室(SAIL)發表了一篇題爲《自動化數據增強:實踐、理論和新方向》的博客文章,介紹了這一領域及近期的相關研究進展。

在圖像分類和文本分類等應用中,當今使用的幾乎所有表現最好的機器學習模型幾乎都會用到數據增強技術。啓發式的數據增強方案往往需要依靠具有豐富領域知識的人類專家進行人工調整,但這可能導致所得到的增強方案是次優的。本文將概述性地介紹數據增強研究領域近期的研究成果,包括用於自動化搜索變換函數的過程的新算法、幫助我們理解實踐中常用的多種增強技術的理論見解、一種利用數據增強修補有缺陷模型並提升其在數據的關鍵子集上的表現的新框架。

爲什麼要使用數據增強?

深度神經網絡等現代機器學習模型的參數量可能多達數十億,並且還需要大量有標註的訓練數據——但這些數據往往難以獲取。針對數據稀缺的問題,人們正越來越多地使用數據增強技術,即人爲擴展有標註訓練數據集的技術。現如今,幾乎所有最先進的圖像分類模型都會使用數據增強,而且這類技術在自然語言理解等其它研究方向也正得到愈加廣泛的應用。本文的目的是概括性地介紹這一激動人心的研究領域的近期研究成果。

圖 1:啓發式數據增強會應用一個明確確定的變換函數序列,而這些函數和序列是由人類專家設計調整的。數據經過增強後,可用於訓練下游模型。

啓發式數據增強方案往往需要組合使用一組簡單的變換函數(TF),比如旋轉和翻轉(見圖 1)。由人類專家精心選取的數據增強方案可以爲模型的表現帶來提升。但在實踐中,這樣的啓發式策略可能導致最終模型的表現差異巨大,由此可能無法爲當前最佳的模型提供所需的增強。

數據增強領域有待解決的難題

常規數據增強方法的侷限性表明這一領域還存在很大的研究進步空間。下面總結了數據增強領域一些具有挑戰性的難題:

從人工設計到自動搜索算法:不同於執行次優的人工搜索,我們要如何設計可學習的算法來尋找優於人類設計的啓發式方法的增強策略?

從實踐到理論理解:儘管在實際應用中增強技術的設計研發進展速度很快,但由於缺乏分析工具,我們仍然難以理解這類技術的好處。該如何從理論上理解實踐中使用的各種數據增強技術?

從粗粒度到細粒度的模型質量保證:儘管現有的大多數數據增強方法的關注重點都是提升模型的整體性能,但通常還需在更細的粒度上關注數據的關鍵子集。當模型在數據的重要子集上的預測結果不一致時,我們該如何利用數據增強來縮減在相關指標上的表現差距?

本文將介紹爲了克服上述難題而提出的新思想和近期研究成果。

實際應用的可學習數據增強方法

可學習數據增強很有發展潛力——讓我們可以搜索更強大的參數化方法和變換函數的組成成分。在使用自動化數據增強方面,最大的難題也許是如何在變換空間上執行搜索。由於這個搜索空間中變換函數及相關參數的數量非常龐大,因此根本無法實現完全搜索。爲了有效且高效地探索變換函數空間以及尋找表現優於人類設計的啓發式方法的增強策略,我們該如何設計可學習的算法?針對這一難題,近期出現了下列一些方法。

TANDA:用於數據增強的變換對抗網絡

爲了解決這一難題,Ratner et al. 在 2017 年提出了 TANDA,這個用於學習增強策略的框架採用的方法是將數據增強過程建模爲用戶所提供的變換函數(TF)序列。舉個例子,這些變換函數可能包括「旋轉 5°」或「平移 2 個像素」。

究其核心,該框架由兩個組件構成:(1)學習一個用於產生有用的增強數據點的變換函數序列生成器;(2)使用該序列生成器增強用於下游模型的訓練集。尤其需要說明的是,該變換函數生成器基於 GAN 框架(Goodfellow et al. 2014),其訓練目標是讓生成的圖像看起來足夠真實,使之能騙過一個判別器網絡。這裏的基本假設是:這些變換要麼會得到看起來像真的一樣的圖像,要麼就會得到看起來不同於真實圖像但判別器卻無法區分的垃圾圖像。如圖 2 所示,生成器的目標是產生一個變換函數序列,並使得增強得到的數據點能夠騙過判別器;而判別器的目標則是讓原始訓練集中的數據點得到接近 1 的值,讓增強得到的數據點得到接近 0 的值。

圖 2:使用 TANDA 實現自動化數據增強(Ratner et al.2017)。這裏採用了對抗式方法訓練變換函數序列生成器,以得到與訓練數據相比足夠真實的增強數據。

AutoAugment 與進一步改進

谷歌的 Cubuk et al. 於 2018 年開發了一種自動增強技術 AutoAugment,它也使用了相似的框架,並且學習到的增強策略達到了當前最佳表現。在這項研究中,變換函數序列生成器的學習目標是直接優化最終模型的驗證準確度。爲了降低 AutoAugment 的計算成本,之後又有研究者提出了一些新改進,包括 RandAugment(Cubuk et al. 2019)和 Adversarial AutoAugment(Zhang et al. 2019),它們在圖像分類基準上創造了新的當前最佳(SOTA)。

對數據增強的理論理解

儘管在實際應用中數據增強技術的設計研發進展速度很快,但我們還是難以精準理解這類技術的好處。即使是更簡單的模型,我們也不能很好地理解在增強數據上訓練會如何影響學習過程、參數和決策表面。不僅如此,由於現代機器學習流程中執行數據增強的方式多種多樣,而且還涉及不同的任務和領域,因此理解這一過程的問題的實際難度還要更上一層樓,也就更難獲得普適的變換模型了。爲了從理論上描述和理解實踐中使用的各種數據增強技術,我們應該怎麼做?爲了解決這一難題,斯坦福大學的 SAIL 實驗室從核(kernel)角度並在簡化的線性設置下對數據增強進行了理論研究。

作爲核(kernel)的數據增強

Dao et al. 2019 開發了一種理論框架,該框架將數據增強建模爲了馬爾可夫鏈(Markov Chain),通過一個變換函數的隨機序列來執行增強,這類似於實際應用的數據增強執行方式。研究表明,在訓練數據集上應用馬爾可夫鏈(結合使用一個 k - 最近鄰分類器)的效果類似於使用核分類器(kernel classifier),其中核是基礎變換的一個函數。

基於核理論和數據增強之間的聯繫,Dao et al. 2019 表明在增強數據上的核分類器可近似地分解爲兩個組件:(1)經過變換的特徵的一個平均化版本;(2)一個數據依賴型的方差正則化項。這暗含了一個對數據增強的更細緻的解釋——即可通過同時引入不變性和降低模型複雜度來提升泛化能力。Dao et al. 2019 通過實驗驗證了這種近似方法的質量,並給出了其與其它提升泛化能力的技術的關係,包括在不變學習方面的研究(van der Wilk et al. 2018)以及在穩健優化方面的進展(robust optimization)。

在簡化的線性設置下的數據增強

以上研究有一個侷限,即難以確定在所得到的核上的特定變換的效果。此外,我們還不清楚如何在覈方法上有效地應用數據增強以得到與神經網絡相當的性能。斯坦福大學 SAIL 在更近期的一項研究中考慮了一種更簡單的線性設置,其可以建模圖像增強領域常用的各種各樣的線性變換,如圖 3 所示。

理論見解。通過思考一種過參數化的線性模型(其中訓練數據處於一個低維空間中),SAIL 得到了一些理論見解。研究表明,標籤不變的變換可以爲訓練數據添加新的信息,而通過添加位於訓練數據範圍外的新數據點,可以降低嶺估計器的估計誤差。此外,他們還發現混合(Zhang et al., 2017)可通過在訓練數據上縮減訓練數據相對於 L2 正則化項的權重來發揮正則化的作用。

圖 3:數據增強中常用的線性變換示意圖

理論啓發帶來了新的當前最佳。SAIL 的理論研究得到的一大見解是:不同的變換(及變換的組合)會得到非常不同的最終性能表現。基於這一觀察,可知道某些特定的變換事實上要優於另一些。在此基礎上,SAIL 提出一種基於不確定性的隨機採樣方案,即在變換之後的數據點中,選取那些損失最高的數據點,即那些「能提供最多信息的數據點」(見圖 4)。相比於 RandAugment,通過在三個不同的 CNN 架構上研究發現,這種採樣方案可通過尋找更有用的變換來實現更高的準確度,這也幫助對應的模型達到了常用基準的當前最佳水平。比如,使用 Wide-ResNet-28-10 時,新方法在 CIFAR-10 上比 RandAugment 優 0.59%,在 CIFAR-100 上比 RandAugment 優 1.24%。這項研究的論文:http://stanford.edu/~senwu/publications/data_augmentation_draft.pdf 。相關代碼也將會發布。

圖 4:用於數據增強的基於不確定性的隨機採樣方案。每個變換函數都是從一個預先指定的操作集合中隨機採樣得到的。這裏選取變換後損失最高的數據點來進行最終的模型訓練。

新方向:用於模型修補的數據增強

當前大多數機器學習研究都仍然是爲了解決固定的任務。但是,在現實世界中,部署中的機器學習模型可能會因數據分佈中出現意料之外的變化而發生故障。這會導致一個令人擔憂的問題,即該怎樣合適地實現從模型構建到模型維護的過渡?SAIL 在他們最新的一項研究中提出了模型修補(model patching)——這是首個利用數據增強來緩解部署中有缺陷模型的性能問題的框架。

模型修補的一個醫療用例

下面提供一個具體的案例。在皮膚癌檢測任務上,研究已經表明標準分類器在皮膚癌數據的兩個子分組上的表現差異極大,這是由於分類器會將彩色繃帶與良性圖像關聯起來(見圖 5 左圖)。SAIL 的另一項研究(Oakden-Rayner et al., 2019)已經研究過這種性能差異,並指出原因是分類器依賴於子分組中特定的特徵,比如彩色繃帶。

圖 5:在一個皮膚癌數據集上訓練的一個標準模型在有或無彩色繃帶的惡性腫瘤圖像上表現出了子分組性能差異。GradCAM 說明基礎模型會將彩色斑點與良性皮膚病變錯誤地關聯起來。使用了模型修補之後,兩個子分組的惡性病變都能被正確地預測出來。

爲了修補已部署模型中的這種缺陷,領域專家必須通過人工數據清理來消除子分組之間的差異,比如使用 Photoshop 移除皮膚癌數據上的標記(Winkler et al. 2019),然後使用修改後的數據重新訓練模型。這做起來超級累人!我們能通過某種方法以規定的方式藉助樣本增強來實現各子分組數據量的平衡嗎?SAIL 提出的模型修補新框架就是通過這種方法來解決這一問題的。

CLAMP:用於模型修補的類條件學習增強

模型修補的概念框架由兩個階段構成(如圖 6 所示):

學習不同子分組之間的子分組間變換。這些變換是保留了類別的映射,允許從語義上改變數據點的子分組身份(比如,添加或移除彩色繃帶)。

重新訓練以使用增強後的數據修補模型,促進分類器穩健地應對數據的變化。

圖 6:使用數據增強的模型修補框架。突出標示的框包含的樣本中某個類別的子分組 A 和子分組 B 的表現不一樣。條件生成模型在經過訓練之後可將一個子分組的數據轉換到另一個子分組(AB 或 BA)。

SAIL 提出的 CLAMP 是其提出的首個端到端模型修補框架的一種實例。其中組合使用了一種全新的一致性正則化器與一個穩健型訓練目標;這個訓練目標的靈感來自近期的分組分佈的穩健型優化(GDRO,Sagawa et al. 2019)。SAIL 將 GDRO 擴展成了一種類別條件式的訓練目標,其可聯合優化每個類別中最差的子分組的性能。CLAMP 可以平衡每個類別中子分組的性能表現,可將性能差距降低至原來的 1/24。在皮膚癌檢測數據集 ISIC 上,相比於穩健訓練基準,CLAMP 將穩健準確度提升了 11.7%。在圖 5 的可視化中還可以看到,CLAMP 可以成功去除模型對假特徵的依賴(彩色繃帶),而將注意力放在皮膚病變上——這纔是真正的相關特徵。

結果表明這種模型修補框架是自動化模型維護過程的一個很有潛力的研究方向。事實上,模型修補正發展成爲一個最新的突破性領域,對於安全性至關重要的系統,這種方法能緩解一些重大問題;比如對於醫療系統,可幫助模型生成沒有僞影的 MRI 掃描圖像;對於自動駕駛系統,可提升感知模型在非常規物體或路況上的表現。SAIL 預計模型修補將在許多其它領域應用中得到廣泛採用。

作者介紹:Sharon Y. Li目前在斯坦福人工智能實驗室從事博士後研究工作。博士就讀於康奈爾大學,曾師從圖靈獎獲得者約翰霍普克羅夫特教授。她將於今年秋季加入威斯康辛麥迪遜分校計算機系任職助理教授。她曾入選全美福布斯30歲以下精英人物榜單。

原文鏈接:https://ai.stanford.edu/blog/data-augmentation/

本文爲機器之心編譯,轉載請聯繫本公衆號獲得授權。

------------------------------------------------

加入機器之心(全職記者 / 實習生): [email protected]

投稿或尋求報道:content @jiqizhixin.com

廣告 & 商務合作: [email protected]

相關文章