問題タブ [q-learning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
855 参照

artificial-intelligence - ゲーム内の Q ラーニングが期待どおりに機能しない

私が書いた単純なゲームに Q ラーニングを実装しようとしました。このゲームは、迫り来るボックスを避けるために「ジャンプ」する必要があるプレーヤーに基づいています。

私は 2 つのアクションを持つシステムを設計しました。jumpそしてdo_nothing、状態は次のブロックからの距離です (状態の数が多くならないように分割され、フロア化されています)。

私の問題は、アルゴリズムの実装が「将来の報酬」を考慮していないため、間違ったタイミングでジャンプしてしまうことです。

これが私の Q 学習アルゴリズムの実装です。

そして、これによって使用されるプロパティの一部を次に示します。

現在のデータを使用できないため、lastAction/lastDistance を使用して Q を計算する必要があります (前のフレームで実行されたアクションに作用します)。

このthinkメソッドは、すべてのレンダリングとゲーム処理 (物理、コントロール、死など) が完了した後、フレームごとに 1 回呼び出されます。

0 投票する
1 に答える
1076 参照

neural-network - Q-Learning と関数近似を使用して GridWorld を解く

私は単純な GridWorld (Russell & Norvig Ch. 21.2 で説明されているように 3x4) の問題を研究しています。Q-Learning と QTable を使用して解決しましたが、行列の代わりに関数近似を使用したいと考えています。

私は MATLAB を使用しており、ニューラル ネットワークと決定木の両方を試しましたが、期待した結果が得られませんでした。つまり、不適切なポリシーが見つかりました。このトピックに関するいくつかの論文を読んだことがありますが、それらのほとんどは理論的なものであり、実際の実装についてはあまり詳しく説明していません。

オフライン学習の方が簡単なので、私はオフライン学習を使用しています。私のアプローチは次のようになります。

  1. 決定木 (または NN) を 16 の入力バイナリ ユニット (グリッド内の各位置に 1 つずつ) と 4 つの可能なアクション (上、下、左、右) で初期化します。
  2. 多くの反復を行い、それぞれの qstate と計算された qvalue をトレーニング セットに保存します。
  3. トレーニング セットを使用して決定木 (または NN) をトレーニングします。
  4. トレーニング セットを消去し、ステップ 2 から繰り返します。トレーニングした決定木 (または NN) を使用して qvalues を計算します。

単純すぎて真実ではないように思えますが、実際には期待した結果が得られません。以下に MATLAB コードをいくつか示します。

半分の確率でランダムなアクションを選択します。updateq関数は次のとおりです。

どんな提案でも大歓迎です!

0 投票する
1 に答える
718 参照

reinforcement-learning - バッチq学習と成長バッチq学習の違い

バッチ学習と成長バッチ q 学習の違いについて混乱しています。また、履歴データしかない場合、成長するバッチ q 学習を実装できますか?

ありがとうございました!

0 投票する
3 に答える
8158 参照

machine-learning - Q 学習エージェントの学習率

学習率が収束率と収束自体にどのように影響するかという問題。学習率が一定の場合、Q 関数は最適なオンに収束しますか、または収束を保証するために学習率は必然的に減衰する必要がありますか?