卷積神經(jīng)網(wǎng)絡(luò)長尾數(shù)據(jù)集識別的技巧包
來源丨AI公園
Bag of Tricks for Long-Tailed Visual Recognition with Deep Convolutional Neural Networks摘要:目前,在長尾分布的數(shù)據(jù)集上,在數(shù)據(jù)極端不均衡的情況下,使用復(fù)雜的模式(元學(xué)習(xí))的方法取得了很大的進(jìn)展。除了這些復(fù)雜的方法,在訓(xùn)練時的簡單的調(diào)整也有一些貢獻(xiàn)。這些調(diào)整,也就是tricks,很小但是很有效,比如調(diào)整數(shù)據(jù)分布或者損失函數(shù)。但是,tricks之間也會有沖突。如果使用的不恰當(dāng),會適得其反。然而,如何使用這些tricks并沒有給出科學(xué)的引導(dǎo)。本文中,我們首先收集了這些已有的tricks,并做了很多的實(shí)驗(yàn),給出了很細(xì)節(jié)的實(shí)驗(yàn)指導(dǎo),并得到了這些tricks的組合效果。我們還基于類別激活圖提出了一種新的數(shù)據(jù)增強(qiáng)方法,可以很友好的和重采樣方法組合使用,并取得了很好的效果。通過將這些tricks科學(xué)的組合在一起,我們的效果超過了當(dāng)前的SOTA。
代碼:https://github.com/zhangyongshun/BagofTricks-LT
1. 介紹最近,長尾識別持續(xù)引起關(guān)注,產(chǎn)生了很多不同的方法,這些方法屬于不同的范式,度量學(xué)習(xí),元學(xué)習(xí)和知識遷移。盡管這些方法在長尾數(shù)據(jù)集上取得了穩(wěn)定的精度的提升,但是要么對于超參數(shù)非常的敏感,要么訓(xùn)練過程非常的復(fù)雜,而且,在現(xiàn)實(shí)場景中很難用起來。除去這些方法,長尾數(shù)據(jù)集的識別中還有一些tricks,這些tricks非常簡單,只是對原始的方法做很小的修改,比如修改一下?lián)p失函數(shù),修改一些采樣策略,但是會對結(jié)果產(chǎn)生很大的影響。但是,這些tricks在使用的時候容易相互影響。比如說,重采樣和重加權(quán)是兩個常用的tricks,重采樣的目的是生成均衡的數(shù)據(jù)集,重加權(quán)的目的是針對類別的概率對類別進(jìn)行反向的加權(quán)。但是兩者一起使用的時候,可能會反而效果變得更差。
因此,在使用這些tricks的時候,我們需要知道,哪些是可以組合在一起使用的,哪些可能會相互影響。本文中,我們關(guān)注哪些常用的,容易部署的,超參數(shù)不敏感的tricks。這些tricks分為4大類,重加權(quán),重采樣,mixup訓(xùn)練,2階段訓(xùn)練。特別是我們將mixup訓(xùn)練加到了長尾識別的tricks中,因?yàn)槲覀儼l(fā)現(xiàn)mixup訓(xùn)練和重采樣組合起來可以得到更好的效果。在每種tricks大類中,我們都介紹一些tricks,并在長尾數(shù)據(jù)集中進(jìn)行了結(jié)果的對比。更進(jìn)一步,為了克服已有的重采樣方法的缺乏可區(qū)分信息的缺點(diǎn),我們基于類激活圖(CAM)提出了一種新的數(shù)據(jù)增強(qiáng)方法,這是一種兩階段的訓(xùn)練方法,通過變換前景但是保持背景不變來生成具有可區(qū)分特征的圖像。這個方法可以很方便的和已有的重采樣方法組合,并取得非常好的效果,我們稱之為“CAM-based sampling”。我們還探索了不同的大類的tricks之間的的沖突,并找到了tricks的最佳組合。在這三個數(shù)據(jù)集上的最優(yōu)結(jié)果見表1。
我們這個工作的主要貢獻(xiàn)如下:
- 我們綜合探索了已有的簡單的,參數(shù)不敏感的,長尾相關(guān)的tricks,并為以后的研究提供了一個實(shí)用的指南。
- 我們提出了一個新的CAM-based采樣方法,為2階段訓(xùn)練方法定制,很簡單但是很有效。
- 我們進(jìn)行了很豐富的實(shí)驗(yàn),找到了最佳的tricks的組合。我們的方法在4個長尾數(shù)據(jù)集上都取得了SOTA的效果。
數(shù)據(jù)集
長尾 CIFAR 這是長尾分布版本的CIFAR-10和CIFAR-100。和原始的CIFAR數(shù)據(jù)集具有相同的類別,但是,每個類別的訓(xùn)練樣本的數(shù)量是指數(shù)遞減的, ,其中t是類別的索引,是訓(xùn)練圖像的原始數(shù)量,。測試集保持不變。長尾CIFAR數(shù)據(jù)集的不均衡因子定義為最多樣本數(shù)量類別的樣本數(shù)除以最小樣本數(shù)量類別的樣本數(shù)。在文章中,常用的不均衡因子為50和100,圖像總數(shù)為12000張左右。
iNaturalist 2018 這個數(shù)據(jù)集是一個大規(guī)模的真實(shí)世界的數(shù)據(jù)集,類別極度不均衡,包含437513張圖像,8142個類別,除了不均衡的問題,還有細(xì)粒度的問題。
長尾ImageNet 這個數(shù)據(jù)集是由原始的ImageNet2012經(jīng)過采樣得到的,最多的類別1280張圖,最少的5張圖。
基線設(shè)置
主干 我們使用了殘差網(wǎng)絡(luò)作為主干。具體來說,我們在長尾CIFAR和iNaturalist上分別使用了ResNet-32和ResNet-50,在ImageNet-LT上使用了ResNet-10。
數(shù)據(jù)增強(qiáng) 對于CIFAR數(shù)據(jù)集,訓(xùn)練時,每張圖每邊填充4個像素,然后隨機(jī)裁剪出一個32x32的區(qū)域。裁剪出的區(qū)域用0.5的概率水平翻轉(zhuǎn),然后進(jìn)行圖像的歸一化。驗(yàn)證時,每張圖保持長寬比將短邊縮放到36像素。然后,從中心裁剪出32x32的區(qū)域做歸一化后進(jìn)行訓(xùn)練。
對于iNaturalist和ImageNet-LT,在訓(xùn)練時我們使用縮放和長寬比的數(shù)據(jù)擴(kuò)充,然后得到一個224x224的隨機(jī)裁剪的區(qū)域,并隨機(jī)水平翻轉(zhuǎn)。驗(yàn)證的時候,我們將保持比例將短邊縮放為256,然后裁剪224x224的中心區(qū)域。
訓(xùn)練細(xì)節(jié) 所有的主干都是從頭進(jìn)行訓(xùn)練。對于CIFAR數(shù)據(jù)集,我們使用sgd,動量0.9,權(quán)值衰減,訓(xùn)練輪數(shù)200輪,batch size為128。初始學(xué)習(xí)率為0.1,在160輪和180輪除以100。前5輪使用warmup。
對于iNaturalist和ImageNet-LT,我們的batch size為512,訓(xùn)練輪數(shù)為90,初始學(xué)習(xí)率為0.2,分別在30輪,60輪,80輪除以10,不使用warmup,使用sgd優(yōu)化器,動量0.9,權(quán)值衰減為。
基線的訓(xùn)練結(jié)果見表2,
3. Trick總結(jié)我們將所有的tricks分為4大類:重加權(quán),重采樣,mixup訓(xùn)練和兩階段訓(xùn)練。我們認(rèn)為mixup訓(xùn)練是一種長尾分布相關(guān)的trick,因?yàn)槲覀儼l(fā)現(xiàn)mixup訓(xùn)練在長尾識別上能得到很好的效果,特別是和重采樣組合起來的的時候。對于每個大類的trick,我們介紹了最常使用的tirck并比較了準(zhǔn)確率。
另外,我們還提出了一種簡單有效的數(shù)據(jù)增強(qiáng)方法,為兩階段訓(xùn)練定制。我們提出的方法基于類激活圖(CAM),可以非常方便的集成到重采樣方法中成為“CAM-based sampling”。
重加權(quán)方法
cost-sensitive重加權(quán)方法是處理長尾問題的常見方法。這些方法引導(dǎo)網(wǎng)絡(luò)將更多的注意力放在少數(shù)類別中,通過對不同的類別設(shè)置不同的權(quán)重來實(shí)現(xiàn)。
我們一般作為基線使用的Softmax交叉熵?fù)p失定義如下:
已有的重加權(quán)方法
我們回顧了常用的重加權(quán)方法,包括cost-sensitive交叉熵?fù)p失,focal loss以及class-balanced loss方法。
- cost-sensitive交叉熵?fù)p失定義:
- Focal loss在sigmoid中增加了一個調(diào)制****引子,著重訓(xùn)練困難樣本:
- Class-balanced loss考慮了不同類別的真實(shí)數(shù)量,稱為有效數(shù)量,而不是數(shù)據(jù)集里的名義上的數(shù)量。使用有效數(shù)量的理論,類別均衡的focal loss和類別均衡的softmax交叉熵loss定義為:
這里,γ和β都是超參數(shù)。
實(shí)驗(yàn)結(jié)果
我們在長尾CIFAR數(shù)據(jù)集上評估了重加權(quán)方法,見表3,我們發(fā)現(xiàn)重加權(quán)在CIFAR-10-LT上能得到更小測錯誤率,但是在CIFAR-100-LT上變差了。這表明直接用重加權(quán)并不是理想的選擇,特別是類別數(shù)增加不平衡度增加的時候。
后面我們會介紹一種兩階段的訓(xùn)練長尾識別的方法,應(yīng)用重加權(quán)能取得很好的效果。
重采樣方法
重采樣是用來處理長尾問題的常見方法,試圖通過采樣數(shù)據(jù)來達(dá)到類別的均衡分布。
已有的重采樣方法
- 隨機(jī)過采樣,從少樣本類中隨機(jī)重復(fù)訓(xùn)練樣本,該方法很有效,但是容易導(dǎo)致過擬合。
- 隨機(jī)欠采樣,從多數(shù)類中隨機(jī)去掉訓(xùn)練樣本,直到所有類別均衡,在某些場景上比隨機(jī)過采樣效果更好。
- 類別均衡采樣,使得每個類別有相同的采樣概率。每類采樣概率如下:
- 平方根采樣,在式(7)中,q=1/2,即為平方根采樣,這樣得到的是略微不均衡的數(shù)據(jù)集。
- 漸進(jìn)均衡采樣,逐漸的改變采樣概率,逼近均衡采樣。采樣概率的計(jì)算如下,t為當(dāng)前epochs,T為總epochs數(shù):
實(shí)驗(yàn)結(jié)果 表4顯示了不同的采樣方法的結(jié)果,可以看到,直接使用重采樣的方法,提升很少。
Mixup 訓(xùn)練
Mixup 訓(xùn)練可以看成是一種數(shù)據(jù)增強(qiáng)的trick,用來對CNN做正則化。我們發(fā)現(xiàn),Mixup訓(xùn)練在長尾數(shù)據(jù)集識別中和重采樣結(jié)合可以取得很好的效果。
已有的mixup方法 我們介紹了2種mixup的方法:input mixup和manifold mixup。
- input mixup是一種減緩對抗擾動的有效方法。具體來說,新的樣本由2個隨機(jī)采樣的樣本線性加權(quán)組合而成。其中,λ是從beta分布中采樣得到。
- manifold mixup讓神經(jīng)網(wǎng)絡(luò)對于隱表示的插值的預(yù)測不那么確定,使用語義插值作為額外的訓(xùn)練信號:
其中和是兩個隨機(jī)采樣樣本的第k層的中間輸出,λ是從beta分布中采樣得到,在實(shí)驗(yàn)中,我們只在一個層上進(jìn)行mixup。
mixup訓(xùn)練之后的微調(diào) 在mixup訓(xùn)練之后,將mixup去除掉,再訓(xùn)練幾個epochs可以進(jìn)一步提升效果。在我們的實(shí)驗(yàn)中,我們也是先用mixup訓(xùn)練,再去掉mixup后微調(diào)幾個epochs。
實(shí)驗(yàn)結(jié)果 mixup方法的結(jié)果如圖5,我們并沒有嘗試所有的超參數(shù)α,我們發(fā)現(xiàn)1)input mixup和manifold mixup都能相比baseline得到更好的結(jié)果,2)當(dāng)α為1的時候并且mixup的位置是池化層的時候,input mixup和manifold mixup的結(jié)果相當(dāng)。
mixup訓(xùn)練后再微調(diào)的結(jié)果見表6,我們發(fā)現(xiàn)input mixup之后的微調(diào)可以進(jìn)一步提升效果,但是manifold mixup之后再微調(diào)反而變差了。
二階段訓(xùn)練過程
2階段訓(xùn)練包括不均衡訓(xùn)練和均衡微調(diào)。這部分,我們聚焦不同方法的均衡微調(diào),我們首先介紹已有的微調(diào)方法,然后介紹我們的CAM-based采樣方法。
不均衡訓(xùn)練之后的均衡微調(diào) CNN在不均衡數(shù)據(jù)集上訓(xùn)練,不適用任何的重加權(quán)和重采樣的方法,能夠?qū)W到好的特征表示,但是識別準(zhǔn)確率很差。對這個網(wǎng)絡(luò)在均衡的子數(shù)據(jù)集上進(jìn)行微調(diào),可以使得學(xué)習(xí)到的特征遷移到均衡的所有類別上。這些微調(diào)方法可以分為2大類:推遲重采樣(DRS)和推遲重加權(quán)(DRW)。
- DRS在第一階段使用原始的訓(xùn)練策略訓(xùn)練,然后在第二階段使用重采樣,再進(jìn)行微調(diào)。為了在微調(diào)的時候得到均衡的數(shù)據(jù)集,需要使用重采樣方法,我們提出了一種簡單有效的生成式采樣方法叫做“CAM-based采樣”。
- DWR在第一階段使用原始的訓(xùn)練策略訓(xùn)練,然后在第二階段使用重加權(quán),重加權(quán)的方法我們使用之前介紹過的“重加權(quán)”方法。
用提出的CAM-based采樣方法進(jìn)行DRS 已有的重采樣方法是簡單的重復(fù)或者丟棄數(shù)據(jù)集中的一些數(shù)據(jù)來達(dá)到均衡的效果,這種方法提升有限。為了能夠生成具有可區(qū)分性的特征,受到特征激活圖的啟發(fā),我們提出了CAM-based采樣方法,相對于已有的方法顯示了顯著的準(zhǔn)確率的提升。
如圖1所示,我們先使用重采樣得到均衡的樣本圖像,對于每個樣本圖像,我們使用第一階段訓(xùn)練出來的模型基于label和全連接層的權(quán)重得到CAM,基于這個CAM的均值,前景和背景是分開的。最后,我們保持背景不變,對前景進(jìn)行變換,這些變換包括水平翻轉(zhuǎn),平移,旋轉(zhuǎn),縮放,我們?yōu)槊總€圖像隨機(jī)選取一種變換。
具體來說,我們分別將CAM和隨機(jī)過采樣,隨機(jī)降采樣,類別均衡采樣,均方根采樣,漸進(jìn)式采樣相結(jié)合。
實(shí)驗(yàn)結(jié)果 重采樣的結(jié)果見表7,我們發(fā)現(xiàn):1)相比于直接進(jìn)行重采樣,DRS重采樣可以得到更好的效果,2)CAM-based重采樣方法可以得到顯著的效果提升,3)在CAM-based重采樣方法中,CAM-based均衡采樣取得了最佳結(jié)果,4)ImageTrans均衡采樣的結(jié)果證明了CAM-based均衡采樣的有效性。
表8顯示了不同的重加權(quán)方法的結(jié)果,從中我們可以發(fā)現(xiàn),1)相比于直接進(jìn)行重加權(quán),DRW能夠取得更好的結(jié)果,2)DRW使用CS_CE能得到更好的結(jié)果。
4. Tricks的組合這里,我們首先回顧了每個tricks大類里面互補(bǔ)的tricks,我們將這些tricks和其他的最佳tricks組合起來,目的是得到最優(yōu)的tricks的組合。更進(jìn)一步,我們增量應(yīng)用這些tricks,顯示了互補(bǔ)的效果。
在兩階段訓(xùn)練章節(jié)中顯示,最佳的兩階段訓(xùn)練是CAM-based過采樣DRS和使用CS_CE的DRW,但是,DRS和DRW都是兩階段的tricks,我們需要更多的實(shí)驗(yàn)來來探索最佳的策略。在mixup訓(xùn)練中,input mixup和manifold mixup能得到相當(dāng)?shù)男Ч?,我們需要更多的?shí)驗(yàn)來探索和其他tricks組合在一起的效果。
從實(shí)驗(yàn)中,我們發(fā)現(xiàn)了最優(yōu)的組合是input mixup,CAM-based均衡采樣DRS,以及mixup訓(xùn)練之后的finetune。
為了證明我們這個tricks組合的有效性,我們在長尾數(shù)據(jù)集上增量的應(yīng)用這些tricks,結(jié)果見表11,我們發(fā)現(xiàn):1)把input mixup,使用CAM-based均衡采樣的DRS,mixup訓(xùn)練之后的finetune,這些疊加起來,效果穩(wěn)步提升。2)在三個數(shù)據(jù)集上的表現(xiàn)說明了我們這個方法的有效性。3)使用了我們的方法,在3個數(shù)據(jù)集上都能降低10點(diǎn)左右的錯誤率。
—END—
論文鏈接:Bag of Tricks for Long-Tailed Visual Recognition with Deep Convolutional Neural Networks (nju.edu.cn)
本文僅做學(xué)術(shù)分享,如有侵權(quán),請聯(lián)系刪文。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。
物聯(lián)網(wǎng)相關(guān)文章:物聯(lián)網(wǎng)是什么