前回提案した、3vs3対応の特徴量を用いて行動選択の強化学習を行っていきます。
パーティ
実験に用いる、3体からなるパーティはランダムに1000個生成しました。各ポケモンの種族・覚える技については過去記事に準拠しています。持ち物なしです。
パーティの例を示します。
キレイハナ,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層のモデルのほうが良いことがわかりました。今後、モデルの構造はこれを採用します。
定量的に、ランダムに行動するより良いモデルが学習できました。次回、バトル中の行動を定性的に確認します。