モデルの確率、信じていいの?ー確率キャリブレーション入門

目次

はじめに

機械学習モデルが「このデータはクラスAである確率80%」と出力したとき、その「80%」を素直に信じていいのでしょうか。

実はこれ、多くの人が見逃しがちな落とし穴です。
分類モデルの多くは、出力される確率値が実際の当たる確率とずれていることがよくあります。このずれを整える技術が確率キャリブレーション(Probability Callibration)です。

今回はモデルが出す「確率」そのものの信頼性に焦点を当てます。

キャリブレーションとは何か

キャリブレーションが取れているとは、ざっくり言うと「モデルが80%と言った予測が、実際に集めてみると本当に80%くらいの頻度で当たっている」状態のことです。

これを視覚的に確認する方法が「信頼曲線(Reliability Diagram/ Calibration Curve)」です。
横軸にモデルの予測確率、縦軸に実際に正解率を取り、両者が一致していれば対角線上に点が並びます。曲線が対角線からずれるほど、モデルの確率は「盛って」いたり「控えめすぎ」たりすることになります。

よくあるパターンは以下の二つです。

過信型(Overconfident): モデルが80%と言っても実際には70%程度しか当たらない。予測が極端な値(0か1に近い)に偏りがち。

控えめ型(Underconfident): モデルが60%と言っても実際には80%当たっている。予測が中間的な値に集まりがち。

なぜキャリブレーションは崩れるのか

キャリブレーションが崩れる原因はいくつかあります。

1. モデルの学習方法そのもの
決定木やランダムフォレストのような手法は、確率というより「多数決の割合」に近い値を出すため、そもそも
確率として解釈しづらい構造を持っています。

2. クラス不均衡
少数クラスと多数クラスの比率が偏っていると、モデルは多数派側に引っ張られた確率を出しやすくなります。

3. ソフトマックスの過信問題
特に深層学習モデル、なかでもTransformer系の分類モデルはこの傾向が顕著です。ソフトマックス関数は「一番大きいスコアを極端に強調する」性質があるため、実際の不確実性以上に自信満々な確率を出しがちです。パラメータ数が大きいモデルほどこの過信が強くなるという報告もあります。テキスト分類のような自然言語処理タスクでBERT系モデルを使う場合、この問題は特に意識しておく必要があります。

代表的なキャリブレーション方法

キャリブレーションを直す方法として、よく使われるのが次の2つです。

Platt Scaling
モデルの出力(スコアやロジット)に対して、シグモイド関数を新たに一つ学習させ、確率を補正する方法です。
パラメータが少なく(基本的に2つ)、学習データが少なくても安定しやすいのが特徴です。
ただし、キャリブレーションのずれがシグモイド関数でない場合は、うまく補正しきれないことがあります。

Isotonic Regression
単調増加という制約だけを置いて、より柔軟にキャリブレーション関数を学習する方法です。
Platt Scalingより表現力が高く複雑なズレにも対応できますが、その分データ量が少ないと過学習しやすいという弱点があります。
目安として、データ数が少ない(数百件程度)ならPlatt Scaling、十分にある(数千件程度)ならIsotonic Regressionを検討する、という使い分けがよくされます。

Temperature Scaling
深層学習モデル向けによく使われる手法で、ソフトマックスに入れる前のロジットを「湿度(Temperature)」と呼ばれる一つのパラメータで割ることで、確率分布全体わ滑らかにします。
Platt Scalingの一種とも言えますが、パラメータが一つなので非常に軽量で、クラス間の順位(どれが一番確率が高いか)を変えずに確信度だけを調節できるのが利点です。
ニューラルネットワークの過信問題に対しては、ますこれを試してみる価値があります。

キャリブレーションの良し悪しをどう測るか

信頼曲線を目で見る以外に、数値で評価する指標もあります。

Brier Score
予測確率と実際の結果(0か1)の二乗誤差の平均。値が小さいほどいい予測。精度とキャリブレーションの両方を含んだ指標。

ECE(Expected Calibration Error)
予測確率をいくつかのビンに分け、各ビン内での「予測確率の平均」と「実際の正解率」の差を、ビンのサンプル数で重み付けして平均した値。キャリブレーションのズレそのものを直接測る指標として使われます。

精度(Accuracy)が高くてもECEが大きい、つまり「よく当たるけど確信度は信用できない」モデルは珍しくありません。この二つは別の軸としてみる必要があります。

実務で気をつけたいポイント

キャリブレーションを実施する際にありがちな落とし穴もいくつかあります。

同じデータで学習と補正をしない
モデルの学習に使ったデータでキャリブレーションも行うと、補正自体が過学習してしまいます。
学習用・キャリブレーション用・評価用でデータを分けるか、交差検証の中で補正を組み込む必要があります。

クラス不均衡データでは特に要注意
少数クラスのサンプルが少ないと、キャリブレーション自体も不安定になりやすいです。

キャリブレーションは「精度」を上げる技術ではない
あくまで確率の解釈可能性を上げる技術であり、予測の精度そのものを変えるわけではない点に注意が必要です。閾値を使った意思決定をする場面で特に効いてきます。

まとめ

モデルが出す確率は、そのままでは「信じていい数字」とは限りません。特に不均衡データや深層学習ベースの分類モデルでは、過信気味の確率が出やすい傾向があります。

・信頼曲線で目視確認する
・Platt Scaling/ Isotonic Regression/ Temperature Scaling で補正する
・Brier ScoreやECEで数値的に評価する
・学習データとキャリブレーション用データは分ける

この4点を押さえておくと、モデルの「確率」をより安心して意思決定に使えるようになります。

CTA
  • URLをコピーしました!
  • URLをコピーしました!
この記事を書いた人
目次