エージェントアプローチ 人工知能 8章・9章

44
1 エエエエエエエエエエエ エエエエ B4 片片 08/07/24

description

エージェントアプローチ 人工知能 8章・9章. B4  片渕 08/07/24. 目次 ( 第2版 ). 第8章 一階述語論理 第9章 一階述語論理による推論. 8章:一階述語論理 目次. 論理ごとの相違 一階述語論理 一階述語論理の使い方 まとめ. 8章:一階述語論理 目次. 論理ごとの相違 一階述語論理 一階述語論理の使い方 まとめ. 論理ごとの相違. オントロジ的立場   -各論理が推論をする際に仮定する事項     ・命題論理では「 事実 」のみを扱う 認識論的立場   -エージェントが事実に対しての認識方法 - PowerPoint PPT Presentation

Transcript of エージェントアプローチ 人工知能 8章・9章

Page 1: エージェントアプローチ 人工知能 8章・9章

1

エージェントアプローチ

人工知能 8章・9章B4  片渕

08/07/24

Page 2: エージェントアプローチ 人工知能 8章・9章

2

目次 (第2版 )

第8章 一階述語論理

第9章 一階述語論理による推論

Page 3: エージェントアプローチ 人工知能 8章・9章

3

8章:一階述語論理目次 論理ごとの相違 一階述語論理 一階述語論理の使い方 まとめ

Page 4: エージェントアプローチ 人工知能 8章・9章

4

8章:一階述語論理目次 論理ごとの相違 一階述語論理 一階述語論理の使い方 まとめ

Page 5: エージェントアプローチ 人工知能 8章・9章

5

論理ごとの相違 オントロジ的立場  -各論理が推論をする際に仮定する事項    ・命題論理では「事実」のみを扱う

認識論的立場  -エージェントが事実に対しての認識方法    ・命題論理では「真 / 偽 / 不定」で認

部屋 [1,1] に穴はない etc

Page 6: エージェントアプローチ 人工知能 8章・9章

6

形式言語(論理)ごとのオントロジ的立場と認識論的立場言語(論理) オントロジ的立

場認識論的立場

命題論理 事実 真 / 偽 / 不定一階述語論理 事実、オブジェ

クト関係

真 / 偽 / 不定

時制論理 事実、オブジェクト関係、時間

真 / 偽 / 不定

確率論 事実 信念の強さファジィ論理 真偽の度合いを

持つ事実既知の区間値

Page 7: エージェントアプローチ 人工知能 8章・9章

7

一階述語論理命題論理との相違 オブジェクト  -推論に影響を及ぼす要素(名詞)    例:部屋、 wumpus 、穴 etc

関係  -オブジェクト間の関係(動詞)    例:「風が吹いている」、「隣接している」

etc 関数 入力からただ一つの値が求まるようなもの例:「最大の~」、「1つ上の~」 etc

Page 8: エージェントアプローチ 人工知能 8章・9章

8

8章:一階述語論理目次 論理ごとの相違 一階述語論理 一階述語論理の使い方 まとめ

Page 9: エージェントアプローチ 人工知能 8章・9章

9

一階述語論理のモデル(一例)

brotherTom Bob

student

hat

right leg right leg

on head

Page 10: エージェントアプローチ 人工知能 8章・9章

10

一階述語論理における統語論 定数記号 オブジェクトを記述  例:「 Tom 」、「 Bob 」

述語記号 関係を記述  例:「 Brother 」 「 OnHead 」「 Student 」 etc

関数記号 関数を記述  例:「 Hat 」( hat を被っているのは Bob のみ)     「 Rightleg(Tom) 」 (Tom の右足 )

Page 11: エージェントアプローチ 人工知能 8章・9章

11

一階述語論理における意味論 前述の記号に厳密に「解釈」を規定  例: Brother は兄弟関係     Onhead は帽子が人の頭上にある関

係     Student は学生かどうか     Human は人間かどうか etc

    を規定     Brother(Tom,Bob) は

トムとボブが兄弟の時、真を返す

Page 12: エージェントアプローチ 人工知能 8章・9章

12

論理結合子を用いた一階述語論理の表現例 ¬ Brother(Tom,Rightleg(Bob))

   -トムとボブの右足は兄弟ではない

Student(Tom)∨Student(Bob)

   -トムかボブのいずれかは学生である

¬ Student(Tom)  ⇒  Student(Bob)

   -トムが学生でなければボブは学生である

Page 13: エージェントアプローチ 人工知能 8章・9章

13

限量子 全称限量 ( )∀  -全てのオブジェクトに関する記述を表現  例:∀ x Student(x) Human(x)⇒     「全ての学生は人間である」

存在限量 ( )∃  -世界に存在するオブジェクトに関する記述を表

現  例:∃ x Brother(x,Bob)     「ボブには兄弟が存在する」

x: 変数

Page 14: エージェントアプローチ 人工知能 8章・9章

14

一階述語論理における表明と質問 表明 (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

Page 15: エージェントアプローチ 人工知能 8章・9章

15

8章:一階述語論理目次 論理ごとの相違 一階述語論理 一階述語論理の使い方 まとめ

Page 16: エージェントアプローチ 人工知能 8章・9章

16

一階述語論理の使い方例: wumpus world

部屋に風が吹いていれば隣の部屋に穴が無ければならない

  ∀ s   Breezy(s) ⇒∃r Adjacent(r,s) Pit(r)∧

ちなみに命題論理の場合  Bi,j P⇒ i-1,j-1 P∨ i-1,j+1 P∨ i+1,j-1 P∨ i+1,j+1

部屋 s で風が吹く

部屋 r は部屋 s の隣にある

部屋 r に穴がある

一階述語論理によって表現の幅が広がった

Page 17: エージェントアプローチ 人工知能 8章・9章

17

診断規則・因果規則 診断規則  -観測された結果から原因を導くもの ∀ s   Breezy(s) r Adjacent(r,s) Pit(r)⇒∃ ∧

因果規則  -想定された因果関係から結果が導かれる ∀ r   Pit(r) [ s Adjacent(r,s) Breezy(s)]⇒ ∀ ⇒

部屋に風が吹いていれば隣の部屋に穴が無ければならない

穴によって隣の部屋全てに風が吹く

モデルベース推論

Page 18: エージェントアプローチ 人工知能 8章・9章

18

おまけ:知識ベースの構築(知識工学) タスクの特定 関連知識の収集 定数、述語、関数の語彙の決定 問題領域に関する一般的知識の記述  -例:「 America は国である」 etc 特定の問題例の記述  -例:「風が吹いていれば隣の部屋に穴があ

る」 etc 推論手続きへの質問と答えの獲得 知識ベースのデバッグ

Page 19: エージェントアプローチ 人工知能 8章・9章

19

8章:一階述語論理目次 論理ごとの相違 一階述語論理 一階述語論理の使い方 まとめ

Page 20: エージェントアプローチ 人工知能 8章・9章

20

まとめ 一階述語論理はオブジェクトとその関係を表現 定数記号(オブジェクト)、述語記号(関係)、関

数記号 一般則の表現:限量子(∀・∃)

一階述語論理によって表現力が増した

Page 21: エージェントアプローチ 人工知能 8章・9章

21

ここまで8章

ここから9章

Page 22: エージェントアプローチ 人工知能 8章・9章

22

9章:一階述語論理による推論目次 命題論理化 単一化 前向き連鎖 後ろ向き連鎖 一階述語論理における融合法 まとめ

Page 23: エージェントアプローチ 人工知能 8章・9章

23

9章:一階述語論理による推論目次 命題論理化 単一化 前向き連鎖 後ろ向き連鎖 一階述語論理における融合法 まとめ

Page 24: エージェントアプローチ 人工知能 8章・9章

24

命題論理への帰着 一階述語論理命題論理への変換ができれば  命題論理での推論が可能  -命題論理化    ・限量子の無い文に変換

Page 25: エージェントアプローチ 人工知能 8章・9章

25

命題論理化 全称具現化:全称限量(∀)の無い文に変換  例: ∀ x Student(x) Human(x)⇒     ・ Student(Tom) Human(Tom)⇒     ・ Student(Bob) Human(Bob)⇒

存在具現化:存在限量(∃)の無い文に変換  例: ∃ x Brother(x,Bob)

     ・ Brother(C1,Bob)

スコーレム定数

※C1 が知識ベースに無いことが条件

※ 知識ベースにある語彙

全てについて

Page 26: エージェントアプローチ 人工知能 8章・9章

26

9章:一階述語論理による推論目次 命題論理化 単一化 前向き連鎖 後ろ向き連鎖 一階述語論理における融合法 まとめ

Page 27: エージェントアプローチ 人工知能 8章・9章

27

単一化 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) に単一化)

同じ述語記号(含 : 引数の数)であることが条件

Page 28: エージェントアプローチ 人工知能 8章・9章

28

9章:一階述語論理による推論目次 命題論理化 単一化 前向き連鎖 後ろ向き連鎖 一階述語論理における融合法 まとめ

Page 29: エージェントアプローチ 人工知能 8章・9章

29

前向き連鎖 できる限りの推論を行っていきゴールを目指す

例:「 (1) アメリカ人が敵対国に武器を売るのは犯罪」である。「 (2)Nono という国はアメリカの敵国」であり、「 (3) ミサイルを持っていて」、「 (4) その全てがアメリカ人の West により販売された」。

Page 30: エージェントアプローチ 人工知能 8章・9章

30

知識ベースへの格納(例題)(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)⇒

Page 31: エージェントアプローチ 人工知能 8章・9章

31

前向き連鎖での推論(例) 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)

Page 32: エージェントアプローチ 人工知能 8章・9章

32

前向き連鎖の証明木 Criminal(West)

American(West)

Weapon(C1) Sells(West,C1,Nono)

Hostile(Nono)

Owns(Nono,C1)Missile(C1)

Page 33: エージェントアプローチ 人工知能 8章・9章

33

9章:一階述語論理による推論目次 命題論理化 単一化 前向き連鎖 後ろ向き連鎖 一階述語論理における融合法 まとめ

Page 34: エージェントアプローチ 人工知能 8章・9章

34

後ろ向き連鎖 ゴールが正しいことを KB の文を用いて証明して

いく

例:「 West が犯罪者である」ことを証明するには  (1) より「 American(West) 」 KB に存在     「 Weapon(y) 」     「 Sells(West,y,z) 」     「 Hostile(Nono) 」 KB に存在     を証明する必要がある(以下同様)

Page 35: エージェントアプローチ 人工知能 8章・9章

35

後ろ向き連鎖の証明木 Criminal(West)

American(West)

Weapon(y) Sells(West,C1,z)

Hostile(Nono)

Owns(Nono,C1)Missile(y)

{y/C1}

{z/Nono}

Missile(C1)

単一化により Missile(C1) と同等になる

Page 36: エージェントアプローチ 人工知能 8章・9章

36

9章:一階述語論理による推論目次 命題論理化 単一化 前向き連鎖 後ろ向き連鎖 一階述語論理における融合法 まとめ

Page 37: エージェントアプローチ 人工知能 8章・9章

37

一階述語論理における融合法 連言標準形( conjunctive normal form:CNF )への変換  -命題論理における融合規則を利用

消去する相補リテラルについて  -述語記号が同じで引数が異なる場合は単一化で消去   例: [P(Tom) Q(∨ Tom,Bob)] [∧ ¬ Q(x,y) R(Bob)]∨      [P(Tom) R(Bob)] ({∨ x/Tom, y/Bob} で単一化 )

(l1 l∨ 2∨ ・・∨ lk) (m∧ 1 m∨ 2∨ ・・∨ mk) l1∨ ・・∨ li-1 l∨ i+1∨ ・・∨ lk m∨ 1 ∨ ・・∨ mi-1 m∨ i+1∨ ・・∨ mk

Page 38: エージェントアプローチ 人工知能 8章・9章

38

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) )

ホーン節

Page 39: エージェントアプローチ 人工知能 8章・9章

39

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)]∨

スコーレム関数

CNF

x に依存することを明示

Page 40: エージェントアプローチ 人工知能 8章・9章

40

融合法での推論 (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)

Page 41: エージェントアプローチ 人工知能 8章・9章

41

融合法での推論 (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) になる矛盾 

Page 42: エージェントアプローチ 人工知能 8章・9章

42

9章:一階述語論理による推論目次 命題論理化 単一化 前向き連鎖 後ろ向き連鎖 一階述語論理における融合法 まとめ

Page 43: エージェントアプローチ 人工知能 8章・9章

43

まとめ 命題論理化:一階述語論理を命題論理に変換 単一化:同じ述語を一つにまとめる 前向き連鎖: KB を基にできる限りの推論を

行う 後ろ向き連鎖:ゴールから後ろ向きに証明す

る 融合法を用いる時は連言標準形に変換  -全ての一階述語論理は CNF に変換可能

Page 44: エージェントアプローチ 人工知能 8章・9章

44

おまけ:Prolog

一階述語論理に基づいた推論を行うプログラム言語

Student(Bob).Human(x) := Student(x).

Student(Bob).Student(Tom).

Human(x) := Student(x).

?Human(Bob).true

?Human(x).x=Bob

;x=Tom

知識ベース 質問と回答

Student(x) Human(x)⇒