モデルキャリブレーションと不確実性推定
現代DNNの確信度はあてになりません。なぜ過信が起きるかを示し、ECE・温度スケーリング・共形予測で確率を信頼できる値に直し、二種類の不確実性を切り分ける方法をまとめます。
- 1.現代の深層ネットは正解率が高くても確信度を過大に出す。確信度80%と表示されても実際の正解率は60%程度、という乖離が典型的に起こる。
- 2.乖離は信頼性ダイアグラムとECE(期待較正誤差)で測る。温度スケーリングは検証データでロジットを定数Tで割るだけの後処理で、精度を変えずに較正できる。
- 3.ディープアンサンブルや共形予測はモデル平均・有限標本保証の観点から不確実性を扱う。認識的不確実性(データ不足)と偶然的不確実性(ノイズ)は区別すべき性質が違う。
確信度と正解率が一致しないという問題
分類モデルがソフトマックスで出す最大確率は、しばしば「確信度(confidence)」として扱われます。較正されたモデルなら、確信度0.8で予測した事例を集めると、その約80%が正解しているはずです。これが**キャリブレーション(較正)**の定義です。形式的には、予測確信度 p を持つ事例の集合で P(正解 | 確信度 = p) = p が任意の p で成り立つとき、そのモデルは完全に較正されているといいます。
ところが現代の深層ネットワークは、正解率は高いのに確信度を過大評価します。確信度0.99の事例を集めても実際の正解率は0.9程度しかない、といった乖離が典型的に観測されます。較正は精度とは別の軸の品質です。精度が同じ二つのモデルでも、片方は信頼できる確率を返し、もう片方は根拠なく高い確率を返す、ということが起こります。
医療診断・自動運転・与信判断など、出力をそのまま意思決定の確率として使う場面では、確率値の正しさが安全性を左右します。確信度0.95を「20回に1回しか外さない」と解釈して棄却閾値を設計したのに、実際は5回に1回外れていれば、リスク設計が根底から崩れます。精度の評価については モデル評価(精度・適合率・再現率) を、確率出力の品質はこの較正の軸で別途見る必要があります。
過信はどこから来るのか
浅いネットや昔のモデルは比較的よく較正されていました。過信は容量の大きい現代DNNで顕著になった現象です。主因として次が指摘されています。
- 負の対数尤度(NLL)の過剰最小化:分類誤りがゼロに近づいても、モデルはNLLをさらに下げるために正解クラスのロジットを際限なく大きくし続けます。正解率は飽和しているのに確信度だけが1へ押し上げられ、過信が進みます。学習が進むほど較正は悪化しうるのです。
- 容量とバッチ正規化:層を深く広くし、バッチ正規化を入れると精度は上がりますが較正は悪化する傾向が報告されています。
- 弱い正則化:重み減衰を強めるとロジットの大きさが抑えられ、較正が改善する方向に働きます。
NLL最小化が確信度を1へ押し上げる構造は、交差エントロピーが正解ロジットを単調に増やす力を持つことに由来します(損失と尤度の関係は 最尤推定とMAP推定・ベイズ推論の関係 を参照)。
較正の測り方:信頼性ダイアグラムとECE
較正の可視化には信頼性ダイアグラムを使います。テスト事例を予測確信度で M 個のビン(例:0.0–0.1, …, 0.9–1.0)に分け、各ビンについて「平均確信度」と「実際の正解率(accuracy)」を計算し、両者を対角線上にプロットします。完全に較正されたモデルは対角線(y=x)に乗り、棒が対角線より下にあれば過信、上にあれば過小評価です。
これを単一の数値にまとめたのが**ECE(Expected Calibration Error, 期待較正誤差)**です。各ビンでの確信度と正解率のずれを、ビンの事例数で重み付けして平均します。
ECE = Σ_m (|B_m| / N) · | acc(B_m) − conf(B_m) |
B_m … m番目のビンに入る事例集合
|B_m|/N … そのビンが全体に占める割合(重み)
acc(B_m) … ビン内の実際の正解率
conf(B_m) … ビン内の平均確信度
最悪ビンのずれを見る**MCE(Maximum Calibration Error)**も併用されます。ECEはビン分割の仕方(数・等幅か等頻度か)に結果が依存する点に注意が必要です。
ECEは「最大確信度だけ」を評価する指標で、上位クラス以外の確率分布の質は測りません。また真陽性・真陰性が混ざったまま平均するため、ECEがゼロでも個々の予測が良いとは限りません。較正の良さと予測の鋭さ(sharpness)は別物で、常に「全部0.5」と返すモデルは較正は良くても無価値です。較正と鋭さは同時に評価すべきです。
後処理による較正:温度スケーリング
学習済みモデルに手を加えず、出力だけを直す後処理較正は実務で最も使われます。代表が**温度スケーリング(temperature scaling)**です。ソフトマックスに入れる前のロジット z を、単一のスカラー T > 0(温度)で割ります。
較正後の確率 = softmax(z / T)
T = 1 … 元の出力(変化なし)
T > 1 … 分布をなだらかにし確信度を下げる(過信を緩和)
T < 1 … 分布を尖らせ確信度を上げる
T は検証データ上でNLLを最小化するように1個だけ最適化します。最大ロジットの位置は T で割っても変わらないため、argmax(予測クラス)は不変=正解率は一切変わりません。確率値だけを較正できる、安価で副作用のない手法です。過信モデルでは最適な T が1より大きくなり、確信度全体が押し下げられます。
| 手法 | 種類 | パラメータ数 | 精度への影響 | 不確実性の質 |
|---|---|---|---|---|
| 温度スケーリング | 後処理 | 1(温度Tのみ) | なし(argmax不変) | 確信度を全体的に補正 |
| プラットスケーリング | 後処理 | 2(a, b) | なし | ロジットを線形変換 |
| ディープアンサンブル | 学習時 | モデルM個分 | 向上しやすい | 認識的不確実性を捕捉 |
| 共形予測 | 後処理 | なし(分位点のみ) | なし | 有限標本のカバレッジ保証 |
プラットスケーリングは softmax(a·z + b) と2パラメータで較正する一般化版です。多クラスでは温度スケーリングの方が頑健で過適合しにくいことが知られています。
ディープアンサンブルと共形予測
ディープアンサンブルは、初期値とデータ順序を変えて同じ構造のネットを M 個独立に学習し、予測確率を平均します。異なる解(モード)に収束した複数モデルが食い違う領域では予測がばらつき、その分散が認識的不確実性の近似になります。これはベイズ予測分布の積分を M 点のサンプル平均で近似する操作と読め、変分推論やMC Dropoutと同じ系譜にあります(事後の近似という枠組みは 変分推論とELBO を参照)。較正と精度の両面で単一モデルを上回ることが多い一方、学習・推論コストが M 倍になります。
共形予測(conformal prediction)は発想が異なります。点予測ではなく予測集合を返し、「真のラベルが集合に含まれる確率が 1 − α 以上」という有限標本でのカバレッジ保証を、モデルの中身や分布形に一切依存せず(分布フリーで)与えます。手順は、較正用データで各事例の非適合スコア(例:1 − 正解クラスの確率)を計算し、その 1 − α 分位点を閾値とし、テスト時はスコアが閾値以下の全クラスを集合に入れるだけです。仮定は較正データとテストデータの交換可能性のみで、モデルが過信でも保証は崩れません。難しい入力では集合が大きく(曖昧さを集合サイズで表現)、易しい入力では1個に絞られます。
共形予測が保証するのは全テスト分布を平均した周辺カバレッジであり、特定の入力ごとの条件付きカバレッジではありません。易しい部分集団では1−αを上回って過剰にカバーする一方、難しい部分集団では下回りうるという偏りが生じます。クラスや部分集団ごとに保証を分けたいなら Mondrian 共形予測など条件付きの拡張が要ります。「平均では1−αを満たすが、ある部分集団では下回りうる」点を理解して使うべきです。
二種類の不確実性:認識的と偶然的
不確実性は本質の異なる二つに分けられます。混同すると対処を誤ります。
- 偶然的不確実性(aleatoric):データそのものに内在するノイズ・曖昧さに由来します。ラベルの揺らぎ、センサ雑音、本質的に重なるクラス境界など。データを増やしても減りません。情報量の観点では、入力を固定したときの出力エントロピーに相当します(エントロピーの定義は 情報理論とエントロピー を参照)。
- 認識的不確実性(epistemic):モデルの知識不足・パラメータの不確かさに由来します。学習データが疎な領域や未知の入力で大きくなり、データを増やせば減らせます。ベイズでは事後分布の広がりとして、実装ではアンサンブル間の予測のばらつきとして現れます。
| 観点 | 偶然的不確実性 | 認識的不確実性 |
|---|---|---|
| 由来 | データ固有のノイズ・曖昧さ | モデルの知識不足・パラメータの不確かさ |
| データ増で減るか | 減らない(既約) | 減らせる(可約) |
| どこで大きいか | クラス境界・高ノイズ領域 | 学習データが疎な領域・外れ値 |
| 捉え方 | 出力分布のエントロピー | アンサンブル/事後のばらつき |
| 対処 | より良い特徴・ノイズ低減 | データ追加・能動学習・OOD検知 |
両者の分解は「全不確実性 = 各モデルの予測エントロピーの平均(偶然的)+ モデル間の予測のばらつき(認識的)」という相互情報量の形で書けます。外れ値・分布外(OOD)入力の検知には認識的不確実性が、棄却・人間への委譲の判断には全体の確信度が効きます。較正で確率の大きさを直し、不確実性分解でその出どころを切り分ける——この二段構えが、確率出力を意思決定に安全につなぐ要です。
まとめ
現代DNNは精度が高くても過信しがちで、確信度をそのまま確率と信じると意思決定を誤ります。較正は信頼性ダイアグラムとECEで測り、温度スケーリングのような後処理は精度を変えずに確率を補正できます。ディープアンサンブルはモデル平均で認識的不確実性を、共形予測は分布フリーのカバレッジ保証を与えます。最後に、減らせる認識的不確実性と減らせない偶然的不確実性を切り分けることで、追加データが効く場面と効かない場面を見極められます。
AI/機械学習 Article
モデルキャリブレーションと不確実性推定を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
不確実性推定
比較で見る軸
難易度: advanced / カテゴリ: AI/機械学習 / タグ数: 5
導入後に効く点
乖離は信頼性ダイアグラムとECE(期待較正誤差)で測る。温度スケーリングは検証データでロジットを定数Tで割るだけの後処理で、精度を変えずに較正できる。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- AI/機械学習
- タグ数
- 5
判断チェックリスト
- 自社の用途が「不確実性推定 / キャリブレーション」に近いか確認する。
- 強みである「現代の深層ネットは正解率が高くても確信度を過大に出す。確信度80%と表示されても実際の正解率は60%程度、という乖離が典型的に起こる。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。