Temperature Scaling
温度スケーリングがAIモデルの信頼度をどのように調整するかを紹介します。非常に信頼性の高いUltralytics YOLO予測のために、出力確率を最適化する方法を学びましょう。
Temperature scalingは、Artificial Intelligence (AI)およびMachine Learning (ML)モデルの予測確率をキャリブレーションするために設計された、広く使用されているポストプロセッシング技術です。現代のディープラーニングでは、モデルは往々にして過信(オーバーコンフィデンス)を示す傾向があります。これは、予測確率が真の統計的キャリブレーションや正解の尤度を正確に反映していないことを意味します。Temperature scalingは、softmax関数を適用する前に、ネットワークの生の出力スコア(ロジット)を「温度」(T)と呼ばれる単一の学習済みスカラーパラメータで除算することでこれに対処します。この調整により、最終的なimage classificationの判断を変えることなく確率が平滑化され、モデルのconfidenceが実際の精度と密接に一致するようになります。
Link to this sectionTemperature scalingの仕組み#
標準的な分類ネットワークでは、最終層が生のロジットを出力し、それがsoftmax活性化関数を通過して合計が1になる確率に変換されます。現代のdeep learningアーキテクチャ、特にクロスエントロピーのようなloss functionsで高度に最適化されたものは、損失を最小化するためにロジットを極端な値に押し上げる傾向があります。その結果、モデルがキャリブレーションされず、過信に陥るという現象が発生します。
Temperature scalingは、softmax方程式に温度パラメータ(T)を導入します。
- T = 1の場合、softmax関数は通常通り機能します。
- T > 1の場合、ロジットがスケールダウンされ、出力分布が平滑化されます。これにより、ピーク時の信頼度が効果的に低下し、確率質量がすべてのクラスに均等に分散されます。
- T < 1の場合、分布が鋭くなり、モデルはトップ予測に対してより高い確信を持つようになります。
指定された検証セット上でTを最適化することで、エンジニアは期待キャリブレーション誤差を最小化します。この単純な単一パラメータの調整は、計算上のオーバーヘッドを最小限に抑え、model weightsの元の精度を維持できるため、非常に好まれています。
Link to this sectionTemperature ScalingとLabel Smoothingの比較#
どちらの技術もoverfittingと過信を防ぐことを目的としていますが、モデルのライフサイクルの異なる段階で作用します。Label smoothingはトレーニング中に適用されます。これは(ハードラベルを1.0から0.9に変更するなど)グランドトゥルースのターゲットを変更し、モデルが単一のクラスに100%の確率を割り当てるのを防ぎます。対照的に、Temperature scalingやFocal Temperature Scalingのような新しい亜種は、トレーニング完了後に適用される事後キャリブレーション手法であり、再トレーニングを必要とせずに完全にトレーニングされたモデルの出力確率を修正します。
Link to this section実社会での応用#
適切なモデルキャリブレーションは、多様な業界において安全性と信頼性を確保するために不可欠です。
- 医療診断: 脳腫瘍検出のようなタスクでは、過信による誤分類が深刻な臨床的影響を招く可能性があります。Temperature Scalingを使用することで、予測モデリングシステムが信頼性の高い確率を出力できるようになります。スケーリング後にスキャンの予測結果が極めて不確実な場合、システムは放射線科医による手動レビューが必要であると確信を持ってフラグを立てることができます。最近の臨床モデルのキャリブレーションに関する研究でも、制約のある重要な診断環境におけるその価値が強調され続けています。
- Large Language Models (LLMs): LLMにおいて、Temperature scalingは出力の確率性と生成の多様性を制御するために多用されており、OpenAIのtemperatureパラメータがその例です。温度が高いとより創造的で多様なテキストが生成され、低いと決定論的で焦点の絞られた応答が得られます。研究が進むにつれ、人間のフィードバックからの強化学習後に生じるキャリブレーションの低下を修正するためのAdaptive Temperature Scaling (ATS)のような技術が開発されています。
- Autonomous Vehicles: 自動運転において、object detectionシステムは障害物が歩行者なのか影なのかを即座に判断しなければなりません。これらのビジョンモデルをキャリブレーションすることで、モデルの真の信頼度が重要な安全しきい値を下回った際に、緊急ブレーキのようなフォールバックメカニズムが確実に作動するようになります。
Link to this sectionコード例:Temperature Scalingの実装#
The following snippet demonstrates how you might apply a temperature scalar to the raw logits of an Ultralytics YOLO26 classification model using PyTorch.
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の確率キャリブレーションフレームワークやTensorFlowの不確実性認識モデルを探求してください。






