3

最近、私はバックプロパゲーションネットワークを研究し、いくつかの手動演習を行いました。その後、私は質問を思いつきました(おそらく意味がありません):2つの異なる置換方法に従うことに重要なことはありますか:1。インクリメンタルトレーニング:すべてのデルタWijがわかったら、提示する前に重みがすぐに更新されます次のトレーニングベクトル。2.バッチトレーニング:デルタWijが計算され、各模範トレーニングベクトルに対して保存されます。ただし、デルタWijは、重みを更新するためにすぐには使用されません。体重の更新は、トレーニングエポックの終わりに行われます。

しばらくグーグルで検索しましたが、結果が見つかりませんでした。

4

2 に答える 2

7

つまり、あなたが言及しているのは、勾配降下学習を実行するための2つのモードです。バッチモードでは、重みマトリックスへの変更は、トレーニングデータセットのプレゼンテーション全体(1つの「エポック」)にわたって累積されます。オンライントレーニングは、トレーニングセットを構成する各ベクトルの提示後に重みを更新します。

オンライントレーニングは収束がはるかに速いため、優れているというのがコンセンサスだと思います(ほとんどの研究では、精度に明らかな違いはないと報告されています)。(たとえば、Randall Wilson&Tony Martinez、最急降下法学習のためのバッチトレーニングの一般的な非効率性、ニューラルネットワーク(2003)を参照してください。

オンライントレーニングがより速く収束する理由は、各エポックにわたってエラーサーフェスの曲線をたどることができるためです。これの実際的な重要性は、より大きな学習率を使用できることです(したがって、トレーニングデータを通じてより少ないサイクルで収束します)。

言い換えると、バッチトレーニングの累積体重変化は、トレーニングセットのサイズとともに増加します。その結果、バッチトレーニングは各反復で大きなステップを使用するため、エラー空間トポロジの極小値を見逃します。ソルバーは収束するのではなく振動します。

バッチトレーニングは通常「デフォルト」(ML教科書などで最も頻繁に使用されます)であり、許容可能な制限時間内に収束する限り、それを使用しても問題はありません。繰り返しますが、パフォーマンス(解像度、または分類精度)の違いは小さいか、無視できます。

于 2010-11-15T22:44:48.687 に答える
2

はい、これら2つの方法には違いがあります。計算されるデルタは、入力ベクトルとネットワークの重みの関数です。重みを変更すると、次の入力ベクトルから計算されるデルタは、重みを変更しなかった場合とは異なります。

したがって、最初の入力ベクトルの場合、選択した方法に関係なく、同じデルタが計算されます。これで、Successiveメソッドの場合、ネットワーク内の重みが変更されますが、Simultaneousメソッドの場合、重みは今のところ同じままです。2番目の入力ベクトルが提示されると、2つのネットワーク間で重みが異なるため、両方の方法で異なるデルタが生成されます。

于 2010-11-15T22:15:57.660 に答える