2

背景(省略可):

ニューラル ネットワークのトレーニングでは、通常、確率的勾配降下法 (SGD) が使用されます。トレーニング セットのすべてのメンバーでネットワークの誤差を計算し、勾配降下法によって重みを更新する (つまり、各重みが更新されるまでに長時間待機することを意味する) 代わりに、それぞれを使用します。メンバーの最小バッチの時間を測定し、結果のエラーを真のエラーの偏りのない推定として扱います。

強化学習では、(ディープ Q ラーニングのように) Q ラーニングがニューラル ネットワークで実装されることがあり、経験リプレイが使用されます。エージェントの前の (状態、アクション、報酬) によって重みを更新する代わりに、次を使用して更新します。古い (状態、アクション、報酬) のランダム サンプルのミニバッチ。これにより、後続の更新間に相関関係がなくなります。

質問:

次のアサーションは正しいですか?: SGD でミニバッチ処理を行う場合、ミニバッチ全体に対して 1 つの重み更新が実行されますが、Q ラーニングでミニバッチ処理を行う場合、ミニバッチの各メンバーごとに 1 つの重み更新が実行されますか?

もう一つ:

この質問は、機械学習に関する概念的な質問であり、プログラミングとは何の関係もないCross Validatedの方が適していると思いますが、Stackoverflow で強化学習のタグが付けられた質問を見て、この質問をすることが規範的であると結論付けましたここで、私が得ることができる応答の数はより多くなります。

4

1 に答える 1

0

答えはノーだ。Q-network のパラメーターは、ミニバッチ内のすべての例を使用して一度に更新できます。ミニバッチのメンバーを (s1,a1,r1,s'1),(s2,a2,r2,s'2),... で表すと、現在の Q ネットワークに関連して損失が推定されます。

L=(Q(s1,a1)-(r1+max{Q(s'1,_)}))^2+(Q(s2,a2)-(r2+max{Q(s'2,_)) }))^2+...

これは真の損失の推定であり、すべての (s,a,r) に対する期待値です。このように、Q のパラメーターの更新は SGD に似ています。

ノート:

  • 上記の式には、割引係数を含めることもできます。
  • s' による分散を表す項が含まれていないため、推定は偏っていますが、勾配の方向は変わりません。
  • 場合によっては、各二乗項の 2 番目の Q ネットワークは、現在の Q ではなく過去の Q (二重 Q 学習) になります。
于 2017-01-07T11:03:14.397 に答える