Explore cross-validation to prevent overfitting and boost model reliability. Learn how to implement K-Fold splits with YOLO26 to ensure your AI generalizes well.
交差検証は、限られたデータサンプル上で機械学習(ML)モデルの性能を評価するために用いられる頑健な統計的再サンプリング手法である。データを単一の訓練セットとテストセットに分割する標準的なホールドアウト法とは異なり、交差検証ではデータセットを複数のサブセットに分割し、すべてのデータポイントが訓練と検証の両方に使用されることを保証する。 この手法は、統計分析の結果が独立したデータセットにどの程度一般化されるかを評価する上で極めて重要であり、モデルが一般化可能なパターンを学習する代わりに学習例を記憶してしまう過学習を detect 役立ちます。
この手法で最も広く用いられているバリエーションがK分割交差検証である。このプロセスでは、 データセット全体がk個の等しいサイズのグループ(フォールド)にランダムに分割される。その後、 学習プロセスがk回繰り返される。各反復において、単一のフォールドがモデルの検証用データとして 機能し、残りのk-1個のフォールドが学習データとして使用される。
最終的な性能指標は通常、各ループから得られたスコア(精度、精密度、平均平均精度(mAP)など)を平均化して算出される。この手法により、訓練データとテストデータの分割による単一試行に伴う変動が大幅に低減され、汎化誤差のより信頼性の高い推定値が得られる。これにより、テストデータの恣意的な選択による評価の偏りが排除される。
交差検証は、小規模なデータセットを扱う場合や厳密なハイパーパラメータ調整を行う場合に特に有用である。PyTorchのような現代的な深層学習フレームワークでは 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 、実験の集中管理機能を提供することでこれを簡素化し、 チームが異なるフォールド間でパフォーマンスを比較し、 モデル評価の知見を手間なく可視化できるようにします。