Temperature Scaling
温度スケーリングがAIモデルの信頼度をどのように調整するかを紹介します。非常に信頼性の高いUltralytics YOLO予測のために、出力確率を最適化する方法を学びましょう。
Temperature scalingは、Artificial Intelligence (AI)やMachine Learning (ML)モデルの予測確率をキャリブレーションするために広く使用されているポストプロセッシング技術です。現代のディープラーニングにおいて、モデルは過度の自信(オーバーコンフィデンス)を示すことが多く、予測された確率が真のstatistical calibrationや正解の尤度を正確に反映していないことを意味します。Temperature scalingは、softmax関数を適用する前に、ネットワークの生出力スコア(ロジット)を「temperature」(T)と呼ばれる単一の学習済みスカラーパラメータで割ることによって、この問題に対処します。この調整により、最終的なimage classificationの決定を変更することなく確率が緩和され、モデルのconfidenceが実際の精度と密接に一致するようになります。
Temperature scalingの仕組み#
標準的な分類ネットワークでは、最終層が生ロジットを出力し、それがソフトマックス活性化関数を通過して、合計が1になる確率を生成します。現代のdeep learningアーキテクチャ、特にクロスエントロピーなどのloss functionsで厳密に最適化されたものは、損失を最小限に抑えるためにこれらのロジットを極端な値に押し上げる傾向があり、モデルのキャリブレーションが狂って過度の自信を持つ現象を引き起こします。
Temperature scalingは、softmax方程式に温度パラメータ(T)を導入します。
- T = 1の場合、softmax関数は通常通り機能します。
- T > 1の場合、ロジットがスケールダウンされ、出力分布が平滑化されます。これにより、ピーク時の信頼度が効果的に低下し、確率質量がすべてのクラスに均等に分散されます。
- T < 1の場合、分布が鋭くなり、モデルはトップ予測に対してより高い確信を持つようになります。
指定された検証セットでTを最適化することで、エンジニアは期待キャリブレーション誤差を最小限に抑えます。このシンプルで単一パラメータの調整は、最小限の計算オーバーヘッドで済み、model weightsの元の精度を維持するため、非常に好まれています。
Temperature ScalingとLabel Smoothingの比較#
どちらの技術もoverfittingと過度の自信を防ぐことを目的としていますが、モデルのライフサイクルの異なる段階で動作します。Label smoothingはトレーニング中に適用されます。これは、モデルが単一のクラスに完全な確率を割り当てるのを防ぐために、正解ターゲットを変更します(たとえば、ハードラベルを1.0から0.9に変更するなど)。対照的に、Temperature scalingやFocal Temperature Scalingのような新しいバリアントは、トレーニングが完了した後に適用される事後キャリブレーション方法であり、再トレーニングを必要とせずに完全にトレーニングされたモデルの出力確率を変更することを意味します。
実社会での応用#
適切なモデルキャリブレーションは、多様な業界において安全性と信頼性を確保するために不可欠です。
- Medical Diagnostics: 脳腫瘍検出などのタスクでは、過度に自信過剰な誤分類が重大な臨床的結果につながる可能性があります。Temperature scalingを使用することで、predictive modelingシステムが信頼性の高い確率を出力することが保証されます。スキャンの予測のスケーリング後に不確実性が高い場合、システムはその画像を放射線科医による手動レビュー用に確実にフラグ付けできます。臨床モデルのキャリブレーションに関する最近の研究は、制約の厳しいハイステークスの診断環境におけるその価値を強調し続けています。
- Large Language Models (LLMs): LLMの場合、OpenAI's temperature parameterに見られるように、出力の確率性と生成の多様性を制御するためにTemperature scalingが多用されます。高い温度はより創造的で多様なテキストを生成し、低い温度は決定的で焦点を絞った応答をもたらします。研究が進むにつれて、Adaptive Temperature Scaling (ATS)などの技術が開発されており、人間のフィードバックからの強化学習後にしばしば発生するキャリブレーションの劣化を修正しています。
- Autonomous Vehicles: 自動運転において、object detectionシステムは、障害物が歩行者であるか影であるかを即座に判断する必要があります。これらのビジョンモデルをキャリブレーションすることで、モデルの実際の信頼性がクリティカルな安全しきい値を下回ったときに、緊急ブレーキなどのフォールバックメカニズムが確実にトリガーされるようになります。
コード例:Temperature Scalingの実装#
次のスニペットは、PyTorchを使用して、Ultralytics YOLO26classificationモデルの生ロジットに温度スカラーを適用する方法を示しています。
import torch
import torch.nn.functional as F
from ultralytics import YOLO
# Load a pre-trained Ultralytics YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Assume 'logits' are the raw outputs from the model prior to activation
# (e.g., obtained via a custom forward pass or feature extraction)
logits = torch.tensor([[5.0, 2.0, 0.5]])
# Define an optimized temperature scalar (T > 1 softens the probabilities)
temperature = 1.5
# Apply temperature scaling before passing logits to the softmax function
scaled_logits = logits / temperature
calibrated_probabilities = F.softmax(scaled_logits, dim=1)
print(f"Original Softmax: {F.softmax(logits, dim=1)}")
print(f"Calibrated Probabilities: {calibrated_probabilities}")キャリブレーションされたコンピュータビジョンシステムをシームレスにデプロイしたいチームのために、Ultralytics Platformは、experiment trackingの管理、モデルの微調整、およびリアルタイムのinference latencyのモニタリングのための堅牢なツールを提供します。さらに、現代のキャリブレーション技術に関する基礎知識は、Temperature scalingを業界標準として普及させた「On Calibration of Modern Neural Networks」などの影響力のある研究にまで遡ることができます。さらなる実用的な実装については、scikit-learn's probability calibrationフレームワークまたはTensorFlow's uncertainty-aware modelsを探索してください。






