AIの「予測確率90%」って、本当に信用していいの?
画像分類AIに猫の写真を見せて、こんな結果が返ってきたとします。
猫:90% / 犬:8% / その他:2%
「90%なら、ほぼ猫で間違いないでしょ」と思いますよね。自分も機械学習を勉強し始めた頃は、なんとなくそう受け取っていました。
でも、少し考えてみると不思議です。この90%って、そもそも何の確率なんでしょうか?
今回は、モデルがどうやって予測確率を学習するのか、なぜ自信過剰になることがあるのかを、論文と身近な例から考えてみます。最後に昨今のLLMについても考えてみます。
そもそもAIの「90%」はどうやって生まれる?
一般的な画像分類モデルは、各クラスのスコアを出して、最後にSoftmaxで合計が1になるよう変換します。
$$
p_\theta(y=k\mid x)=\frac{e^{z_k}}{\sum_j e^{z_j}}
$$
ただし、合計が100%になることと、現実にその割合で正解することは別です。Softmaxを通しただけで、確率の信頼性まで保証されるわけではありません。
では、モデルは何を目指して学習しているのでしょうか。
よくある画像分類では、正解クラスを1、それ以外を0にしたOne-hotラベルを使います。そしてCross Entropyという損失を小さくします。
$$
\mathcal L=-\log p_\theta(y\mid x)
$$
この式では、例えば正解ラベルが「猫」の画像について、モデルが猫に割り当てる確率を1に近づけるほど損失は小さくなります。
「じゃあ、AIは何でも100%と言い切るように学習するの?」と思うかもしれません。でも、そこは少し違います。
十分なデータがあり、モデルが期待損失を理想的に最小化できるなら、Cross Entropyが目指すのは、学習対象における条件付きラベル分布です。ラベルが確率的に決まる状況では、最適な予測も必ずしも100%にはなりません。
つまり、Cross Entropyそのものが悪いわけではない。ただ、現実の学習ではデータもモデルも有限で、うまく確率を推定できるとは限らないんです。
実際、AIは自信過剰になることがある
ここで出てくるのが Calibration(較正) という考え方です。
例えば「90%の自信がある」と予測した画像をたくさん集めたとします。そのうち約90%が正解なら、少なくともその確信度についてはうまく較正されていると言えます。
逆に、90%と予測しているのに実際は70%しか正解していなければ、自信過剰ですよね。
Guoらの研究[1]では、深層ニューラルネットワークが必ずしも適切に較正されておらず、モデルの深さや幅、正則化、Batch NormalizationなどがCalibrationに関係することが報告されています。
ズレをまとめる代表的な指標がECE(Expected Calibration Error)です。確信度をいくつかのグループに分け、それぞれで「平均の確信度」と「実際の正解率」の差を計算します。
$$
\mathrm{ECE}=\sum_{m=1}^{M}\frac{|B_m|}{N}
\left|\mathrm{acc}(B_m)-\mathrm{conf}(B_m)\right|
$$
ただしECEにも、グループの切り方によって値が変わるなどの限界があります。
ここで気になるのが、そもそも、なぜモデルはこんなに自信を持ってしまうのか? ということです。
なぜ予測確率はずれるの?
「正解を100%に近づける」だけでいいのだろうか
先ほどのCross Entropyを思い出してみてください。1件の画像に「猫」という教師ラベルが付いていれば、猫の予測確率を上げる方向に学習します。
でも、そもそも「猫100%」と言い切るのが適切ではない画像もあるのでは?
例えば、猫だけが写っている写真なら「猫」と答えることにあまり迷わないと思います。では、猫と犬が同時に写っている写真はどうでしょう。犬の方が大きくても、猫が中央に写っていれば、どちらを主役と見るかで判断が分かれそうです。
仮に「この画像を猫か犬のどちらか一つに分類してください」という条件で100人に聞いたところ、60人が猫、40人が犬を選んだとします。
この場合、「人がどちらを選ぶか」を予測したいなら、猫60%・犬40%が目指すべき分布になります。一方、データセットには「猫」という一つのラベルだけが付いているかもしれません。
ここで大切なのは、犬と猫が一緒に写っているから必ず60:40になる、という話ではありません。何を正解とするかによって、適切な確率が変わるということです。「猫が写っているか?」という問いなら、猫が確実に写っている画像に100%と答えることはおかしくありません。
ただ、「人がどちらを選ぶか」のような曖昧さを含むタスクなのに、教師信号が単一のラベルしか表していなければ、その迷いを直接教えることはできません。結果として、モデルが学習する確率と、私たちが知りたい確率の間にズレが生じ得ます。
ここは通常のECEの悪化と同一視してはいけません。ECEは指定された正解ラベルに対する較正を測るため、人間の回答分布との不一致とは別の問題です。ただ、予測確率を解釈するときに無視できない違いだと思います。
過度な自信を抑える方法も研究されている
この問題を考える手がかりの一つが Label Smoothing です。
One-hotラベルの「正解1、その他0」を少しだけ平滑化し、正解クラスだけに100%を割り当てる教師信号を緩めます。Müllerら[2]は、この方法によってモデルの過度な確信度を抑え、Calibrationを改善できる場合があると報告しています。
とはいえ、Label Smoothingは画像ごとの曖昧さを自動で理解する手法ではありません。また、Guoら[1]は学習後に確率を調整するTemperature Scalingも有効だと報告しています。
学習方法によって過信を抑える話と、そもそも何の確率を学習するかという話は、分けて考える必要があるわけです。
LLMでも「正解を一つに決めにくい」ことがある
この話は画像分類だけではありません。
例えばLLMに、こんな質問をしたらどうでしょう。
一番有名な大学は?
「有名」とは知名度でしょうか。研究実績でしょうか。国内での認知度なのか、世界での知名度なのかでも答えが変わりそうです。
にもかかわらず、LLMが一つの大学名をすらすら答えたら、つい正解だと受け取りたくなります。でも、質問が曖昧なままなら、回答の正しさを一意に評価すること自体が難しいですよね。
実際にChatGPTに「日本で一番有名な大学は? 確信度を含めて答えて」と聞いてみたところ、「東京大学 — 確信度:95%」という回答が返ってきました。
でも、この95%は本当に妥当なのでしょうか?
そもそも「有名」とは、国内での知名度でしょうか。それとも世界的な知名度や研究実績でしょうか。評価基準によって答えが変わる可能性があります。
つまり、何をもって正解とするかが決まっていないのに、「95%の確率で正しい」と言えるのか? という疑問が生まれます。
さらに、今回の95%はモデルに自己申告させた数値です。この数値が実際の正解率と一致しているかは検証していません。少なくとも、この一度の回答だけでは95%という確信度を信頼する根拠にはなりません。
実際にColeら[3]は、質問者の意図や文脈が曖昧な質問を扱い、言語モデルの確信度推定を検討しています。モデルが出す尤度だけでなく、複数回生成した回答の一致度を見る方法が、特に曖昧な質問で有効だったと報告しています。
なお、LLMの次トークンの生成確率と、完成した回答が正しい確率は同じものではありません。また、曖昧な質問なら必ずモデルが自信過剰になる、という意味でもありません。
ただ画像分類と共通して、入力や正解の定義が曖昧なとき、AIの確信度をそのまま「正しさ」と読み替えるのは危ういと言えそうです。
おわりに
AIが「90%」と出力したとしても、それが本当に9割の割合で正しいとは限りません。実際にCalibrationがずれることもありますし、そもそも「何を正解とするのか」が曖昧な場合もあります。
だから、予測確率を見るときには、何を正解として学習したのか、実際の正解率と合っているのか、入力自体に曖昧さはないかを考えたいです。
AIの予測確率は便利です。でも、「90%だから正しい」ではなく、「何に対する90%なのか?」を考えることが大事なのだと思います。
参考文献
- Guo, C. et al. (2017). On Calibration of Modern Neural Networks. ICML.
- Müller, R. et al. (2019). When Does Label Smoothing Help?. NeurIPS.
- Cole, J. et al. (2023). Selectively Answering Ambiguous Questions. EMNLP.





