...

人工知能 STRIPSの問題点 STRIPSの問題点 STRIPSの問題点 サブ

by user

on
Category: Documents
12

views

Report

Comments

Transcript

人工知能 STRIPSの問題点 STRIPSの問題点 STRIPSの問題点 サブ
11/11/08
STRIPSの問題点
•  実世界の問題への対応
人工知能 unstack(C,A),putdown(C),pickup(A),stack(A,C)
今井 倫太 C
A
A
B
STRIPSの問題点
プランàa1, a2, a3,…,an
C
B
STRIPSの問題点
•  実世界の問題への対応
•  実世界の問題への対応
リプランの必要が出てくる。 実行前に全てプランを決めているのが問題。
unstack(C,A),putdown(C),pickup(A),stack(A,C)
unstack(C,A),putdown(C),pickup(A),stack(A,C)
A
A
C
A
B
B
C
C
A
サブサンプションアーキテクチャ
• 
• 
• 
• 
R. Brooks 昆虫の知能を参考 実世界への対処 反射で動くシステム B
B
C
アーキテクチャのスタイル
•  水平アーキテクチャ –  従来のシステム設計:STRIPSなど •  垂直アーキテクチャ –  サブサンプションアーキテクチャ •  実世界の変化への対処能力が異なる。 1
11/11/08
垂直アーキテクチャ SubsumpAon Architecture (SSA) 水平アーキテクチャ
•  設計したいシステムを機能に分解して実装。 •  入力から出力の間に沢山のモジュールが存
在。
タスクが実行できない時
•  設計したいシステムを振る舞いの単位で分解。 時間をかけて最適な 解を出す。
とりあえず行動して 即座に問題に対処する。
単純な(処理の早い)振る舞いから高次の(処理の遅い)振る舞いの層(例:かっけ)
リプランが必要
垂直アーキテクチャ SubsumpAon Architecture (SSA) •  設計したいシステムを振る舞いの単位で分解。 垂直アーキテクチャ SubsumpAon Architecture (SSA) •  動的に起こる問題(例:障害物が突然ロボット
の前に現れる)にすぐ対処できる。
②
結果も独立して出力 する。競合する(片方 が片方の結果をじゃま する)結果は、上の層 の結果が下の層の結 果を抑制し、優先される。
これらは、並列または 平行にそれぞれ独立し て実行される。 上の層の振る舞いが下の層の振る舞いを包含(subsume)する。
垂直アーキテクチャ SubsumpAon Architecture (SSA) •  複数のゴールを同時に追求しやすい。
Goal A Goal B Goal C
Goalは独立に振る舞いに 割り当てられ、分散で実行 される。実現可能なゴール が適宜実行される(選ぶ必要なし)。
Goal A Goal B Goal C
プランナは、複数のゴールのうちどれを 実行するかを選ばないといけない。ゴール 間の関係も明示的にプログラミングされて いないといけない。
①
障害物
障害物
処理速度の早い緊急対処用の 振る舞いが対処し、後から、高次 の振る舞いが軌道を修正
高次処理をする事しかできないので、 結果が出るまでに時間がかかる。 プランを考えている間に障害物にぶつかる。
垂直アーキテクチャ SubsumpAon Architecture (SSA) •  バッテリーを温存しながら、できるだけ早く行く。
バッテリー 温存 早く行く バッテリーがある内は、早く 行く振る舞いが実行され、 少なくなると、速度を落とす 振る舞いが上から抑制する。 (選ぶ必要なし)
早く行く バッテリー 温存 バッテリーの減り方と行動の関係を プランナが熟慮し、行動計画をたて 実行する。(熟慮するための行動の 知識が必要)
2
11/11/08
垂直アーキテクチャ SubsumpAon Architecture (SSA) •  画像センサや複数のセンサが扱いやすい。 –  入力の統一的な解釈がいらないから。
垂直アーキテクチャ SubsumpAon Architecture (SSA) •  Robust(頑健)なシステム –  故障やバグに強い
エッジ情報
カメラ 赤色
カメラ
画素の 動き
それぞれの振る舞いに 必要な情報が独立して 入力される。 (入力全体の理解が要らない)。
入力されたカメラ画像から周囲の状態 を理解しないといけない。 (凄い難しい問題)
垂直アーキテクチャ SubsumpAon Architecture (SSA) •  システムの拡張が容易。
新しい振る舞い
新しい機能
一部のモジュールが故障しても、 他のモジュールが独立して動くの でカバーされる。 どれかが、故障するとシステム全体が 機能しなくなる。
垂直アーキテクチャ SubsumpAon Architecture (SSA) •  行動(の複雑さ)は、環境との相互作用で決
定される。 –  とても重要な概念
②
新しい振る舞い実装し、 層のどこかに入れるだけ。 システム全体の一貫性を考えながら、 新しい機能を実装しないといけない。
①
障害物
どの振る舞いが実行されるかは、 環境からの入力によって決まる。 環境の変化は行動自体によって 引き起こされる。(相互作用) 環境の複雑さが行動の複雑 さを引き出す。
全ての行動の選択は、プログラムされて いる知識の範疇でおこなわれる。複雑な 行動をさせるのには、沢山の仕組みが 必要になり、限界がある。 Robot 創発(Emergence)
•  部分の性質の単純な総和にとどまらない性
質が、全体として現れることである。
(wikipedia) •  プログラムには書いてない結果が、全体(環
境や他のプログラム、エージェント)との相互
作用により現れる(創発する)。 •  あり道の例 •  SSAの経路の創発
障害物
•  Mobile robot •  Sensors –  12個のリング状の 超音波距離センサ –  パンチルトカメラ Real World InteracAon 3
11/11/08
振る舞い • 
• 
• 
• 
• 
• 
• 
• 
層の間の構造 Level 0: Avoid contact with objects Level 1: Wander aimlessly around without hiOng things Level 2: Explore the world by seeing places in the distance which look reachable and heading for them. Level 3: Build a map of the environment and plan routes from one place to another. Level 4: NoAce changes in the staAc environment. Level 5: Reason about the world in terms of idenAfiable objects and perform tasks related to certain objects. Level 6: Formulate and execute plans which involve changing the state of the world in some desirable way. Level 7: Reason about the behavior of objects in the world and modify plans accordingly. Real World InteracAon 3.4.7 Robot control system instance Real World InteracAon level 0: Avoid contact with objects •  level 0: prevent a robot from contacAng with an object. •  level 1: wander avoiding obstacles. •  level 2: generate a path to reach a certain place. Real World InteracAon level 1:Wander aimlessly around without hiOng things Real World InteracAon Real World InteracAon level 2:Explore the world by seeing places in the distance which look reachable and heading for them. Real World InteracAon 4
11/11/08
Components for SSA 振る舞いの作り方 •  Level 0をまず作り徹底的にデバッグ
–  他のすべてが動かなくても、ここが完璧に動けばなんとかなる。
•  Level 0の上に、高次の振る舞いを積んで行く。
Real World InteracAon Real World InteracAon Components for SSA Internal Structure of Modules • 
3.4.7 Avoid module モジュールは状態遷移機械 –  Lisp で書かれている。 –  状態は4種類 • 
• 
• 
• 
Output: メッセージを出力ラインに出力する状態 Side effect: 変数の値が更新される状態 CondiAonal dispatch: 入力に応じた条件分岐をする状態 Event dispatch:入力があったかを監視する状態
Real World InteracAon Real World InteracAon 3.4.6 Components for SSA 3.4.7 Avoid module Example of avoid module • 
•  モジュール(これが複数で振る舞いを構成)の
構造
•  モジュール間の通信の構造 (defmodule avoid :inputs (force heading) force = dis tan ce 5
:outputs (command) event dispatch
:instance-­‐vars (resulAorce) :states ((nil (event-­‐dispatch (and force heading) plan)) side effect
(plan (seA resulAorce (select-­‐direcBon force heading)) go) (go (condiBonal-­‐dispatch (significant-­‐force-­‐p resulAorce 1.0) start condiAonal dispatch nil)) (start (output command (follow-­‐force resulAorce)) nil))) output
Real World InteracAon Real World InteracAon 5
11/11/08
3.4.6 Components for SSA CommunicaAon between modules 3.4.8 SimulaAon of SSA •  Sonar data • 
• 
Output may be inhibited. Input may be suppressed. • 
• 
(defwire (feelforce force) (runaway force) (avoid force)) (defwire (avoid command) ((suppress (motor command) 1.5))) Real World InteracAon Real World InteracAon 3.4.8 SimulaAon of SSA SimulaAon of level 2 3.4.8 SimulaAon of SSA SimulaAon of level 1 •  A]er tracing the given path, level 1 controls the robot. Real World InteracAon Real World InteracAon 対話システムへの応用 欠点
•  確実にゴールを追求する能力に欠ける。 –  環境変化ばかりに対応してゴールが実現できな
い場合もあり。 熟考した回答 •  創発した行動に対する自己認識が無いので、
何をやっているのかシステムが把握してない。 反射的回答(キーワードベース) –  まさに昆虫の知能
うなづき 音声入力
音声発話
Real World InteracAon 6
Fly UP