【自有技術大講堂】數據驅動的AI(系列1)— AI數據增強淺析
一、數據增強--用以增強不夠完美的現實世界數據
在現實世界中應用人工智能的許多挑戰主要原因都是數據不夠完善?,F實世界中的數據包含了各種各樣的限制,如圖1所示:
1)領域差距(Domain gaps):用來訓練模型的數據與在現實世界中必須預測的數據有很大的不同。
2)數據偏差(Domain bias):當收集的數據由于社會偏差而出現不平衡時,該如何設計能夠克服它們的方法?
3)數據噪聲(Domain noise):噪聲可以來自各種來源,包括標簽不明確、雜亂或損壞的地方。
鑒于這些不完美給人工智能系統帶來的不確定性,那么模型如何還能學習到健壯的特征表示呢?特別是如果人類對大容量數據集進行人工標記的代價很高,如此一來,挑戰就變成了是否可以在沒有任何標記的情況下克服這些問題。
圖1.真實世界數據中的不確定性
二、什么是數據增強?
數據增強也叫數據擴增,意思是在不實質性的增加數據的情況下,讓有限的數據產生等價于更多數據的價值??梢允褂酶鞣N各樣的技術來克服上述這些不確定性。數據增強可能是最簡單的方法之一,它通過添加額外的訓練數據來實現:
自我監督:當僅僅擁有有限的標簽數據時,可以嘗試將其與未標簽的數據相結合??梢詣摻〝祿臄U充,如果標簽對所有這些轉換都是不變的,則已經基于這些不變性創建了監督。例如,圖像的分類對于旋轉或裁剪等變換是不變的。在許多分類任務中,使用這種類型的學習甚至超過了監督學習。
合成數據:另一種方法是將有限的標簽數據與合成數據結合起來。雖然合成數據還處于初級階段,但生成模型已經取得了進展,未來它將對自動駕駛或機器人學習等測試系統產生非常重要的影響。
三、數據增強中的數據中心原則
數據增強的核心設計是在平衡積極和消極例子??紤]圖像識別,比如從一只貓的圖像開始,如果做一組改變,如旋轉圖像或改變對比度,預測保持不變,就有了一個積極的例子。一個消極的例子是,如果做了其他改變,比如選擇了一個不同的圖像,預測就會改變。最后,需要對比這些積極的例子和消極的例子,特別是那些相互接近的例子,以便了解分類器的邊界應該在哪里。這些對比學習原則是MOCO和SimCLR等流行方法的基礎。
圖2.使用SimCLR創建正例和負例來學習分類器邊界
更好的是可以將自我監督與弱監督結合起來——為相關任務貼上標簽,這通常比人類標簽要求要低得多。最近有一種叫做Discobox的技術,在這種技術中,只在訓練數據中使用邊界框標簽來訓練模型進行實例分割和對應學習。 有邊界框標簽通常是一種更低價且便利獲得的標簽形式。
作為一個現實世界的案例研究,研究者正在努力擴大這些技術,以降低自動駕駛的標簽成本。該模型在YouTube上的隨機視頻和自動駕駛視頻上進行了測試——這些視頻與訓練的視頻完全不同——并展示了高質量的即時分割結果,如圖3所示。
圖3.即時分割在一個完全不同領域的模型是可以只使用包圍框作為標簽訓練的
在使用自我監督等方法時,無需創建任何更多的標簽,便可以克服許多領域的標簽稀缺的問題。最近在這一領域已經取得了很大的進展,但也有更多的進展有待取得。例如,雖然合成數據仍處于初級階段,但在未來,它將對自動駕駛或機器人學習等測試系統變得極其重要。
還有另一種形式的數據擴展,可以從在一個領域中訓練模型開始,這個領域與它將被部署的領域是完全不同的。通過在合成域中使用正負情況,從容易的情況逐步學習到困難的情況,可以通過調整從合成域中學習的分類邊界,過渡到現實世界!另外,將合成數據添加到有限的數據中并非不復雜。雖然合成數據可以足夠逼真,甚至人類都無法區分模擬和真實數據,但就場景分布而言,仍然會迎來巨大的變化,所以需要技術以一種高度可控的方式生成數據。
人工智能系統需要數據,因此需要在這方面和其他許多方面進行更多創新,以幫助克服現實世界數據的缺陷。
四、高視科技的AI數據增強方式介紹
眾所周知,AI模型的性能優異與數據的質量和數量息息相關。我們為了達到模型的最佳性能,開始訓練之前,通常會對待檢測的圖像進行大量缺陷形態和位置分析,這一步驟必不可少,否則會大大增加后續的數據收集與處理的耗時。
以屏幕缺陷檢測為例,當遇到圖像基本不受翻轉的影響,我們會優先利用上下翻轉(vertical_flip)和水平翻轉(horizontal_flip),如下圖所示:
圖4. 依次為原圖,左右翻轉圖,上下翻轉圖
我們發現盡管缺陷的位置發生改變,但是缺陷其實均為臟污,而且臟污的形態本身是千變萬化的,位置也不固定,如此一來,此類的數據增強非常適合應用于當前場景。翻轉是非常通用的數據增強方式,但也有一些場景目標的形態位置是固定的,背景具有明顯的位置信息,導致上下翻轉或者左右翻轉,比如說草地上的一只小狗,左右翻轉是沒問題的,但是上下翻轉就會出現不符合邏輯和常規的狀況,因為小狗通常是不會顛倒過來的,草地也不會。
針對部分缺陷原始數據較少,且形態不是很明顯的情況,我們會使用其他的數據增強,比如改變圖像對比度,在不會破壞缺陷形態的基礎上,能增加圖像圖像的數量,比如MURA類的缺陷,如下圖所示:
圖5. 左為原圖,右為對比度增強圖
圖5中,原圖中的白色mura區域并不明顯,尤其是放大之后,肉眼很難區分,因此增加了數據獲取的難度,針對這種情況,我們增加了對比度,由于背景的像素值通常也會有波動的情況,配合上其他的一些增強方式,能增加一些嚴重缺少樣本的缺陷圖像,提升模型的精度。
在以往的多種環境中,我們使用了包含但不限于以上的常見的數據增強方式,比如:隨機裁切(random crop)、隨機旋轉(random rotate)、通道偏移(channel shift)、錯切變換(shear range)、隨機拉伸(random zoom)以及圖像融合(MixUp)等等。
值得一提的是,隨機使用這些數據增強的方式,往往并不會帶來模型泛化性能的提升,反而可能會降低其性能,出現模型嚴重的過擬合。因此我們需要因地制宜,從實際的圖像出發,分析圖像可能的形態,以及符不符合現實的狀況,選擇合適的數據增強方式,只有這樣才能達到事倍功半的效果!
五、總結
在深度學習工業化的時代,數據的規模越大、質量越高,模型就能夠擁有更好的泛化能力,數據好壞直接決定了模型學習的上限。在實際工程中,采集的數據很難覆蓋全部的場景,那么在訓練模型的時候就需要加入合適的數據增強方式。另一方面,即使擁有大量的數據,也應該進行數據增強,這樣有助于添加相關數據集中數據的數量,防止模型學習到不想要的特征,避免出現過擬合現象。