label smoothing(标签平滑)
label smoothing是一種在分類問題中,防止過擬合的方法。
label smoothing(標(biāo)簽平滑)
- 交叉熵損失函數(shù)在多分類任務(wù)中存在的問題
- label smoothing(標(biāo)簽平滑)
- 參考資料
交叉熵損失函數(shù)在多分類任務(wù)中存在的問題
多分類任務(wù)中,神經(jīng)網(wǎng)絡(luò)會輸出一個當(dāng)前數(shù)據(jù)對應(yīng)于各個類別的置信度分?jǐn)?shù),將這些分?jǐn)?shù)通過softmax進行歸一化處理,最終會得到當(dāng)前數(shù)據(jù)屬于每個類別的概率。
qi=exp(zi)∑j=1kexp(zj)q_i={{exp(z_i)}\over{\sum_{j=1}^kexp(z_j)}}qi?=∑j=1k?exp(zj?)exp(zi?)?
然后計算交叉熵損失函數(shù):
Loss=?∑i=1kpilogqiLoss=-\sum_{i=1}^k p_i \space log\space q_iLoss=?i=1∑k?pi??log?qi?
pi={1,if(i=y)0,if(i≠y)p_i=\left\{\begin{matrix} 1,if(i=y)\\0,if(i\neq y) \end{matrix}\right.pi?={1,if(i=y)0,if(i?=y)?
其中i表示多分類中的某一類其中i表示多分類中的某一類其中i表示多分類中的某一類
訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,最小化預(yù)測概率和標(biāo)簽真實概率之間的交叉熵,從而得到最優(yōu)的預(yù)測概率分布。最優(yōu)的預(yù)測概率分布是:
Zi={+∞,if(i=y)0,if(i≠y)Z_i=\left\{\begin{matrix} +\infty,if(i=y)\\0,if(i\neq y) \end{matrix}\right.Zi?={+∞,if(i=y)0,if(i?=y)?
神經(jīng)網(wǎng)絡(luò)會促使自身往正確標(biāo)簽和錯誤標(biāo)簽差值最大的方向?qū)W習(xí),在訓(xùn)練數(shù)據(jù)較少,不足以表征所有的樣本特征的情況下,會導(dǎo)致網(wǎng)絡(luò)過擬合。
label smoothing(標(biāo)簽平滑)
label smoothing可以解決上述問題,這是一種正則化策略,主要通過soft one-hot來加入噪聲,減少真實樣本標(biāo)簽的類別在計算損失函數(shù)時的權(quán)重,最終起到抑制過擬合的效果。
增加label smoothing后真實的概率分布有如下改變:
pi={1,if(i=y)0,if(i≠y)p_i=\left\{\begin{matrix} 1,if(i=y)\\0,if(i\neq y) \end{matrix}\right.pi?={1,if(i=y)0,if(i?=y)?
pi={(1??),if(i=y)?K?1,if(i≠y)p_i=\left\{\begin{matrix} (1-\epsilon),if(i=y)\\{{\epsilon}\over{K-1}},if(i\neq y) \end{matrix}\right.pi?={(1??),if(i=y)K?1??,if(i?=y)?
K表示多分類的類別總數(shù)K表示多分類的類別總數(shù)K表示多分類的類別總數(shù)
?是一個較小的超參數(shù)\epsilon是一個較小的超參數(shù)?是一個較小的超參數(shù)
交叉熵損失函數(shù)的改變?nèi)缦?#xff1a;
Loss=?∑i=1kpilogqiLoss=-\sum_{i=1}^k p_i \space log\space q_iLoss=?i=1∑k?pi??log?qi?
Loss={(1??)?Loss,if(i=y)??Loss,if(i≠y)Loss=\left\{\begin{matrix} (1-\epsilon)*Loss,if(i=y)\\ \epsilon*Loss,if(i\neq y) \end{matrix}\right.Loss={(1??)?Loss,if(i=y)??Loss,if(i?=y)?
最優(yōu)預(yù)測概率分布如下:
Zi={+∞,if(i=y)0,if(i≠y)Z_i=\left\{\begin{matrix} +\infty,if(i=y)\\0,if(i\neq y) \end{matrix}\right.Zi?={+∞,if(i=y)0,if(i?=y)?
Zi={log(k?1)(1??)?+α,if(i=y)α,if(i≠y)Z_i=\left\{\begin{matrix} log{{(k-1)(1-\epsilon)}\over{\epsilon+\alpha}},if(i=y)\\\alpha,if(i\neq y) \end{matrix}\right.Zi?={log?+α(k?1)(1??)?,if(i=y)α,if(i?=y)?
這里的α是任意實數(shù),最終模型通過抑制正負樣本輸出差值,使得網(wǎng)絡(luò)有更強的泛化能力。
參考資料
總結(jié)
以上是生活随笔為你收集整理的label smoothing(标签平滑)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 螺旋矩阵II
- 下一篇: PyTorch项目使用Tensorboa