訓練樣本不平衡對CNN訓練結果的影響



今天在網上看到這篇文章The Impact of Imbalanced Training Data for Convolutional Neural Networks,裏面做了一系列實驗討論訓練樣本對CNN的影響。

作者前面先是介紹了CNN和深度學習的相關知識,然後介紹了幾個流行的數據集,ImageNet、mnist、CIFAR-10 and CIFAR-100。

然後利用較小的CIFAR-10來做驗證。所謂的樣本不平衡指的是各個類別的樣本數量差別很大。一般的機器學習算法在這樣的數據下表現都不好,那麼對CNN有什麼影響呢。

CIFAR-10是一個簡單的圖像分類數據集。共有10類(airplane,automobile,bird,cat,deer,dog, frog,horse,ship,truck),每一類含有5000張訓練圖片,1000張測試圖片。網絡使用的是CIFAR-10的結構。

                                          

第一個實驗:

                                    

上圖中,每一行是一組數據,共十種類別,其中的數字是指每類佔總數的比例。可以看到dist.1是完全平衡的,後面的不平衡性越來越大。

Dist. 1:類別平衡,每一類都佔用10%的數據。


Dist. 2、Dist. 3:一部分類別的數據比另一部分多。


Dist. 4、Dist 5:只有一類數據比較多。


Dist. 6、Dist 7:只有一類數據比較少。


Dist. 8: 數據個數呈線性分佈。


Dist. 9:數據個數呈指數級分佈。


Dist. 10、Dist. 11:交通工具對應的類別中的樣本數都比動物的多


對每一份訓練數據都進行訓練,測試時用的測試集還是每類1000個的原始測試集,保持不變。

下面我們來看看訓練結果:

                           

上表的每一列代表這種類別在十一次實驗中的準確率,最左邊的一列是總的準確率。可以看出總的準確率表現不錯的幾組1,2,6,7,10,11都是大部分類別平衡,一兩類差別較大;而表現很差的,像5,9可以說是訓練失敗了,他們的不平衡性也比前面的要強。

下面是經過過採樣的樣本訓練的結果:

                           

可以看到經過過採樣將類別數量平衡以後,總的表現基本相當。

                                            

上圖是過採樣前後的訓練結果對比,深色是未經過過採樣的,淺色的經過過採樣的。所以得到的結論是在訓練之前需要將數據庫平衡化,可以採取過採樣的方式。

這個結論也是實驗得出的,在實際應用中是個經驗公式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章