人工知能とは
人工知能(AI、Artificial Intelligence )は、もし「知能とは何か」が解明されれば、数学や化学のように基礎から構築できるでしょう。しかし、物理学が「宇宙とは何か」という命題を巡って何度も基礎が再構築されてきたように、人工知能は「知能とは何か」という命題をめぐって繰り返し基礎を掘り返しながら、再構築されていくフィールドです。ですから、一つの時代をとってみれば、人工知能という学問は、その時々で利用可能な概念的な素材を生物学、認知科学、情報科学、心理学から借用しながら、巧みに組み合わせることで構築されてきました。そしてそれを実際に応用し、良い面と悪い面を研究して、さらに改良を続けます。ほかの分野で新しい知見が得られれば積極的に取り込んでいきます。
ですから、一見人工知能という学問は、自分自身ではオリジナルなコアを持たない学問のように見える、応用分野であるようで基礎分野であるような分野なのです。また完全に理科系とも言えず、文科系的視点、たとえば哲学的な視点というものさえ借用します[1] 。
人工知能は人工知能それ自体の応用を展開しながら、同時に知能とは何かという問いに、モデル化と実験/検証を繰り返しながら迫る分野なのです。完全な人工知能が作られるとき、同時にそれは知能とは何かを知るタイミングになるでしょう。
デジタルゲームAIとは
本書の目的は、デジタルゲームAIの現時点における全容を示すことです。ではデジタルゲームAIとは何でしょうか? これが意味をするところは2つあり、ゲームをプレイする人工知能という意味合いと、デジタルゲームの中のゲームの構成要素としての人工知能という意味合いがあります。いずれにしろ重要なのは、人工知能が取り扱う問題がゲームという状況に限定されるということです。ちょうど生物学が実験室での研究と実世界でのフィールドワークに分かれるように、ゲームは人工知能の実験場を提供します。人工知能が応用できるゲームを作り出すことにも高度な技術が必要であり、現在のところ、デジタルゲーム産業が、広大で複雑なバーチャルなステージを作り出すことに長けています。
人工知能全体の中のデジタルゲームAI
ここで解説する人工知能技術は、そういったゲーム産業の中で、それまでのアカデミックな人工知能技術を基礎にしながら構築されてきた技術です。たくさんの製作の中からはぐくまれた知見と技術をお届けします。
人工知能には、大きくシンボルを基礎とする「記号主義」型人工知能と、ニューラルネットワークを基礎とする「コネクショニズム」人工知能があります(図1 ) 。デジタルゲームAIは、双方の技術をまたいで使用します。また学習を使う方法と学習を使わずに人の手でルールや知識の形をシンボルで準備する方法の双方を使い分けます。人工知能ほぼ全域を含む分野と言えます。またロボティクスと使用する知識が大きく被っています。
図1 人工知能の中のデジタルゲームAI
また人工知能の歴史は、「 記号主義」「 コネクショニズム」の2つの流れと、3回の人工知能ブームがあります(図2 ) 。
図2 人工知能の歴史
記号主義は、第一次ブームでは三段論法など「推論」が探求され、第二次ブームでは知識とルールの蓄積によって知能を高めようとする「ルールベース」が発展し、第三次ブームではインターネット上で蓄積されたシンボルのデータを基礎とする「データベース型」人工知能が探求されています。
一方コネクショニズムは、第一次ブーム前に誕生しその限界が示されるとともにブームが終焉し、第二次ブームでは逆伝播法という新しい学習アルゴリズムが発見され、第三次ブームではディープラーニングとしてさらに発展しました[2] 。
この中でデジタルゲームAIは、1980年代から現在に至る人工知能の流れを吸収しつつ発展しました。2010年までは記号主義のほうに重心が置かれていましたが、以降、現在に至るまでコネクショニズムと機械学習のほうへ重心を移しつつあります。
デジタルゲームの人工知能は商品でもありますので、品質保証が重要になります。機械学習は学習の揺らぎがありますので、製品としてリリースするためにきっちりとシンボルで作る手法が1970年代から使われてきました。しかし、2010年代以降は機械学習分野の隆盛もあり、開発工程分野を中心に機械学習の導入が急速に広まっています。第10章まではゲームAIが蓄積してきた記号主義的人工知能の技術を、そして第11、12章では学習と品質保証について解説します。
デジタルゲームAIの目標
デジタルゲームの中で、人工知能を作るということはどういうことでしょうか? 一つの大きな目標は、いきいきとしたキャラクターを作ることです。
プレイヤーの周りの仲間、そして敵、ボスなど、ステージ上をさまざまなキャラクターたちが彩ります。究極的に、そのキャラクターたちに命を与えることが、デジタルゲームの人工知能の夢です。もちろん、そんなことはできないかもしれないし、できるとしても遠い夢です。我々は、生命とは何か、知能とは何か、記憶とは何か、判断とは何かさえ知らないのですから。
ですから本書で書かれることは、その道半ばのカケラたちです。でも、それはやがて未来で一つの知能として、生命として、組み合わされていくカケラたちです。ですので、一つ一つのトピック自体をまず理解し、それらがほかのトピックとどうつながっているか、そんな知のネットワークが徐々に形成されていくことを本書は目的としています。そして、知能とは個々の技術を超えて、それらを貫く何かとして形成されていきます。部分と全体が有機的に複雑系として構成されていくのが、自律的な人工知能の基本です。
この本の目標
この本を手に取ったあなたは、きっとゲームの人工知能ってどうなっているんだろう? どうやって作るんだろう? という疑問を持っていると思います。キャラクターに考えさせたい、もっとエキサイティングなゲームにしたいと思われていることでしょう。この本は最終的に、それらができるところまでみなさんを運んでいきたいと考えています。
私が立っている場所は、ゲームAIという山の中では少し先のほうかもしれませんが、みなさんからそんなに遠くありません。この山はまだ発見されたばかりで、皆、中腹を登りはじめたばかりです。ですから、たくさんの道が真ん中までは整備されていますので、この本では、その道のいくつかに沿ってみなさんをご案内できればと思います。
ガイダンスとオリエンテーション
これから人工知能を解説していくわけですが、人工知能は目に見えない学問です。神経回路を模したり、言葉を発話したり、そういったかろうじて目に見えることがあっても、知能の本質は脳や身体、精神の運動の中にあり、つかまえることが難しいのです。ゲームAIの良いところは、そういった概念的なものを設計し、実装まで持っていき、その結果を検証しもう一度概念に戻る、というサイクルがあるところです。ですからこの本もそういった3段階を意識して書いていきます。それぞれの段階を混在させてしまうと、とたんに今何について語っているかわからなくなりますし、各世界で「役に立つ」という意味が変わってしまいます。
ゲームAIは概念の広大な世界です。興味を持って覗いて意外に広いなあと歩きはじめてみれば、いつの間にか広大な平原の真ん中の霧の中で立ち尽くすでしょう。その道は直線ではなく、どこが出発点で、どこがゴールかもわかりません。何しろ、たくさんの概念がネットワーク上につながっていて、いつの間にか、通ってきた道が多重の輪になっている。いったい、全体像がどうなっているのだろうと、何度もめぐっては地図を描いていると、だいたい図3 のような感じの地図になります。本書の構成はこの地図をもとにしています。
図3 人工知能の歴史
やはり本というのは、一番気になるところから読むのがよいでしょう。しかし、技術の本というのは、知識を積み重ねて理解しますので、どの章がどの章の知識を前提にしているかを頼りに、読み進めるのもよいでしょう。
ゲームの中のAI、ゲームの外のAI
「ゲームAI」は、大きく2つの分野に分かれます。「 ゲームの中のAI」と「ゲームの外のAI」です(図4 ) 。「 ゲームの中のAI」とは、ゲームタイトルの中に実装されるAIを言います。「 ゲームの外のAI」とは、ゲーム開発工程におけるAIを言います。
図4 ゲームAIの全景
「ゲームの中のAI」は第1章で説明するように、「 メタAI」「 キャラクターAI」「 ナビゲーションAI」の3つを柱とします。第1~10章は、この「ゲームの中のAI」について説明します。この分野は1995~2015年の間に基礎が構築され、現在は第11章で説明する「学習、進化、プロシージャル技術」によってさらなる発展の時期を迎えようとしています。
「ゲームの外のAI」は、開発者の代わりにデータ自動生成や自動バランス調整などの開発作業を行ったり、テスターの代わりにデバッグをしたり、また開発者を支援し作業効率を何倍にも上げるAIです。第12章で説明します。
第1~10章は5つのパートに分かれます。導入として第1章、キャラクターAIを扱う第2~6章と第10章、ナビゲーションAIを使う第7章、メタAIを扱う第9章、そしてキャラクターAIとナビゲーションAIを組み合わせた応用として「群衆AI」を扱う第8章です。また、徐々に拡大しつつある分野として、「 学習・進化・プロシージャル技術」があり、これを第11章で扱います。
概念、設計、実装
先ほど少し解説したとおり、ゲームAIはほかのソフトウェアと同様に「概念、設計、実装」の3つの階層から成ります。
概念の世界では、AI特有の概念を扱います。たとえば、認知とか、アフォーダンスとか、思考とか、哲学的な概念です。概念においては、いろいろな機能がどのように実現され、実装され、結果としてユーザーがどのように受け止めるかを解説します。しかけるのは開発者であり、受け止めるのはユーザーです。開発者はAIをはりめぐらし体験を作り、意図した効果をユーザーに与えられているかを、開発の循環の中で改善していきます。
本書で扱う主要な概念のネットワークを示しておきます(図5 ) 。ゲームAIの概念の一つ一つはとてもシンプルなものですが、それを組み合わせることで、大きな力をゲームの中で発揮することになります。本書で基本的な概念を学び、実践でそれらを組み合わせることで、それぞれのゲームに沿ったAIの力を作ることができます。
図5 概念ネットワーク
次に設計はそういった概念をソフトウェアとして組み、機能として発揮するためのデザインを行います。これはクラス設計より少し大きな枠組みで、データの流れや処理の塊を定義するものです。
最後に実装はプログラムの話です。データ構造やクラス定義などについてのテクニックとなります。本書では「概念、設計」を中心に、必要に応じて「実装」のテクニックを示します。
AIはゲームの中で多様な役割を持っており、一つの機能にも複数の意味があり、効率的に書こうとすると、どうしても削げ落ちてしまいます。そこで本書では、少し不格好ですが同じテーマに何度も立ち返りつつ、方法を深めて解説していきます。
言葉の整理
本格的な解説を始める前に、まず言葉を整理しておきましょう。
「AI」「 人工知能」と言った場合、人工知能という一般的な概念か、人工知能が実装された実体を指します。たとえば、ロボットやキャラクターのことを単にAIという場合があります。「 AI技術」と言った場合、機能としての人工知能技術を指します。意思決定、ナビゲーション、群衆管理、などです。
一般に「ゲームAI」と言えば、将棋や囲碁、デジタルゲームを含めて、その人工知能のことを言います。「 デジタルゲームAI」とはデジタルゲームの人工知能ですが、本書では単に「ゲームAI」と呼びます。
キャラクターとは、ゲーム内で登場する人物やモンスターの総称です。プレイヤーが操作するキャラクターのことをプレイヤーキャラクタ-、プレイヤーが操作しないキャラクターのことをノンプレイヤーキャラクター(NPC)と言います。NPCはAIで動きます。
「知能」とは知的能力や知的能力を持つ存在を指します。「 知性」とは本書では、高い知的特性のこと、高い知的特性を持つ存在を指します。
次によく間違われる例として「レベル」という言葉があります。これは「難易度」という意味で使う場合と、「 ゲームステージ」という意味で使う場合があります。「 レベルデザイン」と言った場合には、「 難易度調整」のことではなく、「 ゲームステージの地形設計/敵配置/しかけ」のことを言います。
『人工知能の作り方』との比較
技術評論社さんからは、2016年に『人工知能の作り方』( 注3 )を出版させていただきました。筆者としては両書を読んでいただきたいですが、どちらの本から読んでいただいてもかまいません。ここで、この2冊の違いを示して、両書の関係を明確にしておきたいと思います。
『人工知能の作り方』では、「 デジタルゲームの人工知能」という分野の中で最もおもしろく、わくわくするようなトピックを選んでエッセイ風に解説しました。基本的にどこから読んでも楽しめるように形成しています。本書『ゲームAI技術入門』は、正確に順序付けて描くことを目的としています。章と節の順番も厳密に決められており、先の章を読むには前の章の理解が必要とされます。両書で同じ題材を扱う場合でも、『 人工知能の作り方』ではその題材そのものが持つ発展性が重視され、本書では全体の体系の中の概念的構造の精緻さに重心が置かれています。
デジタルゲームの人工知能も40年が経ち、その体系が一つの山のように形成されてきました。今からこの分野に入ろうとするには、それなりの苦労が必要となっています。私は2004年からゲーム産業に関わり、この分野の発展を真近で見て、その発展を担った人々と対話し、私自身もある程度の貢献してきましたので、その全貌を把握しやすい立場にあります。そこで、この分野の体系立った解説を書くことで、本分野全体のガイドブックの役割を果たせるように努めました。
参考文献
本書は、この20年に渡るデジタルゲームのゲームAI技術が凝縮しています。参考にした文章の脚注や文中に参考元を示しています。100を超える参考元を示していますので、自学自習用のテキストとしても使用できます。
参考元の多くはリンク先を張ってあります。Web上のものはリンク切れを起こすこともありますが、タイトル名、記事名などで再度検索することで、多くは見つけられると思います。
また、人工知能学会のサイトには「私のブックマーク」というコーナーがあり、それぞれの専門分野の有用なリンクを集めたページを作っています。「 ディジタルゲームの人工知能」のページは私が担当しています[4] 。本書の参考とも重なる部分の多い128個のリンクを掲載しています。