人工智能通识

贝叶斯概率的十层理解(2)

2024-05-01  本文已影响0人  zhyuzh3d

世界是我们的,也是你们的,但归根结底,世界是贝叶斯的。
—— 胡所巴道·丹史乎由谢道里斯基

希望这篇文章能够带大家一起了解神奇的贝叶斯概念,启发更多神奇的思考。

继续上文...

第四层、 理解公式:P(A|B)P(A且B)有什么区别?

还记得P(渣|男)是多少吗?10\%,男人里面有多少是渣滓。

还记得我们算出的P(渣且男)是多少吗?5\%,所有人里面有多少是渣男。

你有没有问过自己,为什么所有可以忽略掉?

答案是P后面小括号里面的竖线|其实就是除法,所有就是100%,除以它等于没除,所以可以忽略掉。

P(渣且男)=P(渣且男|所有)
P(渣|男)=P(渣|男|所有)

概率其实是个除法问题,所以,计算概率的时候你必须关注分母,即你把谁当做了整体

P(A|B)这种概率是拿B当整体当分母的,研究的是B范围内能出现多少个A,比如100个程序员有多少个秃头,1000个男人里面有多少个渣滓。一定要注意:
P(A|B)\neq P(B|A)

比如,P(秃|程)\neq P(程|秃),因为P(秃|程)=40\%,而如我们之前计算:

P(程|秃)=\frac{P(秃且程) }{P(秃)}=\frac{P(程)*P(秃|程)}{P(秃且程)+P(秃且非程)}

=\frac{P(程)*P(秃|程)}{P(程)*P(秃|程)+P(非程)*P(秃|非程)}

=\frac{10\%*40\%}{10\%*40\%+90\%*10\%}

=\frac{4}{4+9}=4/13\approx 0.3\

从这里我们也可以知道贝叶斯公式形式的本质就是在P(A且B)那里实现了偷梁换柱颠倒了竖线两侧的AB位置:
P(B|A)=\frac{P(A且B) }{P(A)}=\frac{P(B)*P(A|B)}{P(A)}

我们可以继续展开分母P(A),因为P(A且B)就是B里面是A的,同理P(A且非B)就是非B厘米是A的,所以:
P(B|A)=\frac{P(B)*P(A|B)}{P(A且B)+P(A且非B)}=\frac{P(B)*P(A|B)}{P(B)*P(A|B)+P(非B)*P(A|非B)}

好吧,越来越乱了,既然说概率就是除法,我们改为除法试试看。

首先,P(A|B)不能理解成A除以B,而是应该理解成A且B除以B,即
P(A|B)=\frac{A且B}{B}

所以贝叶斯公式可以写成
P(B|A)=\frac{P(B)*P(A|B)}{P(A)}=\frac{B*(\frac{A且B}{B})}{A}=\frac{A且B}{A}

最后一步是显而易见的。

标准写法中,且应该是\cap,非应该是\neg,这里就不重复写了。

实际上,P(B|A)是条件概率,A条件下B发生的概率,谁是条件谁就是分母,P(B|A)就是\frac{A且B}{A}。而P(A且B)是联合概率,相当于P(A且B|所有),分母是所有,就是\frac{A且B}{1})

第五层、 视觉化理解:贝叶斯公式画成图到底是怎么回事?

记住贝叶斯公式不容易,A和B也许你也经常混乱颠倒,那么我们可以直接记住它的图形表示。

我们先来画秃头程序员的事情。

贝叶斯公式图示

我们再来画阳性患病概率的事情。

贝叶斯公式图示2

渣男比例的该怎么画呢?

第六层、了解本质:贝叶斯到底在说什么?

我们暂时休息一下,不再折腾公式了,来思考一下最初的贝叶斯公式到底在讲什么鬼。
P(B|A)=P(B)*\frac{P(A|B)}{P(A)}

我们还是从得了癌症的渣男程序员来思考问题。

看到一个上班族,我们就知道他10%是程序员;看到一个人,我们就知道这人5%可能得癌症;看到一个人,我们就知道这人5%可能是渣男。但我们如果知道更多一点,我们的判断就会发生变化,如下表。

已知信息 >> 上班族 是个秃头 穿着西装 ...
程序员概率 5% 30% <30% ...
已知信息 >> 是人类 检查阳性 疯狂咳血 ...
患病的概率 5% 17% >17% ...
已知信息 >> 是人类 是个男人 花言巧语 ...
渣男的概率 5% 10% >10% ...

根据贝叶斯公式,我们要知道一个秃头上班族是程序员的概率,就必须先要知道普通上班族是程序员的概率;要知道一个人检查阳性后患病概率,就必须先知道普通人患病的概率...

为了计算P(B|A),我们必须先知道的概率P(B),我们称之为先验概率,有了先验概率,再加上我们知道的其他信息,计算出来的新概率即P(B|A)就成为后验概率,只看形式我们就知道,先验概率的分母和后验概率不同,先验概率分母是所有,后验概率分母是A。

有了后验概率我们可以继续算下去,比如你这个上班族的新男朋友不仅是个秃头,还穿着西装,你会觉得他是程序员的概率增高还是降低?你的判断肯定是对的,但具体怎么计算呢?

这个问题就变成了,已知秃头中程序员比例P(程|秃)是我们已经计算得到的30%,假定所有秃头中,非程序员秃头喜欢穿西装的比例P(装|非程且秃)是50%,程序员秃头喜欢穿西装的比例P(装|程且秃)是10%,那么,求穿西装的秃头中有多大比例是程序员即P(程|装且秃)

其实我们原来的题目里面一直隐含着上班族这个信息,我们补上这个之后就会变成:已知上班族中程序员的比利P(程|班)是10%,非程序员上班族中秃头的比利P(秃|非程且班)是10%,程序员上班族中的秃头比例P(秃|程且班)是40%,求秃头上班族中程序员的比例即P(程|秃且班)

对比一下这两个问题。

先验概率 信息1 信息2 求先验概率
老问题 P(程|班) P(秃|非程且班) P(秃|程且班) P(程|秃且班)
新问题 P(程|秃) P(装|非程且秃) P(装|程且秃) P(程|装且秃)

你会发现这明显是完全相似的问题,只是把换成了。对于老问题,我们直接忽略了上班族这个信息,因为它就是所有,就是1。所以对于上面这个新问题,秃这个范围成了所有,我们也可以忽略它,继续套用公式算下去。

算完了西装这个信息,我们还会有更多信息,比如戴眼镜、穿运动鞋...直到我们几乎完全可以肯定他是程序员=(比如概率为99.999),或者几乎肯定他不是程序员(比如概率值0.0001)。

结论就是,我们不断获取信息,然后利用这些信息和贝叶斯公式,不断调整我们的判断或者预期,让我们越来越肯定或者越来越否定的得到最后结论

人类大脑就是用贝叶斯来认知世界的。


<未完待续>
下篇我们将关注贝叶斯因子以及更多有趣的相关算法和知识,敬请关注。

上一篇下一篇

猜你喜欢

热点阅读