ゲームAI開発者から見る自動運転三宅 陽一郎

①エージェント・アーキテクチャ 生命体のような知能

2016.12.08

ゲームキャラクターとは、デジタルゲームの中に出て来る敵や味方のキャラクターのことを言います。プレイヤーが操作しないキャラクター、つまり人工知能で動くキャラクターのことをノン・プレイヤー・キャラクター(NPC)と言うこともあります。

15年前に、ゲームキャラクターの人工知能は大きく方向転換をしました。それまでは、ゲームデザイナーがゲームを俯瞰的に見て、ゲームキャラターを操り人形のように、動いて欲しいと思うように動作を指定していました。この動作を指定するのにスクリプトと呼ばれる簡易言語が使われたところから「スクリプティッドAI」と呼ばれています。ゲームが平面的な2Dの時代には専らこの作り方がされていましたが、ゲームのステージが広大かつ複雑な3D空間になり、このような作り方に限界が見え始めました。そこで、「操作されるキャラクター」から「キャラクター自身に考えさせる」という自律型人工知能へと方向転換が為されたのです。自律型人工知能とは、キャラクター自身が感覚、思考、自らの身体を制御する力を持つ知能です。これによって、キャラクター自身がまるで一個の生物のように、自ら周囲の状況を認識し、思考し、行動する知能を持ち始めました。

この知見を踏まえると、自動運転を考える時に、二つの見方があります。一つは、自動車に自動運転という機能を付ける、という考え方、そしてもう一つは、車そのものを一個の自律的知能として考える、という考え方です。前者を「機能特化型人工知能」、後者を「自律型人工知能」と呼びます。たとえば「カーナビ」「自動追尾機能」が独立した知的機能として、簡単に言えばドライバーがいつでも一つ一つを独立にオン・オフできるのであればそれは「機能特化型人工知能」と言えます。一方で「自律型人工知能」と言った場合には、そういった機能を指すのではなく、自動車自身が「感覚、思考、自らの身体を制御する力」を持ち一個の知的存在として自らの判断で「カーナビ」「自動追尾機能」を使いこなしながら自動運動する知能を言います。

今、世の中にあるほとんどの人工知能は「機能特化型人工知能」です。すなわち、人間が一つの問題を設定し、それを解くために存在する人工知能です。e-コマースの推薦システム、自動翻訳、会話生成、顔認識と言ったサービスなどはこれに当たります。特定の機能を持つことで世の中に入りやすい形を持っています。一方、自律型人工知能は、その存在そのものが一個の知性のように働く人工知能です。これは例が少なく、ロボット、そしてゲームキャラクターのように「まるごと一個の知性」を作ることです。汎用性がありますが、逆に応用の場所が限られています。とても大雑把に言ってしまうと、この15年、ゲーム産業における人工知能はひたすらこの自律型人工知能の分野を牽引し発展させ、アカデミックはどちらからと言うと機能特化型の人工知能を発展させて来たと言えます。ですので、僕はここでは自律型人工知能の立場に立って説明していきたいと思います。

自律型人工知能としてのゲームキャラクターを作るためには五感(センサー)を与えます。まず視覚は周囲に光線を放って、どのようなオブジェクトとその光線が交差するかを判定します。これをレイキャストと呼びます。次に聴覚は音源からキャラクターまでの音の伝搬シミュレーションを行います。光線と違って直線である必要はなく、隙間があれば音はジグザグに進んで来ても構いません。例えば物陰からでも敵キャラクターの足音からその存在を認識します。触覚は、身体と環境、物体との交差を判定します。現代のゲームは物同士の力学をシミュレーションする機能が入っているのが普通ですので、これによって物理的な運動の制約を受けます。このように五感を一つ一つ作って、あらゆる瞬間に五感を働かせることで、自動的に周囲の環境を認識するようになります。あらゆる瞬間というのはゲームの場合は1/60秒ごとの更新を意味します。このように、リアルタイムに動作する人工知能のことを「リアルタイムAI」とも呼びます。ロボット、ゲームキャラクター、自動運転に共通するのはこのリアルタイム性です。他の人工知能ではリアルタイム性が求められることは殆どありませんが、それをひたすらに探求したのがゲームAIと言えます。

次に、収集した情報を整理して、現在自分の置かれている状況を「認識」します。自分が敵に囲まれているのか、ダンジョンのどこにいるのか、味方はどこにいるのか、宝箱はどこにあるか、などです。そして、「認識」の後には、自分の行動を決定する「意思決定」の過程が始まります。ゲームでは、意思決定を行わせるために、8つのアルゴリズムを使っています。人間の意思決定というのはとても高度で複雑ですので、そのまま人工知能にすることはできません。ですので、意思決定の多面的な特徴を一つずつ取り出してアルゴリズムにしているのです。その特徴を言い表すのが、「〇〇ベース」という表現です。「ルールベース」「ステートベース」「ビヘイビアベース」「ユーティリティベース」「タスクベース」「ゴールベース」「シミュレーションベース」「ケースベース」があります。たとえばルールベースと言えば、「この場合はこうする」というルールをたくさん記述して、たくさんの場合に分類して行動を指定することを意味します。「ゴールベース」と言った場合には、大きな目標や小さな目標を階層的に積み上げて、それを一つ一つ達成して行く制御方法を意味します。「ゴールベース」は今ロボット開発にも応用されつつあり、後の章で詳細をご説明します。ゲームキャラクターは、これらアルゴリズムを使って、最終的に「戦う」「逃げる」「魔法を使う」「話す」など可能な行動から一つを選択する、或いは、複数の行動の組み合わせたプランを出力することを決定します。

意思決定が終わると、それに基づいて身体を動かす過程が始まります。これを「行動生成」のプロセスと言います。キャラクターにはボーンと呼ばれる骨の代わりとなる「連結された線分」が入っていますので、ボーンを動かすことでキャラクターの身体を動かします。

このように「感覚」「認識」「意思決定」「行動生成」というプロセスが一連につながって自律型人工知能の最低限の要件が満たされます。この4つの機能は独立して作ることから「モジュール」と呼ばれます。モジュールとは「ソフトウェアにおける部品」のことです。つまりそれぞれを再利用したり、改良したりすることができる「モジュール型デザイン」になっています。さらに「記憶」モジュールを加えて、全体を一つの有機的なシステムとして捉える設計を「エージェント・アーキテクチャ」と呼びます。「エージェント・アーキテクチャ」はロボットの汎用的な基本設計で、ゲーム産業でも、キャラクターの人工知能のためMITメデイアラボの研究を通じて2000年頃から導入されて今でも基本技術の一つになっています。

図:エージェント・アーキテクチャ

図:エージェント・アーキテクチャ(矢印は情報の流れを表す)

エージェント・アーキテクチャは世界と知能の間の情報の通路を整備します。この情報の通路のことを「インフォメーションフロー」と言います。ちょうど人間が口から食道、胃、大腸を通って物を食べて消化して排せつするように、人工知能は情報を集め、解釈し、行動を生み出します。この「環境と知能の間のインフォメーションフローをいかに形成するか」、ということが、自律型人工知能を作るための中心的課題です。

では、自動車に置き換えると何が見えてくるかをここで考えてみましょう。現在、ゲームキャラクターと同じように、自動車を自律型人工知能とみなす方向でも開発が進んでいます。

自動車に「感覚」を付けることは、たとえば映像を取るカメラから周囲の映像を取る、レーザーを周囲に照射して反射を視る、マイクで音を拾う、ボディに受ける風力を計測する、周囲の明るさを検知する、タイヤの振動と表面の状態から路面情報を取得する、GPSで位置情報を取得するなど、車体全体を通して、周囲から情報を収集することを意味します。それは同時に、車の身体状態を車自身が監視する(感じる)ことにもなっています。世界を視ることは、世界から視られることでもあります。

次に収集した情報から自分自身の状況を「認識」する過程です。大きな視点からはどの道路のどの位置にいるのか、さらに周囲の車や歩行者の状況、そして最後に車の周囲の環境状況などの知識をリアルタイムに取得した情報から組み立てて行きます。

そして、その認識の上に「意思決定」があります。これまでのプランの通りに進むのか、信号があるから止まるのか、自転車を認識したのでスピードを緩めるのか、次の交差点で曲がるのか、速度はどうするのか、加速度はどうするのか、ヘッドライトやテイルランプは付けるのか、ウィンカーを回すのか、もっと抽象的なところではルートを変更するのか、目的地はこのままで良いのか、もし車に会話機能があれば運転手に伝えるべきことがあるのか、などです。可能な行動をリストし最優先事項を決定し、それらを組み合わせてプランを作成します。

最後に「行動生成」です。意思決定に基づいた行動を生成します。これは車の加速減速、ハンドリング、ヘッドライトを点ける、などに相当します。そして環境の中で運動を形成します。そして、もう一度同じループが各瞬間に繰り返されることになります。

このように自律型人工知能とは、人間の知能や制御を自動車に押し付けるのではなく、自動車から見た世界、自動車自身の知能による判断、自動車自身の身体の運動という、「自動車自身の知能を作る」という方法です。自律型人工知能はその場でその時にリアルタイムに環境と自分の固有の関係を構築します。自分自身をうまく環境に埋め込む、なじませる知能です。これによって、その自動車自身の車体特性や、その場の状況に柔軟に対応する知能を作りやすくなります。つまり、今、自分が環境のどの情報に着目するべきなのか、どのような意思決定に集中するべきなのか、どのような運動を形成するべきかを、インフォメーションフローによって、環境と一体となった状態から構築して行くことができるのです。

今回は自律型AIと機能型AIについて説明しました。それは人工知能の最も大きな分類の一つです。わずかな違いに思える時もありますが、最終的にはこの基本的な見方が出来上がる人工知能の方向を大きく左右することになります。自動運転車の知能もゲームキャラクターの知能も、同じ自律型AIです。同じ方向を向いた人工知能として、二つの知能のあり方と違いを比較していきたいと思います。

①エージェント・アーキテクチャ 生命体のような知能