検証データとは

検証データとは、機械学習で、訓練データで学んだAIの調整やモデル選びのために使う、訓練とは別のデータのことです。学習そのものには使わず、「いまの設定でうまく学べているか」を途中で確かめ、ハイパーパラメータの調整や、どのモデルを採用するかの判断に役立てます。

訓練データ・テストデータとの違い

機械学習では、手元のデータをふつう3つに分けて使います。訓練データで実際に学ばせ、検証データで調整し、テストデータで最後の実力を測るという役割分担です。学校の勉強にたとえると、訓練データは教科書、検証データは模試、テストデータは本番試験。模試で手応えを見ながら勉強のやり方を直し、本番で本当の実力を試す、という流れに近いといえます。

なぜ分けて使うのか

検証データを別に用意するのは、学習に使ったデータだけで評価すると、AIが「丸暗記」して見かけ上は良い点を取ってしまうからです。訓練に使っていないデータで確かめることで、本当に応用が利くか(過学習していないか)を早めに察知できます。経営の場でAIの精度を語るときも、どのデータで測った数字かを意識すると、評価の見え方が変わってくるでしょう。

Topicテストデータを調整に使うのは「カンニング」

3つのデータには、踏んではいけない一線があります。最後の力試しに使うテストデータは、調整の段階で一度も見てはいけないというルールです。検証データで調整を繰り返すと、そのデータに合わせ込みすぎる恐れがあるため、本当の実力は「一度も触れていない」テストデータで測ります。本番試験の問題を先に見てしまっては、正しい実力が分からないのと同じ理屈です。

検証データに関するよくある質問

最後の力試しに使うテストデータを、途中の調整に使ってはいけないのですか?
いけません。テストデータは調整の段階で一度も見てはいけないルールです。検証データで調整を繰り返すとそのデータに合わせ込みすぎる恐れがあるため、本当の実力は「一度も触れていない」テストデータで測ります。本番試験の問題を先に見てしまっては、正しい実力が分からないのと同じ理屈です。
訓練データ・検証データ・テストデータはどう違いますか?
学校の勉強にたとえると、訓練データは教科書、検証データは模試、テストデータは本番試験にあたります。訓練データで学ばせ、検証データで調整し、テストデータで最後の実力を測る、という役割分担です。
なぜ学習に使ったデータで評価してはいけないのですか?
学習に使ったデータだけで評価すると、AIが「丸暗記」して見かけ上は良い点を取ってしまうからです。訓練に使っていない検証データで確かめることで、本当に応用が利くか(過学習していないか)を早めに察知できます。