事件总是孤立的
我们观察到的事件其实都是孤立的,事件之间总有无法触达的空隙和未知,不可能完全获知。比如A事件“你转账给甲”,B事件“你少了一笔钱,甲收到一笔钱”,如果抽离了我们的日常经验和因果关系认知,那么可以说这两个事件之间完全没有关系,只是说观察到A事件之后,又观察到B事件。
【资料图】
相似性、相关性还不能发出预言,还需要存在、充足理由和相似代换才有因果关系
但我们同样观察到了如下的事实:A1事件”你转账给乙“,B1事件”你少了一笔钱,乙收到一笔钱“,A1事件发生后,B1事件也发生了。
同时观察到了如下的相似性:A1事件看起来很像A事件,B1事件看起来很像B2事件。
这能说明什么呢?能说明A2事件“你转账给丙”之后,就会发生B2事件”你少了一笔钱,乙收到一笔钱“吗?
我觉得其实并不能。因为1、你要相信过去真发生、现在正存在、未来会出现,2、你要相信世界上存在”因果关系“、”有因就必然有果,有果就必然有因“,3、你要相信”因果关系看重的不是本质而是属性“、”相似的因会有相似的果“,4、你要相信A事件和B事件之间存在“因果关系”。
只有在有这些前提的情况下,才能判定B2事件发生。
这些前提具体是什么呢?
“过去真发生、现在正存在、未来会出现”,现在正存在是一切的根基,不需要讨论;同样如果未来不会出现,那讨论其实没有意义,也不需要讨论;过去发没发生没关系,只要我们认为发生了就可以了,这其实并非理所当然,我们可以认为过去的一切都是神的伪造和精神灌输,下一刻不会发生而会被神戛然而止,我们只生活在片段中。但从这种角度来看,任意一个事件发生的可能性可以是完全相等的,因为真实和未来不会被我们知道。
只有相信“任何事情的发生都是有理由的”或者说“一件事件不可能突兀地冒出来而没有任何的前因事件、后果事件”,才能在事件之间建立关联。
但到此还不够,可能存在”A1事件可以是B事件的理由,A事件可以是B1事件的理由,因果由神随机定义,没有规律“的世界,这样的世界对我们来说可能非常诡异、非常扭曲混乱、甚至难以想象的。
因此还需要相信“任意一个过程的发生无关参与事物的本质,只跟参与事物的特定属性有关”或者“如果事物A和B在过程所关心的属性上绝对等同,在其他影响因素完全一致的情况下,用A替换B不影响过程的结果”。举个例子,我们先用砝码称等质量的物体,然后用等质量的物体代替砝码称重,显然“等质量的物体”和“砝码”的本质是不同的(事物A不是事物B,他们的本质不同;如果事物A是事物B,他们的本质相同),但对于称重这个过程来说,唯一关心的是物体的“质量”属性,所以上述的例子能够work。这其实也并非理所当然,我们完全可以认为某个具体的砝码被神赋予了这样的本质和定义:在称重的场景下永远都比另外一边重,即使我们无法从属性上区分出它和其他砝码。
到此,我们这个世界才是有因果、有规律、可重复、可预测的。
所以因果关系是一种信仰,帮助我们发出预言;因果关系是我们对世界如何运行的构建(虚构),提供了对“观察到的确定性“的解释。
相信因果关系后,它能给我们提供那些确定性?
1、如果A事件和B事件有因果关系,那么当作为因的A事件发生了,作为果的B事件也会发生。也就是说任意一个事件发生其实都是确定的,当前因事件确定了,该事件也跟着确定。
2、如果A事件和B事件有因果关系,那么当作为果的B事件发生了,作为因的A事件也一定发生了。
3、如果A事件和B事件完全没有因果关系,那么当A事件确定已经发生了,B事件发不发生其实完全不受影响。
即使我们相信有因果关系,现实世界中仍然不能推演到真实,只能找到最大的可能性
1、我们很难足够确切地知道真正发生过什么,只是观察到一些孤立的事件。围绕一件特定的孤立事件,我们能够找到无数种可能的因或者说能到达我们观察到的事件的可能性非常多。还是转钱的例子,可能你的钱转错人了,恰好有人也转错了同样多的钱给他,概率非常地小,但是现实中确实有可能发生。
2、现实中事件之间的因果关系非常复杂,不是链式、不是DAG而更接近"带进入判定的加权有向有环图"。A事件发生后B事件也发生可能都是观察不到的Z事件导致的,甚至只是到目前为止、一种概率上很小的巧合。
总的来说,对于观察到的孤立事件们,他们之间的关系有很多可能性,甚至完全无关。
那么我们应该怎么办?
找到能够解释所有观察的最大可能性即可。
具体要怎么做呢?
1、相关性、相似性是我们推演的依据。一些观察到的、足够强的相关性或者说经验,可以处理成因果关系,基于此来展开;如果后续陷入矛盾,退回到这一步重新考虑可能性。
2、根据所有观察拟合出能够解释的因果过程或者可能性。那么究竟是哪一种可能性呢?根据“奥姆剃刀经验法则”选中过程最简单的那种可能性,到此远没有结束,可能仅仅是可能,如何让一种可能性更可能呢?或者说如何增强一种可能性、削弱其他可能性呢?
3、如果这种可能性降得过低甚至到了足以否决的地步,退回到第二步,尝试增强过程第二简单的那种可能性。
4、如果一种可能性被增强到足够高的地步,对我们来说,往往就可以结案了;如果多种可能性势均力敌,找不到任何证据来继续增强任何一种可能性,只能说我们追求的真实在目前条件下无法触达。
概率的相关定理和贝叶斯公式提供了增强或者削弱可能性的依据
贝叶斯公式:
P(A|B) = [P(B|A) * P(A)] / P(B)
概率定理:
1、P(X) <= 1,X为任何事件。
2、P(A) >= P(A|B)P(B),A发生的可能性要大于等于AB同时发生的可能性。
3、P(A)+P(B) <= P(AB) + 1或者说P(A)+P(B)-P(AB) = P(AUB) <= 1,A发生的可能性+B发生的可能性要小于AB同时发生的可能性+1。
这里贝叶斯公式的取值必须满足概率定理,光等式配平是不行的。
其中:
P(A|B)称为后验概率(posterior),这是我们需要结合先验概率和证据计算之后才能知道的。
P(B|A)称为似然(likelihood),在事件A发生的情况下,事件B(或evidence)的概率有多大。
P(A)称为先验概率(prior), 事件A发生的概率有多大。
P(B)称为证据(evidence),即无论事件如何,事件B(或evidence)的可能性有多大。
以被处理为因果关系的相关关系来说,我们可以把P(A)看做“因”发生的概率,P(B)看成“果”发生的概率,P(B|A)是如果“因”发生,”果“发生的概率有多大,P(A|B)则是如果“果”发生,“因”发生的概率有多大,P(A|B)其实就是我们常见的一个问题:我们不知道是否发生了“因”,但是如果我知道了发生了“果”,那么发生“因”的概率有多大?从P(A)到P(A|B)就是我们要找的增强或者削减可能性的方法,每次得到的后验概率P(A|B)都是下一次的先验概率P(A)。
在现实中我们很难具体知道P(A)、P(B)、P(B|A)的值具体是多少,有时候会直接知道A和B之间是正相关或者负相关,也就是说知道当A发生时B发生的概率相对B单独发生的概率会增加还是减少。反映到公式里其实就是知道P(B|A)/P(B)大于1还是小于1,这里是对称的,P(A|B)/P(A)和P(B|A)/P(B)相等,可以直观理解为“如果A发生阻碍B的发生,那么当B发生时就更不可能受到阻碍作用,A发生的概率应该减小“。如果该项大于1,那么A和B之间是正相关,反之A和B是负相关。
我们把P(B|A)/P(B)定义为相关性M,那么P(A|B) = M * P(A),表示如果“果”B发生了那么“因”A发生的概率会以相关性M作为乘法系数变化。
类似可以将[1-P(B|A)]/[1-P(A)]定义为补比相关性N,可以推理出P(A|-B) = N * P(A),表示如果“果”B不发生了那么“因”A发生的概率会以补比相关性N作为乘法系数变化。
我们可以总结如下日常经验:
1、如果A发生和B发生之间的相关性非常强,同时B发生的概率很低,那么当B发生时A发生的概率就会很高。
2、如果A猜想成立时B发生的概率很小,而B又确实发生了,我们可以认为此时A成立的概率非常小。
虽然度量这种相关性很难,但我们能否尝试度量出这种相关性呢?
可以简单地度量一些现实场景的相关性M:我写一行代码写一句日志到文件中,运行之后,找到那个文件发现果然多了那一句日志。
1、我们可以定义一个”信仰概率“,这个概念代表”一个事件没有任何前因后果被神创造、直接冒出来的可能性“。如果相信未来、相信因果,那么这个概率可以认为是没有的,如果不大相信因果,这个概率会随之调整。个人认为,这个概率对于生存在这个世界上的人基本是不用考虑的。
2、我们可以找一个”绝对出现概率“,这个就是根据经验想象到的、总能够出现当前结果的那种可能性的概率,一般来讲都是极其低极其低的。比如:一系列比特翻转事件直接拼接出来这个结果;所有的代码执行都是假的,日志文件都是一个人在背后远程帮我们手写的,他非常偶尔地也会犯错误。
3、我们还可以尝试寻找一个“背景概率”,P(B|-A):如果A不发生,那么B发生的概率有多大。这里可以处理为在没有“代码执行”时,”只包含这句日志的同名文件”占”所有文件“的比例,如果当前系统总是出现只包含这句日志的同名文件,也就是说B的发生原本就有相当的量,那么其实计算出来的相关性M可能不那么大。以生活经验来说:如果”找到那个文件发现果然多了那一句日志“这个现象本来就很多,那么单纯只是”找到那个文件发现果然多了那一句日志“这个事件,并不会那么显著地增加”代码执行了“这个事件发生的可能性。
4、带入公式 P(A|B) = [P(B|A) * P(A)] / [P(B|-A)P(-A) + P(B|A)P(A)] 中,关键是P(B|-A)这一项的处理,如果“背景概率”显著的话就带入“背景概率”,否则带入“绝对出现概率”。
5、如果带入的是“绝对出现概率”,一般来讲“绝对出现概率”是非常非常小的,可以省略掉的。这个时候我们就发现整个贝叶斯公式可以消掉,变成P(A|B)=1,这也非常符合我们日常的经验:即如果一个“果”只可能在一个“因”的情况下出现且“果”真的出现了,那么不管“因”的概率有多小,“因”必然发生了。
6、当背景概率比较显著的时候,怎么办呢?
P(A|B) = [P(B|A) * P(A)] / [P(B|-A)P(-A) + P(B|A)P(A)]可以处理为1 / [1 + P(B|-A)P(-A)/P(B|A)P(A)],我们定义P(B|-A)P(-A)/P(B|A)P(A)为概率发生比Q。
假设P(B|-A)为,也就是说“不知道怎么搞得,整个系统里面到处都是只包含这句日志的同名文件,概率大概有50%”;P(A)为,也就是说“除非我眼花或者手残,否则代码执行的概率应该是99%”,这个是我们的先验概率;P(B|A)为,也就是说“如果代码执行,有极大的概率会有文件”,注意这里是“有文件”而不是“写文件”,因为B事件是“出现那个文件”,而不是“代码执行写了文件”。
带入计算得到P(A|B)为%。以日常经验理解:P(A)和P(B|A)本身就很大的情况下,增加强的证据也只带来微不足道的提升。
那么P(A|-B)是多少呢?%,这个其实要比想象中的要高,以日常经验理解:既然B已经不发生,要么是1%代码没执行,要么是99%*%代码执行了没成功,怎么会差不多高出一倍呢?可以认为“1%代码”不执行时,有可能本来就已经有文件了,只能拿出50%进分母;”9%*%代码执行了没成功“也一样,但因为基数小,所以缩放造成的影响其实没那么厉害。
7、日常经验告诉我们:代码出问题的情况可能更大,我们很可能过度自信了。也就说P(B|A)实际小很多。假如P(B|A)为60%,那么其实P(A|-B)会上升到%。以日常经验理解:代码执行的概率很高,并且代码执行之后成功的可能性很低,因为本身就有50%的概率,A发生之后也就只有60%,所以出现这种结果很大概率是执行了但没成功导致的。
这给了我们一个警示:贝叶斯公式只是在我们当前已有先验(认知和经验)的情况下,帮我们估计发生“因”的概率到底有多大。如果起始的认知出现错误,那拿到的结果是没有意义的。也就说P(A|B)并不是真实,只是根据公式演绎的结果,公式本身没有问题但是GIGO。
常用方法、经验的底层逻辑
猜想、验证就是用日常的经验或知识,拟合出能够囊括所有观察的因果过程或者可能性,然后定义”猜想A正确“这个事件为G事件,寻找跟G事件相关性很高的J事件是否发生,可以增强或者削弱G事件的可能性。如果原本J事件发生的概率非常低,那么事件之间的相关性越强。
新证据的出现可能会增强或者降低当前选定可能的可能性。
复现是利用”一种因果过程应当能够重复发生“的强经验带来的相关性,如果“存在一个因果过程A”的事件被重现了,那重现的证据反过来能够增强这种可能性。
单点破坏是现实中有时候会遇到一切都完美契合解释,但是有一点怎么都无法自洽的场景。此时要么另寻其他假设,要么增加单点改动的假设然后寻找单点改动的正相关事件。
关于讨论的讨论
1、本次讨论可能无法排除对”逻辑、因果、相关“的使用,不知道用”逻辑、因果、相关“讨论”逻辑、因果、相关“是否有意义。
2、有些名词和概念纯粹自己给自己编的,所以谨慎和别人交流时使用;纯文本记录风格,所以公式就比较随意。
3、个人水平有限,没有错误的自信程度不高,谨慎对待结论。
4、非常欢迎指出问题,期待一起交流。