AIのようにプレイして強くなる方法

その他

AI(人工知能)はゲームでとても強いので、そのAIの仕組みである盤面の評価の仕方や学習方法、もしくはAIっぽい手をバトグラで真似すればきっと強くなれます。実際にオセロのAIを参考にしてバトグラをプレイしていたので、どういう感じになるかを紹介します。ちなみにそれを行ったシーズン7はレート13000ぐらいでした。

ゲームにおいてAIは人間よりも強い

将棋や囲碁のような情報が完全に公開されるランダム性のないゲームにおいて、AIは人間のトッププロよりも強いです。なぜ人間よりも強いかというと、AIは人間が生涯経験できないほどの膨大なデータベースを参考にした上で自ら学び続けるからです。学習の量が違います。

このAIのようにプレイできればバトグラでも強いはずです。ただしバトグラにAIはないので直接真似することはできません。そこで一般的なAIの仕組みを理解したり実際のAIと対戦してその印象を受けたりして、「もしバトグラにAIがあればこんな感じ」といったイメージができれば、それになりきるように真似られます。

ちなみにこのような発想をしたきっかけは、ロビーレジェンドでWaterlooooooさんのプレイを見てとてもAIっぽい印象(正確で無機質)を受けたからです。オセロAIとの対戦で受けるAIの印象と似通っているんです。AIであればこういった動きをするのではないか、という動きを強いプレイヤーがしていました。

Twitch
Twitch is the world's leading video platform and community for gamers.
  • 時間が足りないことが分かれば全てをやろうとせず優先順位をつけて行動しています。
  • システムミニオンを切り捨てて最大の強さにするタイミングが早くしがらみがありません。
  • 維持する盤面の強さの基準が高いです(多少コインの損をしてでも盤面をより強くする)。たくさんの厳しいロビーの経験から、とても警戒心が強くなったのかもしれません。万が一の負けがある行動を取り続けていればいずれ負けることがあり、それでは高いレートを維持できませんし。

AIの仕組み

AIによって仕組みは様々です。その一部を簡単に紹介して、それをバトグラで行うとどうなるかを書きます。

手の評価と盤面の評価

候補となる手から最善手を探すとき、ある手を評価するにはその手を打った後の盤面を評価する必要があります。例えば「自分が打つ→相手が打つ→自分が打つ」までを読むとするなら、その最終盤面が良いのか悪いのかを評価することで最初に打つ手を評価できます。この時、相手は最善手で返してくることを想定します。相手が悪手を打ったときのみ最終盤面が良くなる手には価値がないということです。こんな風にして一つ一つの枝をチェックしていき、最善手を探します。この時の読みの深さと最終盤面の評価の正確さによってAIの強さが決まるわけです。この2つは両輪のようにお互い関連しあっていて2つともなくてはならないものです。深い読みができるほど正確な盤面評価ができます。

バトグラの場合、決勝戦になるまでは2人にならず戦闘も1回ごとなので読みの深さという概念はあまりありません。

1ターン全体の動きを1手とするなら、その手を打った後何ターン後かの盤面を想像して、その強さや経済性が悪くない形勢になっているかを評価すれば良いです。例えば、トリプルからグレード5「発見」かグレード6「発見」かで迷ったときなどです。もしグレード6「発見」を9コイン目に行って体力25の場合、現在の盤面から考えてそれで生き残れるのかを想像します。もしくはトリプルを1ターン抱えるごとに15ダメージ受けるとして、高グレードのミニオンを活用し始めるまでに死んでいるのかどうかを想像します。

ターン中のワンアクションを1手とするなら、つまり1体のミニオン購入や特定の配置を1手とするなら、その評価はその後の結果を見てみないと分かりにくいです。つまりそのミニオンを買って(もしくは買わずに)リロールした後にやりにくいと感じたのなら形勢が悪くなったと評価するんです。その評価をどういったもので表すかというと、そのワンアクションがどれほど最終的なレートの増減に影響したかをイメージします。例えば決勝戦で配置1つで負けたとするなら、1位が2位になったのだから、ー40の大悪手、といった感じです。

また大切なことは、相手が最善手で返してくる想定をすることです。なぜなら相手が強いプレイヤーであったとしても8位を取るわけにはいかないからです、8位を取ってから厳しいロビーであったと気づいても遅いです。中盤であれば、こちらに大ダメージを与えて将来を摘み取ろうとしてくるかもしれません。終盤であれば、こちらの効果的なカードに対して相手は対策をしてくる想定をします。例えば効果的な《ザップ・スライウィック》を一度決めたら今度は対策をしてくるわけだからそれを信じて《ザップ・スライウィック》は抜く、といった感じです。一度決まったからといってそのままにしておくのは、相手が悪手を打った時のみ良い手ということで、評価は低いです。

画像的な盤面の評価

ではその特定の盤面をどう評価するかですが、その瞬間の盤面を画像のように認識して評価する方法があります(AIによっていくつかの方法を組み合わせて評価方法を決めています)。それぞれの駒やその場所ごとに規定の点数があらかじめ登録されていて(膨大なエキスパートの棋譜とその結果を反映してです)、それを機械的に計算してその合計で盤面を評価します。

バトグラでは、自然に行っていることです。1位を取れるようなミニオンや盤面を覚えておいてそういったものに高い評価をつけてそれに近づくようにすれば良いです。少し前の環境であれば、《グリースロボ》と《錆きの聖者》2体が揃えばほぼ勝ち、とても形勢が良くなる、といった感じです。+50+20+20=+90。

また、プレイを決めるときに、各時間帯において十分な強さに達しているかという形勢判断を行っているはずです。これはとても大切でこれが正確にできるほど正確なプレイができます。十分な強さに達しているかが分からなければグレードを上げられるのかどうかの判断などはできません。その形勢判断はたくさんプレイしてデータを蓄えることで向上させられます。十分な強さでなかったために大ダメージを受けて痛い思いをすることで、です。

学習の仕方

いくつかの種類があって、多くは教師あり学習と教師なし学習を組み合わせているようです。

教師あり学習

過去の膨大なエキスパートの棋譜を読み込んで学習します。つまり大量の「ある盤面における最善手」を棋譜から覚えます。ある盤面である手が打たれた結果どちらが勝ったのか、どういう手を打つと勝つ傾向があるのか、などです。明確に答えを示されるので教師あり学習と呼ばれています。

バトグラでは、上級者のプレイを見て学ぶことです。twitchではハイレベルなプレイヤーがたくさん配信しているので、それらを見て学習できます。その時に良い(もしくは悪い)形勢の盤面を画像的に覚えていきます。そのプレイヤーがどういう経緯でそのプレイを選択しているかまでは完全には理解できませんし。感覚的な部分もあってきっと本人にしか分かりません。もしくは自分で対戦してその相手を見ても学べます。

教師なし学習

教師あり学習をある程度行って強くなったAIは、AI同士が自動で対戦します。人間のような疲れがなく、24時間続けます。自分自身と架空の対戦を繰り返し、試行錯誤して自ら新しい戦略を学びます。

バトグラでは実戦です。対戦相手も自分自身であるかのように捉えて、自分も相手も区別なく、どういった戦略が勝利したのかを学習します。もしくはやったことがない新しいやり方(ヒーローやコインカーブ)を試してみることです。

AIは疲れることも感情もなくひたすら学習と対戦をし続けます。疲れたりイライラしたときに「もしAIであればどうしているだろうか」と考えてなりきってみれば落ち着くかもしれません。あとは学習の量が多いほど良く、勝っても負けてもとにかくプレイし続けることです。

強化学習

教師あり学習や教師なし学習は、完全に情報が公開されたランダム性のない2人で行うゲーム向きです。バトグラはその真逆ですね。

強化学習はそうではない、カードゲームやギャンブルのような不完全情報ゲーム向きの学習方法です。ある行動をしてその結果が望ましいものだった場合に報酬が大きく、そうでなければ報酬が小さくなるようにし、試行錯誤を繰り返して報酬を最大化する行動を学ぶことです。完全情報ゲームのようにはっきりとした答えがなくても、その手を打って結果として勝てたのか負けたのかといった情報は得られます。その試行を繰り返してより良い行動を学びます。

バトグラではレートシステムがあるのでこれは自然に実践されることです。つまりあるヒーローで8位を何度も取ったならそれを避けるようになりますよね。この学習方法では、勝ったり負けたりした後のレートが増減する画面を目に焼き付けるようにして覚えると良いです。「このヒーローのこのやり方でー120の報酬を得た。」といった感じです。

実際のAIの印象

仕組みを知るだけでなく実際にAIと対戦してその印象を受けることでもそれを真似するヒントになります。AIの読みは深すぎてなぜその手を打ったのかまでは理解できませんが「何となくAIっぽい手」という雰囲気は掴めます。

知っているのはオセロのAIです。ちなみにロジステロというAIは、序盤は膨大なデータベースと定石で悪手を打ちません。中盤は人間よりも深く読み、有力と判断した手はさらに深くまで読みます。終盤の26手は完全に読み切ってミスをしません。

Web版 Egaroucid
オセロAI Egaroucid 世界最強レベルのオセロAI Egaroucid を搭載したフリーソフトウェアです。搭載AIはコンテストで世界1位になった自作AIをベースに改良したものです。

ここで強いAIと対戦できます。AIがどんな風に手を評価したり形勢判断をしたりしているのか、ヒントの点数と最終石差グラフで感じられます。

こういった戦い方をバトグラでできたらとても強いでしょうね。ちなみに定石というのは「序盤のお決まりの展開」、つまり双方が不利にならない一連の流れです。バトグラで定石と言えるのは、慣れ親しんだ負け経験が少ないヒーローやコインカーブです。不利にならない《ガラクロンド》、《チップ欲しガール》のコインカーブなどです。悪くないやり方は定石と捉えてそのレパートリーを増やしていくと安定した戦いがしやすいです。

悪手を打たない

序盤からスーパープレーをしてくるわけではなく、ただ均衡を保つ、様子を見るような手を打ってきます。悪手はありません。ただ、こちらはその我慢比べの均衡を保てないのです。持ちこたえられずに大なり小なり悪手を打ち、ひとたび形勢が傾くと形が悪くなって打つ手がどれも悪手になります。気が付けば取り返しがつかないほど不利になって詰まされます。

バトグラでも当然、特に序盤は悪くない手を打ち続けるのが理想です。序盤で悪手を打てば一気に形勢が悪くなります(序盤のコインは雪だるまのように高めていく価値のその種なので、とても大切。悪い使い方をするとゲームが終わってしまいます)。

悪手かどうか、例えば5コイン目にグレード3に上げるかどうかの判断などです。上げずにクオリティの低いミニオンを買ってしまうとレートでいえばー50程度の大悪手だったりします。ちなみに上げるのが悪手の場合もあり、グレード3が弱いときです。一度悪手を打つとその後も悪手ばかりになりやすく、その場合6コイン目にグレード4に上げるのが最善手(ー50、負けそうだけれどももしかしたらまだ粘れるかも)となったりします。そこで上げずにグレード3でクオリティの低いミニオンを買って妥協するならー100となって負け確定、といった感じです。つまりどの手も悪い状況。

見切りが早い

肉を切らせて骨を断つような勝負手を打ってくるタイミングが早いです。オセロでは角の斜め上の場所が危険(角を取られる)だけれどもリターンもある、煮詰まってくればどちらかが仕掛けるタイミングで打つ場所です。人間同士の対戦であれば、他にある程度打つ場所がなくなってから、お尻に火がついてから打つことが多いですが、AIは違います。他にたくさん打つ場所がある早い段階でもポンとしがらみなく打ちます。これは人間から見てそう見えるだけで、AIは読みが深いのでお尻に火がつくところまで行かなくても、無駄な消耗戦をして悪い状況になるのならそれをやってみる前からわかるので先手を打てるんです。

バトグラでいえば、ヒーロー・引き・現状の盤面から、落としどころの目標順位を決めることです。特に状況が悪いとき、勝負から降りて少しでも順位を上げるために全力でテンポを出して他の人にダメージを与える方向にシフトするタイミングを計ることです。つまり早い段階から体力を高く保って強い相手からの大ダメージを数回受けられる余裕を残すという逃げ切り狙い。過去の経験から、「この状況は悪い、このままでは8位になる。」と察知するアンテナの感度は高いほどこういった舵取りをしやすいです。

もしくは、システムミニオンを切るタイミングの早さです。例えば獣・メカがBANの最終的にマーロックの「猛毒」バトルになるロビーで《ブラン・ブロンズビアード》をいつ切り捨てるかといったような。「まだいけるかも」という体力に余裕のある段階で一手早く切り捨てて高い体力を保つのが大切。瀕死の相手に粘られてダメージを受けてからから切り捨てるのではなく(その状況は悪いという認識、そうなると2位以上に入れない危険が生まれるという経験があるなら)、先に切り捨てて相手を倒しに行くべきです。

先入観がない

見切りが早く深い読みから先手を打つので、未来を見通せない人間からすればその手はときおり変な手に見えます。妙に立体的というか形が奇妙なんです。これはハイレベルなAI同士の対戦で見られます。

Coding Games and Programming Challenges to Code Better
CodinGame is a challenge-based training platform for programmers where you can play with the hottest...

上のサイトのランク1のNyanyanさんの名前の下のVIEW LAST BATTLESをクリックすれば見られます。先ほど紹介したAIの本気の対戦です。

バトグラでは、深い読みや多くの経験をもとにしてこの先どうなるのか予測ができているのであれば、そこから逆算するともしかしたら変に見える手を思いつくことがあるかもしれません。そんな時に「この手はもしかしたら先入観のないAIのような手なのかもしれない」と認識できます。例えば、ウォリアーカーブをしているとき(トリプルを組むことにこだわっているとき)に意味のないミニオンを買うのではなく2リロール3リロールする、といったプレイなんかは慣れていないと奇妙な手に見えたりもします。