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