Bias in AI
AIのバイアスとは、一部のグループに対するAIシステムの精度や公平性を低下させる系統的な誤りです。混入する箇所、実例、測定方法を紹介します。
AIバイアスとも呼ばれるAIにおけるバイアスとは、人工知能(AI)システムにおける系統的な誤差であり、肌の色、性別、年齢、方言、収入などに沿って、特定の人々のグループに対する結果の精度や公平性を損ないます。同じグループが繰り返し不利な結果を受ける点で、一貫性のないランダム誤差とは異なります。一般に、AIバイアスはアルゴリズムバイアスと同義です。アルゴリズムバイアスはより古い用語であり、学習を伴わない固定の数式やスコアリング規則による自動意思決定も対象とします。バイアスは機械学習(ML)システムの構築におけるあらゆる段階で入り込む可能性があるため、AI倫理の枠組みでは、ライフサイクル全体に関わる特性として扱います。
バイアスの発生源#
NISTの報告書『人工知能におけるバイアスの特定と管理に関する標準に向けて』(SP 1270)では、AIのバイアスを3つに分類しています。制度や歴史に由来するシステム的バイアス、データやアルゴリズムに由来する統計的・計算的バイアス、システムを構築・利用する人々に由来する人間のバイアスです。一般的なMLパイプラインでは、これらの分類は特定の段階に現れます。
- 表現とデータセットバイアス: 学習データで数が少ないグループでは、予測精度が低下します。北米やヨーロッパの写真を主に使って学習したコンピュータービジョンモデルは、ほかの地域の物体や風景を認識する精度が低くなります。
- 測定: 特徴量やラベルの測定精度が、あるグループで低くなります。パルスオキシメーターは肌の色が濃い患者の血中酸素濃度を過大評価します。2020年にNew England Journal of Medicineで発表された研究では、低酸素状態が見逃される頻度は、白人患者より黒人患者で約3倍高いことがわかりました。
- ラベリング: アノテーター自身の判断が、モデルの学習に使われるラベルに反映されます。ヘイトスピーチ検出に関する2019年の研究では、広く使われているデータセットで、アフリカ系アメリカ人英語のツイートが不快な内容としてはるかに多くラベル付けされており、それらで学習したモデルは、そのようなツイートに最大2倍の頻度でフラグを付けることがわかりました。
- モデル化と評価: 平均誤差の最小化は多数派に有利に働き、全体のスコアだけでは、性能が低いグループが隠れることがあります。また、モデルがグループへの所属と偶然相関する近道の特徴量を学習することもあります。
- デプロイ: テストされていない集団や状況でモデルを使用した場合や、モデルの出力が後に学習するデータに影響する場合、時間とともに新たなバイアスが生じます。
実世界での例#
- Gender Shades: 2018年の監査では、商用の性別分類器が、肌の色が濃い女性を最大34.7%の確率で誤分類する一方、肌の色が明るい男性の誤分類率は最大でも0.8%であることがわかりました。
- 顔認識: NISTが2019年に実施した顔認識アルゴリズムの評価では、多くのアルゴリズムで、一部の人口統計グループの偽陽性率が10~100倍高いことがわかりました。
- 歩行者検出: 運転データセット内の歩行者を肌の色でアノテーションした2019年の研究では、物体検出モデルの精度が肌の色が濃い歩行者で低く、その差は時間帯やオクルージョンでは説明できないことがわかりました。
- 皮膚科AI: 肌の色が明るい画像を主に使って学習した皮膚病変分類器は、多様な臨床画像セットで評価すると、肌の色が濃い場合に性能が低下しました。多様な画像でファインチューニングすると、この差は縮小しました。
バイアスの測定#
分解評価では、モデルカードで推奨されているように、グループごとに同じ指標を個別に計算することでバイアスを明らかにします。次の例では、患者の5%を占めるグループBでセンサーの測定値が実際より1.0単位高くなっており、パルスオキシメーターの問題を再現しています。
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
rng = np.random.default_rng(0)
group_b = rng.random(20000) < 0.05 # 5% of patients belong to group B
oxygen = rng.normal(size=20000) # true blood oxygen, standardized
y = oxygen < 0 # condition to detect: low oxygen
# The sensor reads 1.0 too high for group B (measurement bias)
reading = (oxygen + 1.0 * group_b).reshape(-1, 1)
x_tr, x_te, y_tr, y_te, _, g_te = train_test_split(reading, y, group_b, random_state=0)
model = LogisticRegression()
model.fit(x_tr, y_tr)
pred = model.predict(x_te)
# Disaggregated evaluation: score each group separately
print(f"overall accuracy: {np.mean(pred == y_te):.3f}")
print(f"group A accuracy: {np.mean(pred[~g_te] == y_te[~g_te]):.3f}")
print(f"group B accuracy: {np.mean(pred[g_te] == y_te[g_te]):.3f}")モデルの全体スコアは0.967、グループAでは0.981ですが、測定値の上振れによって低酸素のケースが隠れるグループBでは0.706にとどまります。グループ間の偽陰性率を同等にすることなど、グループ単位の公平性指標により、AIにおける公平性の確認を形式化できます。
バイアスの緩和#
対策はデータから始まります。過小評価されているグループからより多くの例を収集し、誤った測定値やラベルを修正し、実例が少ない場合はデータ拡張や合成データを追加します。学習時には、希少なグループに大きな重みを設定したり、再サンプリングしたり、公平性制約を追加したりできます。また、後処理で判定しきい値を調整することもできます。Ultralytics Platformでは、データセット内のすべてのクラスのアノテーション数をグラフで確認できます。また、YOLO26の学習時にcls_pw引数を指定すると、分類損失にクラス頻度の逆数をその累乗で適用し、希少クラスの重みを高めます。NIST AIリスク管理フレームワークは、システムのライフサイクル全体を通じてバイアスを測定するよう組織に求めており、EU AI Act第10条は、高リスクAIシステムの提供者に対し、学習データ、検証データ、テストデータに潜在的なバイアスがないか調査することを義務付けています。
AIにおけるバイアスとその他の意味#
- バイアスと分散のトレードオフ:統計的バイアスとは、データのパターンを捉えるには単純すぎるモデルによって生じる誤差です。そのため、すべてのグループで同様に過学習ではなく未学習が起こります。
- バイアスパラメーター:ニューラルネットワークでは、各ニューロンのバイアスは、重み付き入力に加算される学習可能なオフセットであり、線形方程式の切片に相当します。










