医療系AIエンジニアの技術メモ

ディープラーニング(主に画像系)の技術メモブログです

Class-Balanced Loss Based on Effective Number of Samples

スポンサーリンク


f:id:y_kurashina:20190224213132j:plain

論文URL

https://arxiv.org/pdf/1901.05555.pdf

2019年1月公開

ポイント

  • 損失関数計算時のクラスアンバランス補正項を提案している
  • 教師サンプル数の逆数でクラスアンバランスを補正するのではなく、実効サンプル数の逆数で補正
    • 似たようなサンプルが多い場合、実効サンプル数は小さい

Class-Balanced Loss

  • 実効サンプル数
    E_{n_y} = \sum_{n=0}^{n_y}{\beta^{n-1}} = \frac{1-\beta^{n_y}}{1-\beta}
    • \beta : あるサンプルが他のサンプルと特徴量空間でオーバーラップしない確率
    • n_y : クラスyのサンプル数
    • \beta=0の場合(全サンプルが同一の特徴量を持つ) : E_{n_y} = 1
    • \beta=1の場合(全サンプルが完全に異なる特徴量を持つ) : E_{n_y} = n_y
  • 損失関数は実行サンプル数の逆数で補正する
  • \betaを事前に知ることは困難であるため、ハイパーパラメータとなっている
    • 論文では0.9~0.9999の間で、適用するデータセット(CIFER、iNaturalist, ILSVRC)ごとに調整
    • 一般的には、\betaはクラスごとに異なると考えられるが、クラス共通のパラメータとしている
  • Focal Lossとの組み合わせが相性が良い。
    • クラスアンバランス調整項\alphaとして使用できる