【綜述類】 深度學習中的數據增強(上)
來自專欄深度學習模型訓練經驗與代碼剖析9 人贊了文章
今天帶來一次有關於深度學習中的數據增強方法的分享。
00什麼是數據增強
在深度學習項目中,尋找數據花費了相當多的時間。但在很多實際的項目中,我們難以找到充足的數據來完成任務。
為了要保證完美地完成項目,有兩件事情需要做好:1、尋找更多的數據;2、數據增強。本篇主要描述數據增強。
什麼是數據增強呢?data augmentation,它的意思是讓有限的數據產生更多的等價數據。下面舉個實際的例子:上面的左側大圖為原圖,右側小圖是對左圖做了一些隨機的裁剪、旋轉操作得來的。右邊的每張圖對於網路來說都是不同的輸入,這樣就將數據擴充到10倍。
假如我們輸入網路的圖片的解析度大小是256*256,若採用隨機裁剪成224*224的方式,那麼一張圖最多可以產生32*32張圖,數據量擴充將近1000倍。但因許多圖相似度太高,實際的效果並不等價。如果再輔助其他的數據增強方法,將獲得更多的數據集,這就是數據增強的本質。
01空間幾何變換類
1.1 翻轉
翻轉包括水平翻轉和垂直翻轉。
1.2 crop
裁剪圖片的感興趣區域(ROI),通常在訓練的時候,會採用隨機裁剪的方法,下圖為隨機裁剪4次的效果。1.3 旋轉
對圖像做一定角度對旋轉操作,看看效果。1.4.縮放變形
隨機選取圖像的一部分,然後將其縮放到原圖像尺度。1.5 仿射類
仿射變換同時對圖片做裁剪、旋轉、轉換、模式調整等多重操作。視覺變換
對圖像應用一個隨機的四點透視變換。分段仿射(PiecewiseAffine)
分段仿射在圖像上放置一個規則的點網格,根據正態分布的樣本數量移動這些點及周圍的圖像區域。02像素顏色變換類
2.1 雜訊類
隨機雜訊是在原來的圖片的基礎上,隨機疊加一些雜訊。高斯雜訊CoarseDropout
在面積大小可選定、位置隨機的矩形區域上丟失信息實現轉換,所有通道的信息丟失產生黑色矩形塊,部分通道的信息丟失產生彩色雜訊。SimplexNoiseAlpha
產生連續單一雜訊的掩模後,將掩模與原圖像混合。FrequencyNoiseAlpha
在頻域中用隨機指數對雜訊映射進行加權,再轉換到空間域。在不同圖像中,隨著指數值逐漸增大,依次出現平滑的大斑點、多雲模式、重複出現的小斑塊。2.2 模糊類
減少各像素點值的差異實現圖片模糊,實現像素的平滑化。高斯模糊ElasticTransformation
根據扭曲場的平滑度與強度逐一地移動局部像素點實現模糊效果。2.3 HSV對比度變換
通過向HSV空間中的每個像素添加或減少V值,修改色調和飽和度實現對比度轉換。2.4 RGB顏色擾動
將圖片從RGB顏色空間轉換到另一顏色空間,增加或減少顏色參數後返回RGB顏色空間。2.5 隨機擦除法
對圖片上隨機選取一塊區域,隨機地擦除圖像信息。2.6 超像素法(Superpixels)
在最大解析度處生成圖像的若干個超像素,並將其調整到原始大小,再將原始圖像中所有超像素區域按一定比例替換為超像素,其他區域不改變。
2.7 轉換法(invert)
按給定的概率值將部分或全部通道的像素值從v設置為255-v。2.8 邊界檢測(EdgeDetect)
檢測圖像中的所有邊緣,將它們標記為黑白圖像,再將結果與原始圖像疊加。2.9 GrayScale
將圖像從RGB顏色空間轉換為灰度空間,通過某一通道與原圖像混合。2.10 銳化(sharpen)與浮雕(emboss)
對圖像執行某一程度的銳化或浮雕操作,通過某一通道將結果與圖像融合。下圖分別是銳化與浮雕效果圖。上述兩大類方法都是通過調用imgaug庫操作實現的。
git地址:https://github.com/aleju/imgaug官方文檔:http://imgaug.readthedocs.io/en/latest/index.html03多樣本合成類
3.1 SMOTE
SMOTE,Synthetic Minority Over-sampling Technique,通過人工合成新樣本來處理樣本不平衡問題,提升分類器性能。
類不平衡現象是數據集中各類別數量不近似相等。如果樣本類別之間相差很大,會影響分類器的分類效果。假設小樣本數據數量極少,僅佔總體的1%,所能提取的相應特徵也極少,即使小樣本被錯誤地全部識別為大樣本,在經驗風險最小化策略下的分類器識別準確率仍能達到99%,但在驗證環節分類效果不佳。基於插值的SMOTE方法為小樣本類合成新的樣本,主要思路為:(1)定義好特徵空間,將每個樣本對應到特徵空間中的某一點,根據樣本不平衡比例確定採樣倍率N;(2)對每一個小樣本類樣本(x,y),按歐氏距離找K個最近鄰樣本,從中隨機選取一個樣本點,假設選擇的近鄰點為(xn,yn)。在特徵空間中樣本點與最近鄰樣本點的連線段上隨機選取一點作為新樣本點,滿足以下公式:(3)重複選取取樣,直到大、小樣本數量平衡。
在python中,SMOTE演算法已經封裝到了imbalanced-learn庫中,如下圖為演算法實現的數據增強的實例,左圖為原始數據特徵空間圖,右圖為SMOTE演算法處理後的特徵空間圖。3.2 SamplePairing
SamplePairing方法的處理流程如下圖所示,從訓練集中隨機抽取兩張圖片分別經過基礎數據增強操作(如隨機翻轉等)處理後經像素取平均值的形式疊加合成一個新的樣本,標籤為原樣本標籤中的一種。經SamplePairing處理後可使訓練集的規模從N擴增到N*N,在CPU上也能完成處理。
訓練過程是交替禁用與使用SamplePairing處理操作的結合:(1)使用傳統的數據增強訓練網路,不使用SamplePairing 數據增強訓練。(2)在ILSVRC數據集上完成一個epoch或在其他數據集上完成100個epoch後,加入SamplePairing 數據增強訓練。(3)間歇性禁用 SamplePairing。對於 ILSVRC 數據集,為其中的300000 個圖像啟用SamplePairing,然後在接下來的100000個圖像中禁用它。對於其他數據集,在開始的8個epoch中啟用,在接下來的2個epoch中禁止。(4)在訓練損失函數和精度穩定後進行微調,禁用SamplePairing。實驗結果表明,因SamplePairing數據增強操作可能引入不同標籤的訓練樣本,導致在各數據集上使用SamplePairing訓練的誤差明顯增加,而在檢測誤差方面使用SamplePairing訓練的驗證誤差有較大幅度降低。儘管SamplePairing思路簡單,性能上提升效果可觀,符合奧卡姆剃刀原理,遺憾的是的可解釋性不強,目前尚缺理論支撐。目前僅有圖片數據的實驗,還需下一步的實驗與解讀。3.3 mixup
mixup是基於鄰域風險最小化(VRM)原則的數據增強方法,使用線性插值得到新樣本數據。在鄰域風險最小化原則下,根據特徵向量線性插值將導致相關目標線性插值的先驗知識,可得出簡單且與數據無關的mixup公式:其中(xn,yn)是插值生成的新數據,(xi,yi) 和 (xj,yj)是訓練集中隨機選取的兩個數據,λ的取值滿足貝塔分布,取值範圍介於0到1,超參數α控制特徵目標之間的插值強度。
mixup的實驗豐富,實驗結果表明可以改進深度學習模型在ImageNet數據集、CIFAR數據集、語音數據集和表格數據集中的泛化誤差,降低模型對已損壞標籤的記憶,增強模型對對抗樣本的魯棒性和訓練對抗生成網路的穩定性。mixup處理實現了邊界模糊化,提供平滑的預測效果,增強模型在訓練數據範圍之外的預測能力。隨著超參數α增大,實際數據的訓練誤差就會增加,而泛化誤差會減少。說明mixup隱式地控制著模型的複雜性。隨著模型容量與超參數的增加,訓練誤差隨之降低。儘管有著可觀的效果改進,但mixup在偏差—方差平衡方面尚未有較好的解釋。在其他類型的有監督學習、無監督、半監督和強化學習中,mixup還有很大的發展空間。小結:mixup、SMOTE、SamplePairing三者思路上有相同之處,都是試圖將離散樣本點連續化來擬合真實樣本分布,但所增加的樣本點在特徵空間中仍位於已知小樣本點所圍成的區域內。但在特徵空間中,小樣本數據的真實分布可能並不限於該區域中,在給定範圍之外適當插值,也許能實現更好的數據增強效果。更多,歡迎到知乎專欄去投稿與交流,配套資料將放出在github,可掃描二維碼進入。https://zhuanlan.zhihu.com/c_151876233 (二維碼自動識別)
https://github.com/longpeng2008/LongPeng_ML_Course (二維碼自動識別)
打一個小廣告,我的計算機視覺公開課《AI 圖像識別項目從入門到上線》上線了,將講述從零基礎到完成一個實際的項目到微信小程序上線的整個流程,歡迎交流捧場。參考文獻:
[1] Chawla N V, Bowyer K W, Hall L O, et al. SMOTE: syntheticminority over-sampling technique[J]. Journal of ArtificialIntelligence Research, 2002, 16(1):321-357.[2] Inoue H. Data Augmentation by Pairing Samples for ImagesClassification[J]. 2018.[3] Zhang H, Cisse M, Dauphin Y N, et al. mixup: BeyondEmpirical Risk Minimization[J]. 2017.更多請移步
1,我的gitchat達人課
龍鵬的達人課
2,AI技術公眾號,《與有三學AI》
一文說說這十多年來計算機玩攝影的歷史
3,以及攝影號,《有三工作室》
【攝影大咖2】論自拍,我只服這位懸崖上的自拍狂
推薦閱讀:
※邏輯回歸之損失函數與最大似然估計
※[貝葉斯七]之正態分布貝葉斯決策
※常見回歸和分類損失函數比較
※從基礎概念到數學公式,這是一份520頁的機器學習筆記(圖文並茂)
※機器學習篇:XGB為啥這麼萬能
TAG:深度學習DeepLearning | 機器學習 | 數據挖掘 |