Uncertainty Quantification
不確実性定量化(UQ)は、モデルの各予測をどの程度信頼できるかを推定し、偶然性による不確実性と認識論的な不確実性を区別します。
不確実性定量化(UQ)とは、機械学習モデルが各予測についてどの程度不確かであるかを推定し、その推定の信頼性を確認する手法です。ラベル、値、バウンディングボックスに加えて、UQを備えたモデルは確率分布、予測区間、可能性のあるラベル集合、または分散を返します。システムはこれらの推定値を使って、自動で処理するか、人に判断を委ねるか、新たに収集するデータを決めます。信頼度スコアも推定値の1つです。UQではさらに、そのスコアが適切に較正されているか、つまり信頼度80%の予測が約80%の確率で正しいかどうかも確認します。
偶然的不確実性と認識論的不確実性#
予測の不確実性には、2つの要因があります。Alex KendallとYarin Galは、2017年の論文ベイズ深層学習においてコンピュータビジョンで必要な不確実性とは何か?で、この区別を視覚分野の深層学習に導入しました。
- 偶然的不確実性:モーションブラー、センサーノイズ、オクルージョン、アノテーター間で意見が分かれるラベルなど、データ自体に含まれるノイズです。入力に不足情報が含まれているため、学習データを増やしても解消されません。モデルは、深度推定ごとの分散など、追加の出力としてこの不確実性を学習できます。
- 認識的不確実性:モデルの知識不足です。新しいカメラ、季節、物体の種類など、学習データにない入力に対して高くなります。関連データを追加すると低下するため、データドリフトや分布外の入力を示すシグナルになります。
予測の不確実性をどう扱うかは、この区別によって決まります。
不確実性の推定方法#
- 予測確率: 分類器のソフトマックス出力は最も低コストな推定値ですが、Chuan Guoらによる2017年の研究では、最新の深層ネットワークが体系的に過信することが示されました。保留データに対する温度スケーリングによって、その差の多くを補正できます。
- モンテカルロドロップアウト: 推論時もドロップアウトを有効にし、入力を複数回実行します。Yarin GalとZoubin Ghahramaniが2016年に示したように、出力のばらつきをベイズ的不確実性の近似値として扱います。
- ディープアンサンブル: ネットワークの複数のコピーを異なるランダム初期値から学習し、それらの予測の不一致を測定します。DeepMindのBalaji Lakshminarayananらが2017年に導入した手法です。UQ手法を大規模に比較したGoogleの2019年の研究では、データセットシフトに対してアンサンブルが最も高い性能を維持しました。
- コンフォーマル予測: 任意のモデルを拡張し、95%など指定した割合で正解を含む予測集合または予測区間を出力します。
- セマンティックエントロピー: 大規模言語モデル(LLM)から複数の回答をサンプリングし、それらが表す異なる意味の数を測定することで、ハルシネーションの検出に役立つシグナルを得ます。
1次元回帰タスクのディープアンサンブルでは、認識的不確実性を直接確認できます。
import numpy as np
from sklearn.neural_network import MLPRegressor
# Noisy samples of sin(x), observed only between -3 and 3
rng = np.random.default_rng(0)
x = rng.uniform(-3, 3, (200, 1))
y = np.sin(x).ravel() + rng.normal(0, 0.1, 200)
# Deep ensemble: the same network trained from five random initializations
ensemble = [MLPRegressor(hidden_layer_sizes=(32, 32), max_iter=3000, random_state=seed).fit(x, y) for seed in range(5)]
# Members agree where data exists and diverge where it does not
for x_new in (1.0, 8.0):
preds = np.array([m.predict([[x_new]])[0] for m in ensemble])
print(f"x={x_new}: mean {preds.mean():+.2f}, std {preds.std():.2f}")学習範囲内のx = 1では、5つのネットワークの予測平均は0.86、真の値は0.84で、標準偏差は0.01です。範囲外の遠く離れたx = 8では、真の値が0.99であるのに対して-1.17と予測し、標準偏差は0.59に跳ね上がります。つまり、アンサンブルは誤った予測を検出します。
不確実性推定の評価#
較正は信頼度で予測を区分し、各区分の実際の精度をプロットする信頼度図で確認します。期待較正誤差やBrierスコアで要約できます。予測区間は、真の値が区間内に入る割合である被覆率と、区間幅で評価します。すべてを覆うほど幅広い区間では、情報が得られないためです。分布外検出は、見慣れた入力と未知の入力を区別するROC曲線下面積でスコア化します。ベンチマークでは精度と並んで較正も報告されるようになっており、Humanity's Last Examでは、公開当初のLLMの較正誤差が73%から89%であることが示されました。
用途#
- 医用画像解析: 医療の診断モデルは、不確実性が高い画像を放射線科医に回します。自動化で明確な症例に対応し、曖昧な症例を人が確認します。
- 自動運転車: 霧やまぶしさなどで深度や検出の不確実性が高まると、認識システムは安全マージンを広げるか、制御を人に戻します。
- アクティブラーニング: モデルが最も確信を持てないサンプルほど多くを学べるため、不確実性に基づいて、どの未ラベル画像にアノテーションする価値があるかを決めます。
検出パイプラインで不確実性を最も直接的に利用するのがアクティブラーニングです。Ultralytics Platform Agentsの「不確実な検出を収集」テンプレートは、データセット内の画像をデプロイ済みのYOLO26モデルに入力し、信頼度が選択した範囲、たとえば0.25から0.5に入る検出が少なくとも1つある画像をすべてレビュー用データセットにコピーします。画像は未ラベルの状態で保存され、アノテーションと再学習にすぐ利用できます。










