您好,登錄后才能下訂單哦!
作者&編輯 | 郭冰洋
小伙伴們在利用公共數據集動手搭建圖像分類模型時,有沒有注意到這樣一個問題呢——每個數據集不同類別的樣本數目幾乎都是一樣的。這是因為不同類別的樣例數目差異較小,對分類器的性能影響不大,可以在避免其他因素的影響下,充分反映分類模型的性能。反之,如果類別間的樣例數目相差過大,會對學習過程造成一定的影響,從而導致分類模型的性能變差。這就是本篇文章將要討論的類別不平衡問題(Class Imbalance)。
類別不平衡是指分類任務中不同類別的訓練樣本數目相差較大的情況,通常是由于樣本較難采集或樣本示例較少而引起的,經常出現在疾病類別診斷、欺詐類型判別等任務中。
盡管在傳統機器學習領域內,有關類別不平衡的問題已經得到了詳盡的研究,但在深度學習領域內,其相關探索隨著深度學習的發展,經歷了一個先抑后揚的過程。
在反向傳播算法誕生初期,有關深度學習的研究尚未成熟,但仍有相關科研人員研究過類別樣例的數目對梯度傳播的影響,并得出樣例數目較多的類別在反向傳播時對權重占主導地位。這一現象會使網絡訓練初期,快速的降低數目較多類別的錯誤率,但隨著訓練的迭代次數增加,數目較少類的錯誤率會隨之上升[1]。
隨后的十余年里,由于深度學習受到計算資源的限制、數據集采集的難度較大等影響,相關研究并沒有得到進一步的探索,直到近年來才大放異,而深度學習領域內的類別不平衡問題,也得到了更加深入的研究。
本篇文章將對目前涉及到的相關解決方案進行匯總,共分為數據層面、算法層面、數據和算法混合層面三個方面,僅列舉具有代表性的方案闡述,以供讀者參考。
1、基于數據層面的方法
基于數據層面的方法主要對參與訓練的數據集進行相應的處理,以減少類別不平衡帶來的影響。
Hensman等[2]提出了 提升樣本(over sampling)的方法,即對于類別數目較少的類別,從中隨機選擇一些圖片進行復制并添加至該類別包含的圖像內,直到這個類別的圖片數目和最大數目類的個數相等為止。通過實驗發現,這一方法對最終的分類結果有了非常大的提升。
Lee等[3]提出了一種 兩階段(two-phase)訓練法。首先根據數據集分布情況設置一個閾值N,通常為最少類別所包含樣例個數。隨后對樣例個數大于閾值的類別進行隨機抽取,直到達到閾值。此時根據閾值抽取的數據集作為第一階段的訓練樣本進行訓練,并保存模型參數。最后采用第一階段的模型作為預訓練數據,再在整個數據集上進行訓練,對最終的分類結果有了一定的提升.
Pouyanfar等[4]則提出了一種 動態采樣(dynamic sampling)的方法。該方法借鑒了提升樣本的思想,將根據訓練結果對數據集進行動態調整,對結果較好的類別進行隨機刪除樣本操作,對結果較差的類別進行隨機復制操作,以保證分類模型每次學習都能學到相關的信息。
2、基于算法層面的方法
基于算法層面的方法主要對現有的深度學習算法進行改進,通過修改損失函數或學習方式的方法來消除類別不平衡帶來的影響。
Wang等[5]提出 mean squared false error (MSFE) loss。這一新的損失函數是在mean false error (MFE) loss的基礎上進行改進,具體公式如下圖所示:
MSFE loss能夠很好地平衡正反例之間的關系,從而實現更好的優化結果。
Buda等[6]提出 輸出閾值(output thresholding)的方法,通過調整網絡結果的輸出閾值來改善類別不平衡的問題。模型設計者根據數據集的構成和輸出的概率值,人工設計一個合理的閾值,以降低樣本數目較少的類別的輸出要求,使得其預測結果更加合理。
3、基于數據和算法的混合方法
上述兩類層面的方法均能取得較好的改善結果,如果將兩種思想加以結合,能否有進一步的提升呢?
Huang等[7]提出 Large Margin Local Embedding (LMLE)的方法,采用五倍抽樣法(quintuplet sampling )和tripleheader hinge loss函數,可以更好地提取樣本特征,隨后將特征送入改進的K-NN分類模型,能夠實現更好的聚類效果。除此之外,Dong等[8]則融合了難例挖掘和類別修正損失函數的思想,同樣是在數據和損失函數進行改進。
由于篇幅和時間有限,本文只列取了每個類別的典型解決方案。同時也搜集了關于解決類別不平衡問題的相關綜述文獻,截圖如下:
具體名稱可以借鑒參考文獻[9]。
[1] Anand R, Mehrotra KG, Mohan CK, Ranka S. An improved algorithm for neural network classification of imbalanced training sets. IEEE Trans Neural Netw. 1993;4(6):962–9.
[2] Hensman P, Masko D. The impact of imbalanced training data for convolutional neural networks. 2015.
[3] Lee H, Park M, Kim J. Plankton classification on imbalanced large scale database via convolutional neural networks with transfer learning. In: 2016 IEEE international conference on image processing (ICIP). 2016. p. 3713–7.
[4] Pouyanfar S, Tao Y, Mohan A, Tian H, Kaseb AS, Gauen K, Dailey R, Aghajanzadeh S, Lu Y, Chen S, Shyu M. Dynamic sampling in convolutional neural networks for imbalanced data classification. In: 2018 IEEE conference on multimedia information processing and retrieval (MIPR). 2018. p. 112–7.
[5] Wang S, Liu W, Wu J, Cao L, Meng Q, Kennedy PJ. Training deep neural networks on imbalanced data sets. In: 2016 international joint conference on neural networks (IJCNN). 2016. p. 4368–74.
[6] Buda M, Maki A, Mazurowski MA. A systematic study of the class imbalance problem in convolutional neural
networks. Neural Netw. 2018;106:249–59.
[7] Huang C, Li Y, Loy CC, Tang X. Learning deep representation for imbalanced classification. In: 2016 IEEE conference on computer vision and pattern recognition (CVPR). 2016. p. 5375–84.
[8] Dong Q, Gong S, Zhu X. Imbalanced deep learning by minority class incremental rectification. In: IEEE transactions on pattern analysis and machine intelligence. 2018. p. 1–1
[9] Justin M. Johnson and Taghi M. Khoshgoftaar.Survey on deep learning with class imbalance.Johnson and Khoshgoftaar J Big Data.(2019) 6:27
總結
以上就是關于類別不平衡問題的相關解決方案,詳細內容可以閱讀參考文獻綜述9,相信通過更加詳細的文章閱讀,你會收獲更多的經驗!
https://www.toutiao.com/a6727841366342107655/
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。