8

で説明されているように、Q-Learning を実装しました。

http://web.cs.swarthmore.edu/~meeden/cs81/s12/papers/MarkStevePaper.pdf

約するために。Q(S,A) 次のようなニューラル ネットワーク構造を使用します。

  • 活性化シグモイド
  • 入力、入力数 + アクション ニューロンの 1 (すべての入力を 0 ~ 1 にスケーリング)
  • 出力、シングル出力。Q値
  • N 個の M 隠しレイヤー。
  • 探索方法 random 0 < rand() < propExplore

次の式を使用して各学習反復で、

ここに画像の説明を入力

Q-Target 値を計算してから、以下を使用してエラーを計算します。

error = QTarget - LastQValueReturnedFromNN

そして、ニューラル ネットワークを介してエラーを逆伝播します。

Q1, 私は正しい軌道に乗っていますか? アクションごとに 1 つの出力ニューロンを持つ NN を実装するいくつかの論文を見てきました。

Q2, 報酬関数が-1~1の数値を返すのですが、アクティベーション関数がシグモイド(0 1)の場合、-1~1の数値を返してもいいですか?

Q3、この方法についての私の理解から、十分なトレーニング インスタンスが与えられた場合、最適なポリシー ワイトを見つけるために隔離する必要がありますか? XOR のトレーニングを行うと、2k 回の反復後に学習する場合があり、40k 50k の反復後でも学習しない場合があります。

4

1 に答える 1

6

Q1. すべてのアクション ニューロンを出力に入れると、より効率的です。単一のフォワード パスで、その状態のすべての q 値が得られます。さらに、ニューラル ネットワークは、はるかに優れた方法で一般化できるようになります。

Q2. シグモイドは通常、分類に使用されます。他のレイヤーでシグモイドを使用できますが、最後のレイヤーでは使用しません。

Q3. ええと.. ニューラル ネットワークを使用した Q 学習は、常に収束するとは限らないことで有名です。DQN(ディープマインド)をご覧ください。彼らがしていることは、2 つの重要な問題を解決することです。メモリ リプレイを使用して、トレーニング データの相関を解除します。確率的勾配降下法は、トレーニング データが順番に与えられた場合に好ましくありません。次に、古い重みを使用してブートストラップします。そうすれば、それらは非定常を減らします。

于 2016-02-27T08:22:39.770 に答える