Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Conformal Prediction

コンフォーマル予測は、あらゆるモデルのスコアを予測集合または区間に変換し、95%など指定した割合で正解を含むようにします。

コンフォーマル予測は、任意の学習済みモデルのスコアを予測セットまたは区間に変換し、ユーザーが選んだ割合、たとえば95%の頻度で真の答えを含むことを保証する不確実性定量化のフレームワークです。コンフォーマル画像分類器は、可能性が残るすべてのラベルを返します。画像が明確なら1つ、曖昧なら複数のラベルを返し、コンフォーマル回帰器は区間を返します。キャリブレーションデータと新しいデータが交換可能であれば、この保証はどのモデルやデータ分布にも成り立ちます。交換可能とは、同じ出所からの独立したサンプルであることを意味します。Vladimir Vovk、Alexander Gammerman、Glenn Shaferは1990年代後半からこの手法を開発し、2005年の著書Algorithmic Learning in a Random Worldにまとめました。Anastasios AngelopoulosとStephen Batesによる2021年のチュートリアル「A Gentle Introduction to Conformal Prediction」では、機械学習で使われる最新の手法を解説しています。

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

元の完全なコンフォーマル法では、候補となる回答ごとにモデルを再学習するため、深層学習には遅すぎます。2002年にHarris Papadopoulosらが提唱した分割型、または帰納的コンフォーマル予測では、学習済みモデルと、学習に使用していないキャリブレーション用データセットだけで済みます。

  1. 通常どおり、学習データでモデルを学習させます。
  2. モデルが見たことのないラベル付きキャリブレーション例n件に対して実行し、それぞれについて非適合度スコアを計算します。これは、正解がモデルにとって典型的でないほど大きくなる数値です。分類器では、正解クラスに割り当てられた確率を1から引いた値が、一般的なスコアです。
  3. これらのスコアのceil((n + 1) x (1 - alpha)) / n分位点を求め、qhatと呼びます。(n + 1)項は、保証を正確にする有限標本補正です。
  4. 新しい入力に対して、スコアがqhat以下の候補ラベルをすべて含めます。

この結果得られる集合には、少なくとも1 - alphaの確率で正解ラベルが含まれます。新しい例のスコアはn個のキャリブレーションスコアと交換可能であり、どの順位に入る可能性も等しいため、少なくとも1 - alphaの割合でqhat以下になります。

保証の対象#

この保証は周辺的なもので、すべての入力にわたる平均で成り立ちます。モデルは簡単なクラスを過剰にカバーし、希少なクラスを十分にカバーできない場合があるため、クラス条件付き(Mondrian)コンフォーマル予測では、クラスごとに個別のqhatをキャリブレーションします。仮定は交換可能性だけですが、データドリフトが発生するとこの仮定は成り立ちません。つまり、本番環境の画像がキャリブレーション画像と異なる場合です。そのため、キャリブレーション用データセットはデプロイ先のデータから作成し、そのデータが変化したら更新する必要があります。キャリブレーション用データセットのデータセットバイアスは、そのまま予測集合に引き継がれます。

有用な指標は集合サイズです。有効な手法はどれも目標カバレッジを達成するため、手法の優劣は集合をどれだけ小さくできるかで決まり、より精度の高いモデルほど集合が小さくなります。ImageNet分類器で評価されたAdaptive Prediction Sets(APS)とRegularized Adaptive Prediction Sets(RAPS)は、累積確率を使って集合サイズを難易度に対応させます。また、コンフォーマル化分位点回帰では、データのノイズが大きい領域ほど幅が広い区間が得られます。

コンフォーマル予測は、関連する3つの概念とは異なります。信頼度スコアは、保証が付随しない単一の数値です。温度スケーリングなどのキャリブレーション手法は、スコアを観測された精度によりよく一致させます。これによりコンフォーマル集合は小さくなりますが、単独ではカバレッジを保証しません。統計的信頼区間は平均などの母集団パラメーターに関する不確実性を表す一方、コンフォーマル集合は、新たな1つの結果がどこに入るかを表します。

実践での予測集合#

分類器が誤りを起こすよう、意図的に小さな学習セットを用いた、上記手順のscikit-learnでの実装例です。

import numpy as np
from sklearn.datasets import load_digits
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

# Split handwritten digits into training, calibration, and test sets
X, y = load_digits(return_X_y=True)
X_train, X_rest, y_train, y_rest = train_test_split(X, y, train_size=100, random_state=0)
X_cal, X_test, y_cal, y_test = train_test_split(X_rest, y_rest, train_size=500, random_state=0)
model = LogisticRegression(max_iter=2000).fit(X_train, y_train)

# Nonconformity score: 1 minus the probability given to the true class
scores = 1 - model.predict_proba(X_cal)[np.arange(len(y_cal)), y_cal]

# Finite-sample corrected quantile for 95% coverage
alpha, n = 0.05, len(y_cal)
qhat = np.quantile(scores, np.ceil((n + 1) * (1 - alpha)) / n, method="higher")

# Prediction set: every class whose score is at most qhat
sets = 1 - model.predict_proba(X_test) <= qhat
coverage = sets[np.arange(len(y_test)), y_test].mean()
print(f"Top-1 accuracy: {model.score(X_test, y_test):.3f}")
print(f"Set coverage: {coverage:.3f}, average set size: {sets.sum(axis=1).mean():.2f}")

最上位の予測だけを見ると正解率は91.6%ですが、コンフォーマル集合には1,197枚のテスト画像のうち96.5%で正解の数字が含まれており、目標の95%を上回っています。ラベル数の平均は1.27です。MAPIEなどのライブラリには、分類、回帰、時系列向けのこれらの手順がパッケージ化されています。

用途#

  • 医用画像解析:既知の誤り率を持つ、もっともらしい所見の集合により、スキャンの判定が難しい場合に医療従事者へ知らせることができます。また、ラベルが1つだけの集合は、モデルが確実に処理できる症例を示します。
  • 大規模言語モデル(LLM):コンフォーマル法は、選択した割合で正解を含む出力となるよう、サンプリングした回答をいくつ返すか、またはどの主張を残すかをキャリブレーションします。これは、幻覚対策としての意味エントロピーを補完します。
  • 物体検出:バウンディングボックスの予測値にコンフォーマルマージンを加えると、選択した割合で正解ボックスを含む領域が得られます。これは、歩行者を避けて進む自動運転車の計画に役立ちます。

画像分類器には、scikit-learnの例と同じ入力を与えます。Ultralytics YOLO26の分類モデルは、results[0].probs.data内の各画像についてsoftmaxベクトル全体を返します。そのため、ラベル付きのホールドアウト画像セットをスコアリングするとqhatが得られ、確率が1 - qhat以上のクラスはすべて予測集合に加わります。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

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

機械学習の未来に向けた歩みを始めましょう