Knowledge 1命题逻辑语义蕴含

目录

一、写在前面

二、基本概念:

 三、语义上的蕴含entailment(图左侧部分)

完整证明:KB |= a  ,iff(等价于)  M(KB)含于 M(a)

四、命题逻辑的语义和语法

4.1 语法syntax

概念部分:

4.2 语义semantics:

五、inference 逻辑推理中的entailment蕴含

5.1 逻辑等价:logical equivalence

扫描二维码关注公众号,回复: 8958583 查看本文章

六、定义逻辑上常用的术语

七、entailment 的等价命题,并且证明过程。

 证明:KB |= a,当且仅当  KB -> a   (implication)  为valid(永真)

一、写在前面

这个课程已经讲了很多东西了,之前有一个老师,讲了搜索,讲了机器学习,讲了深度学习,讲了对抗学习,讲了CV和常见序列模型,每一节课都挖了一个大坑,需要我慢慢的填补。我太南了。现在是一个计算所老师讲解知识表示,知识推理这部分内容,老师课件设置合理,每节课都可以学到具体的知识点,而非大而空的概念(特别感谢老师!!)。因此,打算在更新了搜索之后,更新知识这个模块。

参考资料:

用的教材是《人工智能》,台湾大学于天立公开课

这门课涉及到数理逻辑,参考《数理逻辑》陆钟万,也有参考视频

二、基本概念:

知识推理和表示,需要把知识表示为一个知识库的形式。这个知识库是一个集合,在这个集合中有很多sentence,每一个sen都符合一个形式上的语言,我们有了这个知识库之后,我们希望可以向这个知识库提问问题。

怎么提问问题?我们采用declarative 声明的形式提问题,问了之后,知识库有一个自动的引擎,你可能并不知道这个引擎内部实现,但是知识库可以利用这个引擎可以回答我们的问题。这个引擎是一个通用的引擎,不用关心怎么实现,编程的时候,你就告诉他,构建知识库,同时可以在这个知识库上提问,答案可以自动出来。

举个例子:定理的自动证明,首先在knowledge base中放入基本的定理,公理。另外inference engine可以自动生成其他的性质。或者我们给一个新的新的性质,可以判断是否真假。

老师上课讲的是一种形式上的逻辑,我们用头脑中的逻辑研究形式上的逻辑,这个是一种嵌套关系。形式逻辑是一种形式语言,我们定义一套语言,肯定会定义一套语法,规定什么样的语言是合法的。另外我们还关注sen的语义,看哪个sen是真,哪个是假。

KB是用形式化语言定义的一个sentence集合,formal language就是一种形式化语言(正规语言),逻辑(logic)就是其中一种formal language。我们使用的C语言,python等都是formal language的一些变形。

在正规语言中,有相对应的程式设计语法,我们称为declarative approach,当你解决问题的时候,思考并不是直接解决,而是使用正规语言描述这个问题,这个语言本身内部会有一些方法,比如resolution归结原理,我们只要有办法将我们现实生活中的问题用这个正规语言描述,整个程式语言就可以解决问题。所以如何使用形式化语言描述一个问题,才是我们重点解决的部分

我们要定义一个language,我们首先要定义它的语法(Syntax,定义了这个语言中sentence的结构)和语义(Semantics,定义了sentence的语义和所有可能的世界possible world【也就是真值指派truth assignment】,一般定义真假,比如x+y=4,当x=1,y=3的时候为真)。我们在定义possible world之前可以首先定义一个model,在上面那个例子中sentence  a为x+y=4,m为一个可以使得sentence a为真的model【x=1,y=3】,M(a)是所有m的集合。 有m使得a为true,我们可以说m satisfies a;m是a的一个model,M是a的所有model的集合。

这幅图是这节课的经典:

  • 1.逻辑研究的内容是研究形式化定义的sentences之间的关系
  • 2.知识库是sen的集合,每一个sen都符合形式逻辑规定的语法,老师每讲一个逻辑就会讲这个逻辑规定的语法,哪一些语言是合法的sen,哪一些不是,有了语言才能形式逻辑
  • 3.老师会讲两种逻辑:命题逻辑+一阶谓词逻辑
  • 4.每一个逻辑都有两个内容:从语义的角度能够蕴含一些新的知识库(新的知识,是正确的)。还会从语法的角度推演,自动推演出新的知识库(每一个sen都是一堆符号,通过形式上推演,推演出新的sen,这个和语义无关,是从符号上推演出的一种规则)
  • 5.对上面总结:每一个逻辑含有两个内容:语义上蕴含+形式上推演
  • 6.我们会证明两个性质:可靠性和完备性
  • 7.语义上蕴含(逻辑推导)和形式上推演都会得到一个知识库,我们可以将其看做sen的集合
  • 8.左侧是语义蕴含,右侧是形式上推演
  • 9.如果左侧的集合是右侧的子集,我们说是完备的(没有少推一些东西)
  • 10.如果右侧的集合是左侧的子集,我们说是可靠的(推出来是对的)
  • 11.如果右侧的集合是左侧集合的子集,我们可以说这一套逻辑是可靠的,意思是,我形式上推演出来的sen在语义上是对的,我每推出一个东西他是对的,所以我们可以认为他是可靠的。
  • 12.如果左侧的集合是右侧集合的子集,我们说这一套逻辑是完备的,意思是:任何能够从语义上面推出来的正确的东西,我都可以从形式上的方式推演得到,我们说这一套规则是完备的
  • 13.通常来说,定义一套逻辑,我们都要定义它的语义和语法规则(形式的推演规则),这种形式推演规则不是乱定义的,我定义完了之后,我们要进行测试,是否完备和可靠。
  • 14.接下来讲命题逻辑和一阶谓词逻辑,都会分别讲他的语义蕴含和语法推演

 三、语义上的蕴含entailment(图左侧部分)

定义语义上的entailment蕴含:KB蕴含sentence a,在KB为真的世界上,a为真,我们称KB|=a。似乎和implication有点像?是不一样(

Entailment  是语义上的蕴含    KB entailment a ;Implication 是命题之间的运算子,使用真值表刻画其语义{右箭头->  爆炸  假假、假真、真真为真    ,真假为假   implication})

KB:knowledge base 是我们上图中最上的部分。语义上蕴含(逻辑推导)可以表示为
 
 
举个蕴含的例子:
 
 

定理:如果有一个model使得KB为真,那么就会使a为真,如果这个公式成立,我们可以说KB蕴含a.(KB 是图中上面的知识库,a是左侧的sentence a)

在这个地方有一个定理theorem,我们需要证明这个东西:

如果a|=b,根据entailment定义a为真的世界b一定为真,所以M(a)为a为真的世界,b一定为真,说明M(b)一定要大于等于M(a),说明M(a)含于M(b)

完整证明:KB |= a  ,iff(等价于)  M(KB)含于 M(a)

 

举一个例子,我们要判断下面这句话为真或者假的,在左侧世界上,一共有7个model使得(a^b)|=r 为真(没有倒数第二种可能a^b为真,r为假),我们看一下右侧a|=r成立的一共有6种模型(真值表中画五角星的6个),b|=r同样也是6种。我们根据entailment定义,不满足左侧为真的模型使得右侧全部为真。所以这个句子是False。我们可以注意到右侧两个世界的联集是左侧的整个世界,如果用implement运算的话,这个句子为真。

四、命题逻辑的语义和语法

接下来,我们看一下命题逻辑(propositional logic),任何一个逻辑都有自己的语言,我们会看这个逻辑的syntax语法semantics语义两个部分。命题逻辑中proposition表示一个宣告式的句子,必须为True或者False。比如P=NP,虽然没人证明,但是到底,它一定是真或者假,二者之一;所以它也是一个命题。不可能同时为true和false。

4.1 语法syntax

概念部分:

命题proposition一个声明sen(太阳从东方升起),有可能是真有可能为假。这个声明与时间无关,不随着时间变化真假,如果该命题真假与时间有关,这不是我们考察的范围。随时间改变的sentence,我们称为fluent,比如今天是周一,这个随着时间变化的,是一个fluent,而不是一个proposition 。

原子命题:atomic propositions    不可拆分 ,原子命题用大写字母表示,每一个表示原子命题的大写字母都是一个合法的sentence。a是一个proposition命题,b也是一个proposition命题,那么a and b  ,a or b也是一个proposition。

文字literals: 表示为原子命题或者原子命题的反(P or net P)

句子sentence:一个合乎语法的句子,比如我们定义sentence为non-terminal非终结的,定义True、false、P、W为terminal终结的,我们可以说一个符合语法的逻辑式子就是一个sentence,一般最开始展开的时候都是一个sentence。

除此之外,在命题逻辑中还定义了其他5个符号,这5个符号是在语言中被允许的符号,negation  conjunction disjunction implication biconditional取一个名字,不要去想他的含义。这些都是定义的合法的language

复合命题:complexSentence 是由sentence和下面五个符号组合而成。

4.2 语义semantics

每一个符号,我们都给了对应关系,我们规定了真值表。通过真值表可以推演其他复合命题,命题逻辑一般使用真值表定义语义semantics

这个是真值表,要记住

1.红心  类似取反(作用于一个原子命题)    negation
2.(上箭头)笑脸  两个假得假,两个真得真,一真一假得假   conjunction   合取
3.(下箭头)空心  两个假得假,其他为真    disjunction                               析取
4.(右箭头,=>或者->)爆炸  假假、假真、真真为真    ,真假为假   implication
5.(双向箭头)云彩  类似同或,相同为真,不同为假     biconditional
 

五、inference 逻辑推理中的entailment蕴含

inference是一个比较大的概念,语义上的蕴含entailment可以说是inference,同样语法上的推演deduction也可以说是inference,我们先看entailment这个地方,对应了图中左侧部分知识点。

我们给了一个KB知识库之后,这个KB中每一个sen都是命题逻辑中的sen,都是合法的sen,α 现在是另外一个合法的sen,证明KB是否entailment α 成立(蕴含 ),我们一般把KB中所有模型都列出来,并且带到a中,看是否为真(KB|=a  ,M(KB)含于M(a)),这个方法就是inference推理的一个方法。但是这样做很没有效率,我们任意找到一个model,如果使得KB里面每一个sentence成立,那么这个model一定要使得α 为真。假设KB中原子命题P有N个,他的model一共有2^N ,每一个model试一下KB,试一下α,如果都是为真,就成立了,才可以说明KB|=a。

我们讲上面这个枚举的方法是非常没有效率的,通常不会这样子做,另外一个方法我们用一些逻辑上演绎,比如logical equivalences逻辑等价。

5.1 逻辑等价:logical equivalence

If a entailment b 且 b entailment a 则a,b逻辑等价,logically equivalent (三个横),逻辑等价一定互相entailment蕴含对方

六、定义逻辑上常用的术语

我们讲一个sentence是valid,是说这个sentence对于所有的model,永真。比如True,A or neg A;不管A为true或者false,前面的true都是真。说一个sentence句子是satisfiable 是说 存在模型使得sentence为真,比如 A^B,A  ;(^表示合取,两个真才为真,在这里B为真,A真假都可以),所以当A为真时候,sentence为真,当A为假时候,sentence为假,即存在A使得sentence为真,可以说这个句子是satisfiable。我们说一个句子sentence是unsatisfiable 是说 不存在模型使得sentence为真。比如A ^ neg A;无论A怎么取值,前面的句子是永远不会为真的。

Satisfiability的意思是我们以后会用到的反证法(proof by contradiction)。比如KB |=a 的等价命题(反证)就是(KB ^ neg a)is unsatisfiable

KB |=a,iff(等价于) (KB ^ neg a)is unsatisfiable

我们要证明KB entailment a ,就是证明给任意一个模型的情况下,KB为真,a一定为真。我们可以利用反证法证明,我们先讲结论是错的,没有模型使得KB 合取 非a 成立,这个我们后面会经常使用到。

K |= a是语义蕴含,K |- b是形式推演(下部分写),complete是说,左侧蕴含出来的知识都可以推演出来(语义蕴含的都可以推出来),sound是说右侧推演的知识都是被KB蕴含的(推出来的知识都是正确的)。当然了,哥德尔不完全定理已经证明了当一个大范围内,是不可能既sound又complete的,在这种情况下,我们一般会舍弃complete,留下sound(正确的东西)。

七、entailment 的等价命题,并且证明过程。

 证明:KB |= a,当且仅当  KB -> a   (implication)  为valid(永真)

(1)implication 真假为假,其余为真 

(2)是valid表明对于任意model,永真

(3)iff表示当且仅当,表示等价,所以在证明的时候要从前往后证明,还要从后往前证明。

 
发布了289 篇原创文章 · 获赞 163 · 访问量 23万+

猜你喜欢

转载自blog.csdn.net/Suyebiubiu/article/details/103072039