YOLO Vision Shenzhen
深セン
今すぐ参加
用語集

等角予測

コンフォーマル予測が、AIに分布に依存しない不確実性をどのように提供するかを解説します。Ultralytics を使用して予測セットを実装し、信頼性の高いモデル結果を確保しましょう。

コンフォーマル予測は、 機械学習(ML)における統計的枠組みであり、 モデル予測に対する分布に依存しない不確実性の 度合いを提供します。コンフォーマル 予測器は、特定のクラスラベルといった単一の点予測を出力するのではなく、 ユーザー指定の確率(例: 90% や 95%)で真の値を含む予測集合または区間を出力します。 このフレームワークは、あらゆる 人工知能(AI)モデルに適用可能であり、 モデルのアーキテクチャを変更することなく、 形式的な統計的保証を提供します。最新のツールや研究の網羅的なリストについては、 「Awesome Conformal Prediction」リポジトリを 参照してください。

コンフォーマル予測の仕組み

その基本的な仕組みは、 不適合スコアを用いて、新しい予測が過去の事例と比べてどれほど異なっているかを評価することに依拠している。

  • モデルの学習: まず、標準的なトレーニングデータセットを使用してベースラインモデルを学習させます。
  • 調整フェーズ: 学習済みモデルに、別途用意した検証用データセットを入力する。各 予測に対して不適合スコアを算出する。 画像分類の場合、これは逆確率となる。
  • 分位数の計算: 目標信頼水準(例:95%)を決定し、これらのキャリブレーションスコアに対応する分位数を求め、 予測セットを構築する。
  • 推論アプリケーション: ライブ推論中は、新しい入力を評価し、スコアが キャリブレーション分位点を下回るすべての可能なラベルを含める。

この手法に関する数学的な証明については、 「コンフォーマル予測のやさしい入門」チュートリアルで詳しく解説しています。また、 時間的な不確実性に対処するための時系列予測手法についても 学ぶことができます。

コンフォーマル予測と関連用語の区別

このフレームワークを、モデル検証の際に使用される標準的な指標と 区別することが極めて重要です:

実際のアプリケーション

モデルの盲点を把握することが極めて重要な、リスクの高い分野においては、コンフォーマル予測が不可欠である。

  • 医療診断: 医療分野でAIを活用して画像診断を行う際、モデルは単一の(誤っている可能性のある)診断結果ではなく、 複数の妥当な診断候補を出力することがあります。これにより、臨床医はあらゆる可能性を検討できるようになり、 信頼性の高いゲノム医療や画像診断に関する最近の 研究を裏付けるものとなります。
  • 自動運転:自動車システムにおけるAIでは、物体検出に予測区間を適用することで、 歩行者の周囲に空間的な信頼領域が生成され、 車両のブレーキシステムが最悪のケースの動きを安全に考慮できるようになります。

予測セットの実装

MAPIE(Model Agnostic Prediction Interval Estimator)のようなライブラリは、 Pythonツールを提供しており、回帰タスクではしばしば コンフォーマル分位数回帰が利用されます。 また、 Ultralytics のような高度なモデルの確率を用いて、 基本的なコンフォーマル予測ロジックを実装することも可能です。以下の例では、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}")

信頼性の高いシステムを開発するには、データのドリフトによって キャリブレーションが損なわれるのを防ぐための、堅牢なデータ管理手法が必要です。 Ultralytics のようなツールを使えば、最新の 分類データセットの収集、モデルの再学習、そしてモデル展開の 安全な管理といったプロセスを簡素化できます。バランスの取れたデータの キュレーションに関する詳細は、データセットのバイアスに関する ガイドをご覧いただくか、毎年開催される COPAカンファレンスで発表されるtrack 。

共にAIの未来を築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。