データ・バイアス検出の使用

データにおけるバイアスは、年齢、性別、人種などの様々なグループの不均一表現があるときなどに発生します。バイアスは、データセットとモデルの両方において、データ推論のすべての段階で存在する可能性があります。OML Services REST APIのデータ・バイアス・ディテクタ機能は、機械学習ライフサイクルの初期段階でデータにおける様々なタイプのバイアスを検出するために役立ちます。

データにおける偏ったラベルは、人間のアノテータや社会的固定観念などの様々なソースからもたらされます。偏ったデータセットで機械学習モデルがトレーニングされている場合は、推論段階の間にそれらのバイアスが再現され強化される可能性が高くなります。データ・バイアスへの事前対応には、次のような複数の利点があります:
  • AI/MLモデルに対する監視と規制が強化される中、潜在的なバイアスと問題を検出して軽減することは、関連する法律やガイドラインへの準拠に役立つ可能性があります。
  • データ・バイアスを検出することは(特に、機械学習ライフサイクルの初期段階で検出すること)、公平性と公正性に対する潜在的な影響を理解するために重要です。

OML Servicesのデータ・バイアス・ディテクタでは、バイアス・ディテクタ・ジョブを作成するためのRESTエンドポイントが提供されます。モデリング・プロセスの後半段階でデータ・バイアスに対処しその影響を軽減するために、バイアス軽減方法であるリウェイトdata_bias APIに追加されています。データベース・バイアス・ディテクタでは、クラス不均衡(CI)、統計的均一性(SP)および条件付き人口統計差異(CDD)という、一般的なタイプのデータ・バイアスを識別するためのメトリックが計算されます。

  • クラス不均衡(CI) - このメトリックでは、使用可能なトレーニング・データと、そのモデルを適用する母集団との不一致が評価されます。より代表的なデータを収集することを検討できます。正規化された範囲: [-1,+1]
    • 正の値は、グループ1にそのデータセット内のトレーニング・サンプルがより多く含まれていることを示しています。
    • 0に近い値は、そのデータセット内のトレーニング・サンプルの数について、それらのグループはバラスが取れていることを示しています。
    • 負の値は、グループ2にそのデータセット内のトレーニング・サンプルがより多く含まれていることを示しています。
  • 統計的均一性 - このメトリックでは、各センシティブ・グループの、正の予測されたクラスに含まれる確率が同じであることが確認されます。統計的均一性の差は、ラベル比率の差(DPL)です。差異: [-1, 1]
    • 満点は、そのモデルではどのサブグループも、残りの母集団とは異なる比率で、正に予測されていないことを示しています。差異での満点は0です。
    • 正の値は、グループ1は拒否されるよりも受け入れられているほうが多いという結果を示しています。
    • 負の値は、グループ1は受け入れられるよりも拒否されているほうが多いという結果を示しています。
  • 条件付き人口統計差異(CDD) - これは、データセット属性によって定義されているサブグループ内で見つかった、すべての差異の重み付け平均です。CDDメトリックの目標は、シンプソンのパラドックスをデータセットから排除することです。シンプソンのパラドックスとは、あるトレンドがデータの複数グループにおいて現れているがそれらのグループが結合されると消失または逆転するという、確率と統計に関する現象です。範囲: [-1, +1]
    • 正の値は、グループ1が受け入れられる可能性が拒否される可能性よりも高いという結果を示しています。
    • ゼロに近い値は、平均では人口統計差異がないことを示しています。
    • 負の値は、グループ1が拒否される可能性が受け入れられる可能性よりも高いという結果を示しています。

データ・バイアス検出の入力パラメータ

DATA_BIAS APIを実行するには、ジョブにおいて次のパラメータを渡す必要があります。それらの入力パラメータを、次の「データ・バイアス検出の入力パラメータ」表でリストします。

表 - データ・バイアス検出の入力パラメータ

入力パラメータ タイプ デフォルト値 説明 必須
inputData String 該当なし これは、入力データ表の名前です。 はい
outputData String 該当なし これは、出力データ表の名前です。 はい
outcomeColumn String 該当なし 機械学習モデルのトレーニングの結果である、入力データ内の特徴の名前です。この結果は、数値型またはカテゴリ型のどちらかである必要があります。 はい
sensitiveFeatures CLOB 250

250個を超える特徴がある場合は、エラーになります。

データ・バイアスの検出と軽減が実行される特徴のリストです。リスト内の特徴の数には制限を設ける必要があります。デフォルトは250です。これらの特徴は、数値型またはカテゴリ型のどちらかである必要があります。

ノート:

現在のリリースでは、テキスト、ネストまたは日付はサポートされていません。
はい
positiveOutcome String 該当なし

陽性結果の値です。この値は、outcomeColumnで指定されている列に存在する必要があります。positiveOutcomeまたはoutcomeThresholdのどちらかを指定する必要があります。ただし、それら両方が指定されている場合は、エラーになります。

「データ・バイアス検出 - 例」における所得分析では:
  • >50Kは陽性結果です。
  • <50Kは陰性結果です
outcomeThresholdがNULLの場合は必須です。

ノート:

positiveOutcomeまたはoutcomeThresholdのどちらかを指定する必要があります。両方が指定されている場合は、エラーが表示されます。
outcomeThreshold Number (FLOAT) NULL これは、データを2つの部分(>= outcomeThreshold< outcomeThreshold)に分ける数値です。このしきい値は、結果列の範囲内である必要があります。 positiveOutcomeがNULLの場合は必須です。

ノート:

positiveOutcomeまたはoutcomeThresholdのどちらかを指定する必要があります。両方が指定されている場合は、エラーが表示されます。
strata CLOB NULL これは、条件付き人口統計差異(CDD)の計算に必要な列のリストです。リスト内のストラタの数には制限があります。デフォルトは20です。ストラタ・リストが指定されていない場合、CDDは計算されません。20個を超えるストラタがある場合は、エラーになります。指定できるストラタは、数値型またはカテゴリ型のどちらかです。

ノート:

現在のリリースでは、テキスト、ネストまたは日付データ型はサポートされていません。
いいえ
replaceResultTable Boolean 0, 1 結果表を結果表名で置換するかどうかを示します。これは、結果表がすでに存在するときに適用されます。 いいえ
pairwiseMode Boolean 0, 1 メトリックを次の間で計算するかどうかを示します:
  • 特徴内の考えられるすべてのグループ・ペア(pairwise_mode = true)、または
  • 1つのグループと残りのサンプルとの間。
いいえ
jobName String NULL OMLジョブの名前。
  • このプロシージャがジョブ・スケジューラを介してコールされているときは、はい
  • PL/SQL APIを使用しているユーザーの場合は、いいえ
categoricalBinNum Integer 4 sensitiveFeaturesの場合とstrataの場合の、カテゴリ型変数に対して生成されるビンの数 いいえ
numericalBinNum Integer 5 sensitiveFeaturesの場合とstrataの場合の、数値型変数に対して生成されるビンの数 いいえ