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

遺伝的アルゴリズムとニューラルネットワーク、ゲーム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は急には使いこなせない技術だということなので(ニューラルネットワークで学習が収束しない、逆に少なすぎる世代で収束する、などなどいろいろ起きるらしい)、プロジェクトが佳境に入る前にじっくりと試しておくことが肝心なようです。
《伊藤雅俊》

編集部おすすめの記事

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

  1. タニタが「ツインスティック・プロジェクト」に再挑戦!前回の反省を踏まえ、より高性能な商品を目指す

    タニタが「ツインスティック・プロジェクト」に再挑戦!前回の反省を踏まえ、より高性能な商品を目指す

  2. 2周年を迎えた「PSVR」に読者からコメント─「最高に楽しい!」「名作インディーゲームの宝庫」「課題は多し」など、賞賛から指摘まで【アンケート】

    2周年を迎えた「PSVR」に読者からコメント─「最高に楽しい!」「名作インディーゲームの宝庫」「課題は多し」など、賞賛から指摘まで【アンケート】

  3. ポケモンが現実世界と仮想世界を繋いでいく、20年目の挑戦・・・株式会社ポケモン代表取締役社長・石原恒和氏インタビュー

    ポケモンが現実世界と仮想世界を繋いでいく、20年目の挑戦・・・株式会社ポケモン代表取締役社長・石原恒和氏インタビュー

  4. 「創点 弟子入りプロジェクト」で次世代を育てたいーディライトワークス塩川洋介氏インタビュー

  5. 【CEDEC 2017】ゲームの特許は難しくない!だれでもわかる効果的なゲーム特許の取得方法

  6. 【セガ新作発表会2009】セガ×トライエース『End of Eternity』は超大作RPG(3)

  7. 【WHF 2009夏】次世代ワールドホビーフェア09 Summer フォトレポート

  8. 「日本と海外におけるゲーマーにとってのリージョン制限」・・・イバイ・アメストイ「ゲームウォーズ 海外VS日本」第22回

  9. それは“絶望の一週間”―『シノアリス』のエンジニアがサービスイン時の混乱を語る【CEDEC 2018】

  10. 今週発売の新作ゲーム『ソウルキャリバーVI』『END OF ETERNITY 4K/HD EDITION』『DARK SOULS REMASTERED』『無双OROCHI3』他

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