0

Q-learning を使用してLudoを再生するエージェントを実装しようとしています。イプシロン 0.1、学習率 0.6、割引係数 0.8 の e-greedy アクション セレクターでトレーニングしました。

私は約 50K ステップのゲームを実行しましたが、1 つのゲームにも勝てませんでした。Qテーブルは私が望むものとかなり正確であるように見えるので、これは不可解です。なぜ私は無作為のプレイヤーにそんなに多くを失っているのですか? Q テーブルがそれほど変化しない場合、システムは勝つことができるはずではありませんか? 一般に、エージェントをトレーニングするために何回反復する必要がありますか?

どのくらいの情報が必要なのかわかりません。必要に応じて、関連する情報で投稿を更新します。

Q テーブルの行として表される可能な状態:

  1. 自宅で
  2. 地球上で
  3. 星の上
  4. ゴールイン
  5. 勝者の道で
  6. 同じ色のプレイヤーと安全に
  7. フリースペースについて

各状態の列として表される可能なアクション:

  1. 家を出る
  2. ゴールに入る
  3. グローブに移動
  4. スターに移動
  5. スター経由でゴールへ移動
  6. 同じ色のトークンで安全に入る
  7. 勝者の道に入る
  8. 対戦相手が地球上にいる場合は自殺
  9. 対戦相手を殺す
  10. 動くだけ
  11. 移動不可

Q テーブルをランダムな値で初期化することから始め、5000 回の反復後に次のようなテーブルで終了します。

-21.9241  345.35 169.189 462.934 308.445 842.939 256.074  712.23 283.328 137.078   -32.8
398.895   968.8 574.977 488.216 468.481 948.541  904.77 159.578 237.928 29.7712 417.599
1314.25 756.426 333.321  589.25 616.682 583.632  481.84 457.585  683.22 329.132 227.329
1127.58 1457.92 1365.58 1429.26 1482.69 1574.66 1434.77 1195.64 1231.01 1232.07    1068
807.592 1070.17  544.13 1385.63 883.123 1662.97  524.08 966.205 1649.67 509.825 909.006
225.453 1141.34 536.544 242.647 1522.26 1484.47 297.704 993.186 589.984  689.73 1340.89
1295.03 310.461 361.776 399.866 663.152 334.657 497.956  229.94 294.462 311.505 1428.26

私の即時の報酬は、アクションが実行された後、各トークンがゲーム内でどれくらい離れているかに定数 10 を掛けたものに基づいています。ホーム ポジションの位置は -1 で、ゴール ポジションの位置は 99 です。中間の位置はすべて 0 ~ 55 の位置です。トークンがゴールにある場合、ゴールにある各トークンの即時報酬に +100 の追加報酬が追加されます。 .

通常、私のプレーヤーは常に 1 つのトークンをゴールに移動します...それだけです。

4

1 に答える 1

1

なぜ私はランダムなプレイヤーにそんなに負けているのですか? Q テーブルがそれほど変化していない場合、システムは勝つことができるはずではありませんか?

Q ラーニングの実装のバグである可能性があります。学習した Q テーブルの値は、予想に近いものであるとあなたは言います。値が収束している場合、バグである可能性は低く、可能性が高いと思います...

エージェントは、与えられた状態の表現で最善を尽くしています。

Q テーブルのエントリは、特定の状態でアクションを実行するための最適な値に収束します。この「最適なポリシー」を実際に私たちが良い Ludo プレイと呼ぶものに変換するには、エージェントが学習する状態がボード ゲームの状態に直接対応する必要があります。状態を見ると、同じ状態にマッピングされたボード上のピースの複数の配置を見ることができます。たとえば、プレイヤーが複数のトークンを持つことを許可している場合、状態空間はそれらすべての位置を表すわけではありません (アクション空間もそうではありません)。これが、エージェントがトークンを 1 つだけ移動してから停止することを観察している理由である可能性があります。エージェントは、それが完了したと信じているため、実行する他のアクションがあることを認識できません! これがどのように問題であるかの別の例を挙げると、エージェントは対戦相手の駒の位置に応じて異なるアクションを実行する可能性があることに注意してください。したがって、最適にプレイするには、エージェントもこの情報を必要とします。この情報は、州の表現に含める必要があります。

Q テーブルに行を追加し始めることもできますが、ここで直面する問題があります。Ludo には可能な状態が多すぎて、(Q テーブルを使用して) 表形式で学習することはできません。サイズは、現在のすべての状態に、ボード上の他のすべてのトークンの可能なすべての位置を掛けたようなものになります。

したがって、この質問に答えるには:

一般に、エージェントをトレーニングするには何回反復する必要がありますか?

ボードのすべての配置を正確に表す状態空間では、実行可能な反復が多すぎます。学習する状態の特徴を定義することを検討する必要があります。これらの機能は、状態間の重要な違いを強調し、他を破棄するため、エージェントが学習している状態空間を圧縮していると考えることができます。次に、Q テーブルの代わりに関数近似器を使用して、依然として非常に多数の特徴量に対処することを検討することもできます。これについては、強化学習: 入門で、特に3.9について詳しく読むことができます。

于 2016-05-26T03:26:40.950 に答える