1

私は最近、典型的な 3 層ニューラル ネットワーク (入力 -> 非表示 -> 出力) を実装し、アクティベーションにシグモイド関数を使用しています。これまでのところ、ホスト プログラムには 3 つのモードがあります。

  1. うまく機能しているように見える作成。指定された数の入力ニューロン、非表示ニューロン、および出力ニューロンを持つネットワークを作成し、重みをランダム値またはゼロに初期化します。
  2. データセットを読み込むトレーニングは、ネットワークの出力を計算し、誤差を逆伝播して重みを更新します。私が知る限り、これは問題なく動作します。データセットでトレーニングした後、重みは変化しますが、極端ではありません。
  3. 正常に動作しているように見える処理。ただし、トレーニングに使用されたデータセット、またはその他のデータセットのデータ出力は非常に悪いです。これは通常、0.999999 の時折の 1 の連続ストリームであるか、すべての入力のすべての出力値が 0.9999 で、最後の桁が入力間で異なります。私が知る限り、これらの最後の 2 桁と出力されるはずのものとの間に相関関係はありませんでした。

何が正しく機能していないかを理解するにはどうすればよいですか?

4

1 に答える 1

1

これまでに見たことのないデータを分類するのに適した一連のパラメーター (ニューロンの数、学習率、トレーニングの反復回数) を見つける必要があります。多くの場合、データをトレーニング、検証、テストの 3 つのグループに分けてこれを実現します。

何をするにしても、トレーニングに使用したのと同じデータでテストするのは意味がないことを覚えておいてください。なぜなら、妥当に近い分類方法は、そのような設定の下ですべてを 100% 正しく取得する必要があるからです。

于 2013-05-20T04:48:51.490 に答える