国科大《高级人工智能》罗老师部分——符号主义笔记
- 罗老师上课很有意思,但是这部分内容还是挺难理解的,需要仔细思考
- 今年考试题目这部分跟往年不一样,老师讲的重点(A搜索+归结原理)也没考
是基于语义的句子(即句法)之间的一种关系
K B ⊨ α KB\models\alpha KB⊨α
知识库KB蕴涵句子 α \alpha α,当且仅当 α \alpha α在KB为真的所有世界(代指 Model)中为真。
(这个定义要记住)
Model:使sentence为真的assignment(真值指派),即为model
重点:当且仅当 M ( K B ) ⊆ M ( α ) M(KB)\subseteq M(\alpha) M(KB)⊆M(α)时, K B ⊨ α KB\models\alpha KB⊨α(证 ⊨ \models ⊨,找Model)
语法(Syntax):定义语言中的句子;
命题(Proposition):一个陈述句,要么是对的,要么是错的;
原子命题(Atomic propositions):最小的命题;
文字(Literals):原子命题或它们的否定;
语义(Semantics):每个模型指定每个命题符号的真/假。
注: ⊨ \models ⊨不是命题的合法句子
KB:满足命题逻辑语法的 sentence 的集合;
假设:这组 sentence 中,一共有n个原子命题;
真值指派(truth assignment):对每个原子命题赋值;
一共有2^n种真值指派,其中:使得KB中的每个sentence都为真的真值指派,就是KB的model;
在此基础上,在命题逻辑中,我们可以明确的定义:
K B ⊨ α KB\models\alpha KB⊨α
- Entailment ( ⊨ \models ⊨):逻辑上的概念,刻画两组sentence之间的关系;
- Implication (¬,∧,∨,⟹,⟺):Proposition(命题)之间的一种运算子,用真值表刻画语义。
有两种:11条规则 + 1条规则(归结原理)
Inference:可靠性证明+完备性证明(见上图)
1)合取范式Conjunctive Normal Form (CNF—universal)
目的是将一些列命题用∧和∨连起来,具体步骤如下:
2)归结:
3)证明归结原理的可靠性与完备性:
可靠性(Sound):If K B ⊢ α KB\vdash\alpha KB⊢α,that K B ⊨ α KB\models\alpha KB⊨α
sound的证明方法很简单,只要check一次resolution的过程是正确的(利用真值表),实际上就是去证明这个子句合取第二个子句可以蕴含下面那个子句。【用真值指派的方法】
完备性:If K B ⊨ α KB\models\alpha KB⊨α,that K B ⊢ α KB\vdash\alpha KB⊢α
4)归结原理+A*搜索
“负文字”(negative literal):文字包含否定符号(¬);否则称为“正文字”(positive literal)。
Definite clause:有且只有一个正文字
Horn clause:最多只有一个正文字
可靠性证明:If K B ⊢ α KB\vdash\alpha KB⊢α,that K B ⊨ α KB\models\alpha KB⊨α
完备性证明:If K B ⊨ α KB\models\alpha KB⊨α,that K B ⊢ α KB\vdash\alpha KB⊢α
注:p是包含变量的句子,p-theta就是按theta赋值,所以p也是蕴含p-theta的
2)合取范式
①去掉存在量词及其修饰的变量使每个都使全称量词修饰的变量
②消去biconditionals( ⇔ \Leftrightarrow ⇔)和implications( ⇒ \Rightarrow ⇒)
③把 ⌝ \urcorner ┐放到里面去
④标准化变量(有些变量不是同一个object,要用不同的变量表示)
⑤Skolemize:用关于x的函数表示依赖于x的变量
⑥通用的全称量词删掉
⑦展开在析取上的合取
Eg:
3)归结策略
删除策略:删除纯文字、删除重言式
限制策略:支持集策略、单文字子句策略、祖先过滤策略
主要思想:编知识库KB
(1)语法(https://ruanyifeng.com/blog/2019/01/prolog.html)
①friend(X, Y) :- friend(Y,X).
②onesidelove(X, Y) :- loves(X, Y), + loves(Y,X).
(2)有时会推出错误的答案(它的实现不sound),有时正确答案也推不出(不complete)【考过】
(没讲推理)
为了能够表示出论域中的元素与其隶属度之间的对应关系,扎德引入了一种模糊集的表示方式:先为论域中的每个元素都标上其隶属度,然后再用+号把它们连接起来:
连续论域:
3.模糊关系的运算
模糊关系合成:(类似矩阵乘法)
4.用模糊逻辑表示自然语言