この質問に対する私の答えを確認してください:ニューラルネットワークでのトレイン、検証、テストセットの違いは何ですか?
3セットのデータを使用する必要があります。
検証データセットは、いつ停止する必要があるかを示します(他の回答で述べたように)。
検証データセットは、過剰適合を最小限に抑えるために使用されます。このデータセットを使用してネットワークの重みを調整しているのではなく、トレーニングデータセットの精度が実際に向上すると、これまでネットワークに表示されていなかったデータセットの精度が向上することを確認しているだけです。または、少なくともネットワークでトレーニングが行われていません(つまり、検証データセット)。トレーニングデータセットの精度が向上しても、検証データセットの精度が同じか低下する場合は、ニューラルネットワークに過剰適合しているため、トレーニングを停止する必要があります。
検証の良い方法は、10分割(k分割)交差検定を使用することです。さらに、データセットをトレーニング、検証、テストに分割するための特定の「戦略」があります。それ自体は科学のようなものなので、それについても読む必要があります。
アップデート
エラーに関するあなたのコメントに関して、私はあなたにニューラルネットワークのより良い理解を与えることができるいくつかのリソースをあなたに指摘します(それはちょっと数学的に重いですが、より多くの情報については以下を見てください):
- http://www.colinfahey.com/neural_network_with_back_propagation_learning/neural_network_with_back_propagation_learning_en.html
- http://www.willamette.edu/~gorr/classes/cs449/linear2.html
Colin Faheyの記事のセクション5.9は、それを最もよく説明しています。
後方エラー伝播式:
ニューラルネットワーク出力でのエラー値は、次の式を使用して計算されます。
Error = (Output - Desired); // Derived from: Output = Desired + Error;
ニューロン本体のエラー累積は、ニューロン本体の出力と出力エラー(ニューロン本体に接続されたリンクによって指定される)に応じて調整されます。各出力エラー値は、次のようにエラーアキュムレータに影響します。
ErrorAccumulator += Output * (1 - Output) * OutputError;