Class Imbalanced に対するアプローチ Striking the Right Balance with Uncertainty @CVPR2019網羅的サーベイ報告会

B9c41546565298648a2fea82172d4417?s=47 cfiken
September 19, 2019

Class Imbalanced に対するアプローチ Striking the Right Balance with Uncertainty @CVPR2019網羅的サーベイ報告会

CVPR2019 網羅的サーベイ報告会 https://cvpr2019-survey.studio.design/ で、下記論文の紹介枠として発表しました。
Striking the Right Balance with Uncertainty
https://arxiv.org/abs/1901.07590
Class Imbalanced 問題へのアプローチ紹介として発表ではカットしましたが、他の研究論文もいくつか紹介しています。

B9c41546565298648a2fea82172d4417?s=128

cfiken

September 19, 2019
Tweet

Transcript

  1. CVPR 2019 Class Imbalance 論文紹介 Striking the Right Balance with

    Uncertainty S. Khan et al. 2019/09/19 Kentaro Nakanishi @cfiken
  2. 自己紹介 Kentaro Nakanishi twitter: @cfiken 普段は NLP で chatbot してます

    副業で株式会社UZUMAKI カービィが好き
  3. 本日の発表内容 • Striking the Right Balance with Uncertainty (S. Khan

    et al., CVPR 2019) [1] ◦ Class Imbalanced な問題に対する新しいアプローチ ◦ 他のアプローチも紹介 • 目次 ◦ Class Imbalanced Problem ◦ Max-Margin Loss 既存研究 ◦ CVPR 2019 で発表された研究 ◦ その他の研究 ◦ まとめ
  4. Class Imbalanced Problem

  5. Class Imbalanced Problem • 分類タスクにおいて、ラベルの分布に偏りがある問題 • 実応用では避けられない問題の一つ

  6. Class Imbalance Problem • Imbalanced なタスクの例 ◦ 医療画像診断 ▪ 正例(陽性データ)が少ない

    ◦ 顔認識 ▪ ターゲットによってサンプル数が異なる ▪ long-tail distribution とも
  7. • re-sampling ◦ データの分布を調整する ▪ undersampling / oversampling ◦ うまく最適化するのは難しい

    ▪ 情報損失 / 過学習 してしまう • cost-sensitive loss function ◦ 損失関数を改良することでうまく学習する ◦ 今回はこっちがメイン Class Imbalanced に対するアプローチ
  8. Cost-sensitive Loss Function • Class-Weighted ◦ クラス毎のサンプル数で割るなど、minority クラス の loss

    を相対的に大きくする • Sample-Weighted ◦ focal loss: 簡単な(正解の確信度が高い)サンプルは loss を相対的に小さくする [2] • Max-Margin ◦ loss にマージン制約を加えることで、クラス内分散 を小さく、クラス間距離を大きくするよう学習する ◦ 距離学習・表現学習とも見られる
  9. 準備: 通常の Softmax Cross Entropy Loss • モデルの出力(logits)を p’ とすると分類確率

    p は、 • Cross Entropy Loss は下記となる (y は正解 index)。 Max-Margin Loss Function 準備
  10. 準備: 特徴と代表ベクトルの内積の形に変換 • モデルを特徴抽出と分類に分けて考える • 先程の CE Loss は次のようにかける 特徴抽出レイヤ

    分類レイヤ Max-Margin Loss Function 準備 入力画像
  11. 準備: angular の空間に変換 • 内積を cosine を使った形に変換 • ここで とする(超球面上に制限)と、

    • これにより となるように学習する Max-Margin Loss Function 準備
  12. Max-Margin Loss 既存研究

  13. L-Softmax [3] / SphereFace [4] angular 空間でのマージンを提案 • 元の Loss

    • 提案 Loss: 正解クラスのみマージンを付加 正解クラスだけ と置き換えている
  14. L-Softmax [3] / SphereFace [4] angular 空間でのマージンを提案 • これにより となるように学習する

    図: [3] Fig. 2 より, 特徴レイヤを2次元にしてプロット
  15. angular 空間でのマージンを提案 • 省略したが、実際は単調減少関数にするため少し補正し ている L-Softmax [3] / SphereFace [4]

    図: [3] Fig. 4 より
  16. CosFace [5, 6] マージンをかけるのではなく付加 s は特徴のノルム調整用のハイパーパラメータ • 乗算だと θ の値によってマージンの影響が変わるの

    を、加算にすることで改善 • 実装や最適化も簡単に 図: [5] Fig. 2 より
  17. CVPR 2019 で発表された研究

  18. CVPR 2019: Class Imbalance Problem • ArcFace: Additive Angular Margin

    Loss for Deep Face Recognition, J. Deng et al. [7] • Striking the Right Balance with Uncertainty, S. Khan et al. [1] • Class-Balanced Loss Based on Effective Number of Samples, Y. Cui et al. [8] • AdaptiveFace: Adaptive Margin and Sampling for Face Recognition, H. Liu et al. [9] • UniformFace: Learning Deep Equidistributed Representation for Face Recognition, Y. Duana et al. [10] • Unequal-training for Deep Face Recognition with Long-tailed Noisy Data, Y. Zhong et al. [11]
  19. ArcFace [7] マージンを angular 空間で付加 • angular に対してマージンを付加 (分かりやすくなった) •

    実装や最適化も簡単、かつ性能も改善 • SphereFace, ArcFace, CosFace は次で表現できる m1: SphereFace, m2: ArcFace, m3: CosFace
  20. ArcFace [7] Softmax, SphereFace, CosFace との違い • Softmax だとマージンがない •

    SphereFace だと θ が小さい時にマージンが消える • CosFace だと angular に対してマージンが非線形に 図: [7] Fig. 5 より、二値分類の場合のクラス境界
  21. ArcFace [7] 実験結果 • 安定して SphereFace, CosFace を上回る • SphereFace,

    CosFace も同時に入れて実験したもの の、ArcFace のみと変わらず ◦ (右表の CM が同時版)
  22. Striking the Right Balance with Uncertainty [1] モチベーション: マージンに不確実性を考慮したい •

    Class-Level: 不確実性の高いクラスに大きいマージン • Sample-Level: サンプルの分布の二次モーメントを考慮 図: [1] Fig. 1 より、点線が通常の Softmax, 実線が提案手法
  23. Striking the Right Balance with Uncertainty [1] 変更点 (L-Softmax/SphereFace) •

    L-Softmax での正解クラス • 提案手法 ハイパーパラメータ クラスの不確実性によるマージン サンプルの不確実性によるペナルティ ※ こちらも実際はθの値によって単調減少関数にするための補正が入ります
  24. Striking the Right Balance with Uncertainty [1] クラスの不確実性の推定 • Dropout

    を含むネットワークはガウス過程に近似でき る (Y. Gal and Z. Ghahramani, 2016)[12] • Dropout によるアンサンブルモデル空間   からネット ワークを N回サンプリング ◦ ある入力  に対して N個の出力   が得られる ◦ これについて1次モーメント、2次モーメントを推定
  25. Striking the Right Balance with Uncertainty [1] クラスの不確実性によるマージン • 得られた分散からクラスごとのマージンを設定

    • 分散が大きい: マージンが大きくなる = より厳しく分類 • 分散が小さい: マージンが小さくなる = よりゆるく分類 図: [1] Fig. 1 (a) より、 imbalanced な分布とクラス境界
  26. Striking the Right Balance with Uncertainty [1] 変更点 (L-Softmax/SphereFace) •

    L-Softmax での正解クラス • 提案手法 ハイパーパラメータ クラスの不確実性によるマージン サンプルの不確実性によるペナルティ ※ こちらも実際はθの値によって単調減少関数にするための補正が入ります
  27. サンプルの不確実性の推定 • サンプルの分布から誤分類する確率を計算する • モチベーション ◦ 不確実性の高いサンプルではあまり学習したくない Striking the Right

    Balance with Uncertainty [1] 図: [1] Fig. 1(b) より、サンプルの分布とクラス境界
  28. Striking the Right Balance with Uncertainty [1] サンプルの不確実性の推定 • サンプルの分布から誤分類する確率を計算する

    •        と仮定して、次のように誤差を定義 • この誤差が正なら誤分類していることに • 定義した誤差は次の平均・分散を持つ正規分布に従う
  29. Striking the Right Balance with Uncertainty [1] サンプルの不確実性の推定 • 誤分類となる確率は次の上側確率を計算すれば良い

    • は正規分布に従うことから、これは変形の上で誤差 関数を用いて計算できる
  30. Striking the Right Balance with Uncertainty [1] 実験結果 • 顔認識、皮膚病変検出、Attribute

    予測、MNIST, CIFAR-10 のタスクでベースラインモデルと比較 ◦ 既存手法 (CosFace など) よりも平均的に良い結果に ◦ 詳細は割愛 • 既存手法と組み合わせ (CIFAR-10) 表: [1] Table 7 より
  31. Striking the Right Balance with Uncertainty [1] いくつかわからない点がちらほら • 二次モーメントの計算に出てくる

    τ が何か分からない ◦ model presicion (function of weight decay) と書 かれているが... • サンプルの誤分類率の計算で、w_j をどうやって選んで いるのか分からない ◦ 一番大きいもの? 全ての和? • 実験詳細の一部で m=3 を使うと書かれているが、m は 不確実性に基づいて決めるのではないのか ◦ 既存手法の話?
  32. Class-Balanced Loss (Effective Number) [8] モチベーション • Loss にクラスごとの重みをいい感じに与えたい 単純にサンプル数の逆数で

    重み付けすると、マイノリティ 側に偏りすぎる問題がある 図: [8] Fig.1 より 赤: 通常のロスによる決定境界 黒: サンプル数の逆数の重みによる決定境界 青: 提案手法
  33. Class-Balanced Loss (Effective Number) [8] 提案手法: サンプル数ではなく有効数を定義して重み付け • クラスごとのデータの有効数を定義 ◦

    サンプルを点ではなく単位体積を持った領域と見る ◦ あるクラスのサンプルで構成される空間の体積を N とすると、有効数は • 実際には N の値は分からないので、ハイパーパラメー タとして β を設定する (0.9, 0.99, 0.999, ...)
  34. Class-Balanced Loss (Effective Number) [8] 実験結果 • Long-Tailed CIFAR 10/100

    で実験 • 上段が通常の Loss, 下段が提案 Loss とベストケースの ハイパーパラメータ • 全てで提案手法の重みを加えたほうが良い結果に
  35. UniformFace [10] 各クラスが均一に広がるような制約を追加 • CosFace などで各クラスの表現はうまく学習できる が、特徴空間全体をうまく使えていない ◦ アンバランスだったり局所性があったりする •

    代表ベクトルが均一に広がるような損失関数である UniformLoss を提案 図: [10] Fig. 1 より。SphereFace に UniformFace を適用 した例の 2D と 3D をプロットしたもの。UniformFace の方 が均一に空間上に広がっているのが分かる。
  36. UniformFace [10] UniformLoss • 各クラスの代表ベクトルを単位量の電荷と考える • 全電荷の位置エネルギーの和を UniformLoss とし、最 小化問題を解く

    • 既存手法に混ぜることで微妙に性能改善 図: [10] Fig. 2 より、左図の状態からエネル ギーが最小となるように最適化する
  37. AdaptiveFace [9] マージンもパラメータにしつつサンプリングも工夫 • CosFace などのマージン手法で imbalanced に対応 • Adaptive

    Margin Softmax ◦ マージン m を各クラスごとに持つパラメータ化 ◦ CNN と同時に学習する • サンプリング方法も工夫 ◦ Adaptive Data Sampling ▪ 分類レイヤーの結果からサンプリング確率を変更 ◦ HardPrototypeMining 図: [9] Fig. 4 より、 C1 が minority, C2 が majority クラスの 場合の、CosFace, ArcFace に対し て Adaptive 適用した例。濃い青が サンプルに基づく境界、薄い青が真 のクラス境界。
  38. その他の研究

  39. Affinity Loss [13] モチベーション • 既存手法は超球面上に制限し、angular 空間上の距離に よって分類を行っている ◦ 結果的に汎化性能を失っている

    • ガウスカーネルで類似度を定義し、ロスを設計 σ は分布の広がりを制御するハイパーパラメータ
  40. Affinity Loss [13] ロスの定義 • 提案手法のマージン付きロス • 更にクラス間距離が一定となるような制約を加える • 最終的なロスは

  41. Affinity Loss [13] 実験結果 • 特徴レイヤを2次元にしてプロット • 他の実験でも多くで SoTA を記録

    ◦ DIL では Striking ~ の方が良い性能だった 図: [13] Fig. 2 より、imbalanced MNIST で実験、右が提案手法
  42. Affinity Loss [13] Multi-Centered Learning • 代表ベクトルが1つだと、複雑な形状の分布で辛い • 複数の代表ベクトルを持つことでこれに対応 ◦

    類似度の計算は代表ベクトル集合の max をとる • これによりラベルノイズにもロバストに
  43. まとめ

  44. まとめ • Class Imbalanced な問題へのアプローチとして、 Max-Margin Loss Function がある •

    CosFace, ArcFace など、顔認識の分野で簡単に距離学 習ができると流行 • 最近では ArcFace などの距離学習に更に Imbalanced な問題のための改善を加えたものが出てきている ◦ Striking the Right Balance with Uncertainty ◦ AdaptiveFace ◦ Affinity Loss • [IMO] 結局何使えばいいの? に対しては、今はとりあ えず簡単なので ArcFace が良さそう
  45. ありがとうございました

  46. Reference [1] Striking the Right Balance with Uncertainty, S. Khan

    et al., CVPR 2019, https://arxiv.org/abs/1901.07590 [2] Focal Loss for Dense Object Detection, T. Lin et al., CVPR 2017, https://arxiv.org/abs/1708.02002 [3] Large-Margin Softmax Loss for Convolutional Neural Networks, W. Liu et al., ICML 2016, https://arxiv.org/abs/1612.02295 [4] SphereFace: Deep Hypersphere Embedding for Face Recognition, W. Liu et al., CVPR 2017, https://arxiv.org/abs/1704.08063 [5] CosFace: Large Margin Cosine Loss for Deep Face Recognition, H. Wang et al., CVPR 2018, https://arxiv.org/abs/1801.09414 [6] Additive Margin Softmax for Face Verification, F. Wang et al., Signal Processing Letters 2018, https://arxiv.org/abs/1801.05599 [7] ArcFace: Additive Angular Margin Loss for Deep Face Recognition, J. Deng et al., CVPR 2019, https://arxiv.org/abs/1801.07698 [8] Class-Balanced Loss Based on Effective Number of Samples, Y. Cui et al., CVPR 2019, https://arxiv.org/abs/1901.05555 [9] AdaptiveFace: Adaptive Margin and Sampling for Face Recognition, H. Liu et al., CVPR 2019 [10] UniformFace: Learning Deep Equidistributed Representation for Face Recognition, Y. Duana et al., CVPR 2019 [11] Unequal-training for Deep Face Recognition with Long-tailed Noisy Data, Y. Zhong et al., CVPR 2019 [12] Dropout as a bayesian approximation: Representing model uncertainty in deep learning, Y. Gal and Z. Ghahramani, ICML 2016, https://arxiv.org/abs/1506.02142 [13] Max-margin Class Imbalanced Learning with Gaussian Affinity, M. Hayat et al., https://arxiv.org/abs/1901.07711
  47. Appendix

  48. Striking ~ の実験結果一覧

  49. Face Verification (LFW, YTF) 49 • 顔認識タスク • 他のデータやアンサンブル モデルを使った手法,

    Metric 系など新しい損失関 数を使った手法, Imbalanced Learning のた めの手法それぞれと比較。 • 既に accuracy では多くで saturate 気味ではあるが, その中でも高い性能に
  50. Skin Lesion Detection (DIL) 50 • 皮膚病変の検出タスク • 1,300枚の画像に10クラス (もしくは5クラス)

    • 各クラス12~331枚と Imbalanced • 既存手法に比べて大きく向上 ◦ 14~15% UP (絶対量)
  51. Attribute Prediction (CelebA) 51 • セレブ写真から Attribute 予測 • 中央線より左が普通の手法,

    右が Class Imbalanced タスクのための手 法, 一番右が提案手法 • 下に行くほど Imbalanced なクラス • Imbalanced なクラスなほどよい性能, 平均でも SOTA レベルに
  52. Other Loss + Uncertainty (CIFAR10) 52 • Imbalanced CIFAR10 にマージン系損失の既存手法を適用

    • 既存手法のマージン m を Uncertainty ベースのものに修正 • 上記二種類を比較実験し、既存手法に Uncertainty を導入 することで性能向上を確認できた