機械学習における交差検証の力を発見し、モデルの精度を高め、過学習を防ぎ、堅牢なパフォーマンスを確保しましょう。
交差検証は、機械学習(ML)で使用されるロバストな統計的手法である。 機械学習 モデルの性能を評価し、それが独立したデータセットに対してどの程度汎化するかを評価するために、機械学習(ML)で使用される頑健な統計的手法である。標準的な評価方法とは異なり クロスバリデーションでは、データを部分集合に分割し、いくつかの部分集合でモデルを学習し、そのモデルを検証します。 ある部分集合でモデルを訓練し、他の部分集合でモデルを検証する。この反復プロセスは、モデルがオーバーフィッティングに陥っているかどうかを特定するのに役立ちます。 この反復プロセスは、モデルがオーバーフィッティングに陥っているかどうかを特定し、学習したパターンが新しい 学習したパターンが、学習データのノイズを記憶するのではなく、新しい未知のデータにも適用できることを保証する。 学習データ
この手法の最も広く使われているバリエーションは、Kフォールド・クロス・バリデーションである。この方法は、データセット全体を をk 個の等しい大きさのセグメント、つまり "フォールド "に分割する。そして、学習と評価のプロセスを k回繰り返される。各反復の間に、特定のフォールドがテスト用の検証データとして持ち出される。 残りの k-1個のフォールドがトレーニングに使用される。
このアプローチでは、すべてのデータ点が訓練と検証の両方に正確に一度ずつ使用されるため、モデルの汎化誤差の推定値に偏りが少なくなります。 モデルの汎化誤差をより偏りなく推定することができる。
標準的な検証分割と交差検証を区別することは重要である。従来のワークフローでは データは静的に訓練、検証、テストデータに分けられる。 テストデータに分けられる。計算量は少なくなりますが この単一の分割は、選択された検証セットが異常に簡単または難しい場合、誤解を招く可能性があります。
クロスバリデーションは、複数のスプリットでパフォーマンスを平均化することにより、このリスクを軽減します。 モデル選択と モデル選択とハイパーパラメータのチューニングに適した手法である。 特に利用可能なデータセットが小さい場合。Scikit-Learnのようなフレームワークは Scikit-Learnのようなフレームワークは、古典的なMLに対して包括的な交差検証ツール ディープラーニングのワークフローでは、これらのループを手動で実装するか、特定のデータセット設定によって実装することが多い。
from ultralytics import YOLO
# Example: Iterating through pre-prepared K-Fold dataset YAML files
# A fresh model is initialized for each fold to ensure independence
yaml_files = ["fold1.yaml", "fold2.yaml", "fold3.yaml", "fold4.yaml", "fold5.yaml"]
for k, yaml_path in enumerate(yaml_files):
model = YOLO("yolo11n.pt") # Load a fresh YOLO11 model
results = model.train(data=yaml_path, epochs=50, project="kfold_demo", name=f"fold_{k}")
クロスバリデーションは、信頼性が譲れず、データ不足が課題となる業界では非常に重要である。
クロスバリデーションの導入は、AI開発のライフサイクルにおいて大きなメリットをもたらします。 AI開発のライフサイクルにおいて大きな利点がある。それは 学習率やその他の設定をより積極的に最適化できる。 をより積極的に最適化することができる。さらに バイアスと分散のトレードオフをナビゲートし、エンジニアを支援する。 エンジニアは、モデルがデータパターンを捉えるのに十分複雑でありながら、新しい入力に対して有効であり続けるのに十分単純であるというスイートスポットを見つけることができます。 を見つけるのに役立ちます。
実践的な実装の詳細については、以下のガイドを参照してください。 UltralyticsK-Foldクロスバリデーション、 を参照してください。このガイドでは、データセットとトレーニングループをどのように構成して最大の効率を得るかについて詳しく説明しています。


