Conformal Prediction
Conformal PredictionがAIにどのように分布フリーな不確実性を提供するかを解説します。Ultralytics YOLO26で予測セットを実装し、信頼性の高いモデル結果を保証する方法を学びましょう。
Conformal prediction(沿形予測)は、モデルの予測に対してdistribution-free measures of uncertaintyを提供するmachine learning (ML)の統計的フレームワークです。単一の特定のクラスラベルなどの単一のポイント予測を出力する代わりに、沿形予測子は、ユーザーが指定した確率(90%や95%など)で真の値を含む予測セットまたは区間を出力します。このフレームワークは、モデルのアーキテクチャを変更する必要なく、形式的なstatistical guaranteesを提供するために、任意のartificial intelligence (AI)モデルをラップします。最新のツールや研究の網羅的なリストについては、Awesome Conformal Predictionリポジトリをご覧ください。
Conformal Predictionの仕組み#
基本的なメカニズムは、nonconformity scoreを使用して、新しい予測が過去の例と比較してどれほど異例であるかを評価することに基づいています。
- Model Training:まず、標準的なトレーニングデータセットを使用してベースラインモデルをトレーニングします。
- Calibration Phase:分離された保持用のキャリブレーションデータセットをトレーニング済みモデルに入力します。image classificationにおける逆確率など、各予測の不適合度スコアを計算します。
- Quantile Calculation:目標の信頼水準(95%など)を決定し、これらのキャリブレーションスコアの対応する分位数を求めて予測セットを構築します。
- Inference Application:ライブ推論中、新しい入力を評価し、スコアがキャリブレーション分位数未満になるすべての可能なラベルを含めます。
このアプローチの数学的証明については、A Gentle Introduction to Conformal Predictionのチュートリアルをご覧いただくか、時間的不確実性を処理するためのtime-series forecasting approachesについて学ぶことができます。
Conformal Predictionと関連用語の区別#
このフレームワークを、model testing中に使用される標準的な指標と区別することが重要です:
- Conformal Prediction vs. Confidence Scores:標準的な信頼度スコアはモデルの内部確実性を反映しますが、多くの場合、較正が不十分であり、数学的な保証が欠けています。沿形予測は、これらの未加工のスコアを保証されたセットに変換します。従来調整については、scikit-learn's probability calibrationをご覧ください。
- Conformal Prediction vs. Accuracy:精度は、モデルがデータセット全体でどれだけ頻繁に正しいかを記述するグローバルな履歴指標ですが、conformal inferenceは、すべての新しい予測に対してローカルなインスタンス固有の区間を提供します。
実社会での応用#
Conformal predictionは、モデルの盲点を知ることが不可欠なハイステークスな分野において、なくてはならないものです。
- Medical Diagnostics:ヘルスケアでスキャンを分析するためにAIを活用する場合、モデルは潜在的に不正確な単一のクラスではなく、妥当な診断のセットを出力する場合があります。reliable genomic medicine and imagingに関する最近の研究をサポートし、臨床医がすべての実行可能な可能性を調査できるようにします。
- Autonomous Driving:自動車システムのAIにおいて、object detectionに予測区間を適用すると、歩行者周囲の空間的信頼領域が生成され、車両の制動システムが最悪の状況の動きを安全に考慮できるようになります。
予測セットの実装#
MAPIE (Model Agnostic Prediction Interval Estimator)などのライブラリはPython用の組み込みツールを提供しており、回帰タスクでは多くの場合conformal quantile regressionが活用されます。Ultralytics YOLO26などの高度なモデルからの確率を使用して、基本的な沿形予測ロジックを実装することもできます。次の例では、累積なしきい値に達するまで上位クラスを含めるロジックを模倣して、YOLO26分類確率を使用して予測セットを構築します。
from ultralytics import YOLO
# Load an Ultralytics YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Perform inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Simple conformal-style prediction set logic based on cumulative probability
target_coverage = 0.95
prediction_set = []
cumulative_prob = 0.0
# Sort probabilities in descending order using the results object
probs = results[0].probs
sorted_indices = probs.top5
for idx in sorted_indices:
class_name = results[0].names[idx]
class_prob = probs.data[idx].item()
prediction_set.append((class_name, round(class_prob, 3)))
cumulative_prob += class_prob
# Stop adding to the set once we reach the 95% coverage threshold
if cumulative_prob >= target_coverage:
break
print(f"95% Prediction Set: {prediction_set}")信頼性の高いシステムを開発するには、data driftがキャリブレーションを台無しにするのを防ぐための堅牢なデータプラクティスが必要です。Ultralytics Platformなどのツールは、新鮮なclassification datasetsの収集、モデルの再トレーニング、およびmodel deploymentの安全な管理のプロセスを簡素化します。understanding dataset biasに関するガイドでバランスの取れたデータのキュレーションについて詳しく読むか、年次COPA conferenceで発表された最新の進歩を追跡することができます。






