機械学習周りのプログラミング中心。 イベント情報
ポケモンバトルAI本電子書籍通販中

汎用行動選択モデルの3vs3対応 part02 単純な学習【PokéAI】

前回提案した、3vs3対応の特徴量を用いて行動選択の強化学習を行っていきます。

パーティ

実験に用いる、3体からなるパーティはランダムに1000個生成しました。各ポケモンの種族・覚える技については過去記事に準拠しています。持ち物なしです。

select766.hatenablog.com

パーティの例を示します。

キレイハナ,LV50,とっしん,どくどく,はかいこうせん,ギガドレイン
フシギバナ,LV50,はかいこうせん,すてみタックル,ロケットずつき,ソーラービーム
ヤドラン,LV55,ばくれつパンチ,ずつき,バブルこうせん,れいとうビーム

デリバード,LV50,かげぶんしん,れいとうビーム,どろかけ,ふぶき
ピジョット,LV50,はがねのつばさ,どくどく,どろかけ,はかいこうせん
ライチュウ,LV55,かいりき,ちきゅうなげ,ずつき,かみなり

シャワーズ,LV55,かげぶんしん,どろかけ,すてみタックル,はかいこうせん
マタドガス,LV50,サイケこうせん,ヘドロばくだん,かげぶんしん,どくどく
エレブー,LV50,ロケットずつき,どくどく,でんじほう,スピードスター

シャワーズ,LV50,たきのぼり,はかいこうせん,のしかかり,どろかけ
ドククラゲ,LV55,ヘドロばくだん,いあいぎり,ロケットずつき,れいとうビーム
エアームド,LV50,ドリルくちばし,スピードスター,いあいぎり,どろかけ

アーボック,LV50,かげぶんしん,ギガドレイン,かいりき,ヘドロばくだん
スターミー,LV55,おんがえし,ふぶき,れいとうビーム,バブルこうせん
グランブル,LV50,おんがえし,はかいこうせん,でんじほう,かみなりパンチ

実験1

まずは1vs1と同様の学習パラメータで強化学習を行っていきます。

DNNモデルは16チャンネル、3層です。バトル10万回で学習しました。

設定ファイル

battles: 100000
party_tags:
- random_200917_1
tags:
- testrun
trainer:
  dqn_params:
    epsilon: 0.3
    epsilon_decay: 2.0e-06
    gamma: 0.95
    lr: 1.0e-05
  feature_params:
    party_size: 3
  model_params:
    bn: false
    n_channels: 16
    n_layers: 3

バトル10万回学習した最終的なモデル(id: 3b3)と、途中の1万回時点のチェックポイントと、ランダムに行動するエージェントがそれぞれ学習時と同じ1000パーティを操作し、合計3000プレイヤーでレーティングバトルを行いました。各エージェントが操作したプレイヤーの平均レートを示します。

エージェント 平均レート
1万回時点 1530
10万回時点 1589
ランダム行動 1380

強化学習により、ランダムより強いエージェントが作れること、また学習が進むことで強さが向上することがわかりました。

実験2

1vs1ではDNNの構造は16チャンネル、3層がパラメータチューニングの結果最良でしたが、より複雑な戦略が要求される3vs3ではよりパラメータ数が多いモデルが良い可能性があります。そこで、64チャンネル3層のモデル(id: 6ee)を学習しました。他の条件は実験1と同じです。

設定ファイル

battles: 100000
party_tags:
- random_200917_1
tags:
- testrun_201017_1
trainer:
  dqn_params:
    epsilon: 0.3
    epsilon_decay: 2.0e-06
    gamma: 0.95
    lr: 1.0e-05
  feature_params:
    party_size: 3
  model_params:
    bn: false
    n_channels: 64
    n_layers: 3

同様にレーティングバトルを行った結果を示します。

エージェント 平均レート
64チャンネル3層 1584
16チャンネル3層 1560
ランダム行動 1355

若干ですが64チャンネル3層のモデルのほうが良いことがわかりました。今後、モデルの構造はこれを採用します。

定量的に、ランダムに行動するより良いモデルが学習できました。次回、バトル中の行動を定性的に確認します。