ホーム›Part 3 ディープラーニングとAI›3.7

Part 3 · ディープラーニングとAI

3.7 不確実性とキャリブレーション

AIは自分の自信を正しく語れるか

読了目安 10分前提:2.4 ロジスティック回帰、2.7 評価指標▶ 動画(約5分)

この回で分かること

  • キャリブレーション(確信度と実際の正解率が一致しているか)を、信頼性図と ECE で確かめられる
  • 自信過剰を直す 温度スケーリング のしくみを説明できる
  • 偶然的不確実性 と 認識的不確実性 の違いと、自動運転で不確実性を使う方法・限界を説明できる

直感で理解する

検出器が「歩行者 0.95」と出したとき、この0.95は信じてよい数でしょうか。天気予報で考えてみます。「降水確率70%」と言った日を集めて、実際に雨が降ったのがちょうど7割なら、その予報の数字は信用できます(1.1)。AI も同じで、「0.95」と答えた場面を集めたとき、実際に95%が歩行者なら、確信度が正しく語られています。これを、よく較正されている(キャリブレーションがとれている)といいます。

ところが、深いニューラルネットワークは 自信過剰 になりやすいことが知られています。「0.95」と答えた場面のうち、実際に正しいのは8割程度しかない、ということが起こります。次の図は、確信度ごとに実際の正解率を調べた 信頼性図 の例です。点が理想の点線より下にあれば、自信過剰です。

実際の正解率 0.5 0.7 0.9 0.5 0.7 0.9 1.0 確信度(モデルが出した確率) 理想(確信度 = 正解率) 較正前(自信過剰、ECE ≈ 0.13) 温度スケーリング後(ECE ≈ 0.01)
信頼性図の例。確信度ごとに検出をまとめ、実際の正解率を点で示す。較正前は、どの確信度でも実際の正解率が下回っている(自信過剰)。温度スケーリングで確信度を控えめに直すと、点が理想の点線にほぼ重なる。数値は説明用の例。

もう1つ大事なのは、なぜ 自信がないのかです。遠くの暗がりの人影のように、画像そのものがあいまいで誰が見ても決められない不確かさを 偶然的不確実性(アレアトリック不確実性)と呼びます。データを増やしても減りません。一方、学習データになかった特殊な車両のように、モデルの知識が足りないことによる不確かさを 認識的不確実性(エピステミック不確実性)と呼びます。こちらはデータを増やせば減らせます。

数式で確かめる

① キャリブレーションの意味

モデルの答えを \(\hat{Y}\)、そのときの確信度を \(\hat{p}\)、正解を Y とすると、よく較正されているとは、次が成り立つことです。

$$P(Y = \hat{Y} \mid \hat{p} = p) = p$$

「確信度 p と答えたとき、実際に正しい確率がちょうど p」という意味です(1.2 の条件付き確率)。正解率が高いことと、よく較正されていることは別の性質です。

② ECE:ずれを1つの数にまとめる

検出を確信度で区間 b に分け、区間ごとの平均の確信度 \(\mathrm{conf}_b\) と実際の正解率 \(\mathrm{acc}_b\) の差を、件数 \(n_b\) で重み付けして平均したものを ECE(期待較正誤差)と呼びます。

$$\mathrm{ECE} = \sum_{b} \frac{n_b}{N}\,\bigl|\,\mathrm{acc}_b - \mathrm{conf}_b\,\bigr|$$
確信度の区間0.5〜0.60.6〜0.70.7〜0.80.8〜0.90.9〜1.0
件数100150200250300
平均の確信度0.550.650.750.850.95
実際の正解率0.500.550.620.700.80
温度スケーリング後の確信度0.530.580.630.700.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つのモデルの答えがばらばらになりました。どちらの不確実性? どうすれば減らせる?

認識的不確実性です。モデルがその車両を知らないためなので、その種類の車両のデータを集めて学習させれば減らせます。それまでは、不確実性が大きいことを安全側の振る舞いにつなげます。

もっと知りたい人へ