參考:https://mp.weixin.qq.com/s/NvUs4-S6zJei6-bwXF-21A
作者本人解讀:https://www.bilibili.com/video/BV1kz4y1Q7m8
代碼地址: https://github.com/Megvii-Nanjing/BBN
1. 解決的問題
長尾分布:罕見的類別則數(shù)據(jù)較少。長尾分布在某種程度上可以視作比正態(tài)分布更廣泛存在的一種自然分布,現(xiàn)實中主要表現(xiàn)在少量個體做出大量貢獻(少量類別的樣本數(shù)占據(jù)大量樣本比例)

雖然深度學(xué)習(xí)模型可以很好的分類類別均勻的數(shù)據(jù)集,但是對于長尾分布效果不佳(數(shù)據(jù)驅(qū)動,尾部類數(shù)量少,頭部類和尾部類的差距太大,尾部類傾向于被分為頭部類)
現(xiàn)在解決長尾分布的辦法主要是re-balancing
(1) Re-sampling:重采樣,讓訓(xùn)練集和測試集維持一致的分布
- Over-sampling:對尾部類的數(shù)據(jù)進行重復(fù)采樣,過擬合問題
- Under-sampling:丟棄一些頭部類的數(shù)據(jù),整個數(shù)據(jù)量削減了很多
- 還有介于這兩種方式之間的,既會舍棄頭部類的數(shù)據(jù)又會重復(fù)尾部類的數(shù)據(jù)
(2) Re-weighting:直接在損失函數(shù)上對尾部類進行加權(quán),從而讓我們更關(guān)注尾部類的損失

其他方法
(1) Two-stage-finetunning
Stage1:直接在原來的未平衡的數(shù)據(jù)上進行訓(xùn)練
Stage2:使用一個很小的學(xué)習(xí)率使用re-balancing進行fine-tune
Meta learning/transfer learning
Metric learning
現(xiàn)在存在的缺點和不足:都是人為的去給予不同的數(shù)據(jù)不同的權(quán)重,要么增大某些樣本對網(wǎng)絡(luò)的影響,要么削弱
為什么two-stage比直接re-ba的效果好:第一個階段每個樣本對網(wǎng)絡(luò)的貢獻是一樣的,第二階段學(xué)到的特征更有泛化性??
例如:長尾分布(100:99:1,2個類)和重采樣后的分布(100: 50:50,重復(fù)49次),有效樣本比例100-51,有效樣本是指不重復(fù)的。用100個有效樣本訓(xùn)練出的網(wǎng)絡(luò)要比用51個樣本訓(xùn)練出的網(wǎng)絡(luò)的特征更有泛化性。
2. re-balancing這類策略work的機制在于提升了分類器的性能,但是在一定程度上損害特征的表示能力。
證明:
將網(wǎng)絡(luò)分為特征提取器和分類器兩個部分,學(xué)習(xí)的過程也分為表示學(xué)習(xí)(representation learning)和分類器學(xué)習(xí)(classifier learning)
- 第一個階段使用交叉熵和re-b策略訓(xùn)練整個網(wǎng)絡(luò)
- 第二階段把特征提取器的參數(shù)固定,重新訓(xùn)練分類器
結(jié)果
當表征學(xué)習(xí)的方式固定,re-b方法可以合理的實現(xiàn)更低的錯誤率 ,這表明它們確實可以促進分類器學(xué)習(xí)
另一方面,通過固定分類器的學(xué)習(xí)方式,簡單的交叉熵損失相比re-b反而可以取得更低的錯誤率,說明re一定程度上損害了表征學(xué)習(xí)

3. 兼顧特征學(xué)習(xí)和分類器學(xué)習(xí),兩個分支,一個分支盡可能的保留ce的特征表示能力,另一個分支提升tail類的分類性能
累積式學(xué)習(xí)策略:使用一個Adapter來控制兩個分支在整個訓(xùn)練過程中的比重,使網(wǎng)絡(luò)訓(xùn)練的前期更加關(guān)注特征的學(xué)習(xí),在中后期過度到分類器的性能提升上

- 傳統(tǒng)學(xué)習(xí)的分支
輸入來自于一個普通的均勻采樣器,原始的long-tail分布中進行數(shù)據(jù)的采樣,進行特征表示的學(xué)習(xí) - Re-balancing分支
輸入來自一個逆向采樣器(reversed sampler),采樣概率與樣本數(shù)量成反比,樣本數(shù)量越少采樣概率越大,進行分類器的學(xué)習(xí),側(cè)重點在tail類的學(xué)習(xí)上,提升tail類的識別性能 - 兩個分支有一個共享權(quán)重的設(shè)計,一可減少參數(shù)量,二因為傳統(tǒng)分支的特征表示能力更好,這樣可以讓re-balancing這一分支受益于傳統(tǒng)學(xué)習(xí)的特征,更好的進行分類的學(xué)習(xí)
- Adapter:生成一個隨epoch遞減的α,這個對兩個分支的特征進行加權(quán),最后送入各自的分類器中,計算損失。讓網(wǎng)絡(luò)的前期更關(guān)注特征的學(xué)習(xí),然后轉(zhuǎn)到tail類的分類性能