値が [Positive] または [Negative] のカテゴリラベルを含むデータセットについて考えてみましょう。バランスの取れたデータセットでは、正ラベルと負ラベルの数はほぼ同じです。ただし、一方のラベルが他方のラベルよりも一般的である場合、データセットはアンバランスです。不均衡なデータセットで優勢なラベルは「多数クラス」と呼ばれ、一般的でないラベルは「少数クラス」と呼ばれます。
次の表に、さまざまな程度の不均衡の一般的な名前と範囲を示します。
少数派クラスに属するデータの割合 | 不均衡の程度 |
---|---|
データセットの 20 ~ 40% | 中 |
データセットの 1 ~ 20% | 中程度 |
データセットの 1% 未満 | エクストリーム |
たとえば、少数クラスがデータセットの 0.5%、多数クラスが 99.5% を占めるウイルス検出データセットについて考えてみましょう。ほとんどの被験者にウイルスがないため、このような極端にアンバランスなデータセットは医学では一般的です。
不均衡なデータセットには、モデルを適切にトレーニングするのに十分な少数クラスのサンプルが含まれていない場合があります。つまり、正のラベルが非常に少ないため、モデルは負のラベルでのみトレーニングされ、正のラベルについて十分に学習できません。たとえば、バッチサイズが 50 の場合、多くのバッチにポジティブ ラベルが含まれません。
特に、軽度または中程度の不均衡なデータセットでは、不均衡は問題にならないことがよくあります。そのため、まず元のデータセットでトレーニングを試す必要があります。モデルが適切に機能している場合は、これで完了です。そうでない場合でも、最適でないモデルは、今後のテストに適したベースラインを提供します。その後、次の手法を使って、不均衡なデータセットによって発生する問題を克服できます。
ダウンサンプリングとアップウェイト
不均衡なデータセットを処理する 1 つの方法は、多数クラスをダウンサンプリングして重みを上げることです。これらの 2 つの新しい用語の定義は次のとおりです。
- ダウンサンプリング(このコンテキストでは)は、多数のクラスの例の不均衡に低いサブセットでトレーニングすることを意味します。
- 重み付けの引き上げとは、ダウンサンプリングしたクラスに、ダウンサンプリングした係数に相当するサンプル重みを追加することを意味します。
ステップ 1: 多数のクラスをダウンサンプリングする。図 5 に示すウイルス データセットについて考えてみましょう。このデータセットでは、陽性ラベルと陰性ラベルの比率が 1:200 です。10 倍にダウンサンプリングすると、バランスは 1 正と 20 負(5%)に改善されます。得られたトレーニング セットはまだ中程度のアンバランスですが、正例と負例の比率は、元の極端なアンバランスの比率(0.5%)よりもはるかに改善されています。
ステップ 2: ダウンサンプリングされたクラスの重みを上げる: ダウンサンプリングされたクラスにサンプル重みを追加します。10 倍にダウンサンプリングすると、サンプル重みは 10 になります。(これは直感に反するように思えますが、その理由については後で説明します)。
「重み」という用語は、モデルのパラメータ(w1 や w2 など)を指すものではありません。ここでの重みはサンプル重みを指し、トレーニング中に個々のサンプルの重要性を高めます。サンプル重みが 10 の場合、モデルは、重みが 1 のサンプルよりも(損失の計算時に)10 倍重要なものとしてサンプルを扱います。
weight は、ダウンサンプリングに使用した係数と同じにする必要があります。
ダウンサンプリング後にサンプル重みを追加するのは奇妙に思えるかもしれません。結局のところ、少数クラスでモデルを改善しようとしているのに、なぜ多数クラスの重みを上げるのでしょうか。実際、メジャー クラスの重みを上げると、予測バイアスが低下する傾向があります。つまり、ダウンサンプリング後にアップウェイトすると、モデルの予測の平均とデータセットのラベルの平均の差が小さくなる傾向があります。
アイコンをクリックすると、ダウンサンプリングとアップウェイトについて詳しく確認できます。
再調整比率
データセットのバランスを再調整するために、ダウンサンプリングとアップウェイトをどの程度行う必要がありますか?答えを判断するには、他のハイパーパラメータをテストする場合と同様に、再バランシング比率をテストする必要があります。ただし、最終的な答えは次の要因によって異なります。
- バッチサイズ
- アンバランス率
- トレーニング セットのサンプル数
理想的には、各バッチに複数の少数派クラスのサンプルを含める必要があります。十分な少数派クラスが含まれていないバッチは、トレーニングの精度が非常に低くなります。バッチサイズは、不均衡率の数倍にする必要があります。たとえば、アンバランス比率が 100:1 の場合、バッチサイズは 500 以上にする必要があります。
演習: 理解度を確認する
次のような状況を考えてみましょう。
- トレーニング セットには 10 億を超えるサンプルが含まれています。
- バッチサイズは 128 です。
- アンバランス比率が 100:1 であるため、トレーニング セットは次のように分割されます。
- 多数クラスのサンプルが 10 億個程度。
- マイナークラスのサンプル数は 1,000 万個程度。