概率论沉思录:合情推理

news/2024/11/15 6:30:22/文章来源:https://www.cnblogs.com/orion-orion/p/18355649

本文采用勒内·笛卡尔(René Descartes)做为封面,不仅是因为笛卡尔的著作《第一哲学沉思录》[1]是本书中文译名的思想来源,更是因为笛卡尔代表着西方哲学史上的主体性转向,他的理性主义哲学也是贝叶斯派(Bayesian)的思想源泉之一(本书作者就是贝叶斯派的公开支持者)。

导言

当前,实际的逻辑学只擅长处理确定的、不可能的或者完全可疑的事情。幸运的是,这三者都不需要我们去推理。因此,这个世界真正的逻辑是概率演算的逻辑,它考虑的是一名理性思考者的大脑中已经或者应该存在的概率大小。

——詹姆斯·克拉克·麦克斯韦(James Clerk Maxwell, 1850)

最近蔻享学术主办了每周一次的《概率论沉思录》[2][3]读书会活动,恰好我也正在读该书中译版,通过该活动我了解到了不同学科的老师(数学/物理/统计/计算机)对这本书的不同理解,而我自己对该书的理解也在这个过程中逐渐深入了。于是准备每周都持续更新一下我的读书笔记。

本书作者是一位物理学家,不同于基于Kolmogorov公理化概率论中先从概率空间和测度的定义入手来讲概率论(事实上,本书将概率论视为扩展的逻辑,别说测度甚至连集合理论和维恩图都没用到),而是先从现实世界的经验背景入手提出合情推理和合情程度的概念,然后再介绍合情程度需要满足的定性条件(即合情条件),最后在此基础上推导出合情推理所要满足的定量规则,即乘法规则和加法规则(对应本书第1、2章的内容)。首先,我们来看什么是合情推理。

1 演绎推理与合情推理

我们在数学理论的学习中,我们常常用到的推理方式为演绎推理(deductive reasoning),它可分解为亚里士多德逻辑中两种强三段论(strong syllogisms) 的重复应用:

\[\begin{aligned} A真则B真 \\ \underline{\quad \quad \space \space \space A真}\\ B真 \end{aligned}\tag{1} \]

和它的逆

\[\begin{aligned} A真则B真 \\ \underline{\quad \quad \space \space \space B假}\\ A假 \end{aligned}\tag{2} \]

这种推理的特点在于,我们需要一个完全确定的信息来做为大前提(major premise)(比如上面提到的「A真则B真」以及「A真则B真」),这里的大前提在数学中往往以公理(axiom) 的形式呈现;此外,我们还需要一个适当的信息来做为小前提(minor premise)(比如上面提到的「A真」以及「B假」);其结论(conclusion) 为某命题为真(或假)。例如,将「人皆有一死」做为大前提,「苏格拉底是人」做为小前提,那么就可以得出结论「苏格拉底会死」。

然而现实世界是非常复杂的,我们常常会没有足够的信息来应用强三段论。有时是我们难以观测到适当的信息来做为(强三段论的)小前提,有时是我们的大前提并不完全确定和可靠。

比如我们早上9点看见天空多云,然后预计随后会下雨,此时的推理过程并非演绎的。设命题\(A\)为「上午10点天空开始下雨」,B为「上午10点之前天空变得多云」,那么我们进行推理的大前提为\(A\)真则\(B\)真,小前提为\(B\)真,不同于我们上面提到的两种强三段论。我们将这种推理方法称为弱三段论(weaker syllogisms),也即:

\[\begin{aligned} A真则B真 \\ \underline{\quad \quad \space \space \space B真}\\ A变得更合情 \end{aligned}\tag{3} \]

在弱三段论中,证据\(B\)真并不能证明\(A\)真,但\(B\)做为\(A\)的一个结果被验证,会让我们对\(A\)的信心增加。

弱三段论同样存在它的逆:

\[\begin{aligned} A真则B真 \\ \underline{\quad \quad \space \space \space A假}\\ B变得更不合情 \end{aligned}\tag{4} \]

同样地,证据\(A\)假并不能证明\(B\)假,但\(B\)的一个可能依据被排除,会让我们对\(B\)的信心减少。

这里值得一提的是,科学家接受或拒绝某理论的推理过程几乎全部由第\((2)\)种或第\((3)\)种三段论组成,也就是说科学家往往是通过实验所测得的证据来进行进一步推理。

采用弱三段论的推理方法我们称为合情推理(plausible reasoning)。合情推理虽然并非演绎推理,但我们仍然认为它具有一定程度的有效性。我们得出的结论虽然不再是演绎推理中要么\(\text{True}\)要么\(\text{False}\)那样的确信无疑(certain),但却依然显得合理可信(plausible)

我们来看一个更复杂的合情推理例子。一个在黑夜中巡逻的警察发现一个蒙面男子从破碎的窗户里爬了出来,身上还背着一个装满珠宝的袋子,然后他马上断定这个男子是坏人。该推理同样不属于演绎推理,因为完全可能存在该男子无辜的解释,比如这名男子是珠宝店的老板,刚从化装舞会回家,没有带钥匙,用石头砸碎了玻璃并为了保护自己财产而从窗户带走了珠宝。

我们设命题\(A\)为「该男子是坏人」,\(B\)为「该男子做出上述行为」,那么该警察推理的大前提为\(A\)真则\(B\)更合情,小前提为\(B\)真:

\[\begin{aligned} A真则B更合情 \\ \underline{\quad \quad \space \space \space B真}\\ A变得更合情 \end{aligned}\tag{5} \]

我们总结一下上述合情推理的特点,可以看出合情推理都需要先验信息(prior information) 来评估新问题的合情程度,这种推理过程是无意识的,我们称之为常识(common sense)。不同于演绎推理中做为公理的大前提,合情推理的常识以人的过往经验来呈现,是可以不断修正的。在警察的例子中,这里的常识就是警方过往的执法经验。如果我们想改变警察对该问题的判断,只需要改变这种过往经验即可。比如,这种事如果每天晚上都会发生很多次,且那名男子每次都被证明是完全无辜的,那么警察们就会选择忽略该事件。

2 与物理理论的类比

上面我们提到警方可以通过经验的不断积累来修正合情推理的先验信息,最终得出不同的合情推理结论,事实上这种思维方式已广泛应用于物理学乃至整个科学领域。比如在物理理论中我们常常通过建立一个数学模型来解释一些现象(这些模型称为物理理论(physical theories)),然后再改进此模型以解释更多现象,比如

\[牛顿力学\rightarrow 狭义相对论 \rightarrow 广义相对论 \]

的演变过程就体现了这种思想。没有人知道这个过程是否存在自然的终点,是否将无限期继续下去。

我们在理解常识时,采取的也是类似的做法,即建立一个数学模型来再现人类常识的一些特征,然后在未来可能会有更全面的模型来做为当前模型的代替。同样地,我们也不知道这个过程是否存在自然的终点。

3 思维计算机

事实上,每当我们通过一组明确的操作来构建一个能再现部分常识的数学模型时,其实也就是在展示如何构建一台思维计算机(The thinking computer) 来对不完全信息进行操作,并通过应用上述弱三段论的定量版本进行合情推理而不是演绎推理(具体的定量规则将在第2章讲述)。

一旦从定性转到定量,我们就会进一步追问:在警察的弱三段论\((5)\)中,是什么决定了\(A\)的合情性是大幅增加到几乎确定的程度,还是只提升了可以忽略不计的一点点并使得数据\(B\)几乎无关紧要?本书的目标是发展一种数学理论,以目前可能的最大深度和一般性来回答这个问题。

我们知道,人类大脑进行推理时所用的问题带有情绪以及各种怪诞的误解,这些都属于心理学的范畴,我们不加以考虑。事实上,人类大脑的实际运作方式非常复杂,我们难以解释它的全部奥秘,因此,我们不应该问“我们怎样才能建立人类常识的数学模型?”,而应该问:遵循表达理想化常识的明确原理,我们怎样才能构建一个能够进行有用的合情推理的机器?

4 推理机器人

我们将发明一个虚拟的生命体,它的大脑由我们设计,以便它能根据某些确定的规则进行推理。这些规则是从简单的合情性条件(desiderata)推导出来的,在我们看来,这些合情条件是人类大脑进行合情推理所需要满足的。我们认为,如果一个理性的人发现自己违反了一个合情条件,会希望修正自己的想法。

我们的机器人将对命题进行推理。如前所述,我们用斜体大写字母(A、B、C,等等)来表示各种命题,并且暂时要求所使用的命题必须对机器人具有明确意义,必须属于一种简单、明确的逻辑类型(非真即假)。也就是说,我们只关注二值逻辑。

5 布尔代数

为了更正式地陈述这些想法,我们引入了一些常用符号逻辑(或称布尔代数(Boolean algebra))的记号,包括了以下三种基本的运算:

  • 逻辑积(logical product)/ 合取(conjunction) 记作\(AB\),表示命题“A和B都为真”。显然,\(AB\)\(BA\)含义相同。
  • 逻辑和(logical sum)/ 析取(disjunction) 记作\(A+B\),表示“A和B两个命题中至少有一个为真”。显然,\(A + B\)\(B + A\)含义相同。
  • 否定(denial) 记作\(\overline{A}\),表示“\(A\)命题为假”。

给定两个命题\(A\)\(B\),如果一个为真当且仅当另一个为真,我们说它们具有相同的真值(truth value)。这可能只是一个简单的重言式(tautology)(即A和B明显在说同样的事情),也可能是经过艰难的数学推导后最终证明\(A\)\(B\)的充分必要条件。从逻辑的角度来看,具体是什么情况无关紧要,因为我们一旦确定\(A\)\(B\)具有相同的真值,它们就是逻辑上等价的命题。

在布尔代数中,等号“=”用于表示相同的真值而不是相同的数值:\(A=B\)这个布尔代数的“等式”断言左侧的命题与右侧的命题具有相同的真值。与通常一样,我们另用符号“\(\equiv\)”来表示“按定义等于”。

根据上述上述三种基本运算的定义,就可以得到下列由等式描述的布尔代数的基本性质:

  • 幂等性(idempotence)
    • \(AA=A\)
    • \(A + A = A\)
  • 交换性(commutativity)
    • \(AB = BA\)
    • \(A + B = B + A\)
  • 结合性(associativity)
    • \(A(BC)=(AB)C=ABC\)
    • \(A + (B + C) = (A + B) + C = A + B + C\)
  • 分配性(distributivity)
    • \(A(B + C) = AB + AC\)
    • \(A + (BC) = (A + B)(A + C)\)
  • 对偶性(duality)
    • \(C=AB\),则\(\overline{C}=\overline{A} + \overline{B}\)
    • \(D = A + B\),则\(\overline{D}=\overline{A}\space\overline{B}\)

应用这些性质可以进一步推出一些结论,有些并不显而易见。比如下列将被我们做为基本定理使用的命题:
命题

\[若\overline{B} = AD, \space 则A\overline{B} = \overline{B}且B\overline{A}=\overline{A} \]

证明

  • \(D=\overline{B}\),显然有\(A\overline{B}=\overline{B}\)
  • \(D=B\),得\(\overline{B}=AB\),运用对偶性(两边取否)得\(\overline{A} + \overline{B}=B\),两边\(\cdot\overline{A}\),得\(\overline{A} + \overline{A}\space \overline{B} = \overline{A}B\)(这步我不敢保证正确,不过我也没找到其它解法),于是\(\overline{A}(1 + \overline{B})=\overline{A}B\),最终得到\(B\overline{A}=\overline{A}\)

接下来我们来看蕴含式(implication)。命题

\[A \Rightarrow B \]

读作“\(A\)蕴含\(B\)”,并不断言\(A\)为真或\(B\)为真,只意味着\(A\overline{B}\)为假(也即\(\overline{A}+B\)为真)。这也可以写成逻辑方程\(A=AB\)。也就是说如果\(A\)为真,则\(B\)一定为真;或者说如果\(B\)为假,则\(A\)一定为假,这正是强三段论\((1)\)\((2)\)所表达的内容。

此外,对于蕴含关系而言,如果\(A\)为假,对\(B\)无法说明任何事;如果\(B\)为真,对\(A\)也无法说明任何事,但这些正是弱三段论\((3)(4)\)确实传达了一些信息的情况。

陷阱 注意,在普通语言(ordinary language)中「\(A\)蕴含\(B\)」表示\(B\)在逻辑上可以从\(A\)中推导出来,但是在形式逻辑(formal logic)中它仅表示命题\(A\)\(AB\)具有相同的真值(我们用的“蕴含”一词实际上带有误导性,后面我们会看到一个例子)。

此外,只有当\(A\)真且\(B\)假时\(A \Rightarrow B\)才为假,在所有其它情况下\(A \Rightarrow B\)都为真(包括\(A\)为假的情况)。若\(A\)为假,则对于任何\(Q\)\(AQ\)也为假,那么\(A=AB\)\(A=A\overline{B}\)都为真,所以\(A \Rightarrow B\)\(A \Rightarrow \overline{B}\)都为真。于是一个假命题蕴含所有命题。如果我们试图将蕴含关系解释为逻辑可推导性(即\(B\)\(\bar{B}\)都可以从\(A\)中推导出来),那么这样就导致了每个假命题在逻辑上是自相矛盾的。但事实上命题为假并不意味着自相矛盾(即永假)。比如对于命题「贝多芬比柏辽兹更长寿」,我们查询维基百科得知它是假的,但它却并不自相矛盾(永假),因为该命题有可能是正确的(贝多芬确实比许多柏辽兹同时代的人寿命更长)。

6 完备运算集合

基于上面提到的四种基本的逻辑运算:逻辑积(合取)\(AB\),逻辑和(析取)\(A+B\),蕴含关系\(A\Rightarrow B\),否定\(\overline{A}\),我们可以从两个命题\(A\)\(B\)开始产生任意数量的新命题,如:

\[C\equiv (A + \overline{B}) (\overline{A} + A\overline{B}) + \overline{A}B(A+B) \]

我们现在的疑问是:这样生成的新命题有多少?是无限多,还是存在这些运算下的有限闭集?还是说这四种已经过度完备了,以至于其中一些可以省掉?更一般地,如果我们不只有两个命题\(A\)\(B\),而是有\(n\)个命题\(A_1,\cdots, A_n\),那么想要生成关于自变量(在语言哲学中被称为命题变量(propositional variable)\(\{A_1, \cdots, A_n\}\)的所有可能逻辑函数,这组运算符是否完备?

我们规定这些逻辑函数只能有\(\text{T}/\text{F}\)这两个函数值,所有自变量也只能取这两个值,这种函数在语言哲学中被称为真值函数(truth function)[4]

我们先考虑一种简单的情况,即逻辑函数\(C=f(A, B)\),此时一共有多少个这样的逻辑函数呢?该函数的定义域为大小为\(2^2=4\)的二维离散空间\(S=\{\text{T}\text{T}, \text{T}\text{F}, \text{F}\text{T}, \text{F}\text{F}\}\),其中每个点(2维向量)都可以被指派到\(\{\text{T}, \text{F}\}\)中的一个值,因此总共有\(2^4=16\)个不同的逻辑函数\(f(A, B)\)

进一步推广开来,对于涉及\(n\)个命题的表达式\(B=\{A_1,\cdots, A_n\}\),其定义域为大小为\(2^n\)的离散空间\(S\),那么它最终就对应\(2^{2^n}\)个不同的逻辑函数。

对于\(n=1\),也即\(C=f(A)\)的特殊情况(定义域为大小为\(2^1\)的一维离散空间\(S=\{\text{T}, \text{F}\}\)),此时有\(2^2=4\)个不同的逻辑函数(将它们分别命名为\(\{f_1(A), \cdots, f_4(A)\}\),它们可以通过真值表的形式来枚举(enumeration)定义:

\(A\) \(\text{T}\) \(\text{F}\)
\(f_1(A)\) \(\text{T}\) \(\text{T}\)
\(f_2(A)\) \(\text{T}\) \(\text{F}\)
\(f_3(A)\) \(\text{F}\) \(\text{T}\)
\(f_4(A)\) \(\text{F}\) \(\text{F}\)

通过仔细观察,我们可以构造出这些函数:

\[\begin{aligned}f_1(A) &= A + \overline{A}\\f_2(A) &= A \\f_3(A) &= \overline{A}\\f_4(A) &= A\overline{A} \end{aligned} \]

这样,我们采用构造性证明的方式证明了三种运算符(析取、合取和否定)足以生成单个命题的所有逻辑函数。

对于更一般的\(n\)值,我们先考虑一些特殊的函数,其中每个函数在定义域\(S\)一个且仅一个点上为\(\text{T}\),其余点都为\(\text{F}\)。对于\(n=2\),存在\(2^2=4\)个这样的特殊函数(也就是对于大小为\(2^2\)的定义域\(S=\{\text{TT}, \text{TF}, \text{TF}, \text{TF}\}\)中的每一个二维点,都只能指派一个固定的真值)。

\(A, B\) \(\text{TT}\) \(\text{TF}\) \(\text{TF}\) \(\text{TF}\)
\(f_1(A, B)\) \(\text{T}\) \(\text{F}\) \(\text{F}\) \(\text{F}\)
\(f_2(A, B)\) \(\text{F}\) \(\text{T}\) \(\text{F}\) \(\text{F}\)
\(f_3(A, B)\) \(\text{F}\) \(\text{F}\) \(\text{T}\) \(\text{F}\)
\(f_4(A, B)\) \(\text{F}\) \(\text{F}\) \(\text{F}\) \(\text{T}\)

这些函数可以构造为基本的合取式:

\[\begin{aligned}f_1(A, B) &= AB\\f_2(A, B) &= A\overline{B} \\f_3(A, B) &= \overline{A} B\\f_4(A, B) &= \overline{A}\space \overline{B} \end{aligned} \]

这里的4个特殊函数,我们可以视为由\(S\rightarrow\{\text{T}, \text{F}\}\)的函数所构成的函数空间的基底(basis)。我们可以由这些基函数来组成任意函数。

比如考虑在\(S\)某些指定点上为真的任意函数,例如下列函数:

\(A, B\) \(\text{TT}\) \(\text{TF}\) \(\text{TF}\) \(\text{TF}\)
\(f_5(A, B)\) \(\text{F}\) \(\text{T}\) \(\text{F}\) \(\text{T}\)
\(f_6(A, B)\) \(\text{T}\) \(\text{F}\) \(\text{T}\) \(\text{T}\)

我们发现,\(f_5(A, B)\)\(f_6(A, B)\)都可以写为基函数的逻辑和:

\[\begin{aligned}f_5(A, B) &= f_2(A, B) + f_4(A, B)\\& = A\overline{B} + \overline{A}\space \overline{B}\\& = (A + \overline{A})\overline{B}\\&= \overline{B} \end{aligned} \\ \begin{aligned} f_6(A, B) &= f_1(A, B) + f_3(A, B) + f_4(A, B)\\ & = AB + \overline{A}B + \overline{A}\space \overline{B}\\ & = (A + \overline{A})\overline{B}\\ &= B + \overline{A}\space \overline{B}\\ & = \overline{A} + B \end{aligned} \]

(由\(B + \overline{A}\space\overline{B}\)\(\overline{A} + B\)这一步用的分配性,即\(B + \overline{A}\space \overline{B} = (B + \overline{A}) (B + \overline{B})=\overline{A} + B\)

事实上,任何在\(S\)中至少一点上取值为真的逻辑函数都可以通过我们上面提到的基函数的逻辑和构造,总共有\(2^4 - 1\)个这样的函数,剩余一个在所有点上均为假的函数,只需定义为矛盾命题\(f_{16}(A, B)\equiv A \overline{A}\)即可(类比向量空间中的\(0\)向量)。

这种方法(在逻辑教科书中称为“简化为析取范式(disjunctive normal form, DNF)[5])对于任何\(n\)都是成立的,例如在\(n=5\)的情况下,有\(2^5=32\)个基本的合取式

\[\{ABCDE, ABCD\overline{E}, ABC\overline{D}E, \cdots, \overline{A}\space \overline{B}\space \overline{C}\space\overline{D}\space\overline{E}\} \]

\(2^{32}\)个不同的逻辑函数\(f_i(A, B, C, D, E)\),由\(2^{32}-1\)个基本合取式的逻辑和加上矛盾式

\[f_{2^{32}}(A, B, C, D, E) \equiv A\overline{A} \]

组成。

至此,我们验证了\(\{ 合取,析取,否定 \}\)(即\(\{\text{AND}, \text{OR}, \text{NOT}\}\))这三种运算足以生成所有可能的逻辑函数,更简洁地说,它们构成了一个完备集合(adequate set)。而由布尔代数中的对偶性法则,我们可以进一步将其缩小为\(\{\text{AND}, \text{NOT}\}\) ,因为

\[A + B = \overline{\overline{A}\space\overline{B}} \]

至此,两种运算(\(\text{AND}\)\(\text{NOT}\))已经构成了演绎逻辑的完备集合(这一事实对于我们确定是否有合情推理的完备规则集合至关重要,详见第2章)。

虽然我们不能再删除这两种运算中的任一种了(也就是说这两种运算不再能互相表出),但是,仍然存在这样的可能性:合取和否定都可以简化为尚未引入的另一种运算,因此单个逻辑运算可以构成一个完备集合

与非运算(NAND)或非运算(NOR) 都可以完成我们的目的。与非运算定义为AND的否定:

\[A\uparrow B = \overline{AB} = \overline{A} + \overline{B} \]

可以读作“A与非B”。我们立即可以得到:

\[\begin{aligned}\overline{A} &= A \uparrow A,\\ AB &= (A \uparrow B) \uparrow (A \uparrow B), \\A + B &= (A \uparrow A) \uparrow (B \uparrow B) \end{aligned} \]

因此,每个逻辑函数都可以仅用NAND构建。或非运算\(A\downarrow B \equiv \overline{A + B} = \overline{A}\space \overline{B}\)同理。

逻辑电路的标准组件之一是“四与非门”,即再一个半导体芯片上包含四个独立与非门的集成电路。给定足够数量的“四与非门”,则不需要其它电路组件就可以通过各种方式的互相连接来生成所需的任何逻辑函数。

在语言哲学中,也曾指出一组已知原子命题的所有真值函数可以由“非\(p\)或非\(q\)”或者“非\(p\)和非\(q\)”这两种函数中的一种来构成。维特根斯坦的证明方法使用了后一种函数,他的证明方法大致为:选取任何一组原子命题,然后全部否定他们(我们前面提到“非\(p\)”等值于“非\(p\)和非\(p\)”),然后选取任何一个现在所得命题的集合,加上原有的任何命题,如此等等以至无穷(参见维特根斯坦《逻辑哲学论》命题6到6.02[4])。这样,所有非原子命题都能够用一个统一的方法从这些原子命题推导出来。

7 基本的合情条件

现在转向我们的扩展逻辑,它们将根据一定的条件进行推导。我们将这些条件称为 “合情条件”(desiderata) 而不是“公理”(axiom),因为它们并不断言任何东西是真的,只是说明了扩展逻辑的期望目标(desirable goal)。

正如在第1部分中所说的,对于每一个要推理的命题,我们的推理机器人会根据我们给予的证据分配一定程度的合情性,一旦接收到新的证据,他就会对合情性进行重新调整分配。为了能在它的“大脑”电路中将这些合情性进行存储与修改,我们必须将其与某种确定的物理量相关联,比如电压、脉冲时间或者经由二进制编码的数值等等。这些都是工程师考虑的细节,而就我们的目的而言,这意味着在合情程度与实数之间必须有某种关联

\[(Ⅰ) \space 用实数表示合情程度。 \]

我们采取一种自然的约定:更高的合情性对应更大的数值。另外出于方便,我们假设存在一种连续性(continuity),也即合情性的微小增加应该对应数值的微小增大。

正如我们前面所说的,机器人为某个命题\(A\)分配合情性依赖于我们是否告诉它另一个命题\(B\)(证据)的真假。我们采用符号

\[A \mid B \]

来表示这一点,读作“给定\(B\)为真,\(A\)为真的(条件)合情性”或者简读为“给定\(B\)\(A\)”,它代表某个实数。因此,

\[A \mid BC \]

(可以读作“给定\(BC\)\(A\)”)表示给定\(B\)\(C\)都为真,\(A\)为真的合情性。此外,

\[A + B \mid CD \]

表示给定\(C\)\(D\)都为真,\(A\)\(B\)至少有一个为真的合情性,以此类推。

我们已经决定用更大的数值表示更大的合情性,因此

\[(A \mid B) > (C \mid B) \]

表示“给定\(B\)为真, \(A\)\(C\)更合情”(这里我们为了清晰起见添加了括号)。

为了避免不可解决的问题,我们不会要求机器人根据相互矛盾的前提进行推理,这样也不可能有正确的答案。因此,我们假定\(B\)\(C\)是兼容的命题。

此外,我们也不希望这个机器人的思考方式与人类思维方式相悖,因此我们将以一种至少在定性上与人类推理方式类似的方式来设计它,如前述的弱三段论一样。

因此,假设它拥有的旧信息\(C\)更新到\(C^{\prime}\),使得\(A\)的合情性增大:

\[(A\mid C^{\prime}) > (A \mid C) \]

但是在给定\(A\)后,\(B\)的合情性没有改变:

\[(B\mid A C^{\prime}) = (B\mid AC) \]

这当然只能导致\(A\)\(B\)同时为真的合情性增加,而不能导致其减少:

\[(AB\mid C^{\prime}) \geqslant (AB\mid C) \]

并且\(A\)为假的合情性也必须减少:

\[(\bar{A}\mid C^{\prime}) < (\bar{A}\mid C) \]

这种定性条件简单地给出了机器人推理的“方向感”,它没有提及合情性改变了多少,只体现了我们的连续性假设要求:\(A\mid C\)的微小变化也只会引起\(AB\mid C\)\(\overline{A}\mid C\)的微小变化。这些定性条件的具体使用方式将在第2章给出,这里我们先将它们简单地概括为:

\[(Ⅱ) \space 定性地与常识相符。 \]

最后,我们希望机器人提供另一个理想的性质:它总是一致地(consistently) 推理:

\[(Ⅲ) \space 具有一致性。 \]

这里要强调的是,“一致”这个词需要包含以下三个常见含义:

\[\begin{aligned} & (Ⅲ\text{a}) \space 如果可以通过多种方式推理出结论,那么每种可能的方式都必须给出相同的结果。\\ & (Ⅲ\text{b}) \space 机器人总是考虑它拥有的与问题有关的所有证据,而不会随意忽略一些信息。\\ & (Ⅲ\text{c}) \space 机器人总是通过分配相同的合情性来表示相同的知识状态。 \end{aligned} \]

这里的合情条件\((Ⅰ)(Ⅱ)(Ⅲ\text{a})\)是机器人“大脑”内部运作的基本“结构性”条件,而\((Ⅲ\text{b})(Ⅲ\text{c})\)是“接口”条件,表明机器人的行为应如何与外部世界关联。

事实上,上述的这些定性的条件已经唯一决定了机器人的推理规则,即只有一套满足所有这些性质的处理合情性的数学运算规则。这些规则将在第2章中推导出来。

8 评注

不用实数?

关于本章的理论还有很多值得探索的地方。人脑和机器人的大脑之间终究有区别。如合情条件\((Ⅰ)\)所属,机器人关于任何命题的心理状态都将由一个实数表示。但对于人脑而言,我们关于特定命题的态度可能不止一个“维度”,我们不只关注它是否合情,还关注它是否可取、是否重要、是否有用、是否好笑等等。如果我们假设这些判断中的每一个维度都可以用一个数值表示,那么对人类心理状态的充分完备描述将由多维空间中的向量表示。并非所有命题都需要多个维度,如命题“水的折射率小于1.3”不会激发任何情绪,因此它产生的心态只有极少的维度。但命题“你的岳母刚刚毁了你的新车”就会激发多维度的心理反应。

甚至我们可以不选择实数来表示合情程度,直接基于定性排序关系系统的 “比较”理论(如 \((A \mid C) > (B \mid C)\) )来表示它(这里可以参考推荐系统中的pairwise loss和pointwise loss[6])。

普通语言和形式逻辑

我们往往认为形式逻辑(formal logic) 的语句一定比普通语言(ordinary language) 更精确,但实际上并非如此。

特别地,因为普通语言除了陈述逻辑之外还常用于其它目的,所以能够表达微妙的差别,不直接说出来也能够做出暗示。形式逻辑则不然。比如A先生为了证实自己的客观性,说:“我相信我所看到的。”(还原成蕴含式为“若我看到一个东西,则我相信它”)B先生则回应到:“他看不到他不相信的东西。”(还原为蕴含式为“若我不相信一个东西,则我没看到它”)从形式逻辑的角度看,他们说的似乎是同样的意思(互为逆否命题);但是从普通语言的角度上讲,这两个句子传达了相反含义的意图和效果(后者似乎在嘲讽前者视域的局限性?)。

下面是一个更能说明问题的例子,摘自某数学教科书。设\(L\)是平面中的直线,\(S\)是该平面中的一个无穷点集,将其中的每个点都投影到\(L\),现考虑以下语句:

\[\begin{aligned} &( Ⅰ )极限的投影是投影的极限。\\ &( Ⅱ ) 投影的极限是极限的投影。\\ \end{aligned} \]

它们具有相同的语法结构“\(A\)是(is)\(B\)”和“\(B\)是(is)\(A\)”(按语言哲学的观点,这里“is”作为相等(identity) 的记号(sign)[4]),因此逻辑上看起来是等价的。然而在该教科书中,( Ⅰ )被认为是正确的,而( Ⅱ )一般不正确,理由是当集合的极限不存在时,投影的极限可能存在。

如上面例子所示,我们已经在普通语言中用精确的措辞表达细微的差别(虽然我们可能没意识到)。我们实际上将“\(A\)\(B\)”解释为:首先断言\(A\)存在(做为一种大前提),而该语句其余部分被列为以该前提为条件。也就是说,在普通语言的语法中,动词“是”意味着主语和宾语之间存在差别,但在形式逻辑和传统数学的等号“=”的两边却没有差别(计算机语言中的“=”除外)。

另一个有趣的例子是古老的格言“知识就是力量”(knowledge is power),它在人际关系和热力学中都是非常有说服力的真理(热力学中的含义可参见著名的Landauer擦除,即擦除1个bit的信息需要\(kT\ln2\)的能量[7])。但一个化学贸易杂志[8]的广告撰稿人将这句话调整为“力量就是知识”,这就是荒谬、离谱的错误了。

在英语中,动词 “is” 与其它动词一样,在使用时要有主语和谓语,但这个动词却有两种完全不同的含义。考虑下面这个两个句子:

  • The room is noisy. (房间很吵)
  • There is noise in the room. (房间里有噪声)

实际上,第二个句子中的说法是本体论的(ontological),它作为存在(existence) 的表达式出现,断言某种东西的物理存在;第二个句子中的说法是认识论的(epistemological),它做为系动词(copula) 出现,它的意思是“是”,只表达说话者的个人感知。

这里不限于英语的“is”,德语的“Sein”一词除了表示相等和系动词的“是”之外,也可以用作表示“存在”、“有”,参见维特根斯坦《逻辑哲学论》命题3.323[4]

普通语言(至少在同为日耳曼语族的英语和德语中)有一种普遍的倾向:通过语法形式将认识论的语句伪装成本体论的语句。当前概率论的一个主要错误来源就是没有认识到这一点。以本体论的意义解释认识论语句,是断言一个人的思想和感觉是自然界中存在的事实,我们称为 “思维投射谬误”(mind projection fallacy)。这种问题甚至不只局限于概率论,实际上许多哲学家和塔式格心理学的话语,以及一些物理学家解释量子理论的常识,由于一再陷入思维投射谬误而沦为无意义。

参考

  • [1] Descartes R. Meditations on first philosophy: With selections from the objections and replies[M]. Oxford University Press, USA, 2008.
  • [2] Jaynes E T. Probability theory: The logic of science[M]. Cambridge university press, 2003.
  • [3] 杰恩斯. 廖海仁译. 概率论沉思录[M]. 人民邮电出版社, 2024.
  • [4] Wittgenstein L. Tractatus logico-philosophicus[J]. 2023.
  • [5] Lehman E, Leighton F T, Meyer A R. Mathematics for computer science[M]. Massachusetts Institute of Technology, 2010.
  • [6] 《推荐系统:精排多目标融合与超参数学习方法》
  • [7] 《为什么信息不是能量?》
  • [8] LC-CG Magazine, March 1988, p. 211.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/781929.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

八重终结 Phase 4 狱火焚天

Ending Time Octet 【八重终结】 Phase 4 Inferno Combusts 【狱火焚天】 PV on Bilibili Part 1 联合动画 Part 1 Part 2 完整音乐 涉及 AU Murder Time Trio Former Time Trio Karmatic Time Trio Chaotic Time Trio Phase 3 Chaotic Time Trio Phase 4 归冢余妄个人曲 传说之…

【grpcurl】使用grpcurl测试GRPC服务

一、场景由于我们需要访问GRPC服务的方法,便于我们进行测试,所以我们开启了grpc服务的反射机制二、安装grpcurlhttps://github.com/fullstorydev/grpcurlhttps://github.com/fullstorydev/grpcurl/releases 下载对应环境的包即可sudo dpkg -i grpcurl_1.9.1_linux_amd64.debu…

windbg 搭建双机调试环境

当我们搭建好驱动开发环境后,就可以设置双机调试了,虚拟机的安装可以参考网上其他教程,比较简单,我们直接来讲设置双击调试需要注意的一些地方。 1.设置被调试的虚拟机 首先,将虚拟机关机,如果此时已经有了串行端口存在首先移除,管道名字输入 \\.\pipe\com_1,并选择“该…

windbg 搭建双击调试环境

当我们搭建好驱动开发环境后,就可以设置双机调试了,虚拟机的安装可以参考网上其他教程,比较简单,我们直接来讲设置双击调试需要注意的一些地方。 1.设置被调试的虚拟机 首先,将虚拟机关机,如果此时已经有了串行端口存在首先移除,管道名字输入 \\.\pipe\com_1,并选择“该…

NDT算法详解与C++实现

点云匹配在感知环节是一个很重要的信息获取手段,而其中的算法也有几个比较经典了,例如ICP(Iterative Closest Point,迭代最近点)算法,而本文决定记录学习的是NDT算法,也就是Normal Distribution Transform,正态分布变换算法。什么是正态分布变换算法呢,简言之,就是把…

HBase学习的第一天--hbase的简介和搭建

HBase架构与基础命令 一、了解HBase 1.1 HBase概述HBase是基于Hadoop中HDFS做存储的数据库HBase 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,用于存储海量的结构化或者半结构化,非结构化的数据(底层是字节数组做存储的) HBase是Hadoop的生态系统之一,是建立…

实景三维:解锁地理信息新维度,引领未来城市智慧之钥

在这个信息爆炸与科技日新月异的时代,地理信息与遥感技术正以前所未有的速度改变我们认知世界的方式。在推动“实景三维平台”这一前沿科技的构建上,它不仅是地理信息的立体呈现,更是智慧城市的基石,打开了通往未来城市规划、管理、决策与服务的新视界。实景三维平台:数字…

【Linux系列】内核参数

sysctl命令常用参数 RAID性能参数调优 网络协议栈调整:单位是字节 TCP并发性能优化 对于用不上IPV6的建议直接禁用 TCP keepalive时长控制 memory OOM控制 安全防护模块 保障TCP通信质量 IO密集性服务器优化参数 路由器选项控制 路由机制控制 内存大页面使用策略内核参数主要保…

外心与垂心

外心(这三条结论并不完全是平凡的) 1、 \(\angle BOC=2\angle A\) 2、 \(\angle CBO+\angle A=Rt \angle\) 3、 \(O\) 在三角形三边的中垂线上 例1如图,\(\triangle ABC\) 内接于圆 \(O\) ,\(AD\perp BC\) ,延长 \(CD,BD\) 交圆 \(O\) 于点 \(F,E\) ,作 \(DE,DF\) 中垂线…

计算机体系结构技术杂谈(上)

计算机体系结构技术杂谈(上) 2.1 计算机的层次结构 2.1.1基本概念介绍 1. 计算机基本概念 1) 机器数:用0和1编码的计算机内部的0/1序列。 2) 真值:机器数真正的值,即:现实中带正负号的数(通常指带符号二进制数对应的真正的数值)。 3) 定点数:将一个实数表示为带有固…

驱动开发环境搭建

1.安装 VS2019 首先,我们需要安装 VS2019,资源链接如下: VS2019 + WDK: https://pan.baidu.com/s/1LYIn1MXLjY_zgEgLr8SgYA?pwd=xyji 在安装的时候我们需要注意务必要注意,图上已勾选的选项必须要全部勾选,漏勾可能会导致各种奇怪的问题! 可选部分我们需要勾选的安装项如…

Jetbrains Fleet: 很好, 但是谁在乎呢?

作者对Jetbrains Fleet项目的发展历程进行了回顾和批评,认为其缺乏IDE的第一性以及Jetbrains工程便利。虽然现在支持自定义插件,但插件开发难度大且资源不足,面临Vscode等竞争对手的压力,Jetbrains Idea也停滞不前,新UI等更新未能带来实质性改进。作者表示不再购买Jetbrai…