3

私はニューラル ネットワークを研究するプログラムを開発しています。今では、データセットを 3 つのセット (トレーニング、検証、テスト) に分割することの違い (推測) を理解しています。私のネットワークは、データセットと問題に応じて、1 つだけの出力または複数の出力の場合があります。学習アルゴリズムは逆伝播です。

したがって、基本的に問題は、各エラーとその計算方法に混乱していることです。

トレーニングエラーはどれですか? MSE を使用したい場合は (desired - output)^2 ですか? しかし、ネットワークに 2 つ以上の出力がある場合、トレーニング エラーはすべての出力の合計になるのでしょうか?

次に、検証エラーは、検証データセットを使用して出力を計算し、取得した結果を目的の結果と比較するだけです。これによりエラーが発生します。トレーニングエラーと同じ方法で計算されますか? そして複数の出力で?

最後に、完全に明確ではありませんが、検証をいつ実行する必要がありますか? 5エポックごとに1回になる可能性があるとどこかで読みましたが、これに関する規則はありますか?

事前に感謝します!

4

1 に答える 1

5

複数の出力ニューロンの場合、トレーニング エラーを計算するには、各エポック/反復で、各出力値を取得し、そのニューロンのターゲット値との差を取得します。それを二乗し、他の出力ニューロンについても同じことを行い、平均を取得します。たとえば、出力ニューロンが 2 つの場合、

MSE = (|op1 - targ1|^2 + |op2 - targ2|^2) / 2

トレーニング、検証、およびテスト エラーは同じ方法で計算されます。違いは、いつ実行され、どのように使用されるかです。
通常、すべてのトレーニング エポックで完全な検証セットがチェックされます。おそらく、計算を高速化するために、5 回ごとに実行できます。
検証テスト/チェックの結果は、重みの更新には使用されず、トレーニングをいつ終了するかを決定するためだけに使用されます。これは、ネットワークがデータに対して一般化されているかどうか、過適合になっていないかどうかを判断するために使用されます。

この質問の最初の回答の疑似コードを確認してください
。ニューラル ネットワークでのトレーニング、検証、テスト セットの違いは何ですか?

于 2014-03-06T23:10:45.523 に答える