交差検証がモデルの汎化性能を向上させ、過学習を防ぐ方法を学びましょう。堅牢なMLのためにUltralytics YOLO26でK分割評価を実装する方法を発見してください。
交差検定は、限られたデータサンプルで機械学習(ML)モデルの性能を評価するために使用される堅牢な統計的再サンプリング手順です。データを単一のトレーニングセットとテストセットに分割する標準的なホールドアウト法とは異なり、交差検定ではデータセットを複数のサブセットに分割し、すべてのデータポイントがトレーニングと検証の両方に使用されるようにします。この手法は、統計分析の結果が独立したデータセットにどの程度一般化するかを評価するために不可欠であり、モデルが一般化可能なパターンを学習するのではなくトレーニング例を記憶してしまう過学習を検出するのに役立ちます。
この手法で最も広く使用されているバリエーションは、K分割交差検証です。このプロセスでは、データセット全体がランダムにk個の等しいサイズのグループ、つまり「フォールド」に分割されます。その後、トレーニングプロセスがk回繰り返されます。各イテレーションでは、1つのフォールドがモデルをテストするための検証データとして機能し、残りのk-1個のフォールドがトレーニングデータとして機能します。
最終的な性能指標は通常、各ループから得られた精度、適合率、または平均平均精度 (mAP)などのスコアを平均することで計算されます。このアプローチは、単一の訓練・テスト分割試行に伴う分散を大幅に削減し、汎化誤差のより信頼性の高い推定値を提供します。これにより、評価がテストデータの任意の選択によって偏ることがなくなります。
交差検証は、小規模なデータセットを扱う場合や、厳密なハイパーパラメータチューニングを行う場合に特に有用です。 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開発ライフサイクルに統合することで、バイアス-バリアンスのトレードオフに関する重要な洞察が得られます。
交差検証と他の評価用語を区別することが重要です。
複数のフォールドからのアーティファクト、メトリクス、およびモデルの管理は複雑になる可能性があります。Ultralytics Platformは、一元化された実験追跡を提供することでこれを簡素化し、チームが異なるフォールド間でのパフォーマンスを比較し、モデル評価のインサイトを容易に視覚化できるようにします。

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