前回の記事から間が空いてしまいましたが、FP2体の育成が完了しました。これでレベル9CPを超える対戦相手といつでも戦うことができるようになったわけですが、人工知能AIならもっと強くなる可能性はないのでしょうか。現状はレベル9CPより強いとはいえ、人間相手では勝ち越すことはありません。強いFPを育てるのであれば、強いプレイヤーと戦わせる必要がありますが、そんなに都合よく身近に達人級の腕を持つプレイヤーはいません。達人級のプレイヤーはいませんが、人工知能を持つFPであれば、達人に匹敵するプレイヤーに成長する可能性を秘めているのではないでしょうか?そこで今回は、FPとFPを戦わせるとどうなるのか?成長の結果、プレイヤーを超えることはできるのか?を検証してみます。机上論FPが持っている人工知能は、対戦相手の行動を学習することで強くなります。通常、人工知能が学習する場合、目標やゴールが設定されます。そのゴールに到達するために様々な計算を繰り返し、設定されたゴールに到達することができたときに実行したプロセス・過程をパターンとして学習するのが一般的です。最終的にはプロセスを最適化し、最も効率よくゴールに達することのできるパターンを探し出します。2018-03-22Amazon楽天市場ではスマブラSPにおいての人工知能であるFPはどのように学習をするのでしょうか。調べた感じでは、このアルゴリズムは公式には公開されていないようですが、対戦に勝利することがゴールとして設定されていることは間違いないでしょう。スマブラSPにおいての勝利とは、対戦ルールによって定義が変わってしまいますので、ここではストック制ルールで相手のストックを削りきることとします。FPに経験させるルールもすべてストック制とします。本記事で検証したいこととしては、FPは人間を超えることができるのか、ということです。したがって今回注目するのは、FPがゴールに達するためのプロセスをどこまで最適化できるのか、という点になります。公式の説明では、FPは対戦相手の行動を学習して強くなります。いうことは、その対戦相手がFPだった場合、対戦を繰り返すとお互いに学習し合い、最終的には最強のFPが爆誕するのではないかと考えられます。この予想は外れる可能性もあると私は考えます。いうのも、CPと対戦をしているとわかるのですが、CPは完ぺきな立ち回りをすることはありません。対戦ゲームにおいてのCPは自動で動き、やろうと思えば人間の行動や入力に対応した必勝の攻撃パターンを繰り出すことができるはずです。あらゆる攻撃を回避し、絶対に避けられないタイミングでカウンターを決め続ける、といったことが理論上は可能なのです。これをCPが実行しないということは、CPの行動に何らかの制約があるということが考えられます。ある行動Aから次の行動Bに移るまでの間隔はコンマ数秒空いている、自分と相手の間の距離に応じた行動パターンが限られている、あるいは行動パターンが分岐するための距離の刻みが少ない等、いろいろと考えられます。いった制約がFPにもあるとすれば、FPの成長には限界があり、理論上の最強とはならないということもあり得てしまいます。妄想をし始めるとキリがありませんが、とにかく実際にやってみればわかるでしょう。検証方法まずは学習機能をONにしたFP2体を対戦させ、お互いに学習をさせます。ある程度学習が進んだタイミングでFPの学習機能をOFF、対人戦として私と対戦し、人間に勝てるかどうかを検証します。検体1:LameインクリングのFPです。懸念点として、うっかりスピリッツを食べさせてしまい、攻撃力と防御力が上がっています。これが検証にどう影響するかわかりませんが、とりあえずこのままいきます。ちなみに召喚に使ったのはこちら。検体2:alterインクリングのFP2体目です。こちらはスピリッツを食べていません。召喚に使ったのはこちら。検体3:管理人インクリングです。それほど上手いわけではありませんが、レベル9CPには負けない程度で、オンラインの戦闘力は90万くらいです。VIPへの道のりは長そうです。スプラトゥーン2ではガングロ女子高生風チャージャーでした。本作ではチャージャーがないので、パブロを振り回します。検証第1ラウンドまずはFP同士で対戦させます。ルールはストック30。これを2セット行います。学習過程1ストック30の1セット目。Lameちゃんの勝利でした。与えたダメージが圧倒的です。学習過程2ストック30の2セット目。こちらもLameちゃんの勝利。あれ、もしかしてスピリッツ分の差が出ている・・・?対人戦テスト先ほどの学習で勝ち越したLameちゃんでテストします。ルールはストック3×3戦で、2勝したほうを勝者とします。学習機能はOFFです。1戦目2戦目3戦目2対1でFPの勝利です。こんなはずでは...と思いつつ、Lameちゃんが成長したということで良しとしましょう。第1ラウンドの結果を踏まえて調整を入れます。Lameちゃんに食べさせたスピリッツ分の差が出ている気がします。学習中、常にLameちゃんの与ダメージが圧倒的だったり、対人戦でインク無しで掴み下投げからの追撃1発で45%持っていかれたりしたので、思ったよりスピリッツの効果が出ています。Lameちゃんのステータスを下げるいい方法が思いつかなかったので、alterにスピリッツを食べさせて調整します。同じとはいきませんでしたが、調整後はこんな感じです。ちなみに検体3(人間)はスピリッツ無しです。これくらいのハンデどうってことないぜ(震え検証第2ラウンド今度のFP同士の学習はストック10で行います。対戦時間が70分超と長すぎるのと、ストック10も30も変わらない気がしてきたためです。レベル50になると、対戦中に学習結果が反映されていない気がします。対戦中も学習結果が反映されるのであれば、Lameちゃんとalterの残ストック数がデッドヒートすると思ったのですが、そんなことは起こりませんでした。学習過程1alterの勝利でした。スピリッツの差が大きかったのかもしれません。与ダメージはLameちゃんが上回っているので、alterの学習効果も感じられます。学習過程2alterが勝ち越しました。先ほどの対戦よりもalterの成績が上がっています。残ストックもそうですが、与ダメージも増えてます。学習過程3第1ラウンドよりストックが少ないので、もう1戦いきます。対人戦テスト第1ラウンドで既に検体3は負け越してしまっているため、検証として良い結果が見られるかどうかは怪しいですが、テストです。FPは最後の試合で勝利したLameちゃんを使用します。勝ち越したのはalterですが、人工知能の特性に鑑みると最後に勝利したFPのほうが有意義な学習をしていると考えたためです。1戦目2戦目3戦目3対0でLameちゃんの勝利でした。私の手には負えません。スピリッツの影響もあり、なんとなく1撃が重い気がします。対人戦用の検体3があまりにも不甲斐なく、これ以上は学習の結果が計測できないので中断します!まとめ実は1体目のFP育成が終わった後、何度かFPと私の対人戦を繰り返していました。そのときはあまり学習の成果がなかったようで、人間である私(検体3)がFPに後れを取るようなことはありませんでした。そのため、正直これ以上成長するのか疑問ではあったのですが、今回の検証ではっきりしました。FPはFP同士で対戦させると、どんどん強くなります。検体3がもっと優秀であれば、さらに学習を繰り返したいところでしたが、検証第2ラウンドでFPが完全に人間(検体3)を超えてしまったので、残念ですが今回はここまでとします。そのうち検体3の腕が上がって戦闘力が200万くらいになったらまたやってみたいと思います。おまけいつもインクリング同士でFPを学習させているので、変わり種を投入。検証第2ラウンド終了後の手に負えない状態のFPとの対戦です。なんとしてでも一泡吹かせるべくいつもと違う相手に学習の成果は通用するのか検証です。