Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
述語論理による推論の基礎 導出原理を用いた推論 第1回 B3勉強会 2019/1/11 長岡技術科学大学 自然言語処理研究室 吉澤 亜斗武
Slide 2
Slide 2 text
参考文献・資料 書物 [1] 小林一郎:人工知能の基礎,サイエンス社(2016) [2] 有川節夫,原口誠:述語論理と論理プログラミング, オーム社(1988) 講義資料 [3] 谷口忠大:人工知能概論 第14回, http://ai.tanichu.com/slide_template [4] 二宮祟:知識工学 第6~8回, http://aiweb.cs.ehime-u.ac.jp/~ninomiya/archive/logicbn/ 2
Slide 3
Slide 3 text
Contents (1) 恒真式の自動証明 (2) スコーレム標準形 (3) 導出原理 (4) 単一化置換 (5) 導出制御戦略 (6) 導出原理による質問応答 3
Slide 4
Slide 4 text
(1) 恒真式の自動証明 述語論理式 () は恒真式(tautology)か? ∈ において ∥ ∀ ∥= 1であるか? ・対象領域 におけるすべての要素 について()が真であ ることを証明する必要があり,時間がかかる ・ が無限集合であれば,直接的な証明は実質不可能 ここで,論理式を変形してみる. ∥ ∀ ∥=∥ ∀¬¬ ∥=∥ ¬∃¬ ∥= ¬∥ ∃¬ ∥= 1 4
Slide 5
Slide 5 text
() は恒真式(tautology)か? ∥ ∀ ∥= 1 ∥ ∃¬ ∥= 0 ¬() は恒偽式(contradiction)か? よって∃¬() が矛盾,充足不能であることを示せばよい. 5 同等 これは背理法(反駁)による証明 を表している. 否定して矛盾が生じるならば, 否定する前のものは正しいはず (排中律や矛盾律を前提) (1) 恒真式の自動証明
Slide 6
Slide 6 text
充足不能であることを示すのに導出原理を用いる前に, スコーレム化(Skolemization)という前処理を行い, スコーレム標準形(Skolem normal form)にする必要がある. 例:∃𝑥𝑥() ∨ ¬∃∀ () ⟹ (, ) スコーレム化(詳細は省略) ∀1 ∀2 () ∨ (1 ) ∧ () ∨ ¬(2 , (2 )) 6 同値 (2) スコーレム標準形
Slide 7
Slide 7 text
∀1 ∀2 () ∨ (1 ) ∧ () ∨ ¬(2 , (2 )) 重要なPOINT: ・否定記号は原子式(素論理式)の直前にある ・連言標準形(和積標準形)であること ・冠頭標準形であること(限定作用素が母式の先頭にある) ・存在作用素が削除され,変数がスコーレム定数または スコーレム関数に置き換わっている. 7 (2) スコーレム標準形
Slide 8
Slide 8 text
スコーレム定数とスコーレム関数の例 ∃ () ⟺ () : は () を満足する定数 ∃∀ , ⟺ ∀ (, ) : は に束縛されていない ∀∃ , ⟺ ∀ (, ()) : は に束縛されている 8 (2) スコーレム標準形 全称作用素のスコープ(作用域)にある存在作用素はスコーレム 関数,そうでないときはスコーレム定数に置き換える.
Slide 9
Slide 9 text
スコーレム標準形 ∀1 , ⋯ , ∀ 1 ∧ ⋯ ∧ :節(clause) 節集合 = 1 , ⋯ , とする 導出(融合):親節 , から導出節 を導き出すこと. 導出原理: 節集合 において導出を行い,導出節はに加える. これを繰り返し,空節が導かれたとき,親節は矛盾 することを表し,元の節集合 は充足不能である. 9 (3) 導出原理
Slide 10
Slide 10 text
導出節 は相補リテラルをもつ親節から導出される. 親節 ≡ ′ ∨ , ≡ ′ ∨ ¬ であるとき( :リテラル) 三段論法より(詳細は省略) ( ′ ∨ ) ∧ ( ′ ∨ ¬) ⟹ ′ ∨ ′ ≡ 𝑖𝑖 空節( □, nil )は ∧ ¬ ⟹nil と導出される. 空節が導出できたら,元の論理式は恒偽式である. 10 (3) 導出原理
Slide 11
Slide 11 text
例: () ∧ ¬() ∨ () ∧ ¬() 11 (3) 導出原理 () ¬() ∨ () ¬() () nil
Slide 12
Slide 12 text
今,次の2つの節があるとする. (, ) ∨ ¬(, ) ∨ ここで,変数は任意であるので = , = と仮定し, 単一化置換(単一化代入) = {/, /} と表現する. 置換の自由度を確保するために,最小限の置換を行うことを 最汎単一化置換(most general unifier)という. 12 (4) 単一化置換
Slide 13
Slide 13 text
例: () ∧ ¬() ∨ () ∧ ¬() 13 (4) 単一化置換 () ¬() ∨ () ¬() () nil / / 単一化置換 = {/, /} の下で 証明された
Slide 14
Slide 14 text
節集合が大きいと効率よく導出するための戦略が重要になる. 14 (5) 導出制御戦略 ∨ ¬ ∨ ¬ ¬ ∨ ∨ ∨ ¬ ¬
Slide 15
Slide 15 text
15 機械的な制御戦略 ・幅優先戦略(breadth-first strategy) 導出に使われていない節を優先的に親節として導出する ・線形導出戦略(linear resolution strategy) 直前に導出された節を親節の1つとする 意味的な制御戦略 ・支持集合戦略(set-of-support strategy) 含意の形式において前提が通常,充足可能なことを利用 ・意味導出戦略(semantic resolution strategy) 真偽に応じて節をグループ分けし,グループ間で導出 (5) 導出制御戦略
Slide 16
Slide 16 text
線形導出戦略の例 ・主節と側節から導出する ・主節: 直前に導出された節 ・側節: 節集合内と主節の先祖 16 (5) 導出制御戦略 ∨ ¬ ∨ ¬ ∨ ¬ ¬ ∨ ¬ nil
Slide 17
Slide 17 text
意味的導出戦略の例 リテラル , , を真とし,真偽の異なるグループ間で導出 17 (5) 導出制御戦略 ∨ ¬ ∨ ¬ ¬ ∨ ¬ ¬ nil
Slide 18
Slide 18 text
規則節と事実節からなる知識ベース があり,そこに質問 が与えられたとすると, から が導けるかという問題になる ¬ ⟹ ≡ ∧ ¬ 上式は質問 を否定し,知識ベース と合わせて考えて矛盾 を示す背理法(反駁)を表している. ∧ ¬ を導出原理によって空節を導けるかどうかを行う. 18 (6) 導出原理による質問応答
Slide 19
Slide 19 text
例 知識1:正人は和子の好きなものは何でも好きである ∀ [好き(和子, )⟹ 好き(正人, )] 規則節 知識2:和子はケーキが好きである. 好き(和子, ケーキ) 事実節 質問 :正人は何が好きか? ∃ 好き(正人, ) ∀ ¬好き(正人, ) 19 (6) 導出原理による質問応答 否定
Slide 20
Slide 20 text
20 (6) 導出原理による質問応答 ¬好き(正人, ) ¬好き(和子, ) ∨ 好き(正人, ) 好き(和子, ケーキ) ¬好き(和子, ) nil / ケーキ/ 単一化された定数「ケーキ」を答えとして返す