今回の論文
今回取り上げるのは、Chuan Guo、Geoff Pleiss、Yu Sun、Kilian Q. Weinbergerによる「On Calibration of Modern Neural Networks」です。2017年6月14日にarXivで初公開され、ICML 2017で発表されました。研究分野は、分類ニューラルネットワークの確率校正と予測の信頼性評価です。arXivの書誌情報と、公開元であるPMLRの会議録から確認できます。
選んだ理由は、AIを業務へ組み込む際に、「何と分類したか」に加えて「どの予測なら自動処理に回せるか」が重要になるためです。この論文は、大きなモデルを再学習する前に、出力する確率の読み方を整えるという実装しやすい手段を示しています。以下では、会議録の本文と補足資料に基づき、Temperature Scalingを中心に解説します。
どんな技術か
Temperature Scaling(温度スケーリング)は、学習済み分類モデルが出す確信度を、正解付きの検証データで補正する後処理です。確率校正、あるいはキャリブレーションの一種です。
例えば、問い合わせ分類モデルが、ある集団の入力すべてに「請求関連である確率は約90%」と出したとします。その集団で実際に正解している割合が70%なら、モデルは自信過剰です。校正では、こうした確信度と正解率のずれを小さくすることを目指します。この例は説明用で、原論文の業務実験ではありません。
補正するのは、確率に変換する前のクラス別スコアです。すべてのクラスのスコアを、共通の正の数Tで割ってから確率へ変換します。学ぶ値はこのT一つだけで、モデル本体の重みは固定します。
この処理では、各入力について最も高いスコアのクラスは変わりません。したがって通常のTop-1分類精度も変わりません。間違いを正解へ直す技術ではなく、予測の確信度を実績に近づける技術です。原論文4.2節
課題
分類器の性能を正解率だけで測ると、確信度の問題を見落とします。同じ80%の正解率でも、常に99%の確信度を出すモデルと、難しい入力では確信度を下げるモデルでは、自動化の設計が変わります。
ニューラルネットワークでは、スコアをsoftmaxへ通せば、合計が1のクラス確率を得られます。しかし、合計が1になることと、その数値が実際の正しさを表すことは別です。モデルが「0.95」と出しただけでは、同様の予測が95%正しいとは限りません。
原論文は、当時の画像分類モデルで、深さや幅を増やして誤り率が下がっても、校正のずれが大きくなる例を報告しています。正しいクラスの順位が変わらなくても、その確率をさらに上げれば学習損失を小さくできるため、分類精度と確率の品質が同じように改善するとは限りません。ただし著者らは、構造や正則化との関係について因果を断定していません。原論文3節
実際のシステムでは、「確信度が高ければ自動振り分け、低ければ担当者確認」というしきい値運用で問題になります。しきい値を0.9に設定しても、その値が未校正なら、期待した誤処理率を得られない可能性があります。既存の校正手法には、確率を区間ごとに置き換える方法や、クラス別の変換を学ぶ方法もありますが、少ない検証データで複雑な補正を学ぶと過学習する懸念があります。
用語解説
- logitとsoftmax
- logitは、確率へ変換する前のクラス別スコアです。softmaxは、そのスコアを指数関数で変換して合計1に正規化します。Temperature Scalingは、最大確率だけを後から割るのではなく、logit全体を調整してからsoftmaxを計算します。
- 確信度と確率校正
- この記事の確信度は、モデルが選んだクラスの予測確率です。確率校正は、似た確信度を持つ予測の集団について、その平均確信度と実際の正解率を近づけることです。個々の入力の正しさを保証する意味ではありません。
- 負の対数尤度(NLL)
- 正解クラスへ割り当てた確率の対数に、負号を付けた損失です。自信を持って間違えた予測には大きな損失が付きます。温度Tは、正解付き検証データのNLLが小さくなるように学習します。
- Expected Calibration Error(ECE)
- 確信度を区間へ分け、各区間の平均確信度と正解率の差を、件数に応じて加重平均する指標です。小さいほどずれが小さいと読めますが、区間の切り方や評価件数に左右されます。論文の主な比較では15個の等幅区間を使います。
- 校正用データ
- 学習済みモデルの出力を、正解と照合して補正するためのデータです。モデル本体を学習するデータとは役割が異なります。補正の効果を測る最終テストにも同じデータを使うと、未見入力に対する信頼性を適切に確認できません。
技術の仕組み
クラス全体に、共通の温度を適用します
入力xに対するクラスkのlogitをz_kとすると、補正後の確率q_kは次のようになります。分母では、すべてのクラスjについて値を足します。
q_k = exp(z_k / T) / Σ_j exp(z_j / T)
T > 0
T=1なら、元のsoftmaxと同じです。Tを1より大きくするとスコア差が縮まり、確率分布は平らになります。逆に0より大きく1より小さいTでは、分布が鋭くなります。Tは決め打ちで大きくするのではなく、検証データから選びます。
例えば3クラスのlogitが[3, 1, 0]なら、T=1での確率はおよそ[0.844, 0.114, 0.042]です。T=2にすると、およそ[0.629, 0.231, 0.140]になります。最大のクラスは変わらず、その確信度が下がります。これは式から計算した説明例であり、論文の測定値ではありません。
正の共通値で割るので、一つの入力内のクラス順位を保つことが重要です。ただし、異なる入力同士の最大確信度の順位まで必ず保つとは限りません。自動処理に採用する入力の集合は、補正によって変わり得ます。
本体を固定し、NLLでTだけを学習します
まず通常どおり分類モデルを学習します。その後はモデルを固定し、校正用データについて各入力のlogitと正解ラベルを集めます。校正用の入力iの正解クラスをy_iとすると、最小化する目的は次のように書けます。
T* = argmin_{T > 0} Σ_i -log(q_{i, y_i}(T))
正解へ十分な確率を置きつつ、自信過剰な誤予測も抑えられるTを探します。全件の合計を平均へ変えても、最小化するTは同じです。実装では、例えばT=exp(s)として実数sを最適化すれば、Tを正に保てます。これは実装上の方法例です。
ここで直接最小化するのはECEではなくNLLです。検証データのNLLが下がったからといって、別のテストデータのECEまで必ず下がるわけではありません。最終的には未使用のテストデータで両方を確かめます。原論文2節・4.2節
推論では、保存したTを一度適用します
処理の流れを整理すると、次のようになります。
モデル本体を学習
→ 本体を固定
→ 校正用データのlogitと正解でTを学習
→ 独立したテストで校正を評価
本番入力 → 分類モデル → logit / 保存したT → softmax
→ クラスと確信度 → 自動処理または確認
推論のたびに複数のモデルを動かす必要はありません。クラス数Kに比例するスコアの除算が加わるだけで、モデル本体の再計算回数は増えません。ただし、確率の最大値一つしか返さないAPIでは、同じ変換をそのまま実装できません。基本形ではクラス全体のlogitを取得する設計が必要です。
ECEは、確信度の区間ごとにずれを測ります
例えば、ある区間に全評価データの20%が入り、その区間の平均確信度が0.9、正解率が0.7なら、ECEへの寄与は0.2×|0.9−0.7|=0.04です。これを全区間で足します。この計算例も、指標の説明用です。
平均確信度と正解率を区間ごとに並べる図は、Reliability Diagramと呼ばれます。理想的には両者が一致します。ECE一つにまとめる前に区間別のずれを見ると、運用で使いたい高確信度の領域に問題が残っていないか確認できます。原論文2節・式3
実験と結果
画像と文章の分類で、校正前後を比較しています
原論文は、CIFAR-10/100、ImageNet、鳥種・車種の画像などと、ニュース分類・感情分類のデータで評価しています。画像にはResNetやDenseNet、文章にはDANやTreeLSTMを使っています。生成LLMが回答した文章の事実性を測る実験ではありません。
CIFAR-10/100では、学習45,000件、検証5,000件、テスト10,000件です。検証データで補正を学び、テストでECEを測ります。以下は本文表1の抜粋で、15個の等幅区間を使うECEを百分率表示した値です。小さいほどよく、分類の誤り率とは異なります。
| データとモデル | 未校正ECE | Temperature Scaling後ECE |
|---|---|---|
| CIFAR-100・ResNet-110 | 16.53% | 1.26% |
| CIFAR-10・ResNet-110 | 4.60% | 0.83% |
| ImageNet・ResNet-152 | 5.48% | 1.86% |
| Reuters・DAN-3 | 0.85% | 0.91% |
CIFAR-100・ResNet-110では大きな校正改善が見られます。一方、すでにずれが小さいReutersでは、ECEはわずかに悪化しています。「一つの温度で直せる場合がある」ことは示しますが、どのモデルにも必ず改善が出るわけではありません。原論文5節・表1
正解率を上げず、確率の品質を改善しています
補足表S3では、CIFAR-10・ResNet-110のテストNLLが0.3285から0.2102へ下がっています。一方、補足表S2の分類誤り率は、校正前後とも6.21%です。選ぶクラスを変えずに、確率の割り当てを改善した結果です。
Reutersでは、NLLは0.102から0.0994へ下がる一方、前述のECEは悪化しています。NLLとECEは異なる側面を測るので、片方の改善をもう片方の保証として読めません。補足資料の表S2・S3
最も単純な方法が、常に最良というわけではありません
CIFAR-10・ResNet-110のECEは、Temperature Scalingの0.83%に対して、Histogram Binningが0.58%、BBQが0.54%でした。原論文の全結果を「温度スケーリングがどの条件でも首位」とまとめるのは不正確です。
この論文から読み取れる実用上の価値は、パラメータ一つの後処理が、多くの条件で有力な基準になることです。分類精度を維持でき、クラス数の多い変換行列を学ぶ必要もありません。ただし掲載値だけで、別のデータ分割や日本語業務データでも同じ差が再現するとまでは言えません。原論文の比較表1
何に使える?
以下は、技術の性質から考えられる応用です。原論文が各業務で自動化率や費用削減を実証したものではありません。
問い合わせ分類から、人手確認へ回す経路
「請求」「操作方法」「不具合」などに分ける分類器で、確信度を基準に自動振り分けする用途が考えられます。校正後の確率を使えば、数値と実際の正解率の関係を確認しながら、採用しきい値を検討できます。
例えば、0.9以上の予測を採用したときに、何件を自動処理でき、何件を誤って振り分けるかを別の評価データで測ります。分類器そのものを少量データで作る方法としては、文章ペアから分類を学ぶSetFitが比較の出発点になります。SetFitとTemperature Scalingの併用効果は、本論文では未検証です。
画像分類を使う点検・整理ツール
点検写真を設備種別へ分けたり、商品の画像を既知カテゴリへ整理したりする場合にも使えそうです。すでに動く分類モデルがあり、logitを取り出せるなら、モデル本体の追加学習とは別に校正工程を設けられます。
ただし、暗い現場や新しいカメラの画像が校正データに含まれない場合、その環境でも信頼性が保たれるとは限りません。想定する撮影条件に近い正解付きデータで検証する必要があります。
RAGやエージェントの前段分類
質問を「FAQで対応」「文書を検索」「担当者へ引き継ぐ」といった既知の経路へ分類するモデルでも、校正された確信度は判断材料になり得ます。低確信度なら、より広い検索や人手確認へ切り替える設計です。
ここで校正できるのは、定義した経路ラベルに対する分類確率です。後段の生成文が正しい確率へ、そのまま読み替えることはできません。経路選択の評価と最終回答の評価を別々に行う必要があります。
開発や事業へのヒント
精度改善と、確率の改善を別工程にします
小規模なAIアプリでも、分類精度を十分に検証した後、モデルが出す確率を測り直す工程は導入できます。まず「どのクラスへ間違えるか」を調べ、その後「どの確信度で間違えるか」を確認すると、モデル更新と校正のどちらが必要か整理できます。
しきい値を置く前に、未校正モデルを基準として残し、Temperature Scaling後のECE、NLL、自動処理率、採用した予測の誤り率を比較する方法が考えられます。校正しただけで自動処理件数が増えると期待せず、狙った品質を維持できる範囲を測ることが大切です。
データ分割と、保存する単位を設計します
実務では、モデル学習、温度の学習、しきい値の調整、最終テストの役割を区別すると、評価への過適合を避けやすくなります。データが少なければ分割による結果の変動も調べます。同じ問い合わせの複製や、同じ商品の連写を複数の集合へ混ぜない配慮も必要です。
温度Tはモデルの版と一緒に管理します。モデルの重み、クラス定義、入力前処理が変われば、同じTが有効とは限りません。「モデルだけ更新して校正値を流用する」という運用を避け、再評価の対象にするとよいでしょう。
単一の平均値より、実際の採用領域を見ます
全体ECEが小さくても、件数の少ないクラスや特定の顧客群にずれが残る可能性があります。全体指標に加えて、クラス、入力元、確信度帯ごとの件数と誤りを記録する設計が役立ちます。
特に自動処理が0.95以上だけなら、その領域の実績が重要です。少ない評価件数で「95%正しい」と決めつけず、件数と不確実さも確認してください。この見方は、論文の区間別評価を業務判断へ広げたものです。
限界
一つの温度で直せるのは、共通のスコア尺度で表せるずれに限られます。 特定クラスだけ自信過剰で別のクラスは過小評価、といった複雑な偏りを完全に補正できるとは限りません。クラスの順位を維持するため、分類境界自体の誤りも修正しません。
データ依存性もあります。校正用データと本番入力の分布が違えば、過去に学んだTでは十分に校正されない可能性があります。未知クラスを見分ける専用の仕組みでもありません。既知クラスへ自信を持って誤分類する入力を、必ず検出できるとは言えません。
評価にも制約があります。ECEは区間の切り方と件数に依存し、区間内や少数の集団のずれを隠す場合があります。また、校正は予測集団についての性質であり、確信度0.9の個別入力が正しいことを保証しません。自動処理のしきい値は、採用された入力の誤り率を別に測って判断します。
計算量は小さいものの、正解付き校正データの用意とlogitの収集は必要です。実装ではモデルを固定して推論時の状態で出力を集め、正解ラベルとクラス順を一致させます。最大確率だけをTで割ったり、補正後の確率を再びlogitとして扱ったりすると、論文の方式にはなりません。
原論文の中心は2017年の画像・文章分類モデルです。生成LLMのトークン確率や、モデルが文章で述べる「自信90%」を、回答全体の事実性へ直接対応させる実証ではありません。生成APIのtemperature設定を変更するだけで、回答の正しさが校正されるとも言えません。
よくある質問
Q. 温度スケーリングを入れると、分類精度は上がりますか?
A. 正の共通温度を使う基本形では、各入力内のクラス順位が変わらないため、Top-1分類精度は変わりません。確信度にしきい値を置いた場合に、どの入力を採用するかは変わり得ます。全件の分類精度と、採用した入力だけの誤り率を分けて評価してください。
Q. Tは2などの固定値にすればよいですか?
A. 説明例のT=2は推奨値ではありません。モデル本体を固定し、本番に近い正解付き校正データのNLLを最小化して選びます。すでに校正されているモデルでは、補正の効果が小さい場合や、テストECEが悪化する場合もあります。
Q. 確信度0.9以上なら、誤り率10%以下を保証できますか?
A. 保証できません。有限のデータで得た校正は完全ではなく、分布変化や少数クラスのずれも残ります。実際に採用する条件を固定した上で、独立した評価データの採用件数と誤り率を確認する必要があります。
Q. 正解ラベルがなくてもTを学べますか?
A. 原論文の方式では、正解クラスに割り当てた確率のNLLを使うため、正解ラベルが必要です。モデル自身の予測を正解として使うだけでは、確信度と実際の正しさのずれを測れません。
Q. 生成AIのtemperatureと同じものですか?
A. logitを温度で割る計算は共通ですが、目的と決め方が異なります。この記事では、既知クラスの正解付きデータから温度を学び、分類確率を補正します。文章生成の多様性を調整する設定を変えるだけで、回答全体が正しい確率を得られるわけではありません。
今日の学び
この論文は、分類モデルの正解率が高くても、出力する確信度が実際の正しさと一致しない課題を扱いました。モデル本体を固定し、クラス全体のlogitへ共通の温度を適用する後処理で、そのずれを補正します。
得られるヒントは、AIの出力を業務判断へ使う前に、予測の正しさと確信度の信頼性を別々に確かめることです。新しい巨大モデルを用意しなくても、校正データと評価工程を整えることで、自動処理と人手確認の境界を具体的に検討できます。