Win or Learn Fast PHC をじゃんけんゲームで実験

同じく、前回の記事でも用いた論文で、

紹介されているWin or Learn Fast PHC(WoLF-PHC)を実装して実験してみました。

http://www.cs.cmu.edu/~mmv/papers/01ijcai-mike.pdf

Win or Learn Fast PHC

前回の記事参照

【マルチエージェント強化学習】Win or Learn Fast-PHC
今回はマルチエージェント強化学習アルゴリズムの1つであるWoLF PHCについて紹介します。Win or Learn Fast(WoLF)まずWin or Learn Fast(WoLF)についてお話します。WoLFはマルチエージェン...

問題設定

今回はじゃんけんゲームで実験を行います。

じゃんけんなので、以下のような利得表になります。

1, 2 パー チョキ グー
パー 0, 0 -1,1 1,-1
チョキ -1,1 0, 0 1,-1
グー -1,1 1,-1 0,0

この問題においてのナッシュ均衡戦略はお互いに各選択肢を等確率で選択する時です。

つまり、グー、チョキ、パーを各々約33%で選択するような選択する時です。

実験結果

単純に何回か学習行動を行い、

ナッシュ均衡戦略に収束するかを見てみます。

まず、2人のエージェントがパーを出す確率の変化を見てみます。

f:id:ttt242242:20180717072644p:plain

x軸がエージェント1、y軸がエージェント2のパーを出す確率です。

ぐちゃぐちゃしていますが、

2体のエージェント共に、0.33ぐらいになっているのがわかります。

現在は学習率を減少させていないため、ぶれていますが、

少しずつ学習率を減少させることで、0.33に収束するはずです。

さらに平均報酬も見てみます。

お互いに0ぐらいの報酬になっていることがわかります。

うまく均衡戦略を得ることができていると思います。

ソースコード

以下の3つのプログラムから構成されています

  • 実行用のプログラム(run_wolf.py)
  • gameプログラム(games/simple_game.py)
  • wolf_phcエージェント(agents/wolf_agent.py)
  • 方策(agents/policy.py)

ファイル構成

run_wolf.py

games/game.py

games/simple_game.py

agents/wolf_agent.py

agents/policy.py

参考文献

Rational and Convergent Learning in Stochastic Games

コメント

タイトルとURLをコピーしました