検証データを用いて機械学習モデルを最適化することで、オーバーフィッティングを防ぎ、ハイパーパラメータを調整し、ロバストで実世界に即したパフォーマンスを保証します。
検証データは、機械学習(ML)の開発サイクルにおいて極めて重要な要素である。これは元のデータセットの別のサブセットであり、モデルの適合に使われるトレーニングデータとも、最終評価に使われるテストデータとも異なる。検証データの主な目的は、モデルのハイパーパラメータをチューニングし、モデルのアーキテクチャを決定する際に、トレーニングデータセットに適合したモデルを偏りなく評価することである。このプロセスは、未知のデータに対する最終的な性能を評価する前に、最適なモデル構成を選択するのに役立ちます。
モデルの学習プロセスにおいて、MLモデルは学習データからパターンを学習する。しかし、このデータだけでモデルを評価することは誤解を招く可能性があります。モデルが単に学習例を記憶してしまうかもしれないからです。検証データはチェックポイントとして機能する。トレーニング中に定期的にこの別のセットでモデルのパフォーマンスを評価することで、開発者は次のことができる:
トレーニングデータセット、検証データセット、テストデータセットの区別を理解することは、ロバストなモデル開発の基本である:
データセットのバージョニングと管理のためにUltralytics HUBのようなツールを使用して管理されることが多い、適切な分離は、テストセットからの情報が訓練やモデル選択プロセスに「漏れる」ことを確実にし、それは過度に楽観的なパフォーマンスの見積もりにつながる。
検証データはハイパーパラメータのチューニングに不可欠である。ハイパーパラメータとは、学習プロセスを開始する前に設定される、モデル自身の外部にある構成設定のことである。例えば、学習率、ニューラルネットワークのレイヤー数、使用する最適化アルゴリズムのタイプなどである。開発者は、異なるハイパーパラメータの組み合わせで複数のモデルのバージョンを訓練し、検証セットでそれぞれを評価し、最高のパフォーマンスをもたらす組み合わせを選択する。この系統的な探索は、グリッド探索やベイズ最適化のような方法を使用して自動化することができ、多くの場合、MLOpsツールと統合されたプラットフォームによって容易になります。
利用可能なデータ量が限られている場合、クロスバリデーション(特にK-Foldクロスバリデーション)と呼ばれる手法がしばしば採用される。ここで、学習データは「K」個のサブセット(フォールド)に分割される。モデルはK回訓練され、毎回K-1フォールドが訓練に使用され、残りのフォールドが検証セットとして使用される。そして、すべてのK回の実行で性能を平均する。これは、Ultralytics K-Foldクロスバリデーションガイドで説明されているように、モデル性能のよりロバストな推定を提供し、限られたデータをより有効に活用します。
要約すると、検証データは信頼性が高く高性能な人工知能(AI)モデルを構築するための基礎である。効果的なハイパーパラメータのチューニング、モデルの選択、オーバーフィッティングの防止を可能にし、モデルが学習したデータを超えて十分に汎化することを保証します。