3

バックプロパゲーションニューラルネットワークを使用するAIプロジェクトがあります。

約1時間のトレーニングであり、100個の入力すべてから60〜70個の入力をトレーニングしました。つまり、バックプロパゲーションの状態では、60〜70の入力が正しいということです。(トレーニングされた入力の数は60から70の間で動いています)。

そして現在、10000以上のエポックが完了しており、各エポックには約0.5秒かかります。

ニューラルネットワークを長期間放置した場合に、ニューラルネットワークを正常にトレーニングできるかどうかを知るにはどうすればよいですか?(またはそれはよりよく訓練することができませんか?)

4

1 に答える 1

8

この質問に対する私の答えを確認してください:ニューラルネットワークでのトレイン、検証、テストセットの違いは何ですか?

3セットのデータを使用する必要があります。

  • トレーニング
  • 検証
  • テスト

検証データセットは、いつ停止する必要があるかを示します(他の回答で述べたように)。

検証データセットは、過剰適合を最小限に抑えるために使用されます。このデータセットを使用してネットワークの重みを調整しているのではなく、トレーニングデータセットの精度が実際に向上すると、これまでネットワークに表示されていなかったデータセットの精度が向上することを確認しているだけです。または、少なくともネットワークでトレーニングが行われていません(つまり、検証データセット)。トレーニングデータセットの精度が向上しても、検証データセットの精度が同じか低下する場合は、ニューラルネットワークに過剰適合しているため、トレーニングを停止する必要があります。

検証の良い方法は、10分割(k分割)交差検定を使用することです。さらに、データセットをトレーニング、検証、テストに分割するための特定の「戦略」があります。それ自体は科学のようなものなので、それについても読む必要があります。

アップデート

エラーに関するあなたのコメントに関して、私はあなたにニューラルネットワークのより良い理解を与えることができるいくつかのリソースをあなたに指摘します(それはちょっと数学的に重いですが、より多くの情報については以下を見てください):

  1. http://www.colinfahey.com/neural_network_with_back_propagation_learning/neural_network_with_back_propagation_learning_en.html
  2. 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;
于 2012-01-19T16:54:11.013 に答える