Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

415 views

Published on

Builderscon 2016 における講演資料です。
ソフトウェアの人工知能化について話しています。

https://builderscon.io/builderscon/tokyo/2016

Published in: Software
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
415
On SlideShare
0
From Embeds
0
Number of Embeds
39
Actions
Shares
0
Downloads
2
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Builderscon 2016 講演資料 「人工知能によってプログラムを有機化する」(前篇)

  1. 1. 人工知能によってプログラムを 有機化する 三宅 陽一郎 (ゲームAI開発者) https://www.facebook.com/youichiro.miyake http://www.slideshare.net/youichiromiyake y.m.4160@gmail.com 2016.12.3 @ Red Bull Studios Tokyo (前篇)
  2. 2. 経歴 京都大学(数学) 大阪大学(原子核実験物理) 東京大学 (エネルギー工学/人工知能)
  3. 3. Works (2006-2016) AI for Game Titles Books
  4. 4. ©2016 SQUARE ENIX CO., LTD. All Rights Reserved. • ThinkIT https://thinkit.co.jp/author/10026 • AI最前線の現場から【スクウェア・エニックス】
  5. 5. WIRED A.I. • WIRED A.I.+ Wired City • 12月1日発売 • 「人工知能+街 特集」
  6. 6. 「IT、都市、ヘルスケア、あらゆる領域で 人工知能と人間が共創する未来」 • WIRED 「INNOVATION INSIGTS」 http://wired.jp/innovationinsights/post/analytics-cloud/w/cocreation_with_ai
  7. 7. アジェンダ • 人工知能は一見すると情報処理プログラムと変わらないように見えます。 • ただ、特にゲームAIで顕著な特徴は、そこにソフトウェアの構造から、最 後に知的機能を獲得するまでの、階層的な構造を持っているところにあ ります。 • 自律エージェント指向の場合には、それは開かれた「強いAI」としての人 工知能であり、AIアプリケーションの場合それは閉じられた「弱いAI」とな ります。 • またそれに伴い、人工知能技術は、ソフトウェア全体の構造は、アーキテ クチャレベルから末端の各モジュールまでを有機的な関係の中に包むこ とになります。今回は各種のゲームで用いられる人工知能技術と共に, その具体的なソフトウェアの構造をご説明いたします。
  8. 8. 本セッションの趣旨 人工知能のプログラムの組み方 プログラムの人工知能化 人工知能 ソフトウェア
  9. 9. 本セッションの趣旨 人工知能のプログラムの組み方 プログラムの人工知能化 人工知能 ソフトウェア
  10. 10. 前置き • プログラムを支える構造はどこから来るか? • 人工知能=概念の科学
  11. 11. プログラムの断片 プログラムの断片 プログラムとプログラムをつなげるものは何か?
  12. 12. プログラムの断片 プログラムの断片 有機的な概念構造
  13. 13. プログラムの断片 プログラムの断片 有機的な概念構造 要素として何を扱うか?
  14. 14. プログラムの断片 プログラムの断片 有機的な概念構造 要素として何を扱うか? アーキテクチャ
  15. 15. プログラムの断片 プログラムの断片 有機的な概念構造 要素として何を扱うか? アーキテクチャ (1) 要素 (2) その関係性 (3) それと包む有機的なアーキテクチャ 今日はこの3つをテーマにします。
  16. 16. 目次 • 第一章 人工知能の作り方 • 第二章 ソフトウェアの構造 • 第三章 人工知能へ • 第四章 知識構造 • 第五章 ナビゲーションAI • 第六章 メタAI ゲーム全体の思考 • 第七章 思考 • 第八章 思考の構造
  17. 17. 第一章 人工知能の作り方
  18. 18. このAIはどう作るか? プレイヤー キャラクター 岩 地面 池 例として、次のようなキャラクターのAIをどう作るか考えてみよう。 http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/
  19. 19. このAIはどう組むか? こういったAIをゲーム産 業では「Scripted AI」と言 います。こういったAIは ゲームデザイナーがスク リプト言語で書く場合多 いため。 プレイヤー キャラクター 岩 地面 池 A B 、 (例) プレイヤーがAにいれば Bをうろうろする。 プレイヤーがBにいれば 近づいて攻撃する。 http://septieme-ciel.air-nifty.com/nikubanare/2007/08/post_3c38.html http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/
  20. 20. スクリプト Scripted AI から自律型AIへの変化 ゲームデザイナーの頭の中 ゲームデザイナーの頭の中 知識 思考 Scripted AI 自律型 AI (Autonomous AI) http://piposozai.blog76.fc2.com/
  21. 21. スクリプト Scripted AI から自律型AIへの変化 ゲームデザイナーの頭の中 ゲームデザイナーの頭の中 知識 思考 Scripted AI 自律型 AI (Autonomous AI) 操り人形(Scripted AI)から、キャラクターが自分で考えて行動する 自律型AI(Autonomous AI)になるためには、 ゲームデザイナーが頭の中で持っている知識と思考をAIに埋め込 む必要がある。
  22. 22. このAIはどう組むか? プレイヤー キャラクター 岩 地面 池 地形データ (Way Points) 、 ステップ1: AIにゲームステージの 地形を認識させたい =地形のデータを与える。 AIは地形データによって、自分とプレイヤーの位置関係を知る ことができる。 http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/
  23. 23. このAIはどう組むか? 地形データ (Way Points) AIは地形データによって、自分とプレイヤーの位置関係を知る ことができる。(ネットワークグラフの問題に帰着) http://dear-croa.d.dooo.jp/download/illust.htmlhttp://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/
  24. 24. ナビゲーションAI このAIはどう組むか? プレイヤー キャラクター 岩 地面 池 、 ステップ2: 地形データをもとに考え る思考を与える。 地形データを用いた 思考 地形データ (Way Points) http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/
  25. 25. このAIはどう組むか? AIは地形データによって、自分とプレイヤーの位置関係を知る ことができる。(ネットワークグラフの問題に帰着) 地形データ (Way Points) 地形データを用いた 思考 最短経路を計算 http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/
  26. 26. ナビゲーションAI このAIはどう組むか? 地形データ (Way Points) ここの点グループはお互いが見えている。 ここの点グループはお互いが見えている。 地形データを用いた 思考 ネットワークグラフに可視判定の情報を埋め込む。
  27. 27. このAIはどう組むか? ナビゲーションAI 地形データ (Way Points) ここの点グループはお互いが見えている。 ここの点グループはお互いが見えない。 地形データを用いた 思考 ネットワークグラフに可視判定の情報を埋め込む。
  28. 28. このAIはどう組むか? ナビゲーションAI 地形データ (Way Points) 地形データを用いた 思考 プレイヤーからキャラクターが見えていない。 http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/
  29. 29. このAIはどう組むか? ナビゲーションAI 地形データ (Way Points) 地形データを用いた 思考 プレイヤーから見つけて貰うために プレイヤーからキャラクターが見えるように動く。 http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/
  30. 30. このAIはどう組むか? プレイヤーからキャラクターが見えない位置に動く。 ナビゲーションAI 地形データ (Way Points) 地形データを用いた 思考 http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/
  31. 31. ナビゲーションAI このAIはどう組むか? 地形データ (Way Points) 攻撃する 意思決定思考 地形データを用いた 思考 http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/
  32. 32. ナビゲーションAI このAIはどう組むか? 地形データ (Way Points) 攻撃するか? 隠れるか? 牽制するか? を選ぶ思考。 = 意思決定思考 意思決定思考 地形データを用いた 思考 http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/
  33. 33. このAIはどう組むか? プレイヤー キャラクター 岩 地面 池 地形データ (Way Points) 、 これで、キャラクター を知能化することが できた。 地形デー タを用いた 思考 意思決定 思考 http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/
  34. 34. AIを作る 人間 地形データ (Way Points) 地形デー タを用いた ロジック オブジェク トを用いた ロジック http://piposozai.blog76.fc2.com/
  35. 35. AIを作る 人間 地形データ (Way Points) 地形デー タを用いた ロジック オブジェク トを用いた ロジック ここでキャラクターに知能を与えたプロセスを振り返ってみる。 ステップ1: 知識を与えた。 ステップ2: 知識の上で操作する思考を与えた。 ステップ3: 自分の意志を決定する思考を与えた。 http://piposozai.blog76.fc2.com/
  36. 36. 知識 思考 AIを作る 人間 地形データ (Way Points) 地形デー タを用いた 思考 意思決定 の思考 知識を(データ)表現する。(知識) 知識に基づいて思考する。(AI思考) AI自身に「知識」と「知識の上の思考」を与えることが 知能を作る基本。 http://piposozai.blog76.fc2.com/
  37. 37. 思考知識 AIを作る 人間 地形データ (Way Points) 地形デー タを用いた 思考 オブジェク トデータ 意思決定 の思考 自分の 身体データ 身体運動 の ロジック 知識を(データ)表現する。(知識) 知識に基づいて思考する。(AI思考) http://piposozai.blog76.fc2.com/ 「知識」と「その上の思考」をどんどん増やして行くことでAIは成長する。
  38. 38. 知能 思考知識 AIを作る 人間 地形データ (Way Points) 地形デー タを用いた 思考 オブジェク トデータ 意思決定 の思考 自分の 身体データ 身体運動 の ロジック http://piposozai.blog76.fc2.com/ 知能 = 知識 × 思考
  39. 39. 知能 思考知識 AIを作る 人間 地形データ (Way Points) 地形デー タを用いた 思考 オブジェク トデータ 意思決定 の思考 自分の 身体データ 身体運動 の ロジック http://piposozai.blog76.fc2.com/ これでキャラクター自身が知能を持つことができた。 キャラクターの持つ知能をキャラクターAIと言う。
  40. 40. 知能 思考知識 AIを作る 人間 地形データ (Way Points) 地形デー タを用いた 思考 オブジェク トデータ 意思決定 の思考 自分の 身体データ 身体運動 の ロジック http://piposozai.blog76.fc2.com/ この例ではナビゲーションAIとキャラクターAIが連携 していた。
  41. 41. 目次 • 第一章 人工知能の作り方 • 第二章 ソフトウェアの構造 • 第三章 人工知能へ • 第四章 知識構造 • 第五章 ナビゲーションAI • 第六章 メタAI ゲーム全体の思考 • 第七章 思考 • 第八章 思考の構造
  42. 42. 第二章 ソフトウェアの構造
  43. 43. 知識 思考 知識 思考 知識 思考 最小の人工知能の単位 独立に持つ
  44. 44. 知識 思考 最小の知能の単位
  45. 45. 2.1 階層型アーキテクチャ
  46. 46. 知識 思考 最小の知能の単位階層型アーキテクチャ
  47. 47. 知識 思考 最小の知能の単位階層型アーキテクチャ
  48. 48. (例)
  49. 49. ステート・マシン ステート ステート ステート ステートマシン(有限状態マシン) ステートに自分への命令、遷移条件に世界と自分の状況の変化を書く。 ループ構造により、フィードバック構造はない。
  50. 50. プレイヤーを待ち構えるAI 2体の敵キャラクターが哨戒していて、一人のプレイヤーが部屋に入って来る。 http://dear-croa.d.dooo.jp/download/illust.html http://piposozai.blog76.fc2.com/
  51. 51. ステート・マシン ステートマシン(有限状態マシン) ステートに自分への命令、遷移条件に世界と自分の状況の変化を書く。 ループ構造により、フィードバック構造はない。 待機 攻撃 パトロール
  52. 52. 警戒 追跡 追いかける 攻撃する 威嚇攻撃 味方に指示 出口をかためる 味方を呼ぶ 味方がいない かつ 戦闘範囲外 味方と合流 味方と合流 味方がいる 見失う 見える 見失う 見つける 巡回する 10秒経つ 物音を 聴く 応答がきた 階層型ステート・マシン
  53. 53. (例) Quake HFSM Ⓒ2015 SQUARE ENIX CO., LTD. All Rights Reserved. 状態遷移図を用いる http://ai-depot.com/FiniteStateMachines/FSM-Practical.html
  54. 54. 2.2 メタ思考アーキテクチャ
  55. 55. 知識 思考 知識 思考 知識 思考 メタ思考 思考を選ぶ思考
  56. 56. 知識 思考 知識 思考 知識 思考 メタ思考 メタ思考アーキテクチャ
  57. 57. (例)
  58. 58. IF ( 前置宣言文 ) then (後置宣言文) ルールベース意思決定 Rule-based Decision Making ルール ここでは、この形式の制御文をルールと言います。 もちろん、IF ( … IF (.... IF… ) ) ) のような入れ子構造の制御文も ルールベースと呼びますが、 ルールベースと言えば、基本的には、ルールを一つの単位として、 意思決定を行う、という意味です。
  59. 59. 推論エンジン A B C D E T F F F F T T F F F T T F T F T T T T F T T T T T F T T T T F F F T T …………………………… …………………………… ………………… T: True F: False ID 0 : IF A THEN B ID 1 : IF A && D THEN C ID 3 : IF C THEN E ID 4 : IF B THEN D ID .. : ID 4 : IF E THEN ~A ルール内の条件部がtrueの時、そのルールが発火する(fired) すると言います。発火したルールの宣言文は true となり、また それが別のルールを発火させます。 発火をくり返して、true/False が変化して行く様子
  60. 60. ルール制御 ID 0 : IF …. THEN … ID 1 : IF …. THEN … ID 3 : IF …. THEN …. ID 4 : IF …. THEN … ID .. : ID 4 : IF …. THEN … Priority: 3 Priority: 1 Priority: 4 Priority: 5 Priority: 2 ルールに固定、あるいは変動プライオリティ(優先度)をつけて制御を行う。 あるいはランダムにルールをピックアップする場合もある。戦略思考、キャラク ターの挙動などでよく使われる。 Priority: - 制御 ルール= IF ( 行動条件文 ) then (動作命令文)
  61. 61. (例) ルール制御 ID 0 : IF …. THEN … ID 1 : IF …. THEN … ID 3 : IF …. THEN …. ID 4 : IF …. THEN … ID .. : ID 5 : IF …. THEN … Priority: 3 Priority: 1 Priority: 4 Priority: 5 Priority: 2 或いは、状況判断思考によってルールを振り分ける。 戦略思考、キャラクターの挙動などでよく使われる。 Priority: - 制御 思考 ルール= IF ( 行動条件文 ) then (動作命令文)
  62. 62. 応用可能性例 http://gomibako.symphonic-net.com/vote.cgi?genre=act_b&rating=9 ID 0 : IF (敵確認) THEN (逆方向) ID 1 : IF (誰もいない) THEN (ランダムウォーク) ID 2 : IF (フルーツ発見) THEN (フルーツゲット) ID 3 : IF (パワー発見) THEN (パワーゲット) ID 0 : IF (敵強い) THEN (サンダガ) ID 1 : IF (自分弱い) THEN (弱い敵に攻撃) ID 2 : IF (HP<20) THEN (ケアル) ID 3 : IF (パワー発見) THEN (パワーゲット) こうなっているというのではなくて、こういうふうに応用できる例 パックマンなど RPGなど
  63. 63. The Sims 3 における応用 街全体をソーシャルにシミュレーションして人との関係を楽しむゲーム。 たくさんのAIを「人間らしく」制御しなければならない。 特徴付けにプロダクションルールを採用。 Richard Evans, "Modeling Individual Personalities in The Sims 3", GDC 2011 http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The
  64. 64. Sims3 における応用 あらゆる相互作用を考慮 注目するエージェントの行動範囲だけを考慮 Richard Evans, "Modeling Individual Personalities in The Sims 3", GDC 2011 http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The
  65. 65. データドリブンなプロダクション・ルール プロダクションルール Sims3 における応用 Richard Evans, "Modeling Individual Personalities in The Sims 3", GDC 2011 http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The
  66. 66. プロダクションルール プロダクションルールは種類によってランク付けされていて、 最もランクの高いルールが発火する。 ルールが発火すると他のSimは、その特性を理解する。 データドリブンなプロダクション・ルール Sims3 における応用
  67. 67. (例)
  68. 68. ユーティリティ・ベース • ユーティリティ・ベースは高度に抽象的な戦術 決定の方法。 • 世界をモデル化し、評価すべき行動群の効用 (ユーティリティ)を数値に還元する。
  69. 69. The Sims シリーズのAIの作り方 人をダイナミクス(力学系、動的な数値の仕組み )として動かす。 世界を動かす PeerAI(=キャラクターAI) を構築。 Sub Peer Meta Meta Peer Sub [原則] 周囲の対象に対する、あらゆる可能な行動から、 ムード(幸せ) 係数を最大化する行動を選択する。 Sims (not under direct player control) choose what to do by selecting, from all of the possible behaviors in all of the objects, the behavior that maximizes their current happiness. Will Wright, AI: A Design Perspective (AIIDE 2005) http://www.aaai.org/Papers/AIIDE/2005/AIIDE05-041.ppt Kenneth Forbus, Will Wright, “Some notes on programming objects in The Sims – Example” http://www.qrg.cs.northwestern.edu/papers/Files/Programming_Objects_in_The_Sims.pdf
  70. 70. オブジェクトに仕込むデータ構造 Data (Class, Sate) Graphics (sprites, z- buffers)Animations (skeletal) Sound Effects Code (Edith) -Main (object thread) -External 1 -External 2 -External 3 パラメーター グラフィックス アニメーション サウンド メインスレッド いろいろなインタラクションの仕方 Ken Forbus, “Simulation and Modeling: Under the hood of The Sims” (NorthWerstern大学、講義資料) ※IEで見てください。 http://www.cs.northwestern.edu/%7Eforbus/c95-gd/lectures/The_Sims_Under_the_Hood_files/frame.htm Kenneth Forbus, Will Wright, “Some notes on programming objects in The Sims – Example” http://www.qrg.cs.northwestern.edu/papers/Files/Programming_Objects_in_The_Sims.pdf
  71. 71. The Sims における「モチーフ・エンジン」 Ken Forbus, “Simulation and Modeling: Under the hood of The Sims” (NorthWerstern University) http://www.cs.northwestern.edu/%7Eforbus/c95-gd/lectures/The_Sims_Under_the_Hood_files/frame.htm Data - Needs - Personality - Skills - Relationships Sloppy - Neat Shy - Outgoing Serious - Playful Lazy - Active Mean - Nice Physical - Hunger - Comfort - Hygiene - Bladder Mental - Energy - Fun - Social - Room Motive Engine Cooking Mechanical Logic Body Etc. AIの人格モデル
  72. 72. 最適(=最大効用)な行動を選択する Hunger +20 Comfort -12 Hygiene -30 Bladder -75 Energy +80 Fun +40 Social +10 Room - 60 Mood +18 Toilet - Urinate (+40 Bladder) - Clean (+30 Room) - Unclog (+40 Room) Mood +26 Bathtub - Take Bath (+40 Hygiene) (+30 Comfort) - Clean (+20 Room) Mood +20 [原則] 周囲の対象に対する、あらゆる可能な行動から、 総合的な効用 (=Mood) を最大化する行動を選択する。
  73. 73. ムードの計算方法と各パラメーターのウェイトグラフ Mood = W_Hunger(X_Hunger) * X_Hunger + W_Engergy(X_Energy) * X_Energy + … -100 0 100 -100 0 100 -100 0 100 -100 0 100 -100 0 100 -100 0 100 -100 0 100 -100 0 100 W_Hunger W_Energy W_Comfort W_Fun W_Hygiene W_Social W_Bladder W_Room
  74. 74. 効用(Utility)の計算の仕方 W_Hunger X_Hunger W_Hunger(-80) -80 60 W_Hunger(60)
  75. 75. 効用(Utility)の計算の仕方 W_Hunger X_Hunger W_Hunger(-80) -80 60 W_Hunger(60) Hunger degree at -80 = W_Hunger(-80)*(-80) Hunger degree at 60 = W_Hunger(60)*(60) Δ = W_Hunger(60)*(60) - W_Hunger(-80)*(-80) Utility for hunger
  76. 76. 限界効用逓減の法則 X_Hunger W_Hunger(-80) -80 60 W_Hunger(60) Δ(-80 → 60)=W_Hunger(60)*(60) - W_Hunger(-80)*(-80) Δ (60→90) =W_Hunger(90)*(90) - W_Hunger(60)*(60) 90 W_Hunger(90) Δ(-80 → 60) is much larger than Δ(60→90) ある程度満たされたものを満たすより、 満たされないものをある程度満たす方が大きな満足をもたらす Utility for hunger ビールは一杯目が一番おいしい
  77. 77. The Sims のAIの原理 三宅陽一郎、「Spore におけるゲームAI技術とプロシージャル」 (DiGRA Japan 第14回 月例研究 http://digrajapan.org/?wpdmact=process&did=Ni5ob3RsaW5r Ken Forbus, “Simulation and Modeling: Under the hood of The Sims” (NorthWerstern大学、講義資料) http://www.cs.northwestern.edu/%7Eforbus/c95-gd/lectures/The_Sims_Under_the_Hood_files/frame.htm Richard Evans, Modeling Individual Personalities in The Sims 3, GDC 2010 http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The
  78. 78. The Sims 3 では、多くのムードや欲求が準備される。 行動 対象 GDC09 資料 http://www.gdcvault.com/play/1452/(307)-Breaking-the-Cookie-Cutter
  79. 79. 2.3 マルチレイヤード・アーキテク チャ
  80. 80. 知識 思考 知識 思考 知識 思考 レイヤー
  81. 81. 知識 思考 知識 思考 知識 思考 レイヤー マルチレイヤード・アーキテクチャ
  82. 82. J.M.P. van Waveren, “The Quake III Arena Bot” http://www.kbs.twi.tudelft.nl/docs/MSc/2001/Waveren_Jean-Paul_van/thesis.pdf
  83. 83. 知識 思考 知識 思考 知識 思考 サブサンプション・アーキテクチャ 抑制・解放 抑制・解放
  84. 84. 2.4 サブサンプション・アーキテクチャ
  85. 85. サブサンプション・アーキテクチャ INPUT OUTPUT Time 情報を抽象化 反射的 より抽象的思考 理論的思考 抽象的思考 アクションを生成
  86. 86. 古典: 中央集権型(Central domain) すべての知的プロセスが 順番に実行 サブサンプション : 並列 & 多層化 すべての知的プロセスが、 並列に実行 Rodney Brooks, A robust layered control system for a mobile robot Robotics and Automation, IEEE Journal of (Volume:2 , Issue: 1 ) 1986
  87. 87. Roomba (iRobot) http://www.irobot.com/en/us/learn/home/roomba.aspx Roomba はサブサンプション・アーキテクチャを持つ
  88. 88. サブサンプション・アーキテクチャ INPUT OUTPUT Time Reactive R ロボットは障害物をみつけと ターン。
  89. 89. サブサンプション・アーキテクチャ INPUT OUTPUT Time Reactive R ロボットは崖を見つけると 後退する.
  90. 90. サブサンプション・アーキテクチャ INPUT OUTPUT Time Reactive More Abstract thinking Abstract thinking R ロボットは足音を聴くと、 とりあえずストップする。
  91. 91. Subsumption Architecture INPUT OUTPUT Reactive More Abstract thinking Theoretical thinking Abstract thinking R 全部掃除が終わると、 エネルギーステーションに戻る
  92. 92. Subsumption Architecture INPUT OUTPUT Time Reactive More Abstract thinking Theoretical thinking Abstract thinking サブサンプションを エージェント・アーキテクチャに適用。 情報を抽象化 アクションを生成
  93. 93. 目次 • 第一章 人工知能の作り方 • 第二章 ソフトウェアの構造 • 第三章 人工知能へ • 第四章 知識構造 • 第五章 ナビゲーションAI • 第六章 メタAI ゲーム全体の思考 • 第七章 思考 • 第八章 思考の構造
  94. 94. 第三章 人工知能へ
  95. 95. 世界 情報的・物質的循環 物質 物理的OUTPUT 代謝機能情報INPUT INFORMATION OUTPUT INFORMATION 情報処理=情報代謝 (つまり思考) 生理的代謝機能 物理的INPUT
  96. 96. キャラクターの知能を表現する 世界 http://piposozai.blog76.fc2.com/
  97. 97. 知能 身体 キャラクターを表現する 世界 記憶
  98. 98. 知能 身体 キャラクターを表現する 世界 記憶五感 身体 言語 知識表 現型 センサー・ 物理
  99. 99. 知能 身体 キャラクターを表現する 世界 記憶五感 身体 言語 知識表 現型 センサー・ 物理 知識 生成 Knowledge Making
  100. 100. 身体 キャラクターを表現する 世界 記憶五感 身体 言語 知識表 現型 センサー・ 物理 知識 生成 Knowledge Making 意思決定 Decision Making
  101. 101. 身体 キャラクターを表現する 世界 記憶五感 身体 言語 知識表 現型 センサー・。 物理 知識 生成 Knowledge Making 意思決定 Decision Making 運動 生成 Motion Making
  102. 102. 身体 キャラクターを表現する 世界 記憶五感 身体 言語 知識表 現型 センサー・ 物理 知識 生成 Knowledge Making 意思決定 Decision Making 運動 生成 Motion Making 身体・ 発話・ 情報 発信 エフェクター
  103. 103. 身体 エージェント・アーキテクチャ 世界 記憶五感 身体 言語 知識表 現型 センサー・ 物理 知識 生成 Knowledge Making 意思決定 Decision Making 運動 生成 Motion Making 身体・ 発話・ 情報 発信 エフェクター
  104. 104. 身体 キャラクターを表現する 世界 記憶五感 身体 言語 知識表 現型 センサー・ 物理 知識 生成 Knowledge Making 意思決定 Decision Making 運動 生成 Motion Making 身体・ 発話・ 情報 発信 エフェクター エージェント・アーキテクチャ インフォメーション・フロー(情報回廊)
  105. 105. 身体 世界 記憶五感 身体 言語 知識表 現型 センサー・ 物理 知識 生成 Knowledge Making 意思決定 Decision Making 運動 生成 Motion Making 身体・ 発話・ 情報 発信 エフェクター インフォメーション・フロー(情報回廊) 内部循環インフォメーション・フロー(情報回廊) エージェント・アーキテクチャ
  106. 106. 世界 / データ群 (Undifined) センサー エフェクター 知能 エージェント・アーキテクチャ
  107. 107. 世界 / データ群 (Undifined) センサー エフェクター 知能 インフォメーション・フロー エージェント・アーキテクチャ
  108. 108. 世界 / データ群 (Undefined) センサー エフェクター インフォメーション・フロー 知識 思考 エージェント・アーキテクチャ
  109. 109. 世界 / データ群 (Undefined) センサー エフェクター インフォメーション・フロー エージェント・アーキテクチャ
  110. 110. 世界 / データ群 (Undefined) センサー エフェクター インフォメーション・フロー エージェント・アーキテクチャ
  111. 111. 目次 • 第一章 人工知能の作り方 • 第二章 ソフトウェアの構造 • 第三章 人工知能へ • 第四章 知識構造 • 第五章 ナビゲーションAI • 第六章 メタAI ゲーム全体の思考 • 第七章 思考 • 第八章 思考の構造
  112. 112. 第四章 知識構造
  113. 113. 描画データ 描画データ http://piposozai.blog76.fc2.com/
  114. 114. http://piposozai.blog76.fc2.com/ 衝突モデル(当たりモデル) キャラクター衝突データ オブジェクト衝突データ オブジェクト衝突データ 床 物理的インタラクション
  115. 115. 知識表現データ 知識表現データ http://piposozai.blog76.fc2.com/
  116. 116. http://piposozai.blog76.fc2.com/ 知識表現データ 知識表現データ 知識表現データ 知識表現データ
  117. 117. 知識表現データ 知識表現データ 知識表現データ 知識表現データ 情報の受け渡し (例)私は座標(2.1, 3.4, 5.6)にいる。 薬草は体力を回復する (例)私は座標(2.1, 3.4, 5.6)にいる。 薬草は体力を回復する (例)これは岩である。 動かすことはできない。 側の点に隠れることができ http://piposozai.blog76.fc2.com/
  118. 118. 知識表現・世界表現 仮想世界の知性 =人工知能 WORLD 人工知能は生物のように世界をそのまま認識・解釈できるだろうか? 仮想世界の知性 =人工知能 WORLD AIが世界(物・事・空間など)を解釈できるように、世界をうまく情報表現する = 知識表現 (KR、Knowledge Representation) 知識表現 (KR)
  119. 119. ゲーム世界 世界をリアルタイムに解釈 知識表現と作用世界・知覚世界 AIはそのままでは 理解できない。 http://piposozai.blog76.fc2.com/
  120. 120. ゲーム世界 世界をリアルタイムに解釈 知識表現と作用世界・知覚世界 AIはそのままでは 理解できない。 現在の人工知能のレベルは難しい http://piposozai.blog76.fc2.com/
  121. 121. ゲーム世界 知識表現 知識表現と作用世界・知覚世界 AIはそのままでは 理解できない。 http://piposozai.blog76.fc2.com/
  122. 122. ゲーム世界 知識表現 知識表現と作用世界・知覚世界 AIは知識表現を通して世界を見る。それはAIの主観を決定し、 作用世界と知覚世界も決定する。 http://piposozai.blog76.fc2.com/
  123. 123. ゲーム世界 知識表現 知識表現と作用世界・知覚世界 AIはそのままでは 理解できない。 作用世界 知覚世界 AIは知識表現を通して世界を見る。それはAIの主観を決定し、 作用世界と知覚世界も決定する。 AI http://piposozai.blog76.fc2.com/
  124. 124. いろいろな知識表現 事実表現(信頼度表現) 意味ネットワーク 敵表現リスト 依存グラフ ルールベース表現 世界表現 Griesemer,J, "The Illusion of Intelligence: The Integration of AI and Level Design in Halo", 2002 http://downloads.bungie.net/presentations/gdc02_jaime_griesemer.ppt
  125. 125. 世界表現(知識表現の一つ) マップ全体に関わる知識表現を世界表現という (ウェイポイント、ナビメッシュを基本とする表現) World Representation (WR) (例) 8方向の可視距離の各ポイントに埋め込まれたウェイポイント群 (Killzone) Straatman, R., Beij, A., Sterren, W.V.D., "Killzone's AI : Dynamic Procedural Combat Tactics", 2005 http://www.cgf-ai.com/docs/straatman_remco_killzone_ai.pdf
  126. 126. 知識表現・世界表現 知識表現 世界表現
  127. 127. いろいろな世界表現 ナビメッシュ-ウェイポイント 階層表現 LOS マップ 戦術マップクラスタリング 敵配位マップ テリトリー表現 Tactical Point System Halo2Killzone Killzone2Halo Assassin’s Creed Left 4 Dead Alex J. Champandard, Remco Straatman, Tim Verweij, "On the AI Strategy for KILLZONE 2's Bots” http://aigamedev.com/open/coverage/killzone2/ Damian Isla,"Building a Better Battle: HALO 3 AI Objectives", http://halo.bungie.net/inside/publications.aspx Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference , http://www.valvesoftware.com/company/publications.html
  128. 128. 世界表現(知識表現の1つ) マップ全体に関わる知識表現を世界表現という (ウェイポイント、ナビメッシュを基本とする表現) World Representation (WR) (例) 8方向の可視距離の各ポイントに埋め込まれたウェイポイント群 (Killzone) Straatman, R., Beij, A., Sterren, W.V.D., "Killzone's AI : Dynamic Procedural Combat Tactics", 2005 http://www.cgf-ai.com/docs/straatman_remco_killzone_ai.pdf
  129. 129. Halo2 :世界表現 Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
  130. 130. Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html Halo2 :世界表現
  131. 131. Halo2 :世界表現 Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
  132. 132. Halo2 :世界表現 Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
  133. 133. Halo2: 世界表現 Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
  134. 134. Halo2: 世界表現 Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
  135. 135. Halo2: 世界表現 Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
  136. 136. Halo2: 世界表現 Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
  137. 137. Halo2: 世界表現 Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
  138. 138. Counter Strike : Navigation Mesh 世界表現 Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
  139. 139. 知識表現・世界表現 知識表現 世界表現 オブジェクト 表現
  140. 140. オブジェクト表現 車 レバー ドアの知識表現 位置 x: 3.0 y:.10,0 レバーで開けることが出来る 壊して開けることが出来る 車の知識表現 位置 x: 3.0 y:.2,0 乗って動かすことが出来る。 時速80kmで動く。 レバーの知識表現 位置 x: 5.0 y:.5,0 引くが出来る。 (結果:ドアが開く) ドア ドアの知識表現 位置 x:3.0 y:10.0 レバーを引くと開く(ルール) レバーの知識表現 位置 x:5.0 y:5.0 引くことができる(アフォーダンス). レバーを引くとドアが開く(ルール) 車の知識表現 位置 x:3.0 y:2.0 運転することができる. 最大速度: 80km 物に対する表現
  141. 141. オブジェクト表現 これが車である この方向に押せば動く Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
  142. 142. アフォーダンス 食べること ができる 登ること ができる 動かすこ とができる http://piposozai.blog76.fc2.com/
  143. 143. 作用空間 アフォーダンス 食べること ができる 登ること ができる 動かすこ とができる http://piposozai.blog76.fc2.com/
  144. 144. アフォーダンス 歩くこと ができる 届く 押すこと ができる http://piposozai.blog76.fc2.com/
  145. 145. 作用空間 アフォーダンス 歩くこと ができる 届く 押すこと ができる http://piposozai.blog76.fc2.com/
  146. 146. 知識表現データ 知識表現データ 知識表現データ 知識表現データ 情報の受け渡し (例)私は座標(2.1, 3.4, 5.6)にいる。 薬草は体力を回復する (例)私は座標(2.1, 3.4, 5.6)にいる。 薬草は体力を回復する (例)これは岩である。 動かすことはできない。 側の点に隠れることができ http://piposozai.blog76.fc2.com/
  147. 147. 知識 表現知識 表現 知性を豊かにするには? 知識 表現知識 表現知識 表現知識 表現 知識 表現知識 表現知識 表現 知識 表現 世界 表現 知識表現・世界表現が思考の足場を与える。 不安定な足場では高い思考を積み上げることはできない。 思考
  148. 148. 知識 表現知識 表現知識 表現知識 表現 知識 表現知識 表現知識 表現知識 表現 知性を豊かにするには? 知識 表現知識 表現知識 表現知識 表現 知識 表現知識 表現知識 表現知識 表現 知識 表現知識 表現知識 表現知識 表現 知識 表現知識 表現知識 表現知識 表現 知識 表現知識 表現知識 表現知識 表現 世界 表現世界 表現世界 表現世界 表現 知識表現・世界表現が思考の足場を与える。
  149. 149. 知識 表現知識 表現知識 表現知識 表現 知識 表現知識 表現知識 表現知識 表現 知性を豊かにするには? 知識 表現知識 表現知識 表現知識 表現 知識 表現知識 表現知識 表現知識 表現 知識 表現知識 表現知識 表現知識 表現 知識 表現知識 表現知識 表現知識 表現 知識 表現知識 表現知識 表現知識 表現 世界 表現世界 表現世界 表現世界 表現 思考 思考 思考 知識表現・世界表現が思考の足場を与える。
  150. 150. 知識 表現 知識表現に 応じた思考 最小の知能の単位
  151. 151. 知識 表現 知識表現に 応じた思考 最小の知能の単位 人工知能技術
  152. 152. 世界 / データ群 (Undefined) センサー エフェクター インフォメーション・フロー 知識 表現 思考 エージェント・アーキテクチャ
  153. 153. 目次 • 第一章 人工知能の作り方 • 第二章 ソフトウェアの構造 • 第三章 人工知能へ • 第四章 知識構造 • 第五章 ナビゲーションAI • 第六章 メタAI ゲーム全体の思考 • 第七章 思考 • 第八章 思考の構造
  154. 154. 第五章 ナビゲーションAI
  155. 155. ナビゲーション・データ フリー素材屋Hoshino http://www.s-hoshino.com/
  156. 156. ナビゲーション・データ ウェイポイント・グラフ (点を要素とするネットワークグラフ) ナビゲーションメッシュ・ グラフ (三角形(凸角形)を要素とする ネットワークグラフ) 歩くこと ができる。 フリー素材屋Hoshino http://www.s-hoshino.com/
  157. 157. パス検索 =ゲーム内で任意の2点間の経路をゲーム進行中に計算する技術 RTS – Pathfinding A* https://www.youtube.com/watch?v=95aHGzzNCY8
  158. 158. ネットワーク上のグラフ検索法 M F L B A S O P D C G S V H Q X K N J R T W E I U Z Y G 54 6 3 7 23 B C 3 G D E 3 2 24 L 3 3 5 5 J F 出発点(S)を中心に、最も短い経路を形成して 行く。Gにたどり着いたら終了。 各ノードの評価距離=出発点からの経路 ダイクストラ法
  159. 159. ネットワーク上のグラフ検索法 ダイクストラ法 M F L B A S O P D C G S V H Q X K N J R T W E I U Z Y G 54 6 3 7 23 B C 3 G D E 3 2 24 L 3 3 5 5 J F 出発点(S)を中心に、最も短い経路を形成して 行く。Gにたどり着いたら終了。 各ノードの評価距離=出発点からの経路
  160. 160. ネットワーク上のグラフ検索法 A*法 M F L B A S O P D C G S V H Q X K N J R T W E I U Z Y G 54 6 3 7 23 B C 3 3 2 24 3 5 5 出発点(S)を中心に、そのノードまでの 最も短い経路を形成して行く。Gにたどり着いたら終了。 ゴール地点がわかっている場合、現在のノードとゴールとの推定距離(ヒューリスティック距離) を想定して、トータル距離を取り、それが最少のノードを探索して行く。 各ノードの評価距離=出発点からの経路+ヒューリスティック距離 ヒューリスティック距離 (普通ユークリッド距離を取る) 3+14.2 3+13.8 G H 3 5+10.5 6+8.4
  161. 161. ネットワーク上のグラフ検索法 A*法 M F L B A S O P D C G S V H Q X K N J R T W E I U Z Y G 54 6 3 7 23 B C 3 3 2 24 3 5 5 出発点(S)を中心に、そのノードまでの 最も短い経路を形成して行く。Gにたどり着いたら終了。 ゴール地点がわかっている場合、現在のノードとゴールとの推定距離(ヒューリスティック距離) を想定して、トータル距離を取り、それが最少のノードを探索して行く。 各ノードの評価距離=出発点からの経路+ヒューリスティック距離 ヒューリスティック距離 (普通ユークリッド距離を取る) 3+14.2 3+13.8 G H 3 5+10.5 6+8.4
  162. 162. Counter Strike (2000)におけるナビメッシュ The Official Counter-Strike Bot http://aigamedev.com/insider/presentation/official-counter-strike-bot/
  163. 163. Counter Strike (2000)におけるナビメッシュ The Official Counter-Strike Bot http://aigamedev.com/insider/presentation/official-counter-strike-bot/
  164. 164. Counter Strike: Path Following (デモ) The Official Counter-Strike Bot http://aigamedev.com/insider/presentation/official-counter-strike-bot/
  165. 165. Dragon Age : Way Point Dragon Age pathfinding program put to the test https://www.youtube.com/watch?v=l7YQ5_Nbifo
  166. 166. 位置解析システム
  167. 167. TPS (Tactical Point System) • 戦術位置検索システム • 目的に応じたポイントをその場で探し出す。 • CryEngine で発想され、2011年ぐらいから実 装されている。 • Unreal Engine 4では、EQS(Evaluation Query System)で同じ機能がある。BehaviorTree や、 BluePrintから呼び出して使える。
  168. 168. 沼 高台 湖 野原 敵 味方 AI(現在位置) このような状況でAIは次にどこに行くべきか? を自分で考えさせたい。
  169. 169. 沼 高台 湖 野原 敵 味方 AI(現在位置) 動的にポイントを生成します
  170. 170. 沼 高台 湖 野原 敵 味方 AI(現在位置) フィルター1:そもそも足場の悪い点を除外します。
  171. 171. 沼 高台 湖 野原 敵 味方 AI(現在位置) フィルター2:敵に近くのポイントも除外します
  172. 172. 沼 高台 湖 野原 敵 味方 AI(現在位置) フィルター3:味方に近くのポイントも除外します
  173. 173. 沼 高台 湖 野原 敵 味方 AI(現在位置) フィルター4:残ったポイントの中で一番高い場所を選択します。
  174. 174. TPS (Tactical Point System) ゲーム中(ランタイム)に、グリッドか円形にポイントを生成。 条件を設定して要らないポイントをふるい落とす 条件を設定して要らないポイントをふるい落とす 残ったポイントを評価する 一点だけが残る
  175. 175. (例)クエリー(Query)システム =問い合わせシステム 敵 目的 地 味 方 味 方 味 方 Query(最短パス) Query(安全パス) Query(味方合流パス) Query(武器の届く、高台ポイント)
  176. 176. ポイントを動的に配置して評価する
  177. 177. Matthew Jack, Mika Vehkala Spaces in the Sandbox: Tactical Awareness in Open World Games (GDC2013) http://www.gdcvault.com/play/1018038/Spaces-in-the-Sandbox-Tactical
  178. 178. 世界 / データ群 (Undefined) センサー エフェクター インフォメーション・フロー 知識 表現 知識表現に 基づく思考 エージェント・アーキテクチャ
  179. 179. 目次 • 第一章 人工知能の作り方 • 第二章 ソフトウェアの構造 • 第三章 人工知能へ • 第四章 知識構造 • 第五章 ナビゲーションAI • 第六章 メタAI ゲーム全体の思考 • 第七章 思考 • 第八章 思考の構造

×