Temperature Scaling
温度スケーリング(Temperature scaling)がどのようにAIモデルの信頼度を調整するかを学びます。高度に信頼性の高いUltralytics YOLO予測のために、出力確率を最適化する方法を習得しましょう。
Temperature scalingは、Artificial Intelligence (AI)およびMachine Learning (ML)モデルの予測確率をキャリブレーションするために広く利用されているポストプロセッシング技術です。現代のディープラーニングにおいて、モデルはしばしば過信(overconfidence)を示す傾向があり、予測された確率が真のstatistical calibrationや正解の尤度を正確に反映していないことがあります。Temperature scalingは、softmax関数を適用する前に、ネットワークの生の出力スコア(logits)を「temperature」(T) と呼ばれる学習済みの単一のスカラーパラメータで割ることでこの問題に対処します。この調整により、最終的なimage classificationの判断を変更することなく確率が緩和され、モデルのconfidenceが実際の精度と密接に一致するようになります。
Link to this sectionTemperature scalingの仕組み#
標準的な分類ネットワークでは、最終層が生のlogitsを出力し、それがsoftmax活性化関数を通過して合計が1になる確率に変換されます。現代のdeep learningアーキテクチャ、特にクロスエントロピーのようなloss functionsで最適化されたモデルは、損失を最小化するためにlogitsを極端な値に押し付ける傾向があり、その結果、モデルのキャリブレーションが崩れ過信状態になる現象が発生します。
Temperature scalingでは、softmax関数に温度パラメータ(T)を導入します。
- T = 1の場合、softmax関数は通常通りに動作します。
- T > 1の場合、logitsは縮小され、出力分布が緩和されます。これにより、ピーク時の信頼度が低下し、確率質量がすべてのクラスに均等に分散されます。
- T < 1の場合、分布は鋭くなり、モデルは上位の予測に対してさらに高い確信を持つようになります。
指定された検証セットでTを最適化することにより、エンジニアは期待キャリブレーション誤差を最小化します。このシンプルな単一パラメータ調整は、計算上のオーバーヘッドが最小限であり、model weightsの元の精度を保持できるため、非常に推奨されています。
Link to this sectionTemperature scalingとLabel smoothingの比較#
どちらの技術もoverfittingや過信を防ぐことを目的としていますが、モデルのライフサイクルの異なる段階で動作します。Label smoothingは学習中に適用されます。これはグラウンドトゥルースのターゲットを変更(例:ハードラベルを1.0から0.9に変更)することで、モデルが単一のクラスに完全な確率を割り当てることを防ぎます。対照的に、Temperature scalingやFocal Temperature Scalingのような新しい亜種は、学習完了後に適用される事後キャリブレーション手法であり、再学習を必要とせずに完全に学習されたモデルの出力確率を修正します。
Link to this section実世界でのアプリケーション#
適切なモデルキャリブレーションは、多様な産業における安全性と信頼性のために極めて重要です。
- Medical Diagnostics: 脳腫瘍検出などのタスクでは、過信による誤分類が深刻な臨床的結果を招く可能性があります。Temperature scalingを使用することで、predictive modelingシステムが信頼性の高い確率を出力できるようになります。スケーリング後にスキャンの予測の不確実性が高い場合、システムはその画像を放射線科医による手動確認のために自信を持ってフラグ立てできます。最近のstudies on calibrating clinical modelsは、制約の多い高リスクな診断環境におけるその価値を強調し続けています。
- Large Language Models (LLMs): LLMにおいて、Temperature scalingは出力の確率性と生成の多様性を制御するために多用されており、OpenAI's temperature parameterがその例です。高い温度はより創造的で多様なテキストを生成し、低い温度は決定論的で焦点の絞られた回答をもたらします。研究が進むにつれ、人間のフィードバックによる強化学習(RLHF)の後に頻繁に発生するキャリブレーションの低下を補正するために、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's probability calibrationフレームワークやTensorFlow's uncertainty-aware modelsをご覧ください。






