アクティブラーニングは、ラベル数を抑えつつ精度を高める、費用対効果の高い機械学習手法です。AIトレーニングをどのように変革するかを解説します。
能動学習は 機械学習(ML)における動的アプローチである。 機械学習(ML)における動的アプローチである。標準的な教師あり学習では 標準的な教師あり学習では、モデルは事前にラベル付けされた大規模なデータセットを受動的に与えられる。 冗長な例や有益でない例が含まれる場合、非効率的でコストがかかる。能動学習はこのパラダイムをシフトする。 モデルが対話的に情報源(多くの場合、人間の専門家や「オラクル」)に問い合わせ、特定の曖昧な事例に対するラベルを要求できるようにすることで、このパラダイムを転換する、 曖昧な事例のラベルを要求する。このターゲット戦略は 高い精度を達成するために必要な 精度を高めるために必要な学習データの量を大幅に削減できるため 予算や時間の制約が厳しいプロジェクトに最適です。
アクティブ・ラーニングのプロセスは、反復サイクルとして機能する。 ワークフローと表現されることもある。この このサイクルは、モデルの改善に最も貢献するデータのみに人間の労力が集中することを保証する。典型的なワークフローは以下の通りである。 典型的なワークフロー
この方法の有効性は、サンプリング戦略に大きく依存する。不確実性サンプリングは 最も一般的な手法であり、アルゴリズムが決定境界に最も近いインスタンスを選択する。包括的な詳細 これらの戦略に関する包括的な詳細は、様々な アクティブ・ラーニングの文献調査に詳しい。
以下のコード・スニペットは、基本的な不確実性サンプリング・ループの実装方法を示しています。これはモデルをロードし を行い、信頼度の低い検出を識別し、手動レビュー用にフラグを立てます。
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Run inference on a list or directory of unlabeled images
results = model.predict(["image1.jpg", "image2.jpg"])
# Identify images where the model is uncertain
uncertain_samples = []
for result in results:
# Check if detections exist and if the maximum confidence is below a threshold
if result.boxes.conf.numel() > 0 and result.boxes.conf.max() < 0.6:
uncertain_samples.append(result.path)
print(f"Flagging {result.path} for manual labeling.")
print(f"Total uncertain images found: {len(uncertain_samples)}")
能動学習は、次のような領域で特に有用です。 データ・ラベリングが高価であったり、専門的 特に有用である。
能動学習はラベルのないデータを使うが、他の機械学習パラダイムとは異なる:
アクティブ・ラーニングを実装するには、堅牢な 機械学習オペレーション(MLOps) パイプラインが必要です。データ データのバージョニングと管理をサポートするツールは、どのサンプルが照会されたかを追跡するために不可欠です。汎用ライブラリ のような scikit-learn のような汎用のライブラリはある程度の有用性を提供しますが、コンピュータ・ビジョンのワークフローでは、選択された画像を視覚化し注釈を付けるために 選択された画像を効果的に視覚化し、注釈を付けるために を効果的に行うことができる。上級ユーザーは Ultralytics GitHubリポジトリを探検して、予測出力 をこれらのデータ・キュレーション・ループに供給するためにどのように構造化できるかを見ることができる。