(5)label smooth


參考博客https://blog.csdn.net/qiu931110/article/details/86684241

在多分類任務中我們往往無論是使用sigmod函數還是softmax函數,最終都要經過交叉熵函數計算loss:

 

 最終在訓練網絡時,最小化預測概率和標簽真實概率的交叉熵,從而得到最優的預測概率分布。如果分類正確p=y,loss=0,否則若p=1-y,loss趨近於無窮大。也就是說交叉熵會盡量拉大正確和錯誤的差值,這樣有兩個后果。

1.如果我們的標注數據沒有那么准確,導致模型混亂,也就是說魯棒性不強;

2.如果訓練樣本不能表征所有樣本特征,那么這種強制拉大兩者距離的做法很容易過擬合,導致模型泛化能力弱。

為了解決這個問題,在2016年,Szegedy等人提出了inception v2的模型(論文:Rethinking the inception architecture for computer vision.)。其中提到了Label Smoothing技術,用以減輕這個問題。label smoothing將真實概率分布作如下改變:

 

 從概率分布上看,他讓峰值不那么尖銳:

 

 假設我們的分類只有兩個,一個是貓一個不是貓,分別用1和0表示。Label Smoothing的工作原理是對原來的[0 1]這種標注做一個改動,假設我們給定Label Smoothing的值為0.1:

 

 可以看到,原來的[0,1]編碼變成了[0.05,0.95]了。這個label_smoothing的值假設為ϵ,那么就是說,原來分類准確的時候,p=1,不准確為p=0,現在變成了p=1−ϵ和ϵ,也就是說對分類准確做了一點懲罰。與之對應,label smoothing將交叉熵損失函數作如下改變:

其實我們可以理解為過擬合與模型的能力和參數個數有關,我們相當於在label空間內做了個data augmentation,或者理解為加入了噪聲,用來緩解過擬合。

在yolov3中這樣使用(無論是focal loss 還是label smooth,yolov3都沒有處理交叉熵):

 


免責聲明!

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



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