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

汎用行動選択モデルの学習 part12 行動の強化学習とパーティ生成の交互実行(手法)【PokéAI】

前回、強化学習のハイパーパラメータを調整し、疑似教師データを使った教師あり学習よりも強い汎用行動選択モデルを学習させることに成功しました。 これと、汎用行動選択モデルを用いたパーティ生成手法を組み合わせて強いパーティとその適切な運用法を学習します。

学習システムの構成を下図に示します。

f:id:select766:20200830192708p:plain
パーティ生成と強化学習を交互に行うシステムの構成

目的を単純に言えば、人間同士の対戦界において、ある戦略が普及すればそれに対抗するメタ戦略が考案され、戦略が進歩していくのと同様のことをAIの中で実現しようとしています。 このシステムでは、パーティ生成と強化学習を交互に反復して行います。最初の反復(t=0)では、Q関数がないのでランダムにパーティを1000個生成します。 次に、このパーティ群上でバトル中の行動選択モデルを強化学習により学習します。ここで学習されたモデルと、対象にしたパーティ群をプレイヤーリポジトリに保存します。プレイヤーとは、パーティ1個と行動選択モデルの組です。 次の反復(t=1)では、t=0で学習した行動選択モデルのQ関数を用いて871個のパーティを生成し、これとランダムなパーティ129個(全最終進化系ポケモン1匹ずつ、技はランダム)を合わせて強化学習を行います。強化学習モデルのパラメータは、前回の反復で学習したものを初期値として用います。以上の手順を反復し、洗練されたプレイヤーを生成します。最終的に、プレイヤーリポジトリに蓄積されたプレイヤーから強いものを抽出し、システム全体の出力とします。第3巻では、ランダムなパーティにランダムな行動させた結果を用いてパーティを生成し、強化学習するだけで終わっていました。今回の手法により、(1)強化学習によりパーティを適切に運用したときに効果が大きい技を次の反復でのパーティ生成で優先的に組み込むことができるため運用法が難しい技を含めた最適なパーティを生成すること、(2)ある反復で強いとされたパーティに対する対抗手段を学習することで弱点の少ない運用法を学習することを目指します。

次回、実際に反復学習した結果を示します。