サイトへ戻る

理解の補助線003

ゲームの中のAI (1)

AIの中でのルール化を考えるヒント

· AI

 AIによる判断の可能性を追っかけていく中で、AIの中でのルール化や法律分野のエキスパートシステム等をみてきた。今回はAI分野でのルール化を理解する上で、ゲームの世界でAIの中のルール化がどう使われているかを見ていきたい。参考として三宅陽一郎氏が2017年1月に出版された本を使うことにしたが、情報を集めていくうちにとても1回では終わらせられないテーマであることがわかってきた。これから3〜4回に分けて書いていくことを考えている。

1. ゲームのAIの中での、キャラクターの意思決定のやり方を理解すること(第4章)今回はココ

2. ゲームAIは 世界をどう認識するか  (第5章)を中心に意思決定の深さを考える

3. ゲームのAIはどうやって成長していくか(第6章)を中心にゲーム以外への発展の可能性を探る

人工知能を学ぶ心構え

 選んだ本が良かったようだ。著者の三宅陽一郎氏はこの分野のエキスパートであるが、この本の最初に人工知能の分野を理解していく上での心がまえを説いている。

P13から引用してみると

 「人工知能という森は方角を見失いやすい」その理由として、人工知能は人工知能という名前のもとにたくさんのテーマを内包しているので、いったいどれが中心かわからなくなってしまうからです。認識、感覚、判断、行動や意味、推定、意思決定、振る舞い、評価、身体、知識、社会、どれも知能に関連しています。これだけの知能に関するテーマの中で、いったい何が中心かわからないまま歩きつづけると、いつの間にか知能という森の外に出てしまっている。知能という深淵に向かうには、スキューバーダイビングで深く潜るときのように、ちょっとした重りが必要なのです。

それはちょっとしたコツ、知能について「何についてどのように問うのか?」です。

自分が本当に知りたいと思う疑問を決して放してはいけません。たくさんの知識が、あなたを知った気にさせることでしょう。しかし知能についていえば、完全にわかっていることなど、ほぼほぼ何もないのです。どんな問いも、まっすぐに知能の森の深淵に向かっています。

この本を読みながら、知識よりも問いを大切にすること問いを抱えて歩けば、必ず知能という森の内奥へたどり着けることを学んでいただければと思います。」

(引用終わり)

 まさにその通りである。私がこのブログを始めたのも武藤先生や研究室の皆さんの会話に追いつきたいからであって、日々問いだらけ、それもHOWではなく、WHYとWHATだらけだ。

まず、私が今回このテーマで欲しいゴールを確認しておこう。

このテーマで理解したいゴールの再確認

このページまでの今までの流れを簡単に振り返っておこう。

・そもそも武藤先生のおっしゃる「人間はルールづくり、AIが判断する」ような仕掛けをどう作るのかをより深く理解したい というのが思いのスタートである。

・雑誌Scienceの論文から規制の科学という分野があることをまず知った。

・そこで法律や規制といったルールをAIを使って判断させるような仕組みを今までの研究者がどういう研究をしてきたかに興味を持ち、エキスパートシステム という研究分野を知った。

・ここから私のアプローチは2つに分解されている。

 1つはAIの側から、どういう形でルールを表現し、実際に使っているのか?を理解すること

 もう1つはこれとは反対に、ルールという曖昧な言語表現をどう分解し、AIで使えるように

 変換できるか?

・そして最後に、この両側からのアプローチをつなげられるかを確認することである。

今回のゲームの中でのAIのルール化のやり方はそのヒントを探ろうとするものである。

別のいい方をすれば、ゲームの中でのAIのルール化を応用して、どこまで規制や法律のルール化を埋め込めるか、

もっと別の言い方で極端に言えば、ゲームのキャラクターで有能な弁護士(仮に名前をオベサマとしよう)を作れば、その弁護士オベサマはどこまで弁護士としてまともな判断ができるのだろう。

もっと言えば、裁判所の裁判官たちを合わせてキャラクターで作成し、裁判ができるだろうか?

今はまだできないにしても、何が欠けているからできないのだろうか?ゲームの中のAIが使うアルゴリズムの中に、ルール化のヒントはないだろうか?少しづつ紐解いていきたい。

そう、これが私の問いである。確認できたようだ。

7つのアルゴリズムを理解する

- 単純なルールはその1つにしかすぎなかった

- 残り6つも含めた全体像を理解する必要がある

上述書の第4章「キャラクターの意思はどう決められるか」

意思決定のアルゴリズム より引用・抜粋

私がこの7つにこだわるワケ

本題に入る前に三宅氏が第4章の最後で触れている言葉を先に紹介しておこう。私がなぜこの7つにこだわるかを理解いただくためである。(この本を読んだ後、大きな書店のゲームソフト開発のコーナーにあるエンジニア向けのプログラミングの本を何冊か手に取ったが、違和感なく読めた。)ゲーム開発のプログラマー志望の人にとってもこの分類の理解は有益と思われる)

(P177)

 この章では、意思決定の諸相について説明してきました。しかし、人工知能の中枢たる意思決定がこんなにシンプルな7つの形式でできていると説明されて、はい終わりですといわれたら、なんとなくはぐらかせられた気がするかもしれません。それは確かにそうなのです。意思決定という奥深い現象が、これだけで済むはずはありません。意思決定はひとつの現象であり、その現象から本質的な概念を抜き出したものがこの7つのコンセプトになります。そのコンセプトの元にシンプルに組み上げられたひとつの方法がそれぞれのアルゴリズムなのです。(中略)

ですが、ゲームAIの領域ではほとんどの部分をカバーしています。(中略)

現在知られているもの(注2017年時点)、最もよくゲームで使われている形式は、この7つなのです。 

(引用終わり)

7つのアルゴリズムとは

まず、7つのアルゴリズムの名称を列記してみる。(原著では〇〇ベースAIとあるが省略)

①ルール     (ルールを基本に組み立てる)

②ステート    (世界や人間を状態で表す)

③ビヘイビア   (振る舞いや行動レベルでキャラクターを動かす)

④タスク     (タスクに分解して実行順序を選択する)

⑤ゴール     (目標の達成から行動を組み立てる

⑥ユティリティ  (効用・見返りから行動を決定する)

⑦シミュレーション(事態を予測して想像させる)

ゲーム開発の世界はあらゆるノウハウが結集した総合エンターテインメント

恐るに足らず! 大局レベルは私でも理解できた

ゲーム開発の世界は、とかくシステムエンジニアの分野と思われがちだが、それだけでは無理。

色々な分野のノウハウが結集しないとできない総合エンターテイメントであった。

・ゲームそのもののストーリ設計力

・キャラクターや背景のデザイン力

・音声も含めた空間創出力

・参加者のインセンティブ設計

・戦略・戦術設計

・開発プロジェクトマネジメント力

(ブルーの部分は、私の専門分野とも繋がってくる、面白い!)

(P182) 著者もこの点はこう触れている

 僕は最初、ゲームのAIを作ることは、とても技術的なそしてソフトウエア的なことだと思っていました。でも、ゲームAIというものを探求すればするほど、それは単なるソフトウエアを超えて、

より生物的な、生態的な特性へと少なくともそういう知識が必要とされる領域へと、引き込まれて行きました。それは小手先では到達できない深い構造へと人工知能の開発へ導いてくれた。

(引用終わり)

また、様々な学問や過去の知識が総動員されている広く奥深い世界であることを思い知らされた。

例えば、これから紹介する7つのアルゴリズムでも

③ビヘイビアの部分では、かつてのホストコンピュータ時代に使用されたソフトウエアプログラムの構造化設計(HIPO等)の考え方がきちんと入っていた。

④タスクの部分では、プロジェクトマネジメントの実践的なWBS(Work Breakdown Structure)等によるTask(作業)分解の考え方が踏襲されている

⑥のユティリティの部分では効用関数・限界効用逓減の法則が出てきて、かつて経済学で勉強した内容がそのままゲームの中で生かされている。

7つを①のルールとそれ以外(②〜⑦)に分けてみる

今回は①までのまとめ

①ゲームAIの中のルールを理解する

1つルールとは 条件選択+処理実行の基本形

 ここでいう1つのルールとは「もし〜だったら、〜である」(if then ) の形式の表現方法

 例:「ボールが飛んできたら避ける」「体力が減ったら回復させる」

 (P134より引用・抜粋)

条件選択の種類(ルールセレクターと呼びます)

ルールセレクターはルールを選ぶ基準で、色々やり方はあるようで本から引用するだけでも次の5種が紹介されている。

・ランダム        (ランダムに選ぶ)

・ランダム・アットワンス (ランダムに選ぶが、一度選んだものはしばらく選ばない)

・プライオリティ     (優先度をつけて選ぶ)

・ユーティリティ     (ダイナミックに(ゲームの状況に応じた)評価値を計算して選ぶ

・シーケンス       (順番があらかじめ付けられていて、そのように選ぶ)

ルールによる意思決定とは、こうしたルールの集合体(ルールセット)

実際のゲームの中では追加・変更を駆使

P136より引用

FINAL FANTASY Xii (スクエア2006)、 Dragon Age (Bioware 2009)の例

・ルールを優先順に並べて仲間AIなどをカスタマイズできるシステム

一緒に旅をする仲間のAIをユーザが作成する仕組み

あらかじめルールが複数用意されており、「体力が20%を切ったら回復魔法をかける」とか

そこからルールを選択し、カスタマイズして(例えば20%を40%にする)優先付けを変更

(引用終わり)

ルールだけではゲームの世界も解決しない

長所  追加できる拡張性があること

短所  どこに追加したか後でわからなくなるスパゲッティ

    コード化の短所があること

    (この改善が③のビヘイビアに出てくる)

(P137より引用)

ルールの世界から見ると、世界はルールでできているように見えます。

物理も法則であり、法律も法則であり、社会も法則で動いているように見えます。それがルールベースの恐ろしいところで、法律家やプログラマーはこの視野から逃れることに苦労するのです。そこで、ルール以外の方法を見ていく、、、

(引用終わり)

ここまででわかったこと(まとめ)

・ゲームAIの中には7つのアルゴリズムがある

・この7つの考え方を理解できれば、ほぼゲームAIの考え方は理解できる

・単純なルールはその1つにしかすぎない

1つルールとは 条件選択+処理実行の基本形 のことである

条件選択の種類(ルールセレクターと呼びます)には基本パターンがある

・ルールによる意思決定とは、こうしたルールの集合体である

実際のゲームの中ではルールの追加・変更が駆使されている

ルールだけではゲームの世界も解決しない、他のアルゴリズムが必要

三宅氏もルールの例として法律に触れている。視点は同じだ。私の疑問へのヒントは見つかるかもしれない。

いやぁ、DEEPですねぇ。ではでは、また。