人生にゲームをプラスするメディア

遺伝的アルゴリズムとニューラルネットワーク、ゲームAIによるキャラクタの「進化」を考える

IGDA日本は、ゲームAI連続セミナーの第5回を10月27日に開催しました。今回のメインテーマは遺伝的アルゴリズム(GA)とニューラルネットワーク(NN)で、ともに「生物界の法則」をAIの進化・学習に取り込もうという技術です。講師はフロム・ソフトウェアの三宅陽一郎氏です。三宅氏はXbox360用『クロムハウンズ』のAIの開発者で、CEDECでもAIについての講演を行っています。

ゲームビジネス その他
遺伝的アルゴリズムとニューラルネットワーク、ゲームAIによるキャラクタの「進化」を考える
  • 遺伝的アルゴリズムとニューラルネットワーク、ゲームAIによるキャラクタの「進化」を考える
  • 遺伝的アルゴリズムとニューラルネットワーク、ゲームAIによるキャラクタの「進化」を考える
  • 遺伝的アルゴリズムとニューラルネットワーク、ゲームAIによるキャラクタの「進化」を考える
  • 遺伝的アルゴリズムとニューラルネットワーク、ゲームAIによるキャラクタの「進化」を考える
  • 遺伝的アルゴリズムとニューラルネットワーク、ゲームAIによるキャラクタの「進化」を考える
IGDA日本は、ゲームAI連続セミナーの第5回を10月27日に開催しました。今回のメインテーマは遺伝的アルゴリズム(GA)とニューラルネットワーク(NN)で、ともに「生物界の法則」をAIの進化・学習に取り込もうという技術です。講師はフロム・ソフトウェアの三宅陽一郎氏です。三宅氏はXbox360用『クロムハウンズ』のAIの開発者で、CEDECでもAIについての講演を行っています。



今回は、遺伝子アルゴリズムやニューラルネットワークによってNPCをよりよくコントロールする(進化させる)ことがテーマとなりました。遺伝的アルゴリズムでは、「遺伝子」を掛け合わせることで多様なふるまいをするNPCを登場させることができます。また、ニューラルネットワークは個別NPCの行動の精度をあげることができます。

■遺伝的アルゴリズムは分かりやすく使いやすい

遺伝的アルゴリズムは「集団を一定の方向に進化させる方法」で、まず最初に各NPCに遺伝子(パラメータセット、行動選好セット)を持たせておきます。それらのNPCを評価し、優秀な親を2つピックアップ、遺伝子を掛け合わせて次世代の子供を作っていくというものです。エニックスの『アストロノーカ』がこのタイプのAIを採用したゲームの嚆矢といわれています。

初期の個体集団を生成する際、パラメータ(遺伝子)の初期値を散らしておくことで、様々な遺伝子による集団の多様性を用意しておきます。

次にシミュレーションパートのために、ゲーム制作者の意図を反映する「評価関数」を作ります。敵のHPをもっとも多く削るのがいいのか、最も長く生き延びるのがいいのか、もっとも敵陣奥深くまで移動できるのがいいのか。あるいはいくつかのパラメータを一定割合で足し合わせることもできます。制作者の腕と思想の見せ所です。

この評価関数を各NPC(のAI)にあてはめ、各NPCの適応度を計算し、スコアの低いNPCを取り除き、スコアの高いNPCから親を選択して子供をつくります。多様性をもたせるため、スコアの高い順に1位・2位を固定的に取り出すのではなく、適応度に比例してランダムにチョイスするのがよいとのこと(ルーレット選択)。

2つの遺伝子の掛け合わせでは、通常、一点交叉で掛け合わせます。遺伝子(パラメータセット)をどこか1箇所で切断して、そこで両親のパラメータを入れ替えて接合します。二点以上で交叉させることも可能ですが、交叉ポイントが多いと親の形質が保存されにくくなります。また、一定の割合でパラメータを変化させる「突然変異」もおこないます(突然変異がないと最適でないところに安定する可能性があるため)。

エニックスの『アストロノーカ』では、バブー(敵NPC)は、体重・慎重・腕力・脚力・かかし耐性・快光線耐性など56個の遺伝子(各8ビット)を持ち、プレイヤーとのトラップバトルをくぐり抜け、トラップを奥へと通り抜けることができるほど、評価点が高くなるようになっています。

バブーはプレイヤーには1体しか見えていませんが、裏で20体が同じトラップバトルを展開し、全体として世代交代をさせているとのことです。しかも1世代ではあまり進化して見えないため、5世代ずつまとめて進化させています。

三宅氏は、遺伝的アルゴリズムの展望について、「環境が明確に定義されればされるほど、アルゴリズムを適用しやすい。物理シミュレーション環境で適している。また、多くのデモのソースが公開されていて、生物的なアルゴリズムの入門として適している」とのことです。

■ニューラルネットワークはモジュール化しやすいがゲームに使うには一工夫必要

ニューラルネットワークは、生物のニューロン網をモデル化した考え方で、個々のキャラクタのAIを学習させていく技術です。

プログラムとしては、数値の組を入れて数値の組を出させる「関数」として扱えるためモジュールとして取り込みやすいのが特徴で、内部は「入力層」「中間層(これはない場合もある)」「出力層」のニューロン(をモデルとする関数)群となっています。各ニューロンの接続のウェイト(重み)が異なっていて、さまざまな入力の値に対してさまざまな出力の値が得られる仕組みです。ウェイトのパラメータを調整することで、ある入力に対して希望する出力を出させるようにしていきます。このときよく使われるのが誤差逆伝搬法です(ちょっとわかりにくい計算が必要)。

また、古典的なニューラルネットワークでは、ニューロンのつなぎ方は変えずにウェイトだけを変化させて学習を行いますが、動的にニューラルネットワーク構造を変える「NEAT(Neuron Evolution of Augmenting Technologies)」によって、中間層を自動的に調整させると言った技術も出てきています。NEATのゲームへの適用として、テキサス大学オースティン校の研究グループが開発したシミュレーションゲーム「NERO」を例示、、個々の兵士NPCのニューラルネットワークをどう組んでどう育てていくか(好成績のものを選抜していくか)が紹介されました。

■ネットや書籍のサンプル・デモを動かそう

三宅氏はまとめとして、「遺伝的アルゴリズム、ニューラルネットは詳細な研究が既にあり、技術的蓄積や情報、文献も多い。サンプルコードはいくらでもあるので、動作させては結果を見て、気長に実験するつもりで習得して欲しい」と述べました。ちなみに、AIは急には使いこなせない技術だということなので(ニューラルネットワークで学習が収束しない、逆に少なすぎる世代で収束する、などなどいろいろ起きるらしい)、プロジェクトが佳境に入る前にじっくりと試しておくことが肝心なようです。
《伊藤雅俊》
【注目の記事】[PR]

編集部おすすめの記事

ゲームビジネス アクセスランキング

  1. なぜ「アイカツ」のライブ映像は、ユーザーを魅了するのか…製作の裏側をサムライピクチャーズ谷口氏が語る

    なぜ「アイカツ」のライブ映像は、ユーザーを魅了するのか…製作の裏側をサムライピクチャーズ谷口氏が語る

  2. プレイステーション3版『頭文字D EXTREME STAGE』・・・開発者に聞く

    プレイステーション3版『頭文字D EXTREME STAGE』・・・開発者に聞く

  3. アバターの口の動きがより滑らかに!音声認識リップシンク「CRI LipSync」が「Animaze」に標準搭載

    アバターの口の動きがより滑らかに!音声認識リップシンク「CRI LipSync」が「Animaze」に標準搭載

  4. 令和に新作ファミコンカセットを自作!その知られざるテクニック&80年代カルチャーを「桃井はるこ」「なぞなぞ鈴木」らが語る【インタビュー】

  5. 【レポート】VRロボゲー『アーガイルシフト』のロマンと没入感が凄い!男の子の夢、これで叶います

  6. 任天堂ミュージアムに行ってきました!

  7. 任天堂がマイクロソフトにレア社を売却した経緯とは・・・3億7500万ドル巨額買収の裏側

アクセスランキングをもっと見る