0

ニューラルネットワークの一種である多層パーセプトロンについて研究しています。Back Propagation Algorithm について読んだとき、特定のレイヤーのすべてのエラーを計算した直後に重みを更新することを提案する著者もいますが、別の著者は、すべてのレイヤーのすべてのエラーを取得した後に重みを更新する必要があると説明しています。正しいアプローチとは?

最初のアプローチ:

function void BackPropagate(){
    ComputeErrorsForOutputLayer();
    UpdateWeightsOutputLayer();
    ComputeErrorsForHiddenLayer();
    UpdateWeightsHiddenLayer();
}

2 番目のアプローチ:

function void BackPropagate(){
    ComputeErrorsForOutputLayer();
    ComputeErrorsForHiddenLayer();
    UpdateWeightsOutputLayer();
    UpdateWeightsHiddenLayer();
}

すべてに感謝します。

4

3 に答える 3

5

ここでの概念を誤解していると確信しています。考えられる戦略は次の 2 つです。

  • 1 つの入力ベクトルのすべてのエラーが計算された後に重みを更新する
  • すべての入力ベクトルのすべてのエラーが計算された後に重みを更新します

あなたが書いたものとは全く違います。これらの 2 つの方法は、サンプル/バッチ戦略であり、どちらにも長所と短所があります。単純であるため、実装では最初のアプローチがはるかに一般的です。

あなたの「方法」に関しては、2番目の方法が唯一の正しい方法です。エラーを「伝播」するプロセスは、エラー関数の導関数を計算することの単純化された計算であり、学習の(基本的な)プロセスは最急降下法です。次元の一部 (出力レイヤー) についてのみ導関数を計算し、その方向にステップを実行してから、新しい値に従って誤差導関数を再計算する場合、勾配降下を実行していません。最初の方法が受け入れられる唯一のシナリオは、重みの更新がエラー計算に干渉しない場合です。それらは独立しているため、使用される順序は関係ありません。

于 2013-08-25T15:46:15.297 に答える
3

@lejlotの答えは完全に正しいです

あなたの質問は、実際には2つの主要なアプローチを指しています。


バッチ逆伝播

すべての入力ベクトルのすべての誤差が計算された後、重みを更新します。

オンライン逆伝播

1 つの入力ベクトルのすべてのエラーが計算された後、重みを更新します。

確率的バックプロパゲーションと呼ばれる 3 番目の方法があります。これは、実際にはランダム選択トレーニング パターン シーケンスを使用したオンライン バックプロパゲーションです。




時間の複雑さ

平均して、バッチ逆伝播法は収束が最も速い方法ですが、実装が最も困難です。ここで簡単な比較を参照してください。




下のレイヤーのデルタを計算する前に、出力レイヤーの重みを変更することはできません。

Here you can see the mathmatical equation for calculating the derivative 
of the Error with respect to the weights. (using Sidmoid)
O_i = the layer below   # ex: input
O_k = the current layer # ex: hidden layer
O_o = the layer above   # ex: output layer

ここに画像の説明を入力

As you can see, the dE/dW depends on the weights of the layer above. 
So you may not alter them before calculating the deltas for each layer.
于 2013-08-25T21:22:10.363 に答える
-1

問題は、バッチまたはオンラインのバックプロパゲーションのどちらを選択するかによって異なります。

あなたの質問は正当なものであり、両方のアプローチが良いと思います。両方のアプローチは多くのエポックでほとんど似ていますが、誰もが最初のものを使用しても、2番目の方が少し良く見えます.

PS : 2 番目のアプローチは、オンライン逆伝播でのみ機能します。

于 2017-06-23T08:40:01.173 に答える