Recall
機械学習における再現率(recall)の重要性について解説します。Ultralytics YOLO26モデルの感度を測定・改善し、高い検出率を確保する方法を学びましょう。
Recallは、感度や真陽性率とも呼ばれ、機械学習における基本的なパフォーマンス指標であり、データセット内のすべての関連するインスタンスを特定するモデルの能力を測定します。物体検出や分類の文脈では、具体的に「実際の陽性ケース全体のうち、モデルはいくつを正しく発見できたか?」という問いに答えるものです。陽性インスタンスを見逃すこと(多くの場合、偽陰性と呼ばれます)が重大な結果を招くシナリオでは、高いRecallを達成することが不可欠です。不均衡なデータを扱う際に誤解を招く可能性のある精度とは異なり、Recallはターゲットクラスを「捕捉」するモデルの有効性に焦点を当てた見方を提供します。
Link to this section高いRecallの重要性#
多くの人工知能アプリケーションでは、オブジェクトの検出に失敗するコストは、誤警報のコストよりもはるかに高くなります。Recallを最適化されたモデルは偽陰性を最小限に抑え、潜在的な脅威、異常、または危機的な状況を捉えるために十分な広さの網を張ることを確実にします。これはしばしばトレードオフを伴います。Recallを高めることは、時には適合率スコアの低下を招く可能性があり、モデルが非関連アイテムを陽性と誤判定する確率が高まることを意味します。このバランスを理解することが、堅牢な機械学習ソリューションを開発する鍵となります。
Link to this section実社会での応用#
Recallは、多くの安全性が重視されるAIソリューションを推進する指標です。感度が優先される2つの顕著な例を挙げます:
- 医療診断: 病気の初期兆候を調べるX線スクリーニングなどの医療画像解析において、高いRecallは譲れません。ヘルスケアにおけるAIシステムが腫瘍の検出に使用される場合、システムが悪性腫瘍を見逃すことよりも、良性である可能性のある疑わしい影を指摘する(偽陽性)方がはるかに優れています。医師は、見落としが発生しないようにするためのセーフティネットとして、これらのツールに依存しています。
- セキュリティと監視: セキュリティ警報システムにおいて、主要な目標はあらゆる侵入の試みを検出することです。高いRecallに最適化されたシステムは、人が立ち入り禁止区域に入った場合に警報が鳴ることを確実にします。野生動物によって時折誤警報が発生する可能性がありますが、これはシステムが実際の侵入者を見逃すことよりも望ましい状態です。これらのシナリオにおける物体検出モデルは、潜在的な脅威に対する感度を最大限に高めるよう調整されています。
Link to this sectionRecallと適合率の比較#
Recallとその対となる適合率を区別することが不可欠です。Recallが関連するケースが見つかった量(網羅性)を測定するのに対し、適合率は陽性予測の質(正確性)を測定します。
- Recall: 検出漏れを防ぐことに重点を置きます。「すべてのリンゴを見つけたか?」
- 適合率: 誤警報を最小限に抑えることに重点を置きます。「リンゴと呼んだものはすべて実際にリンゴか?」
これら2つの指標は多くの場合、逆の関係にあり、適合率-Recall曲線を通じて可視化されます。全体的なバランスを評価するために、開発者は両者の調和平均であるF1スコアをよく参照します。不均衡データセットでは、混同行列と並んでRecallを確認することで、精度単独で判断するよりもはるかに明確なパフォーマンス像が得られます。
Link to this sectionUltralytics YOLOによるRecallの測定#
最先端のYOLO26のようなモデルをトレーニングする際、Recallは検証フェーズで自動的に計算されます。このフレームワークは、各クラスおよびmean Average Precision (mAP)のRecallを算出し、モデルがどれだけ物体を適切に発見できているかを開発者が測定するのに役立ちます。
Pythonを使用して、トレーニング済みモデルを簡単に検証し、そのRecall指標を確認できます。以下のスニペットは、モデルをロードし、標準データセットでのパフォーマンスを確認する方法を示しています:
from ultralytics import YOLO
# Load a pretrained YOLO26 model
model = YOLO("yolo26n.pt")
# Validate the model on the COCO8 dataset
# The results object contains metrics like Precision, Recall, and mAP
metrics = model.val(data="coco8.yaml")
# Access and print the mean recall score for box detection
print(f"Mean Recall: {metrics.results_dict['metrics/recall(B)']:.4f}")このコードはUltralytics APIを使用して検証を実行します。Recallがプロジェクトの要件を下回る場合は、データ拡張を使用してより多様なトレーニング例を作成したり、ハイパーパラメータチューニングを使用してモデルの感度を調整したりすることを検討してください。Ultralytics Platformを使用することで、データセットの管理や複数のトレーニング実行にわたる指標の追跡プロセスを効率化することも可能です。
Link to this sectionモデルのRecallを向上させる#
To boost a model's recall, data scientists often adjust the confidence threshold used during inference. Lowering the threshold makes the model more "optimistic," accepting more predictions as positive, which increases recall but may decrease precision. Additionally, collecting more diverse training data helps the model learn to recognize hard negatives and obscure instances. For complex tasks, employing advanced architectures like Transformer blocks or exploring ensemble methods can also improve the system's ability to detect subtle features that simpler models might miss.






