Cross-Validation
クロスバリデーションがどのようにモデルの汎化性能を向上させ、過学習を防ぐかを学びましょう。堅牢なMLのためにUltralytics YOLO26でK-Fold評価を実装する方法を解説します。
クロスバリデーションは、限られたデータサンプルで機械学習 (ML)モデルのパフォーマンスを評価するために使用される、堅牢な統計的再サンプリング手順です。データを単一のトレーニングセットとテストセットに分割する標準的なホールドアウト法とは異なり、クロスバリデーションではデータセットを複数のサブセットに分割し、すべてのデータポイントがトレーニングと検証の両方に使用されるようにします。このテクニックは、統計解析の結果が独立したデータセットに対してどのように汎化されるかを評価するために不可欠であり、モデルが一般的なパターンを学習するのではなくトレーニングの例を記憶してしまう過剰適合 (オーバーフィッティング)を検出しやすくなります。
K-Foldクロスバリデーションのメカニズム#
この手法として最も広く使用されているバリエーションがK分割クロスバリデーションです。このプロセスでは、データセット全体がランダムに k 個の等サイズのグループ、つまり「フォールド」に分割されます。その後、トレーニングプロセスが k 回繰り返されます。各反復において、1つのフォールドがモデルをテストするための検証データとして機能し、残りの k-1 個のフォールドがトレーニングデータとして機能します。
最終的なパフォーマンス指標は通常、各ループから得られたスコア(精度 (アクラシー)、適合率 (プレシジョン)、または平均適合率 (mAP)など)を平均して計算されます。このアプローチにより、train-test分割の単一の試行に関連する分散が大幅に削減され、汎化誤差のより信頼性の高い推定値が得られます。これにより、評価がテストデータの恣意的な選択によって偏ることがなくなります。
Ultralyticsによる実装#
クロスバリデーションは、小規模なデータセットを扱う場合や、厳密なハイパーパラメータチューニングを実行する場合に特に役立ちます。PyTorchなどの現代のディープラーニングフレームワークはトレーニングループを容易にしますが、フォールドの管理には慎重なデータ準備が必要です。
YOLO26モデルを使用して5分割クロスバリデーション実験を行うために、事前に生成されたYAML設定ファイルを反復処理する方法を次の例に示します。これは、すでにデータセットを5つの個別の設定ファイルに分割していることを前提としています。
from ultralytics import YOLO
# List of dataset configuration files representing 5 folds
fold_yamls = [f"dataset_fold_{i}.yaml" for i in range(5)]
for i, yaml_file in enumerate(fold_yamls):
# Load a fresh YOLO26 Nano model for each fold
model = YOLO("yolo26n.pt")
# Train the model, saving results to a unique project directory
results = model.train(data=yaml_file, epochs=20, project="cv_experiment", name=f"fold_{i}")分割生成の自動化についての詳細は、K分割クロスバリデーションのガイドを参照してください。
実社会での応用#
クロスバリデーションは、データが希少である、収集にコストがかかる、または安全性が重要な信頼性が求められる業界において不可欠です。
- 医療診断: 医療画像解析では、まれな疾患のデータセットが小さくなることがよくあります。単一の検証分割では、困難な症例や稀な病理が誤って除外される可能性があります。ヘルスケアにおけるAIを開発する研究者は、クロスバリデーションを使用することで、診断モデルが利用可能なすべての患者スキャンに対してテストされるようにし、システムが多様な人口統計や機器タイプで機能することを確認します。
- 精密農業: 屋外の環境では、気候条件が大きく変動します。作物病害検出用にトレーニングされたモデルは晴れの日にはうまく機能するかもしれませんが、それらの画像がトレーニングセットにしか含まれていない場合、曇りの日には失敗する可能性があります。クロスバリデーションにより、モデルがこのような変動に対してロバストであることが保証され、農家は天候に関わらず一貫したモニタリングのために自動機械学習 (AutoML)ツールに頼ることができます。
モデル開発における戦略的利点#
AI開発ライフサイクルにクロスバリデーションを統合すると、バイアスとバリアンスのトレードオフに関する重要な洞察が得られます。
-
安定性評価: フォールド間で性能指標が大幅に変動する場合、モデルがトレーニングに使用された特定のデータポイントに対して非常に敏感であることを示しており、高いバリアンスを示唆しています。
-
データ効率: すべての観測値が最終的にトレーニングとバリデーションの両方に使用されるため、限られたデータの有用性を最大化します。
-
ハイパーパラメータ最適化: 最終的なテストセットを「覗き見る」ことなく、最適な学習率、バッチサイズ、またはデータオーグメンテーション戦略を選択するための信頼できるベンチマークを提供します。
関連する概念との違い#
クロスバリデーションを他の評価用語と区別することが重要です。
- ホールドアウト検証との比較: ホールドアウトには単一の分割(例: 80/20)が含まれます。ImageNetのような大規模なデータセットに対してはより高速で適していますが、小規模なデータセットの場合はクロスバリデーションほど統計的に頑健ではありません。
- ブートストラップとの比較: ブートストラップには復元抽出が含まれますが、K分割クロスバリデーションは非復元抽出でデータを分割します(各サンプルは正確に1つのフォールドに含まれます)。
複数のフォールドからのアーティファクト、メトリクス、モデルの管理は複雑になる場合があります。Ultralyticsプラットフォームは、一元化された実験追跡を提供することでこれを簡素化し、チームがさまざまなフォールド間のパフォーマンスを比較し、モデル評価のインサイトを簡単に視覚化できるようにします。






