您當前的位置:首頁 > 曲藝

label smooth、mixup理解

作者:由 飯希Peach 發表于 曲藝時間:2019-08-04

最近在做實驗,目前還存在些問題,很煩躁總想等做好之後再寫,大週日的還是堅持寫一篇吧。

這篇介紹的兩種方法都可以用於解決過擬合問題。

1、label smooth:

在常見的多分類問題中,先經過softmax處理後進行交叉熵計算,原理很簡單可以將計算loss理解為,為了使得網路對測試集預測的機率分佈和其真實分佈接近,常用的做法是使用one-hot對真實標籤進行編碼,作者認為這種將標籤強制one-hot的方式使網路過於自信會導致過擬合,因此軟化這種編碼方式。

label smooth、mixup理解

等號左側:是一種新的預測的分佈

等號右側:前半部分是對原分佈乘一個權重,

\epsilon

是一個超參,需要自己設定,取值在0到1範圍內。後半部分u是一個均勻分佈,k表示模型的類別數。

由以上公式可以看出,這種方式使label有

\epsilon

機率來自於均勻分佈,

(1-\epsilon)

機率來自於原分佈。這就相當於在原label上增加噪聲,讓模型的預測值不要過度集中於機率較高的類別,把一些機率放在機率較低的類別。

因此,交叉熵可以替換為:

label smooth、mixup理解

可以理解為:loss為對

“預測的分佈與真實分佈”

“預測分佈與先驗分佈(均勻分佈)”

的懲罰。

個人理解:label smooth的思路“做軟化、防止過擬合、增加擾動”是好的,個人認為用均勻分佈做先驗分佈有待商榷。

2、mixup

mixup可以理解為一種資料增強的方式,直接上公式:

label smooth、mixup理解

由以上公式可以看出,同時對輸入x及其對應label y做增強,對兩張圖片做融合,同時對他們的label做融合,其中

\lambda

是一個融合比例取值範圍為0到1,由beta分佈(

\alpha

\beta

計算時相等,即都取

\alpha

)計算得到。

需要注意的是,yi,yj都是one-hot編碼的label。

看了好幾種mixup的程式碼,我認為作者原始碼的思路最好。原始碼中的計算方式是取當前batch與下一個batch中的輸入做融合,將其送入網路得到one-hot形式的y‘,將該y’分別於融合時的兩個影象對應的label計算loss,再用beta分佈計算得到的

\lambda

以同樣的方式融合loss,該loss作為最終loss。

個人理解:mixup是一種用於解決過擬合問題的資料增強的方式,也可以理解為對離散樣本空間進行連續化,提高鄰域內的平滑性。

標簽: label  loss  分佈  hot  融合