460 likes | 839 Views
エージェントアプローチ 人工知能 8章・9章. B4 片渕 08/07/24. 目次 ( 第2版 ). 第8章 一階述語論理 第9章 一階述語論理による推論. 8章:一階述語論理 目次. 論理ごとの相違 一階述語論理 一階述語論理の使い方 まとめ. 8章:一階述語論理 目次. 論理ごとの相違 一階述語論理 一階述語論理の使い方 まとめ. 論理ごとの相違. オントロジ的立場 -各論理が推論をする際に仮定する事項 ・命題論理では「 事実 」のみを扱う 認識論的立場 -エージェントが事実に対しての認識方法
E N D
エージェントアプローチ人工知能 8章・9章エージェントアプローチ人工知能 8章・9章 B4 片渕 08/07/24
目次(第2版) • 第8章 一階述語論理 • 第9章 一階述語論理による推論
8章:一階述語論理目次 • 論理ごとの相違 • 一階述語論理 • 一階述語論理の使い方 • まとめ
8章:一階述語論理目次 • 論理ごとの相違 • 一階述語論理 • 一階述語論理の使い方 • まとめ
論理ごとの相違 • オントロジ的立場 -各論理が推論をする際に仮定する事項 ・命題論理では「事実」のみを扱う • 認識論的立場 -エージェントが事実に対しての認識方法 ・命題論理では「真/偽/不定」で認識 部屋[1,1]に穴はないetc
形式言語(論理)ごとのオントロジ的立場と認識論的立場形式言語(論理)ごとのオントロジ的立場と認識論的立場
一階述語論理命題論理との相違 • オブジェクト -推論に影響を及ぼす要素(名詞) 例:部屋、wumpus、穴etc • 関係 -オブジェクト間の関係(動詞) 例:「風が吹いている」、「隣接している」etc • 関数入力からただ一つの値が求まるようなもの 例:「最大の~」、「1つ上の~」etc
8章:一階述語論理目次 • 論理ごとの相違 • 一階述語論理 • 一階述語論理の使い方 • まとめ
一階述語論理のモデル(一例) hat on head brother Tom Bob student right leg right leg
一階述語論理における統語論 • 定数記号 オブジェクトを記述 例:「Tom」、「Bob」 • 述語記号 関係を記述 例:「Brother」 「OnHead」「Student」etc • 関数記号 関数を記述 例:「Hat」(hatを被っているのはBobのみ) 「Rightleg(Tom)」(Tomの右足)
一階述語論理における意味論 • 前述の記号に厳密に「解釈」を規定 例:Brotherは兄弟関係 Onheadは帽子が人の頭上にある関係 Studentは学生かどうか Humanは人間かどうか etc を規定 Brother(Tom,Bob)は トムとボブが兄弟の時、真を返す
論理結合子を用いた一階述語論理の表現例 • ¬Brother(Tom,Rightleg(Bob)) -トムとボブの右足は兄弟ではない • Student(Tom)∨Student(Bob) -トムかボブのいずれかは学生である • ¬Student(Tom)⇒Student(Bob) -トムが学生でなければボブは学生である
限量子 • 全称限量(∀) -全てのオブジェクトに関する記述を表現 例:∀x Student(x) ⇒ Human(x) 「全ての学生は人間である」 • 存在限量(∃) -世界に存在するオブジェクトに関する記述を表現 例:∃x Brother(x,Bob) 「ボブには兄弟が存在する」 x:変数
一階述語論理における表明と質問 • 表明(TELL):文を知識ベース(KnowledgeBase,KB)に追加 例:TELL(KB,Student(Bob)) -文「Student(Bob)」をKBに追加 • 質問(ASK):文の真偽を知識ベースに質問 例:ASK(KB,Student(Bob)) -KBに文「Student(Bob)」があるのでtrueを返す 注: ASK(KB,∃x Student(x))は{x/Bob}を返す 代入:条件を満たすx
8章:一階述語論理目次 • 論理ごとの相違 • 一階述語論理 • 一階述語論理の使い方 • まとめ
一階述語論理の使い方例: wumpus world • 部屋に風が吹いていれば隣の部屋に穴が無ければならない ∀sBreezy(s) ⇒∃r Adjacent(r,s)∧Pit(r) • ちなみに命題論理の場合 Bi,j ⇒ Pi-1,j-1∨ Pi-1,j+1∨ Pi+1,j-1∨ Pi+1,j+1 部屋sで 風が吹く 部屋rは部屋sの 隣にある 部屋rに 穴がある 一階述語論理によって表現の幅が広がった
診断規則・因果規則 • 診断規則 -観測された結果から原因を導くもの ∀sBreezy(s) ⇒∃r Adjacent(r,s)∧Pit(r) • 因果規則 -想定された因果関係から結果が導かれる ∀rPit(r) ⇒ [∀s Adjacent(r,s)⇒Breezy(s)] 部屋に風が吹いていれば隣の部屋に穴が無ければならない モデルベース推論 穴によって隣の部屋全てに風が吹く
おまけ:知識ベースの構築(知識工学) • タスクの特定 • 関連知識の収集 • 定数、述語、関数の語彙の決定 • 問題領域に関する一般的知識の記述 -例:「Americaは国である」etc • 特定の問題例の記述 -例:「風が吹いていれば隣の部屋に穴がある」etc • 推論手続きへの質問と答えの獲得 • 知識ベースのデバッグ
8章:一階述語論理目次 • 論理ごとの相違 • 一階述語論理 • 一階述語論理の使い方 • まとめ
まとめ • 一階述語論理はオブジェクトとその関係を表現 • 定数記号(オブジェクト)、述語記号(関係)、関数記号 • 一般則の表現:限量子(∀・∃) • 一階述語論理によって表現力が増した
ここまで8章 • ここから9章
9章:一階述語論理による推論目次 • 命題論理化 • 単一化 • 前向き連鎖 • 後ろ向き連鎖 • 一階述語論理における融合法 • まとめ
9章:一階述語論理による推論目次 • 命題論理化 • 単一化 • 前向き連鎖 • 後ろ向き連鎖 • 一階述語論理における融合法 • まとめ
命題論理への帰着 • 一階述語論理命題論理への変換ができれば 命題論理での推論が可能 -命題論理化 ・限量子の無い文に変換
命題論理化 • 全称具現化:全称限量(∀)の無い文に変換 例: ∀x Student(x) ⇒ Human(x) ・Student(Tom)⇒Human(Tom) ・Student(Bob)⇒Human(Bob) • 存在具現化:存在限量(∃)の無い文に変換 例: ∃x Brother(x,Bob) ・Brother(C1,Bob) ※知識ベース にある語彙 全てについて ※C1が知識ベース に無いことが条件 スコーレム定数
9章:一階述語論理による推論目次 • 命題論理化 • 単一化 • 前向き連鎖 • 後ろ向き連鎖 • 一階述語論理における融合法 • まとめ
単一化 • KB内の2つの文を1つの文にまとめる技法 -UNIFY(p,q)={代入} 例1:UNIFY(Brothers(Tom,x),Brothers(Tom,Bob)) ={x/Bob}(Brothers(Tom,Bob)に単一化) 例2:UNIFY(Brothers(Tom,x),Brothers(y,Bob)) ={x/Bob,y/Tom} (Brothers(Tom,Bob)に単一化) 同じ述語記号(含:引数の数)であることが条件
9章:一階述語論理による推論目次 • 命題論理化 • 単一化 • 前向き連鎖 • 後ろ向き連鎖 • 一階述語論理における融合法 • まとめ
前向き連鎖 • できる限りの推論を行っていきゴールを目指す • 例:「(1)アメリカ人が敵対国に武器を売るのは犯罪」である。「(2)Nonoという国はアメリカの敵国」であり、「(3)ミサイルを持っていて」、「(4)その全てがアメリカ人のWestにより販売された」。
知識ベースへの格納(例題) (1)American(x)∧Weapon(y) ∧Sells(x,y,z)∧Hostile(z) ⇒ Criminal(x) (2)Hostile(Nono) (3)∃x Owns(Nono,x)∧Missile(x) 命題論理化(3.1)Owns(Nono,C1) (3.2)Missile(C1) (4)Missile(x)∧Owns(Nono,x) ⇒Sells(West,x,Nono) ※「ミサイルが武器」「Westはアメリカ人」という事実も格納 (5)Missile(x) ⇒ Weapon(x) (6)American(West)
前向き連鎖での推論(例) • KBより「Westが犯罪者である」ことを証明 (3.1)(3.2)(4)より (7)Sells(West,C1,Nono) (3.2)(5)より (8)Weapon(C1) (1)(2)(6)(7)(8)より (9)Criminal(West)
前向き連鎖の証明木 Criminal(West) Weapon(C1) Sells(West,C1,Nono) American(West) Hostile(Nono) Missile(C1) Owns(Nono,C1)
9章:一階述語論理による推論目次 • 命題論理化 • 単一化 • 前向き連鎖 • 後ろ向き連鎖 • 一階述語論理における融合法 • まとめ
後ろ向き連鎖 • ゴールが正しいことをKBの文を用いて証明していく • 例:「Westが犯罪者である」ことを証明するには (1)より「American(West)」 KBに存在 「Weapon(y)」 「Sells(West,y,z)」 「Hostile(Nono)」 KBに存在 を証明する必要がある(以下同様)
後ろ向き連鎖の証明木 Criminal(West) Weapon(y) Sells(West,C1,z) {z/Nono} American(West) Hostile(Nono) Missile(y) Missile(C1) Owns(Nono,C1) {y/C1} 単一化によりMissile(C1)と同等になる
9章:一階述語論理による推論目次 • 命題論理化 • 単一化 • 前向き連鎖 • 後ろ向き連鎖 • 一階述語論理における融合法 • まとめ
一階述語論理における融合法 • 連言標準形(conjunctive normal form:CNF)への変換 -命題論理における融合規則を利用 • 消去する相補リテラルについて -述語記号が同じで引数が異なる場合は単一化で消去 例:[P(Tom)∨Q(Tom,Bob)]∧[¬Q(x,y)∨R(Bob)] [P(Tom)∨R(Bob)] ({x/Tom,y/Bob}で単一化) (l1∨l2∨・・∨lk) ∧ (m1∨m2∨・・∨mk) l1∨・・∨li-1∨li+1∨・・∨lk∨m1∨ ・・∨mi-1∨mi+1∨・・∨mk
CNFへの変換方法(1/2) • 条件文の消去 -∀x Missile(x) ⇒ Weapon(x) ∀x¬Missile(x) ∨ Weapon(x) • 負リテラル(¬)を限量子の内部に移す -¬∀x Criminal(x) ∃x¬Criminal(x) • 変数標準化:変数の混同を回避 -(∀x P(x) )∨(∃x Q(x) ) (∀x P(x) )∨(∃y Q(y) ) ホーン節
CNFへの変換方法(2/2) • スコーレム化:(「∃」の削除) -∀x [∃y Brother(x,y)] ∀x Brother(x,F(x)) • 全称限量子「∀」の削除 - ∀x Brother(x,F(x)) Brother(x,F(x)) • ∧を∨に分配 -[P(x) ∧Q(x)] ∨ R(x) [P(x) ∨ R(x)]∧ [P(x) ∨ R(x)] スコーレム関数 xに依存する ことを明示 CNF
融合法での推論(1/2)例:犯罪例題 • KB内の文をCNFに変換 (1) ¬American(x)∨¬Weapon(y) ∨ ¬Sells(x,y,z)∨¬Hostile(z) ∨ Criminal(x) (2)Hostile(Nono) (3.1)Owns(Nono,C1) (3.2)Missile(C1) (4)Missile(x)∧Owns(Nono,x) ⇒Sells(West,x,Nono) (5)¬Missile(x)∨Weapon(x) (6)American(West) • ゴールの文の否定も追加(背理法で解く) (7)¬Criminal(West)
融合法での推論(2/2)例:犯罪例題 • 融合規則により文を消去していく (1)∧(7) (Criminal(West)と¬Criminal(West)を消去) (8)¬American(x)∨¬Weapon(y)∨ ¬Sells(x,y,z)∨¬Hostile(z) (6)∧(8) ( American(West)と¬American(West)を消去) (9) ¬Weapon(y)∨ ¬Sells(x,y,z)∨¬Hostile(z) • 最終的にHostile(x)∧¬Hostile(x)になる矛盾
9章:一階述語論理による推論目次 • 命題論理化 • 単一化 • 前向き連鎖 • 後ろ向き連鎖 • 一階述語論理における融合法 • まとめ
まとめ • 命題論理化:一階述語論理を命題論理に変換 • 単一化:同じ述語を一つにまとめる • 前向き連鎖:KBを基にできる限りの推論を行う • 後ろ向き連鎖:ゴールから後ろ向きに証明する • 融合法を用いる時は連言標準形に変換 -全ての一階述語論理はCNFに変換可能
おまけ:Prolog • 一階述語論理に基づいた推論を行うプログラム言語 質問と回答 知識ベース ?Human(Bob). true Student(Bob). Human(x) := Student(x). ?Human(x). x=Bob ; x=Tom Student(Bob). Student(Tom). Human(x) := Student(x). Student(x)⇒Human(x)