$30 off During Our Annual Pro Sale. View Details »

survey-imbalanced-learning

KARAKURI Inc.
August 03, 2019

 survey-imbalanced-learning

Survey on machine learning approaches to class-imbalanced data.
不均衡データの学習に関するサーベイ資料です.

KARAKURI Inc.

August 03, 2019
Tweet

More Decks by KARAKURI Inc.

Other Decks in Research

Transcript

  1. KARAKURI Inc. All rights reserved. 1 不均衡データの学習⼿法 2019年8⽉3⽇ カラクリ株式会社 Development

    Group ⼤⽇⽅ 孝輝
  2. KARAKURI Inc. All rights reserved. 2 ⽬次 • 背景 •

    不均衡データがもたらす問題 • 評価指標 • ⼿法紹介 • Non-Deepのアプローチ • Deepのアプローチ • ⼀部,NLPへの応⽤可能性を視野に⼊れてまとめています • まとめ • 参考⽂献
  3. KARAKURI Inc. All rights reserved. 3 背景

  4. KARAKURI Inc. All rights reserved. 4 背景 • 多くのデータセットではクラス毎のデータ数が均等になっている •

    Iris, MNIST, CIFAR-10, ... • ↔ 現実のデータはクラス間でデータ数の偏りが⼤きいことも多々(不均衡データ) • 病気診断,不正取引検知,顔認識,物体検知,(お⼿元のデータ) • 多くの場合,興味があるのは少数派クラスの⽅ • 通常の分類モデル,学習⼿法をそのまま適⽤してOK?? → 問題が⽣じることも
  5. KARAKURI Inc. All rights reserved. 5 不均衡データがもたらす問題 • 多数派クラスのみを予測するモデルでもAccuracyが⾼くなる •

    2クラスで99%が多数派クラスの場合,常に多数派を予測するモデルで99%のAccuracy • 少数派クラスに関する予測精度が低くなる • 多数派クラスにバイアスがかった学習がされることが原因 • クラス間の重なりがある場合に,多数派クラスが優先される • ニューラルネットの最適化では,多数派クラス由来の勾配が⽀配的になる • 不均衡だから精度が必ず落ちるというわけではない.他の要因が関連する場合も • クラス間の重なり • データノイズ • 少数派クラスの絶対的なデータ数が少ない
  6. KARAKURI Inc. All rights reserved. 6 ⽤語等 • 多数派クラス(Majority class)

    • 少数派クラス(Minority class) • 興味があるのは主に少数派クラスなので,次のようにも表現する • 少数派クラス : positive class • 多数派クラス : negative class • 不均衡の度合いの指標 • 「最⼤多数派クラス」と「最⼩少数派クラス」のデータ数⽐ :クラス のデータ数
  7. KARAKURI Inc. All rights reserved. 7 評価指標(2クラスの場合) • Accuracy:全予測の正解割合 •

    Precision:正と予測した場合の正解率 • Recall (True Positive Rate):正クラスのデータの内,正しく予測された割合 • AUC:ROC曲線 or PR(Precision-Recall) 曲線の下の⾯積.[0, 1]で1に近いほど良い • F-measure:(基本的には)Precision と Recall の調和平均 • G-mean:True Positive & Negative Rate の相乗平均 • 他にもマシューズ相関係数,Balanced Accuracy, Index Balance Accuracyなど 真のクラスが正 真のクラスが負 予測が正 True positive (TP) False positive (FP) 予測が負 False negative (FN) True negative (TN)
  8. KARAKURI Inc. All rights reserved. 8 評価指標(数式) • Accuracy: •

    Precision: • Recall (True Positive Rate): • F-measure: (通常 = 1 ) • G-mean: 真のクラスが正 真のクラスが負 予測が正 True positive (TP) False positive (FP) 予測が負 False negative (FN) True negative (TN)
  9. KARAKURI Inc. All rights reserved. 9 評価指標(イラスト) Accuracy 真のクラスが正 真のクラスが負

    予測が正 True positive (TP) False positive (FP) 予測が負 False negative (FN) True negative (TN) Precision Recall
  10. KARAKURI Inc. All rights reserved. 10 評価指標 • 左上に張り付くほどgood •

    図はscikit-learnの ROC より ROC曲線 PR曲線 • 右上に張り付くほどgood • 図はscikit-learnの Precision-Recall より
  11. KARAKURI Inc. All rights reserved. 11 評価指標 ⾃信のあるもののみ正と予測 ⾒抜ける正の数が少ない ROC曲線

    PR曲線 ⾃信が無くても正と予測 ⾒抜ける正の数は多い ⾒抜ける正の数は少ない 正と予測した時の精度が⾼い ⾒抜ける正の数は多い 正と予測した時の精度は低い
  12. KARAKURI Inc. All rights reserved. 12 評価指標(3クラス以上の場合) • Accuracy:2クラスの場合と同じ •

    Accuracy以外の指標はそのままでは適⽤できない • Precision, Recall等の場合,ターゲットクラス以外全てをNegativeとし,2×2の混同⾏列を作成して計算 • AUCの場合,「ターゲットクラス vs それ以外」という形で,クラス数分の⼆値分類の学習を⾏なって 指標を計算し,平均を取る • 例えば4クラス分類の場合 1. 「クラス1 vs クラス2, 3, 4」を学習 → AUCを計算 2. 「クラス2 vs クラス3, 4, 1」を学習 → AUCを計算 3. クラス3, 4も同様 4. 全てのAUCの(重み付き)平均を計算
  13. KARAKURI Inc. All rights reserved. 13 不均衡性の影響と⾒るべき指標 • 混同⾏列の⼀例 •

    不均衡データの場合,Accuracyは危険 • 上の例だと Accuracy : 99.1% • 興味がある positive class に関する予測性能は低い • Precision : 66.6% • Recall : 20% • 例として,病気の診断ではFalse Negative(左下)は致命的なので,この予測性能は望ましくない 真のクラスが正 真のクラスが負 予測が正 20 10 予測が負 80 9890
  14. KARAKURI Inc. All rights reserved. 14 ⾒るべき指標 • 不均衡なデータの場合,1つの指標のみで評価するのは危険(特にAccuracy) •

    データの不均衡性にも頑健なのはAUCやF-measure, G-mean • AUCやF-measure, G-meanは複数の指標が反映されることになるが, それでも⽬的に合わせて複数の評価結果を⽤いた⽅がよい • 具体例 • 病気診断:病気を⾒逃したくないので,Precisionが多少落ちてもRecallを⾼めたい • ⾃動異常アラート:誤作動が増えるのは困るので,Precisionが落ちるのはなるべく避けたい
  15. KARAKURI Inc. All rights reserved. 15 ⼿法紹介

  16. KARAKURI Inc. All rights reserved. 16 ⼿法について • データレベルのアプローチ(Sampling) •

    Over-sampling • Under-sampling • モデルレベルのアプローチ(Cost-sensitive) • コスト⾏列の導⼊ • ロス関数の⼯夫 • モデルの出⼒値の調整 • 上記の両⽅(Hybrid) • Non-DeepとDeepなアプローチで⼤別して紹介 • Non-Deepの⼿法は[2]の,Deepのアプローチは[3]のレビュー論⽂に分かりやすくまとまっている
  17. KARAKURI Inc. All rights reserved. 17 メリット・デメリット • Over-sampling •

    少数派クラスのデータに過学習する可能性あり • 少数派クラスを多数派クラスと同数まで増やすため,学習時間が⻑くなる • Under-sampling • 重要なデータ構造が失われてしまう可能性あり • 学習時間が短縮される • Cost-sensitive • コスト⾏列の設定が難しい(専⾨家の知識etc.) • 学習時間はほぼ変化しない • ただし,No Free Lunch!(どれかが常に優れているとは⾔い難い)
  18. KARAKURI Inc. All rights reserved. 18 Non-Deepのアプローチ

  19. KARAKURI Inc. All rights reserved. 19 データレベルのアプローチ (Non-Deep) • Over-sampling

    • random over-sampling • SMOTE (+その発展⼿法) • ADASYN • Under-sampling • random under-sampling • Tomek links • NearMiss • 上記2つのCombination • 多くの⼿法はPythonライブラリのimbalanced-learn[1]に実装あり
  20. KARAKURI Inc. All rights reserved. 20 Random over/under-sampling • 訓練データからランダムにリサンプリングもしくはダウンサンプリング

    • メリット • 容易に実装可能 • 連続・カテゴリカル問わず適⽤可能 • ナイーブだけれど意外と上⼿くいくことが多い • デメリット • データ構造の特性等が反映されない
  21. KARAKURI Inc. All rights reserved. 21 SMOTE (Over-sampling) • Synthetic

    Minority Over-sampling Techniqueの略 • 少数派クラスのデータ間を内挿する形でデータをサンプリングする • アルゴリズムの概略 1. 少数派クラスの点に対して,そのk近傍のデータ点を特定 2. k近傍データとの間を直線的に内挿してサンプリング 訓練データ サンプリング後 分類境界 分類境界
  22. KARAKURI Inc. All rights reserved. 22 SMOTEの亜種 (Over-sampling) • 境界に近い領域が多数派クラスにバイアスがかってしまうので,

    境界付近を重点的にサンプリング • Borderline-SMOTE • k近傍データを調べて,少数派クラスと多数派クラスのデータ数が 拮抗しているような点をサンプリングの対象としてSMOTEを⾏う • クラス間分散も考慮してサンプリング • Cluster-based-SMOTE • 少数派クラスにおいて,まずk-means等でクラスタリングを⾏い, クラスターごとにSMOTEを⾏う 多数派クラスとの境界付近を 中⼼にサンプリングされる
  23. KARAKURI Inc. All rights reserved. 23 ADASYN (Over-sampling) • Adaptive

    Syntheticの略 • 周囲に存在するデータが他のクラスであるようなデータ点ほど, 重点的にサンプリング対象とする (意図はBorderline-SMOTEと似ている) • アルゴリズムの概略 1. 少数派クラスの各点について,k近傍のデータのうち 多数派クラスに属するデータ数をカウントする 2. 多数派クラスのデータ数に⽐例した数のサンプルを SMOTEでサンプリング これ例ではノイズに対しても サンプリングしてしまっている
  24. KARAKURI Inc. All rights reserved. 24 Tomekʼs links (Under-sampling) •

    異なるクラスに属するのに近くに存在するデータ点のペアのこと • 定義としては,2つのデータ点ペア ( , * について • ( , * がそれぞれ異なるクラスに属し, • 他の任意のデータ点 + に対して, ( , * < ( , + かつ ( , * < * , + が成り⽴つ • Tomekʼs linkを形成するデータのペアのうち, 多数派クラスの⽅のデータ点のみ訓練データから 除去することでUnder-samplingを⾏う • データ数が⼗分ある場合には,両⽅消去することでノイズ除去にもなる Tomek linkの例 imbalanced-learnより
  25. KARAKURI Inc. All rights reserved. 25 NearMiss (Under-sampling) • タイプが3つほどある(NearMiss-1,

    NearMiss-2, NearMiss-3) • NearMiss-1 • 多数派クラスの中で,K個の最近接少数派クラスデータとの 平均距離が⼩さいデータ点から除去する • 意図としては,少数派クラスの近くに位置する 多数派クラスデータを除去したい • NearMiss-2, 3も似たようなアイディアに 基づくデータ除去アルゴリズム NearMiss1のイメージ imbalanced-learnより
  26. KARAKURI Inc. All rights reserved. 26 NLPに適⽤可能なデータレベルのアプローチ (Non-Deep) • NLPでは⼊⼒データ間の距離を定めるのが難しいため,使える⼿法は制限される

    • Over-sampling • random over sampling • SMOTE (+その発展⼿法) • ADASYN • Under-sampling • random under sampling • Tomek links • NearMiss • 上記2つのCombination
  27. KARAKURI Inc. All rights reserved. 27 アルゴリズムレベルのアプローチ (Non-Deep) • 損失⾏列を定義し,最適化の過程のロス関数等を修正する

    • 決定⽊の分岐基準の計算 • SVMのロス関数について,正クラスと負クラスのペナルティを変更 • 出⼒ or 判断基準を調整する • 確率0.5を基準として 正 or 負 を決定するのではなく,損失⾏列の値に応じて閾値をずらす • 正クラスを1,負クラスを0と割り振った場合の例 • /0 > 0/ とすると,偽陰性に対して強いペナルティ 真のクラスが正 真のクラスが負 予測が正 00 = 0 0/ 予測が負 /0 // = 0
  28. KARAKURI Inc. All rights reserved. 28 データレベルとアルゴリズムレベルの組み合わせ (Non-Deep) • サンプリングとアンサンブル学習を組み合わせる⼿法など

    • EasyEnsemble • Random Under Samplingとbaggingの組み合わせ • SMOTEBoost • SMOTEとAdaboostの組み合わせ
  29. KARAKURI Inc. All rights reserved. 29 Deepのアプローチ

  30. KARAKURI Inc. All rights reserved. 30 Deepに関連するアプローチ • データレベル •

    学習の過程で⽤いるデータの⽐率を調整する • Two-phase learning[29] • Dynamic sampling[24] • GANを⽤いてover-samplingを⾏う[23], [25] • アルゴリズムレベル • loss関数を⼯夫する • Mean false error loss[30] • Focal-loss[26] • コスト⾏列⾃体を学習する[21]
  31. KARAKURI Inc. All rights reserved. 31 Deepに関連するアプローチ • 上記の両⽅ •

    分類が難しいデータを探して重点的に学習する • Large margin local embedding[28] • Class rectification loss[27] • いずれも顔認識などの深層距離学習由来の研究 • 実装のしやすい3つを紹介 • Two-phase learning • Mean false error loss • Focal-loss
  32. KARAKURI Inc. All rights reserved. 32 Two-phase learning [29] Hansang

    Lee et al., 2016 • ⽂字通り2段階の学習を⾏う 1. ある数 を決めて, 以上のデータが存在するクラスのデータに対してRandom Under-samplingで まで減らし,モデルを学習 (pre-training) 2. Under-samplingする前のもとのデータセットで学習 (fine-tuning) • を決定するには複数パターンを⽐較する必要あり
  33. KARAKURI Inc. All rights reserved. 33 Mean False Error Loss

    [30] Shoujin Wang et al., 2016 • False Postive/Negative Errorをそれぞれ計算し,平均を取る • 真のクラスが正のデータについてロスを計算 • 真のクラスが負のデータについてロスを計算 • 上記2つの平均をMFE,⼆乗平均をMSFEと定義 • MSFEはFPEとFNEを同程度に保ったまま最⼩化するような形になっている
  34. KARAKURI Inc. All rights reserved. 34 Focal Loss [26] Tsung-Yi

    Lin et al., 2017 • 正解クラスの出⼒を 5 とし,Focal Lossを次の形で定義 • > 0, > 0 であり,論⽂内では = 0.25, = 2.0 がベスト • 確率が⾼いデータ(≒ 学習が容易なデータ)からの寄与を⼩さくする効果 • 物体検出に対する⼿法として提案されている • 広い背景領域(Negative class)から⼀部の物体領域(Positive class)を検出する
  35. KARAKURI Inc. All rights reserved. 35 まとめ

  36. KARAKURI Inc. All rights reserved. 36 まとめ • まず,⽬的を決めて⾒るべき指標を定めることが重要 •

    Non-Deepであればライブラリとしてimbalanced-learnを⽤いるのがカンタン • DeepだとCV分野で研究され始めている • MNIST, CIFAR-10等を⽤いた⼈⼯的な不均衡データ • 顔認識や物体検知のタスク,深層距離学習の⽂脈で研究されている • NLPに対しての適⽤や研究はあまり⾒られない • 今回の資料は参考⽂献[2], [3] のレビュー論⽂を主に参考にしています • [2]はNon-Deepな⼿法 • [3]はDeepについての⼿法
  37. KARAKURI Inc. All rights reserved. 37 NLPに即適⽤可能な⽅法 • Non-Deep •

    Random Over/Under-sampling • Deep • 学習に⽤いるデータセットを段階的に変える • Two-phase learning • loss関数を⼯夫する • Mean False Error Loss • Focal Loss
  38. KARAKURI Inc. All rights reserved. 38 参考⽂献 ・ライブラリ [1] Imbalanced-learn

    (Python package for imbalanced learning) 不均衡データのサンプリング等を扱ったPythonのライブラリ(scikit-learn準拠) Imbalanced-learn: A Python Toolbox to Tackle the Curse of Imbalanced Datasets in Machine Learning (Guillaume Lemaitre et al., 2016) ・レビュー論⽂ [2] Learning from Imbalanced Data (Haibo He and Edward A. Garcia, 2008) Non-deepな範囲で不均衡データの対策⼿法をまとめたレビュー論⽂.本資料の前半の多くはこちらに基づいている [3] Survey on deep learning with class imbalance (Justin M. Johnson and Taghi M. Khoshgoftaar, 2019) Deepに関連した不均衡データの対策をまとめたレビュー論⽂.本資料の後半の多くはこちらに基づいている. [4] Learning from class-imbalanced data: Review of methods and applications (Guo Haixiang et al., 2017) [5] Learning from imbalanced data: open challenges and future directions (B Krawczyk, 2016) ・Non-Deep関連 [6] ADASYN: Adaptive synthetic sampling approach for imbalanced learning (Haibo He et al., 2008) [7] An empirical comparison on state-of-the-art multi-class imbalance learning algorithms and a new diversified ensemble learning scheme (Jingjun Bia and Chongsheng Zhang, 2018)
  39. KARAKURI Inc. All rights reserved. 39 参考⽂献 ・Non-Deep関連 [8] An

    insight into classification with imbalanced data: Empirical results and current trends on using data intrinsic characteristics (Victoria López et al, 2013) データレベル,アルゴリズムレベル,ハイブリッド含めて多くのデータセットで精度検証.性能としてはEnsembleがベスト. 性能を下げる要因として,クラス不均衡以外の要因(ノイズ,クラス間の重なり etc.)についてもまとめて議論されている. [9] Clustering-based undersampling in class-imbalanced data (Lin Wei-Chao et al., 2017) [10] Confusion-Matrix-Based Kernel Logistic Regression for Imbalanced Data Classification (Miho Ohsaki et al., 2017) [11] Experimental Perspectives on Learning from Imbalanced Data (Jason Van Hulse et al., 2007) この論⽂ではトータルで⾒るとRandom Under Samplingが良かったが,ベストな⼿法はアルゴリズムや評価指標次第という結論. [12] KRNN: k Rare-class Nearest Neighbour classification (Xiuzhen Zhang et al., 2017) [13] Learning from Imbalanced Data in Presence of Noisy and Borderline Examples (Krystyna Napierała et al., 2010) [14] Multiclass Imbalance Problems- Analysis and Potential Solutions (Shuo Wang and Xin Yao 2012) [15] SMOTE Synthetic Minority Over-sampling Technique (N. V. Chawla et al., 2002) [16] SMOTE‒IPF: Addressing the noisy and borderline examples problem in imbalanced classification by a re-sampling method with filtering (José A.Sáez et al., 2015) [17] Under-sampling class imbalanced datasets by combining clustering analysis and instance selection (Chih-Fong Tsai et al., 2019) [18] Optimal classifier for imbalanced data using Matthews Correlation Coefficient metric (Sabri Boughorbel et al., 2017) [19] Index of Balanced Accuracy: A Performance Measure for Skewed Class Distributions (V. Garc ́ıa et al, 2009)
  40. KARAKURI Inc. All rights reserved. 40 参考⽂献 ・Deep関連 [20] A

    systematic study of the class imbalance problem in convolutional neural networks (Mateusz Buda et al., 2017) クラス不均衡がCNNの画像分類に与える影響を検証.この論⽂ではOver-samplingが良いという結論. [21] Cost-Sensitive Learning of Deep Feature Representations From Imbalanced Data (Salman H. Khan et al., 2015) 損失⾏列⾃体を学習パラメータとして学習する.ただし,この論⽂内の損失関数は⼀般的なものとは少し異なった⽤いられ⽅をしており, 学習中におけるモデルの最終出⼒を調整するために⽤いられる. [22] Cost-Sensitive Learning with Neural Networks (Matjaz Kukarˇ and Igor Kononenko, 1998) [23] Deep Learning for Imbalance Data Classification using Class Expert Generative Adversarial Network Generative Adversarial Network (Fanny and Tjeng Wawan, Cenggoro, 2018) [24] Dynamic sampling in convolutional neural networks for imbalanced data classification (Samira Pouyanfar et al., 2018) [25] Effective data generation for imbalanced learning using conditional generative adversarial networks (Georgios Douzas and Fernando Bacao, 2018) クラスラベルで条件付けしてGANを学習し,学習したGeneratorでover-samplingを⾏う. [26] Focal Loss for Dense Object Detection (Tsung-Yi Lin et al., 2017) [27] Imbalanced Deep Learning by Minority Class Incremental Rectification (Qi Dong et al., 2018) 深層距離学習と関連がある研究. Minorityクラスのhard-positiveやhard-negativeを探し,triplet-lossに似たlossを⽤いて学習する.
  41. KARAKURI Inc. All rights reserved. 41 参考⽂献 ・Deep関連 [28] Learning

    Deep Representation for Imbalanced Classification (Chen Huang et al., 2016) [27]の論⽂の先⾏研究に位置する. quintuplet(5つ組)に対してロスを定義することで,クラス内のデータ構造(クラス内クラスターの存在) も考慮に⼊れて距離学習を⾏う. [29] Plankton classification on imbalanced large scale database via convolutional neural networks with transfer learning (Hansang Lee et al., 2016) [30] Training deep neural networks on imbalanced data sets (Shoujin Wang et al., 2016) 少数派クラスと多数派クラスのロスの平均を⽬的関数とする,Mean False Error(MFE)とMean Squared False Error(MSFE)を提案.