タグ付けされた質問 「q-learning」

1
「体験リプレイ」とは何ですか?その利点は何ですか?
私はGoogleのDeepMind Atariの論文を読んでおり、「エクスペリエンスリプレイ」の概念を理解しようとしています。経験リプレイは、他の多くの強化学習ペーパー(特にAlphaGoペーパー)で取り上げられるため、その仕組みを理解したいと思います。以下は抜粋です。 まず、データをランダム化するエクスペリエンスリプレイと呼ばれる生物学的にヒントを得たメカニズムを使用して、観測シーケンスの相関を取り除き、データ分布の変化を滑らかにしました。 次に、このペーパーは次のように詳しく説明します。 他の安定した方法は、ニューラルフィットQ-反復として、強化学習の設定でニューラルネットワークを訓練するために存在するが、これらの方法では、ネットワークの繰り返し訓練伴う新規の反復の数百人を。その結果、これらの方法は、私たちのアルゴリズムとは異なり、非効率的であり、大規模なニューラルネットワークではうまく使用できません。図1に示す深い畳み込みニューラルネットワークを使用して、近似値関数をパラメーター化します。ここで、は反復でのQネットワークのパラメーター(つまり重み)です。エクスペリエンスのリプレイを実行するために、各タイムステップエージェントのエクスペリエンスを保存しますQ (s 、a ; θ私)Q(s、a;θ私)Q(s, a; \theta_i)θ私θ私\theta_i私私iet= (st、t、rt、st + 1)et=(st、at、rt、st+1)e_t = (s_t, a_t, r_t, s_{t+1})tttデータセット内。学習中に、経験値サンプル(またはミニバッチ)にQ学習の更新を適用します。反復でのQ学習の更新では、次の損失関数が使用されます。Dt= { e1、… 、et}Dt={e1、…、et}D_t = \{e_1, \dots, e_t \}(s 、a 、r 、s′)〜U(D )(s、a、r、s′)〜うん(D)(s, a, r, s') \sim U(D)私私i L私(θ私)= E(s 、a 、r 、s′)〜U(D )[ ( r + γ最大a′Q (s′、′; θ−私)− Q (s …

1
ニューラルネットによる強化学習について(Qラーニング)
ニューラルネットを関数近似器として使用している場合の強化学習とマルコフ決定過程(MDP)を理解しようとしています。 環境を確率論的に探索するMDPと、これがどのように学習パラメーターにマッピングされるか、そして最終的なソリューション/ポリシーがどのように見つかるかとの関係に問題があります。 Qラーニングの場合、ニューラルネットワークは本質的にq値自体の関数近似器として機能するため、将来は非常に多くのステップがあると私は思いますか?これは、バックプロパゲーションまたは他の方法を介して更新パラメーターにどのようにマッピングされますか? また、ネットワークが将来の報酬を予測する方法を学習した後、これは実際に意思決定を行うという点でシステムにどのように適合しますか?私は、最終的なシステムが確率的に状態遷移を行わないことを想定しています。 ありがとう

2
これはQ学習アルゴリズムですか、それともブルートフォースですか?
私は、tictactoeをプレイする方法を学ぶアルゴリズムで遊んでいます。基本的な擬似コードは次のとおりです。 repeat many thousand times { repeat until game is over { if(board layout is unknown or exploring) { move randomly } else { move in location which historically gives highest reward } } for each step in the game { determine board layout for current step if(board layout is …

2
Qラーニングが分岐するのはなぜですか?
私のQラーニングアルゴリズムの状態値は無限に発散し続けます。つまり、私の重みも発散しています。値のマッピングにはニューラルネットワークを使用しています。 私はもう試した: 「報酬+割引*アクションの最大値」のクリッピング(最大/最小は50 / -50に設定) 低い学習率の設定(0.00001と私は、重みを更新するために従来のバックプロパゲーションを使用しています) 報酬の価値を下げる 探査率を上げる 入力を1〜100に正規化します(以前は0〜1でした) 割引率を変更する ニューラルネットワークのレイヤーを減らす(検証のためだけ) Qラーニングは非線形入力で発散することが知られていると聞きましたが、重みの発散を止めようと試みることができる他に何かありますか? 2017年8月14日の更新#1: リクエストがあったため、現在行っていることについて具体的な詳細を追加することにしました。 私は現在、エージェントにシューティングゲームのトップダウンビューで戦う方法を学ばせようとしています。対戦相手は確率的に動くシンプルなボットです。 各キャラクターには、各ターンで選択できる9つのアクションがあります。 上に移動 下に移動 左に移動 右に動く 弾丸を上向きに発射する 弾丸を撃ち落とす 左に弾丸を撃ちます 右に弾丸を撃ちます 何もしない 報酬は次のとおりです。 エージェントがボットを弾丸で打った場合、+ 100(さまざまな値を試してみました) ボットが発射した弾丸にエージェントが当たった場合、-50(ここでも、さまざまな値を試しました) 弾丸を発射できないときにエージェントが弾丸を発射しようとした場合(例:エージェントが弾丸を発射した直後など)-25(必須ではありませんが、エージェントをより効率的にしたいと思いました) ボットがアリーナから出ようとした場合は-20(あまり必要ではありませんが、エージェントをより効率的にしたいと思いました) ニューラルネットワークの入力は次のとおりです。 0から100に正規化されたX軸上のエージェントとボット間の距離 0から100に正規化されたY軸上のエージェントとボット間の距離 エージェントのxとyの位置 ボットのxとyの位置 ボットの弾丸の位置。ボットが弾丸を発射しなかった場合、パラメーターはボットのx位置とy位置に設定されます。 私も入力をいじっています。エージェントの位置(距離ではなく実際の位置)のx値やボットの弾丸の位置などの新しい機能を追加してみました。それらのどれもうまくいきませんでした。 これがコードです: from pygame import * from pygame.locals import * import sys from …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.