DeNA TechConレポート:複雑なルールのゲームに対してどうAIを使っていくのか

 2018年2月7日,都内・ヒカリエホールで「DeNA TechCon 2018」が開催された。これはDeNAが毎年開催している技術イベントで,同社が関わるさまざまな分野においての取り組みを発表する場となっている。技術アピールを兼ねたDeNAの文化祭的な位置付けのものといってもいいだろう。


 基調講演では同社代表取締役社長守安 功氏が同社のデベロッパ主導の体制をアピールしていた。ゲームに近しい部分では,同社のモバゲーで1日24億PVをさばくためのDBの改善などについて紹介していた。

DeNA TechConレポート:複雑なルールのゲームに対してどうAIを使っていくのか
 Cygamesのグランブルーファンタジーはブラウザで一般ゲーム並みの動きを目指した作品だが,最初はまったくパフォーマンスが出ず,5fpsくらいしか出ていなかったのだという。Flashで作られたアニメーションをcreate.jsでcanvasベースのHTML5に変換していたのだが,DeNAではFlashのファイルから直接WebGL出力するような変換ツールWahidを作成して提供した結果,30fpsまで性能向上が実現できたのだという。

 そのほか,個別セッションでの発表範囲はゲーム以外にもAI,サーバー管理,自動運転,ヘルスケアなど幅広く行われていた。ここでは「ゲームを支える強化学習」と題した講演の様子をお伝えしてみたい。

 セッションではまず奥村エルネスト純氏が登壇し,同社ゲームでのAIの取り組みについて語った。
 紹介されたのは「逆転オセロニア」の事例だ。オセロニアはオセロとカードゲームを組み合わせたようなゲームだ。6×6マスの盤にコマを並べて引っくり返し合いながら進行するという部分はオセロのまま,コマをキャラクターにしてHPや攻撃力,スキルを設定している。オセロのルールをベースにしたカードバトルゲームともいえる。
 プレイヤーは2000種のカードから16枚を選んでデッキを構築するのだが,その組み合わせは膨大で10の120乗に達するという。そのほか特殊ルールに加えて,相手の手札が見えないことや手札の状況にはランダム性が強いことなど,かなり複雑なゲームとなっている。
 さらに逐次新キャラが投入されることと,スキルバランスの調整が随時行われることで,ゲームは常にアップデートされており,ゲームバランスは常に変更されている。人間がデバッグするのも機械がデバッグするのも難しいタイプだといえる。

DeNA TechConレポート:複雑なルールのゲームに対してどうAIを使っていくのか DeNA TechConレポート:複雑なルールのゲームに対してどうAIを使っていくのか

DeNA TechConレポート:複雑なルールのゲームに対してどうAIを使っていくのか
 DeNA側の問題意識としては,新しいスキルの評価が正確にできないことがあるという。組み合わせが多すぎて,すべてのカードとの相性などを見ていくことが事実上不可能に近くなっているのだ。
 ゆえに新しいキャラクターの性能をテストすることも難しくなっているのだが,テストプレイを手動でやるのにも限界がある。さらに要素が複雑すぎて,試行回数が少なければ見落としは増え,ユーザーの熟練度に応じた体感などに気を配ることも難しい。ということで,テストプレイを自動でやってくれるようなAIを開発したいわけだが,既存のオセロ用AIがそのまま使えるわけもなく,新規にアルゴリズムを組みつつ日々追加される要素にも対応しなくてはならないなど,なかなかハードルは高い。それでも奥村氏らは新しい環境でも柔軟に対応できる「強いAI」の実現を目指したという。

 ここで選択されたのが,スライドのような複数のAI手法を組み合わせたシステムだが,具体的なAIの実装については田中一樹氏から解説された。

DeNA TechConレポート:複雑なルールのゲームに対してどうAIを使っていくのか

 まずは教師あり強化学習によるゲームAIだ。
 強化学習にもいろいろ種類はあるが,ここでは教師ありのものが使われた。強化学習では,さまざまな条件の下でどのような行動を選択すると報酬が高くなるかを学習させておき,その学習データをもとに行動を判断させていく。学習データになかった未知の状況に対してもある程度学習データをもとに対応することができるのが特徴である。
 つまり,この場合は上級プレイヤーによる膨大なログデータを教師データとして学習させるわけだ。教師ありの場合は,教師データに近いほど正解に近いわけで,上級プレイヤーと同じような行動を取るAIが期待できる。
 学習にどのような情報を与えるかだが,ここではステータス,手駒/デッキ情報,選択可能な行動,盤面情報の4つに分けてデータをベクトル化しているとのこと。

DeNA TechConレポート:複雑なルールのゲームに対してどうAIを使っていくのか DeNA TechConレポート:複雑なルールのゲームに対してどうAIを使っていくのか

 結果としては,それまでのルールベースの対戦AIとの対戦結果では圧倒的な勝率となり,中級プレイヤー程度の実力を持つに至ったという。

DeNA TechConレポート:複雑なルールのゲームに対してどうAIを使っていくのか

 青い部分は勝率の高い部分を表しており,すでにかなりの強さになっていることがうかがえる。
 上部の赤が多いエリアは大きく勝率を落としているのだが,これはレベル差が甚だしいような状況での結果だ。最も低いところでは3.4%しか勝率がないのだが,それでも「勝てなくはない」程度の戦績を残している。そのほか,どうしても相性の悪い相手の場合は勝率がところどころ下がっている。

 さて,教師あり学習は一定の成果を挙げたようだが,最初はカードデータを個別で与えていたようで,新しいカードが出たときなどの対応が難しくなってくる。そこで導入された表現学習では,表現(カードの特徴の多様性)が変わっても対応できるように,データの与え方が改められた。キャラクターの特性をいくつかのベクトルに分解して与えるようになったのだ。5次元のデータとして実装されたとのことなので,データ量はかなり縮小されている。これにより,似た特性のカードに対しては同じような処理を適用するなども可能になるという。次の強化学習につなぐための準備段階だと思えばよいだろうか。

DeNA TechConレポート:複雑なルールのゲームに対してどうAIを使っていくのか
DeNA TechConレポート:複雑なルールのゲームに対してどうAIを使っていくのか

 続いて教師なしの強化学習である。この場合は,自分自身と対戦を続けて強くなっていくようなAIだと思えばいいだろう。
 教師あり強化学習だと教師データが正解そのものとなるのだが,教師なし強化学習では,ある状態のもとで行動をした場合に報酬を返す関数(Q関数)が使われる。最近では,それにディープラーニングを加えたDeep Q Network(DQN)が使われることが多く,今回もDQNが使われている。ただし,一般的なDQNは行動の数によってネットワークが固定されており,すべての行動に対する報酬(期待値)を返してくる。オセロニアではとりうる行動数が非常に多いため,行動部分を動的に変更できるネットワークが取り入れられている。つまり,一つの行動に対して一つの評価値を返すだけのものに改められた。複雑なゲームに対してDQNを使う場合には有効な手法だろう。

DeNA TechConレポート:複雑なルールのゲームに対してどうAIを使っていくのか

 対戦相手としては,自身の古いバージョンのほかにルールベースのAIなどが取り入れられ,偏りが出にくいように配慮されているという。

DeNA TechConレポート:複雑なルールのゲームに対してどうAIを使っていくのか

 今後はさらに先読み機能を組み合わせてさらに強くしていく予定とのことだ。すでに先読みだけでも学習ありや自己強化型学習のものと同等な強さになっているとのことだった。先読みと強化学習を組み合わせることによってさらに強いアルゴリズムが期待されるが,一方で先読み処理は計算時間の増大を招いている。膨大な組み合わせを自動対戦で検証しつつバランスを調整していくといった目的からするとこれは望ましいものではない。

 DeNAでは,AIが算出した評価値を盤面に可視化するようなクライアントを作成し,AIアルゴリズムがどのような挙動をしているのかを確認できるようにしているという。これによって作業は非常に捗ったとのこと。そのほか,人間が打つ手との違いをヒートマップで比較するなどで,より人間に近いAIを模索している。田中氏はAIアルゴリズムの開発とともに周辺ツールが重要になると強調していた。

DeNA TechConレポート:複雑なルールのゲームに対してどうAIを使っていくのか DeNA TechConレポート:複雑なルールのゲームに対してどうAIを使っていくのか

 ここでまとめとして再度奥村氏が登壇し,プロジェクト全体での難所だったところやAIを組み込むに当たってやっておいたほうがいいことなどを紹介した。
 まず,AI研究でメジャーなゲームではないので,ゼロベースでシステムを実装する必要がある。ほぼ間違いなく独自仕様なので,自社の製品に合わせたものを構築していく必要がある。
 また,前述のようにAIを高度にしていくと実行速度が遅くなり,大量のシミュレーションを自動化したいというニーズにそぐわないことがある。
 3番めは最初のものとも関連するが,ゲームが複雑なので,ゲームをAI処理できるようにベクトル化していくことが非常に大変になる。さらに,ゲームに合わせたアルゴリズムなども開発する必要がある。

 オセロニアでは戦闘時の演出などを切り離したシミュレータが作られており,高速に自動対戦が行われたという。エフェクトなどを切り離しやすい構造にしておくことが重要だという。
 さらに今回は教師用データとして大量のログを使用しているが,通常のログ以外にAI用のログを取っておくことが必要になる。将来的にAI活用を考えているなら,早いうちからデータに対して投資しておくべきだろう。
 またAIは現在盛んに研究されている分野でもあり,最新技術をいち早く取り入れられる社内体制であることが望ましく,同時に,ゲームに実装していくためには現場との密なコミュニケーションが欠かせないという。
 今後ゲームではAI活用により大きな恩恵が期待されている。そういったものを逃さないためにも,いまのうちからAI時代を見越した戦略が重要になりそうだ。

 さて,このようになかなか大変なAI開発なのだが,AI開発者としてゲームでの実装には魅力があるという。
 まず,自前の箱庭が使えることが挙げられていた。最新論文の成果を自前の箱庭で試してみることで,(苦労はするだろうが)より技術や知見を深く理解することができるだろう。
 また,強化学習は話題だけが先行しているが,なかなかビジネスには結びつかないのだという。難しいとはいえ,ゲームは取り組みやすい分野であり,ビジネスとして生かせる余地が大きい。今回のようなAIを使ったゲームバランス調整のサポート以外に,もっとAIを生かしたコンテンツも今後出てくるだろう。AIを使ったゲーム内のサポートなど可能性はたくさんある。そういったAI活用をゲーム業界に広げていくためにも,業界全体での交流が必要になることを奥村氏は強調して講演を締めくくった。

 なお,講演のビデオや資料などは後日公式サイトで公開される予定なので,より詳しい内容はそちらで確認しよう。

DeNA techCon公式サイト