my::own::blog;フリーランスのWeb系エンジニアです。readポケモンの最適解を知るため、強化学習を勉強している。今回は下記についてまとめる。作っていくにあたり、限界があるのは自明である。学習は一度経験した状況に対しては学習結果を適用できるが、未知の状況では適用できないためだ。これはポケモンに限らず、組み合わせ爆発が起こる将棋や囲碁のようなゲームでも発生する。いう手法を使うと、未知の状況でも、過去の経験から最適と思われる行動を推定することができるようなので実装してみた。学習を発展させたもので、ニューラルネットワークを使った深層学習を用いている。学習がわかっていれば意外と概念は理解できる。場合はそれがニューラルネットワークのモデルになっている。平たく言うと回帰分析だ。ニューラルネットワークは扱いが難しいので、安定的に学習するためには様々な工夫が必要らしい。必要性を感じたいため、前回使った簡易版ポケモンのルールを少し本物に近づけた。PPその他、「みがわり」や「じこさいせい」などの変化わざダメージ計算は全て本物。つの行動パターンを選択する。種の技スロット」が実装できたことが大きく、これをベースにして今後の実装を進めることもできそう。このルール下では、タイプ相性と威力の観点で無駄な技も含まれている。やりたいところだが、バトルとは異なる行動をどう評価するべきか分からなかったので、選出に関しては一旦ランダムでやっている。勝率の統計を取るとか、選出とバトルで学習モデルを分けるとか、色々この辺もやっていければ面白そうだと思う。本記事の時点でのコードはこれ。書いていくことにする。読みやすい気さえしてしまう。