數據增強


1 什么是數據增強?

來自 <https://www.infoq.cn/article/kyXx3sRKNsdFgqapv2Gw?utm_source=rss&utm_medium=article>

數據增強也叫數據擴增,意思是在不實質性的增加數據的情況下,讓有限的數據產生等價於更多數據的價值。

 

比如上圖,第1列是原圖,后面3列是對第1列作一些隨機的裁剪、旋轉操作得來。

 每張圖對於網絡來說都是不同的輸入,加上原圖就將數據擴充到原來的10倍。假如我們輸入網絡的圖片的

分辨率大小是256×256,若采用隨機裁剪成224×224的方式,那么一張圖最多可以產生32×32張不同的圖,

數據量擴充將近1000倍。雖然許多的圖相似度太高,實際的效果並不等價,但僅僅是這樣簡單的一個操作,效果已經非凡了。

 如果再輔助其他的數據增強方法,將獲得更好的多樣性,這就是數據增強的本質。

 數據增強可以分為,有監督的數據增強和無監督的數據增強方法。其中有監督的數據增強又可以分為單樣本數據增強

和多樣本數據增強方法,無監督的數據增強分為生成新的數據和學習增強策略兩個方向。

2 有監督的數據增強

有監督數據增強,即采用預設的數據變換規則,在已有數據的基礎上進行數據的擴增,包含單樣本數據增強和多樣本

數據增強,其中單樣本又包括幾何操作類,顏色變換類。

 2.1. 單樣本數據增強

 所謂單樣本數據增強,即增強一個樣本的時候,全部圍繞着該樣本本身進行操作,包括幾何變換類,顏色變換類等。

 (1) 幾何變換類

 幾何變換類即對圖像進行幾何變換,包括翻轉,旋轉,裁剪,變形,縮放等各類操作,下面展示其中的若干個操作。

  

 

 變形縮放:

 翻轉操作和旋轉操作,對於那些對方向不敏感的任務,比如圖像分類,都是很常見的操作,在 caffe 等框架中翻轉對應的就是 mirror 操作

 翻轉和旋轉不改變圖像的大小,而裁剪會改變圖像的大小。通常在訓練的時候會采用隨機裁剪的方法,在測試的時候選擇裁剪中間部分

或者不裁剪。值得注意的是,在一些競賽中進行模型測試時,一般都是裁剪輸入的多個版本然后將結果進行融合,對預測的改進效果非常明顯。

 以上操作都不會產生失真,而縮放變形則是失真的。

很多的時候,網絡的訓練輸入大小是固定的,但是數據集中的圖像卻大小不一,此時就可以選擇上面的裁剪成固定大小輸入或者縮放到網絡

的輸入大小的方案,后者就會產生失真,通常效果比前者差。

(2) 顏色變換類

上面的幾何變換類操作,沒有改變圖像本身的內容,它可能是選擇了圖像的一部分或者對像素進行了重分布。如果要改變圖像本身

的內容,就屬於顏色變換類的數據增強了,常見的包括噪聲、模糊、顏色變換、擦除、填充等等。

基於噪聲的數據增強就是在原來的圖片的基礎上,隨機疊加一些噪聲,最常見的做法就是高斯噪聲。更復雜一點的就是在面積大小

可選定、位置隨機的矩形區域上丟棄像素產生黑色矩形塊,從而產生一些彩色噪聲,以 Coarse Dropout 方法為代表,甚至還可以對

圖片上隨機選取一塊區域並擦除圖像信息。

 

                       添加 Coarse Dropout 噪聲

顏色變換的另一個重要變換是顏色擾動,就是在某一個顏色空間通過增加或減少某些顏色分量,或者更改顏色通道的順序。

 

 幾何變換類,顏色變換類的數據增強方法細致數還有非常多,推薦給大家一個 git 項目:

https://github.com/aleju/imgaug

預覽一下它能完成的數據增強操作吧。

 

 

4 思考

數據增強的本質是為了增強模型的泛化能力,那它與其他的一些方法比如 dropout,權重衰減有什么區別?

(1) 權重衰減,dropout,stochastic depth 等方法,是專門設計來限制模型的有效容量的,用於減少過擬合,

這一類是顯式的正則化方法。研究表明這一類方法可以提高泛化能力,但並非必要,且能力有限,而且參數高度依賴於網絡結構等因素。

(2) 數據增強則沒有降低網絡的容量,也不增加計算復雜度和調參工程量,是隱式的規整化方法。實際應用中更有意義,所以我們常說,數據至上。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM