Github|类别不平衡学习资源(上)
點(diǎn)擊上方“算法猿的成長(zhǎng)“,關(guān)注公眾號(hào),選擇加“星標(biāo)“或“置頂”
總第 138 篇文章,本文大約 5400?字,閱讀大約需要 15?分鐘
今天推薦的是一個(gè) github 項(xiàng)目,項(xiàng)目地址如下,主要是類別不平衡學(xué)習(xí)的論文、代碼、框架、庫(kù)等資源
https://github.com/ZhiningLiu1998/awesome-imbalanced-learning
本文首發(fā)于我的知乎專欄:https://zhuanlan.zhihu.com/p/142692473,閱讀會(huì)更加方便,可以直接點(diǎn)擊鏈接,可以點(diǎn)擊文章底部”閱讀原文“直接跳轉(zhuǎn)。
前言
類別不平衡(Class-imbalance),也被稱為長(zhǎng)尾問(wèn)題(long-tail problem),指的是分類問(wèn)題中數(shù)據(jù)集的類別數(shù)量并不一致,有的類別特別多,但有的類別特別少,并且這是實(shí)際應(yīng)用里非常常見的問(wèn)題。例如,欺詐檢測(cè),罕見藥物不良反應(yīng)的預(yù)測(cè),以及基因家族預(yù)測(cè)。因?yàn)轭悇e不平衡的原因就會(huì)導(dǎo)致預(yù)測(cè)不準(zhǔn)確,降低了分類模型的性能。因此,不平衡學(xué)習(xí)(Imbalanced learning)的目標(biāo)就是要解決類別不平衡問(wèn)題,并從不平衡的數(shù)據(jù)中學(xué)習(xí)一個(gè)無(wú)偏模型。
目錄如下所示:
代碼庫(kù)/框架
Python
R
Java
Scalar
Julia
論文
綜述
深度學(xué)習(xí)
數(shù)據(jù)重采樣(Data resampling)
成本敏感學(xué)習(xí)(Cost-sensitive Learning)
集成學(xué)習(xí)(Ensemble Learning)
異常檢測(cè)
其他
不平衡數(shù)據(jù)庫(kù)
其他的資源
另外,帶有???? 標(biāo)記的是作者特別推薦的重要或者高質(zhì)量的論文和框架。
(ps. 文章太長(zhǎng),所以分成上下兩篇,更方便閱讀)
代碼庫(kù)/框架
Python
imbalanced-learn
官網(wǎng):https://imbalanced-learn.org/stable/
Github:https://github.com/scikit-learn-contrib/imbalanced-learn
官方文檔:https://imbalanced-learn.readthedocs.io/en/stable/
論文地址:http://10.187.70.34/www.jmlr.org/papers/volume18/16-365/16-365.pdf
這個(gè)庫(kù)是一個(gè) python 編寫的提供了一些常用于數(shù)據(jù)集的重采樣技術(shù),它適配 scikit-learn 庫(kù),并且也是 scikit-learn-contrib 庫(kù)的一部分。
???? python 編寫,上手簡(jiǎn)單
R
smote_variants
官網(wǎng):https://smote-variants.readthedocs.io/en/latest/
文檔:[(https://smote-variants.readthedocs.io/en/latest/
Github:https://github.com/analyticalmindsltd/smote_variants)
集合了 85 種用于不平衡學(xué)習(xí)的過(guò)采樣技術(shù),包括多類別的過(guò)采樣和模型選擇特征方法(支持 R 和 Julia)
caret
官網(wǎng):https://cran.r-project.org/web/packages/caret/index.html
文檔:http://topepo.github.io/caret/index.html
Github:https://github.com/topepo/caret
實(shí)現(xiàn)了隨機(jī)欠采樣和過(guò)采樣方法
ROSE
官網(wǎng):https://cran.r-project.org/web/packages/ROSE/index.html
文檔:https://www.rdocumentation.org/packages/ROSE/versions/0.0-3
實(shí)現(xiàn)了隨機(jī)過(guò)采樣方法
DMwR
官網(wǎng):https://cran.r-project.org/web/packages/DMwR/index.html
文檔:https://www.rdocumentation.org/packages/DMwR/versions/0.4.1
實(shí)現(xiàn)了 SMOTE(Synthetic Minority Over-sampling TEchnique),即合成少數(shù)過(guò)采樣技術(shù)
Java
KEEL
官網(wǎng):https://sci2s.ugr.es/keel/description.php
Github:https://github.com/SCI2SUGR/KEEL
論文:https://sci2s.ugr.es/sites/default/files/ficherosPublicaciones/0758_Alcalaetal-SoftComputing-Keel1.0.pdf
KEEL 提供了一個(gè)簡(jiǎn)單的圖形界面,可以基于數(shù)據(jù)流程來(lái)設(shè)計(jì)不同數(shù)據(jù)集的實(shí)驗(yàn),以及不同智能計(jì)算的算法(特別關(guān)注進(jìn)化算法),從而接觸到算法的行為。該工具包含了很多廣泛應(yīng)用的不平衡學(xué)習(xí)方法,比如過(guò)采樣和欠采樣,損失敏感學(xué)習(xí),算法修正以及集成學(xué)習(xí)方法。
???? 包含多種算法,比如經(jīng)典分類算法、回歸算法以及預(yù)處理算法
Scalar
undersampling
官網(wǎng):https://github.com/NestorRV/undersampling
文檔:https://nestorrv.github.io/
Github:https://github.com/NestorRV/undersampling
實(shí)現(xiàn)了欠采樣方法以及集成方法變形的方法。
Julia
smote_variants官網(wǎng):https://smote-variants.readthedocs.io/en/latest/ 文檔:https://smote-variants.readthedocs.io/en/latest/ Github:https://github.com/analyticalmindsltd/smote_variants
集合了 85 種用于不平衡學(xué)習(xí)的過(guò)采樣技術(shù),包括多類別的過(guò)采樣和模型選擇特征方法(支持 R 和 Julia)
論文
Learning from imbalanced data,2009 年的論文,有 4700+的引用,非常經(jīng)典的論文。主要是系統(tǒng)性的回顧了流行的解決方法、評(píng)估標(biāo)準(zhǔn)以及未來(lái)研究中需要面臨的挑戰(zhàn)和問(wèn)題(2009 年的時(shí)候);
???? 經(jīng)典的工作
Learning from imbalanced data: open challenges and future directions(2016, 400+ 引用,這篇論文主要關(guān)注不平衡學(xué)習(xí)的開放性問(wèn)題和挑戰(zhàn),比如極端類別不平衡,處理在線/流學(xué)習(xí)的不平衡問(wèn)題,多類別不平衡學(xué)習(xí)以及半監(jiān)督或無(wú)監(jiān)督的不平衡學(xué)習(xí)。
Learning from class-imbalanced data: Review of methods and applications(2017(400+ 引用),一篇非常詳細(xì)的不平衡學(xué)習(xí)方法和應(yīng)用的綜述論文,總共包含了 527 篇相關(guān)論文。它提供了幾種現(xiàn)有方法詳細(xì)的分類標(biāo)準(zhǔn),同時(shí)也是最近研究領(lǐng)域的趨勢(shì)。
???? 一篇系統(tǒng)的并且對(duì)現(xiàn)有方法詳細(xì)分類標(biāo)準(zhǔn)的綜述
深度學(xué)習(xí)
綜述
A systematic study of the class imbalance problem in convolutional neural networks (2018, 330+ 引用)
Survey on deep learning with class imbalance (2019, 50+ 引用)
???? 最近深度學(xué)習(xí)方向關(guān)于類別不平衡問(wèn)題的綜合性論文
困難樣本挖掘
Training region-based object detectors with online hard example mining (CVPR 2016, 840+ 引用),在神經(jīng)網(wǎng)絡(luò)訓(xùn)練的最后階段,僅對(duì)”困難樣本“進(jìn)行梯度的反向傳播(比如,loss 數(shù)值很大的樣本)
損失函數(shù)工程
Training deep neural networks on imbalanced data sets (IJCNN 2016, 110+ 引用) ,均方根誤差可以從大多數(shù)類和少數(shù)類中同等的捕獲分類錯(cuò)誤
Focal loss for dense object detection [Code (Unofficial)](ICCV 2017, 2600+ 引用) ,一個(gè)集中訓(xùn)練困難樣本稀疏集合的均勻損失函數(shù),可以防止大量容易在訓(xùn)練中壓倒檢測(cè)器的簡(jiǎn)單負(fù)樣本。
???? 優(yōu)雅的解法,影響力很高
Deep imbalanced attribute classification using visual attention aggregation [Code] (ECCV 2018, 30+ 引用)
Imbalanced deep learning by minority class incremental rectification (TPAMI 2018, 60+ 引用) ,介紹了一個(gè)類別修正損失,它是在迭代的分批學(xué)習(xí)過(guò)程中,通過(guò)發(fā)現(xiàn)少數(shù)類的稀疏采樣邊界來(lái)最小化多數(shù)類的優(yōu)勢(shì)效應(yīng);
Learning Imbalanced Datasets with Label-Distribution-Aware Margin Loss [Code] (NIPS 2019, 10+ 引用) ,一種理論上有原則的標(biāo)簽分布感知邊際損失(LDAM),其動(dòng)機(jī)是最小化基于邊際的泛化邊界。
Gradient harmonized single-stage detector [Code] (AAAI 2019, 40+ 引用) ,相比 Focal loss 只會(huì)降低”容易“的負(fù)樣本的權(quán)重,GHM 還可以降低一些可能是異常值的”困難“樣本的權(quán)重。
???? 有趣的想法:根據(jù)梯度分布來(lái)協(xié)調(diào)樣本的貢獻(xiàn)
Class-Balanced Loss Based on Effective Number of Samples (CVPR 2019, 70+ 引用) ,一種簡(jiǎn)單而通用的基于有效樣本數(shù)量的類權(quán)重調(diào)整機(jī)制。
元學(xué)習(xí)
Learning to model the tail (NIPS 2017, 70+ citations) ,將元知識(shí)從分布頭部的數(shù)據(jù)豐富的類轉(zhuǎn)移到尾部的數(shù)據(jù)貧乏的類;
Learning to reweight examples for robust deep learning [Code] ?(ICML 2018, 150+ citations) ,在深度神經(jīng)網(wǎng)絡(luò)的梯度更新中隱式學(xué)習(xí)一個(gè)權(quán)重函數(shù)對(duì)樣本進(jìn)行權(quán)重的調(diào)整。
???? 通過(guò)元學(xué)習(xí)解決類別不平衡問(wèn)題的代表性工作.
Meta-weight-net: Learning an explicit mapping for sample weighting [Code] (NIPS 2019) ,在深度神經(jīng)網(wǎng)絡(luò)的梯度更新中,顯式學(xué)習(xí)一個(gè)權(quán)重函數(shù)(使用多層感知器作為函數(shù)逼近器)來(lái)對(duì)樣本的權(quán)重進(jìn)行調(diào)整;
Learning Data Manipulation for Augmentation and Weighting [Code] (NIPS 2019)
Learning to Balance: Bayesian Meta-Learning for Imbalanced and Out-of-distribution Tasks [Code] (ICLR 2020)
表示學(xué)習(xí)
Learning deep representation for imbalanced classification (CVPR 2016, 220+ 引用)
Supervised Class Distribution Learning for GANs-Based Imbalanced Classification (ICDM 2019)
Decoupling Representation and Classifier for Long-tailed Recognition (ICLR 2020)
課程學(xué)習(xí)
Dynamic Curriculum Learning for Imbalanced Data Classification (ICCV 2019)
兩階段學(xué)習(xí)
Brain tumor segmentation with deep neural networks (2017, 1200+ 引用) ,先在類別平衡的數(shù)據(jù)集進(jìn)行預(yù)訓(xùn)練,然后在原始的類別不平衡數(shù)據(jù)集上進(jìn)行微調(diào)網(wǎng)絡(luò) softmax 之前的最后一層輸出層;
網(wǎng)絡(luò)結(jié)構(gòu)
BBN: Bilateral-Branch Network with Cumulative Learning for Long-Tailed Visual Recognition (CVPR 2020)
另外,本人水平有限,所以對(duì)部分專業(yè)術(shù)語(yǔ)的翻譯可能并不正確,沒(méi)法做到非常完美,請(qǐng)多多包涵,謝謝!
下一篇將繼續(xù)介紹剩余的論文以及不平衡數(shù)據(jù)庫(kù)。
精選AI文章
1.??2020年計(jì)算機(jī)視覺學(xué)習(xí)指南
2.?是選擇Keras還是PyTorch開始你的深度學(xué)習(xí)之旅呢?
3.?編寫高效的PyTorch代碼技巧(上)
4.?編寫高效的PyTorch代碼技巧(下)
5.?深度學(xué)習(xí)算法簡(jiǎn)要綜述(上)
6.?深度學(xué)習(xí)算法簡(jiǎn)要綜述(下)
7.?10個(gè)實(shí)用的機(jī)器學(xué)習(xí)建議
8.?實(shí)戰(zhàn)|手把手教你訓(xùn)練一個(gè)基于Keras的多標(biāo)簽圖像分類器
精選python文章
1.??python數(shù)據(jù)模型
2.?python版代碼整潔之道
3.?快速入門 Jupyter notebook
4.?Jupyter 進(jìn)階教程
5.?10個(gè)高效的pandas技巧
精選教程資源文章
1.?[資源分享] TensorFlow 官方中文版教程來(lái)了
2.?[資源]推薦一些Python書籍和教程,入門和進(jìn)階的都有!
3.?[Github項(xiàng)目推薦] 推薦三個(gè)助你更好利用Github的工具
4.?Github上的各大高校資料以及國(guó)外公開課視頻
5.?GitHub上有哪些比較好的計(jì)算機(jī)視覺/機(jī)器視覺的項(xiàng)目?
歡迎關(guān)注我的微信公眾號(hào)--算法猿的成長(zhǎng),或者掃描下方的二維碼,大家一起交流,學(xué)習(xí)和進(jìn)步!
?如果覺得不錯(cuò),在看、轉(zhuǎn)發(fā)就是對(duì)小編的一個(gè)支持!
總結(jié)
以上是生活随笔為你收集整理的Github|类别不平衡学习资源(上)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Flink 异步IO
- 下一篇: 一篇文章,了解清楚路由器的各种组网