3

ニューラルネットワークのバックプロパゲーションアルゴリズムをコーディングする方法について、いくつか質問があります。

私のネットワークのトポロジーは、入力層、隠れ層、出力層です。隠れ層と出力層の両方にシグモイド関数があります。

  1. まず第一に、私はバイアスを使うべきですか?ネットワークのバイアスをどこに接続する必要がありますか?隠れ層と出力層の両方に、層ごとに1つのバイアスユニットを配置する必要がありますか?入力レイヤーはどうですか?
  2. このリンクでは、最後のデルタを入力-出力として定義し、図に示すようにデルタを逆伝播します。それらは、フィードフォワード方式でエラーを実際に伝播する前に、すべてのデルタを配置するためのテーブルを保持します。これは、標準のバックプロパゲーションアルゴリズムからの逸脱ですか? 代替テキスト
  3. 時間の経過とともに学習係数を減らす必要がありますか?
  4. 誰かが知っている場合、レジリエントプロパゲーションはオンラインまたはバッチ学習技術ですか?

ありがとう

編集:もう1つ。次の図では、d f1(e)/ deは、シグモイド関数を使用していると仮定すると、f1(e)* [1- f1(e)]ですよね? 代替テキスト

4

2 に答える 2

3
  1. それは異なります。個人的には、偏見の理由はあまりわかりませんが、NN については、賛成または反対の正当な主張をするのに十分なほど勉強していません。私はそれを試して結果をテストしたいと思います。

  2. そのとおりです。バックプロパゲーションでは、最初にデルタを計算し、次にそれらをネットワーク全体に伝播します。

  3. はい。学習因子は時間の経過とともに減少するはずです。ただし、BP を使用すると、局所的な不正確なプラトーに到達する可能性があるため、500 回目の反復前後で、学習係数を初期レートにリセットすることが理にかなっています。

  4. 答えられません...RP については聞いたことがありません。

于 2009-12-12T09:52:10.327 に答える
2

あなたの質問はもう少し徹底的に指定する必要があります...何が必要ですか? 一般化か暗記か?複雑なパターン マッチング データ セットまたは連続ドメインの入出力関係を予想していますか? ここに私の $0.02 があります:

  1. 必要な場合に備えて、バイアス ニューロンを残しておくことをお勧めします。NN によって不要であると見なされた場合、トレーニングによって重みが無視できる値になるはずです。先の層のすべてのニューロンに接続されますが、前の層のどのニューロンにも接続されていません。

  2. 私が知る限り、方程式は標準的なバックプロップのように見えます。

  3. 時間の経過とともに学習率を下げる必要があるかどうかを一般化するのは困難です。動作はデータに大きく依存します。学習率が小さいほど、トレーニングはより安定します。ただし、特に昔のようにスクリプト言語で実行している場合は、非常に遅くなる可能性があります。

  4. Resilient backprop (MATLAB では RProp) は、オンラインとバッチの両方のトレーニング モードを処理する必要があります。

可能であれば、代替のアクティベーション関数を検討することをお勧めします。シグモイド関数は常に最良の結果をもたらすとは限りません...

于 2009-12-13T19:49:04.517 に答える