4

私の質問は、教師あり人工ニューラル ネットワーク (ANN) のトレーニング セットについてです。

ご存知の方もいらっしゃると思いますが、トレーニング セットはペア (入力、目的の出力) で構成されています。

トレーニングフェーズ自体は次のとおりです

for every pair in a training set

-we input the first value of the pair and calculate the output error i.e. how far is the generated output from the desired output, which is the second value of the pair

-based on that error value we use backpropagate algorithm to calculate weight gradients and update weights of ANN 

end for

ここpair1, pair2, ...pair m, ...で、トレーニング セットに

を取りpair1、何らかのエラーを生成し、重みを更新し、次に を取りますpair2

後で に到達pair mし、いくつかのエラーを生成し、重みを更新します。

私の質問は、その後のその重みの更新pair mにより、一部の重みの更新、または以前に行われた更新さえも排除される場合はどうなるでしょうか?

たとえば、 、、または、またはその両方のpair m後に発生した重みの更新を削除する場合、ANN は入力 m に対して適切な出力を生成しますが、およびの更新を忘れてしまい、入力 1 および 2 の結果は貧弱になります。 、では、トレーニングのポイントは何ですか?pair1pair2pair1pair2

ANN を何度もトレーニングしないpair1限りpair2pair m

4

3 に答える 3

3

たとえば、ペア m が、ペア 1、ペア 2、またはその両方の後に発生した重みの更新を排除しようとしている場合、ANN は入力 m に対して妥当な出力を生成しますが、ペア 1 とペア 2 の更新、および入力の結果を忘れてしまいます。 1と2は貧弱になるので、トレーニングのポイントは何ですか??

ニューラル ネットワークのトレーニングの目的は、すべての可能な入力値に対して目的の出力を与える重みを最終的に提供することです。ここで行っているのは、誤差が誤差のしきい値を下回る領域に到達するように逆伝搬しながら誤差面をトラバースすることです。1 つの入力セットの誤差を逆伝播する場合、ニューラル ネットワークがその特定の入力を自動的に認識し、その入力が再び提示されたときに正確な応答をすぐに生成するわけではないことに注意してください。バックプロパゲーションとは、ニューラル ネットワークが特定の入力をより適切に認識できるように重みを変更したことを意味します(つまり、エラーが減少し続けます)。

したがって、ペア 1 を提示してからペア 2 を提示すると、ペア 2 が変更をある程度無効にする可能性があります。ただし、長期的には、ニューラル ネットワークの重みはすべての入力を適切に認識する傾向があります。問題は、入力/出力の特定のセットに対する特定のトレーニング試行の結果を見て、変更が無効になることを心配することはできません。前に述べたように、ニューラル ネットワークをトレーニングしているときは、エラー サーフェスをトラバースして、エラーが最小の場所を見つけます。丘と谷がたくさんある風景を歩いていると考えてください。地図がなく、移動する必要のある方向と距離を示す特別なコンパスがあるとします。コンパスは基本的に、この風景の最も低い地点にあなたを向かわせようとしています。現在、このコンパスは地形をよく認識していないため、最下点に到達しようとすると、少し間違った方向に進む場合があります (つまり、丘の上に移動するなど) が、修正しようとします。その後自体。長期的には、最終的にはランドスケープの最低点に到達します (極小点、つまり最低点にいる場合を除きますが、最低点)。

于 2013-03-12T16:57:30.987 に答える
3

教師ありトレーニングを行うときはいつでも、トレーニング データセットに対して数回 (または数千回) のラウンドを実行する必要があります。このようなトレーニング データセットの各ラウンドは、エポックと呼ばれます。

また、教師ありトレーニング中にニューラル ネットワークのパラメーターを更新する方法は 2 つあります。確率的トレーニングバッチ トレーニング。バッチ トレーニングは、データセットの 1 つのループであり、セット全体の合計エラーを累積し、すべてのエラーが累積されたときに 1 回だけパラメーター (重み) を更新します。確率的トレーニングは、入力と目的の出力のペアごとに重みが調整される方法です。

ほとんどの場合、トレーニング データ セットが一般的なケースを比較的代表するものである場合、バッチ トレーニングよりも確率的トレーニングを優先する必要があります。確率的トレーニングは、100 件中 99 件でバッチ トレーニングより優れています。(引用が必要です:-))。(単純な XOR トレーニング ケースやその他のおもちゃの問題は例外です)

あなたの質問に戻ります (確率的トレーニングに適用されます): はい、2 番目のペアは最初のペアとは反対の方向に重みを調整できます。ただし、すべてのウェイトが 2 つのケースで反対方向に調整される可能性はあまりありません。ただし、セットを通じて複数のエポックを実行するため、エポックごとに効果が減少します。また、各エポックのペアの順序をランダム化する必要があります。(ある種のフィッシャー・イェーツ アルゴリズムを使用します。) これにより、効果がさらに減少します。

次のヒント: ベンチマーク データセットをトレーニング データとは別にしてください。トレーニングの n エポックごとに、ベンチマーク セットを使用してニューラル ネットワークのベンチマークを行います。これは、このベンチマーク データセットのペアの合計エラーを計算しています。エラーが減少しない場合は、トレーニングを停止します。

幸運を!

于 2013-03-13T09:55:18.127 に答える
0

確率的勾配降下 (SGD) を実行している場合、ペア 2 のパラメーター更新が計算される前にペア 1 のパラメーター更新が有効になるため、これはおそらく発生しません。これが、SGD がより速く収束する可能性がある理由です。

すべてのデータを同時に (またはそのチャンクでも) 使用してパラメーターの更新を計算している場合、これら 2 つのペアは互いに打ち消し合う可能性があります。ただし、これは悪いことではありません。なぜなら、明らかに、これら 2 つのデータ ポイントのペアが矛盾する情報を提供しているからです。これが、通常、バッチ backprop がより安定していると見なされる理由です。

于 2013-03-12T20:14:31.257 に答える