摘要:
1.數據增強是什么?
2.為什么要數據增強?
3.常見的數據增強舉例
內容:
1.數據增強是什么?
數據增強,是指對(有限)訓練數據通過某種變換操作,從而生成新數據的過程。
2.為什么要數據增強?
首先要說明一些機器學習中的過擬合和經驗誤差與泛化誤差的概念。
舉一個打靶子的例子:
右上角的圖,每一鏢都比較接近靶心,但是卻很分散,我們把機器學習中的這種預測結果和實際結果很接近,但預測的結果很分散的情況叫做高方差,也就是我們經常說的過擬合;
左下角的圖,每一鏢都偏離靶心,但是卻很聚集,我們把機器學習中的這種預測結果和實際結果差別很大,但預測的結果很集中的情況叫做高偏差,也就是我們經常說的欠擬合;
左上角的幾乎我們每一鏢都命中了靶心,這種情況是最理想的,我們把這種情況稱之為低偏差,低方差;
右下角的圖我們幾乎每一鏢都沒有命中靶心,這種情況是我們最不想遇到的,也就是說是高偏差,高方差;
再深入一些,很能有人會問看圖我們看懂了,可是實踐中我們怎么判斷哪些情況是過擬合,哪些情況是欠擬合呢?這里就要聊聊訓練誤差和測試誤差了。
在模型訓練的過程中,訓練誤差是不斷下降的,但是測試(一般)誤差在下降到一定程度之后就會停止或者上升。這里我標t的垂線的地方就是一個拐點(分界點),
這種在拐點之前模型一直沒有達到最優的情況就很明顯可以斷定為欠擬合,而在這個拐點之后模型在訓練集上表現很好,但是在測試集上卻在下降的情況也可以斷定為過擬合。
最后,有小伙伴會問,我現在會識別什么是欠擬合什么是過擬合了,但是識別之后我應該怎么做呢?
這個問題問得很好啊!我們這里簡單分析也為什么會出現過擬合和欠擬合,以及給出簡單的解決方案。
我們有一個二分類(需要預測是不是)的問題,這里紅×代表”不是“(負類),圓圈代表”是“(正類)。為了可視化方便,我們這里的模型就是一條藍色的線。
學過初等數學的小伙伴肯定知道,圖一的模型就是一條直線,解析式可以寫成y = ax + b,但不幸的是有兩個正類被錯分成了負類,五個負類被錯分成了正類;
圖二的模型是一個二次曲線,或者叫拋物線,解析式可以寫成y= a*x^2+bx+c,雖然模型復雜了,分類能力強了,但是還有兩個被分錯了;
最后一張圖的模型是n項式,解析式可以寫成y= a(1)*x^(n1)+bx^(n1-1)+...+a(n),總算把所有數據都分錯了,這時候你很高興,拿這這個模型去預測新數據,結果卻發現預測出來的結果很不像你想象中的那么好,這是為什么呢?
那么頭腦風暴的時候到了,你集合了多個小伙伴一起來討論這個問題。
A說:圖1肯定是欠擬合了,但是你增加了模型的復雜程度,所以圖2解決了欠擬合。
B說:圖二可能也是欠擬合,所以你增加了模型復雜程度,但是也增加了過擬合的風險。
C說:可以增加模型復雜度的同時觀測測試誤差,直到測試誤差下降就停止增加模型復雜度。
D說:可是現在已經發現過擬合了,我覺得可以再增加數據,把模型強行糾正過來。或者增大模型誤分的懲罰。
很好,現在我們實現第一種思路,增加數據,但是有問題,大多數情況下我們能收集到的數據就這么多(比如參加數據競賽,主辦方就指定有4w樣本),這個時候怎么辦?
這時候我們就可以用上數據增強這個利器了,下面圍繞圖像領域主要介紹一下這部分的內容:
3.常見的數據增強舉例
哇,小伙伴們驚呆了,這一張圖片變成了76張圖片,那么這些是怎么做的呢?
A說:我知道,我知道!第一排做了旋轉;
B說:我看到有的圖片顏色不一樣,是不是做了濾鏡啊
C說:有的圖片還加了馬賽克,擋住了頭部和背景
D說:有的看着很清楚,有的就很模糊,像素也不一樣。
那么現在我們總結下:
第一,對顏色的數據增強,包括色彩的飽和度、亮度和對比度(contrast)等方面;
第二,對圖像進行裁剪(flip),平移(shift),縮放(zoom)和旋轉(Rotation/reflection)。
有小伙伴弱弱的問:不對啊,我們不是在處理圖像啊,搞得那么復雜。我們的數據是1234這些數字,有沒有辦法?
我們可以對數據做歸一化(取值0-1),標准化(均值為0,方差為1),這個就類比圖像中的縮放;
或者隨機采樣每次都隨機采樣一些樣本(一行數據)和特征(一列數據)。