3.7 不確実性とキャリブレーション
AIは自分の自信を正しく語れるか
この回で分かること
- キャリブレーション(確信度と実際の正解率が一致しているか)を、信頼性図と ECE で確かめられる
- 自信過剰を直す 温度スケーリング のしくみを説明できる
- 偶然的不確実性 と 認識的不確実性 の違いと、自動運転で不確実性を使う方法・限界を説明できる
直感で理解する
検出器が「歩行者 0.95」と出したとき、この0.95は信じてよい数でしょうか。天気予報で考えてみます。「降水確率70%」と言った日を集めて、実際に雨が降ったのがちょうど7割なら、その予報の数字は信用できます(1.1)。AI も同じで、「0.95」と答えた場面を集めたとき、実際に95%が歩行者なら、確信度が正しく語られています。これを、よく較正されている(キャリブレーションがとれている)といいます。
ところが、深いニューラルネットワークは 自信過剰 になりやすいことが知られています。「0.95」と答えた場面のうち、実際に正しいのは8割程度しかない、ということが起こります。次の図は、確信度ごとに実際の正解率を調べた 信頼性図 の例です。点が理想の点線より下にあれば、自信過剰です。
もう1つ大事なのは、なぜ 自信がないのかです。遠くの暗がりの人影のように、画像そのものがあいまいで誰が見ても決められない不確かさを 偶然的不確実性(アレアトリック不確実性)と呼びます。データを増やしても減りません。一方、学習データになかった特殊な車両のように、モデルの知識が足りないことによる不確かさを 認識的不確実性(エピステミック不確実性)と呼びます。こちらはデータを増やせば減らせます。
数式で確かめる
① キャリブレーションの意味
モデルの答えを \(\hat{Y}\)、そのときの確信度を \(\hat{p}\)、正解を Y とすると、よく較正されているとは、次が成り立つことです。
「確信度 p と答えたとき、実際に正しい確率がちょうど p」という意味です(1.2 の条件付き確率)。正解率が高いことと、よく較正されていることは別の性質です。
② ECE:ずれを1つの数にまとめる
検出を確信度で区間 b に分け、区間ごとの平均の確信度 \(\mathrm{conf}_b\) と実際の正解率 \(\mathrm{acc}_b\) の差を、件数 \(n_b\) で重み付けして平均したものを ECE(期待較正誤差)と呼びます。
| 確信度の区間 | 0.5〜0.6 | 0.6〜0.7 | 0.7〜0.8 | 0.8〜0.9 | 0.9〜1.0 |
|---|---|---|---|---|---|
| 件数 | 100 | 150 | 200 | 250 | 300 |
| 平均の確信度 | 0.55 | 0.65 | 0.75 | 0.85 | 0.95 |
| 実際の正解率 | 0.50 | 0.55 | 0.62 | 0.70 | 0.80 |
| 温度スケーリング後の確信度 | 0.53 | 0.58 | 0.63 | 0.70 | 0.81 |
較正前の ECE は、(100 × 0.05 + 150 × 0.10 + 200 × 0.13 + 250 × 0.15 + 300 × 0.15) ÷ 1000 ≈ 0.13 です。平均して13ポイントも自信過剰だということです。
③ 温度スケーリング:自信過剰を直す
3.6 の温度と同じように、確率に直す前の点数 z を温度 T で割ります。2つの答えから選ぶ場合なら、\(\hat{p}' = \sigma(z / T)\)(σ はシグモイド関数、2.4)です。T は、学習に使っていない検証データ(2.6)で ECE が小さくなるように選びます。この例では T = 2 で、表の最後の行のように確信度が控えめになり、ECE は約0.01まで下がりました。
温度で割っても、どの答えがいちばん確率が高いかは変わらないので、正解率は変わりません。変わるのは、自信の語り方だけです。
④ 認識的不確実性を測る:答えのばらつき
認識的不確実性は、1つのモデルの確信度だけでは分かりにくいものです。そこで、別々に学習した複数のモデル(2.5 のアンサンブル)の答えを比べます。見慣れた場面では、5つのモデルの「歩行者」の確率が 0.92、0.94、0.91、0.93、0.95 のようにそろい、ばらつき(標準偏差)は約0.01です。見慣れない場面では、0.95、0.30、0.70、0.10、0.85 のようにばらばらになり、標準偏差は約0.33になります。答えがそろわないことが、「このモデルはこの場面を知らない」という手がかりになります。2.8 の分布外検出も、同じ目的の技術です。
自動運転との接点
- 確信度はしきい値やセンサの組み合わせに使われる:「確信度0.7以上で歩行者として扱う」(2.4)という設計は、0.7が本当に7割を意味することが前提です。複数のセンサの結果を確信度で重み付けして組み合わせるときも、自信過剰なセンサが間違った答えで全体を引っ張ってしまいます。→ 4.3 センサとフュージョン
- 「分からない」と言えることが安全につながる:不確実性が大きいときに、速度を落とす、距離をとる、ほかのセンサの結果を重視する、運転を引き継ぐ、といった安全側の振る舞いにつなげられます。→ 4.7 安全の3本柱
- 較正は条件ごとにずれる:昼間の検証データで較正したモデルが、夜間や雨の日には自信過剰になることがあります。分布シフト(2.8)のもとでは較正も崩れやすいので、条件ごとに信頼性図を確かめ、モデルを更新したら較正し直します。
- 不確実性の推定も完全ではない:見たことのない入力に対して、自信たっぷりの確率を出してしまうこともあります。不確実性の推定そのものも、試験で確かめる対象です。→ 5.9 AIコンポーネントの安全
- SOTIF の「知らない危険」とつながる:認識的不確実性が大きい場面は、まだよく分かっていない危険な場面の候補です。そうした場面を集めて調べることが、未知の危険を減らす手がかりになります。→ 5.2 4つの領域
まとめ
- よく較正されたモデルでは、確信度 p と答えた場面の正解率がちょうど p になる。信頼性図と ECE で確かめる。深いネットワークは自信過剰になりやすい
- 温度スケーリングは点数を温度で割って確信度を控えめに直す。正解率は変わらず、自信の語り方だけが変わる
- 不確実性には、データそのもののあいまいさ(偶然的)と、知識の不足(認識的)がある。後者はアンサンブルのばらつきなどで測り、安全側の振る舞いにつなげる
確認クイズ
Q1. 確信度0.8と出した検出が200件あり、実際に正しかったのは120件でした。よく較正されている?
いいえ。実際の正解率は 120 ÷ 200 = 60% で、確信度0.8より20ポイント低く、自信過剰です。
Q2. 確信度0.9(実際の正解率0.85)の検出が500件、確信度0.6(実際の正解率0.62)の検出が500件あります。ECE は?
(500 × 0.05 + 500 × 0.02) ÷ 1000 = 0.035 です。
Q3. 遠くの暗がりの人影で、画像だけではだれが見ても人か看板か決められません。これはどちらの不確実性? データを増やせば減る?
偶然的不確実性です。画像そのものがあいまいなので、同じ種類のデータを増やしても減りません。近づいて見る、LiDAR など別のセンサを使う、といった別の情報が必要です。
Q4. 学習データになかった特殊な車両に対して、5つのモデルの答えがばらばらになりました。どちらの不確実性? どうすれば減らせる?
認識的不確実性です。モデルがその車両を知らないためなので、その種類の車両のデータを集めて学習させれば減らせます。それまでは、不確実性が大きいことを安全側の振る舞いにつなげます。
もっと知りたい人へ
- 次の回:3.8 頑健性と敵対的サンプル
- 関連:1.1 確率とは何か(降水確率)、2.5 決定木とアンサンブル、2.8 データの分け方と分布シフト、3.6 基盤モデルと生成AI(温度)
- 用語集:キャリブレーション、信頼性図・ECE、温度スケーリング、不確実性(偶然的・認識的)、分布外検出
- 解説動画:YouTube(約5分)(静止画のスライドと音声で要点を説明。英語版の記事には英語の動画があります)
- 参考文献
- C. Guo, G. Pleiss, Y. Sun, K. Q. Weinberger, “On Calibration of Modern Neural Networks,” ICML, 2017.
- A. Kendall, Y. Gal, “What Uncertainties Do We Need in Bayesian Deep Learning for Computer Vision?,” NeurIPS, 2017.
- B. Lakshminarayanan, A. Pritzel, C. Blundell, “Simple and Scalable Predictive Uncertainty Estimation using Deep Ensembles,” NeurIPS, 2017.