贝叶斯方法及其应用(2)

  本文是网上一些文章的整理总结,原文请戳文末。
  贝叶斯概率和统计概率相对,它从确定的分布中观测到的频率或者在样本空间中的比例来导出概率。采用统计概率的统计和概率的理论由R.A. Fisher, Egon Pearson和Jerzy Neyman在20世纪上半叶发展起来。A. N. Kolmogorov也采用频率概率来通过勒贝格积分为测度论中的概率奠定数学基础(《概率论基础》(1933年))。Savage, Koopman, Abraham Wald和其他一些学者自1950年以来发展了贝叶斯概率。
  贝叶斯及贝叶斯派提出了一个思考问题的固定模式:
  先验分布 + 样本信息 => 后验分布
  上述思考模式意味着,新观察到的样本信息将修正人们以前对事物的认知。换言之,在得到新的样本信息之前,人们对的认知是先验分布,在得到新的样本信息后,人们对的认知为。其中,先验信息一般来源于经验跟历史资料

  一般学校里教的概率观其实可以叫频率主义。一个事件,如果重复独立地执行多次,把发生的次数除以执行的次数,就得到一个频率。比如说抛硬币,抛了10000次,有4976次正面向上,频率就是0.4976。然后如果执行的次数很多很多,频率会趋向于一个固定的值,就是这个时间的概率。其实要证明的话牵涉到中心极限定理,不过就不展开了。
  贝叶斯概率观与此很不同。 主观贝叶斯主义认为,概率就是个人对某个事件发生可能性的一个估计。如果对一个事件你一无所知,那么你可以随便猜一个概率。但因为是估计,如果有新的信息,那就必须根据新信息对概率进行修正。这样的话,随着经历越来越多,对概率的估计也会越来越符合“实际情况”。
  而贝叶斯定理就是“概率修正”所依赖的理论基础。
  当然,也有客观贝叶斯主义,他们认为概率只不过是为了在逻辑推理中表达可能性 的一个逻辑扩展,不过这个理解起来可能不太方便。
不论是概率主义也好,主观贝叶斯也好,客观贝叶斯也好,数学本身是一样的,只不过是解释方法不一样。所以贝叶斯定理是通用的,不过就是在不同的场景下有不同的表达方式。
  下面我们用主观贝叶斯主义来看一下贝叶斯定理。
  贝叶斯定理说的是,对于事件A和B,它们的概率满足:
  其中是当事件B发生的条件下,事件A的条件概率;是当事件A发生的条件下,事件B的条件概率;和分别是事件A和B的先验概率,在贝叶斯概率观中,也就是我们对它们概率的一个估计。
  比如说,事件A是“明天下雨”,事件B是“今晚多云”。如果你今天晚上看到多云了,那么明天下雨的概率是多少呢?
  直接用贝叶斯定理的话,只需要知道每一天下雨的概率、每晚多云的概率、还有如果某天下雨了,那么前一晚多云的概率,代入公式,搞定。
  问题是,这些概率从什么地方来的呢?
  一个答案是直接使用统计得到的频率,但是因为我们是贝叶斯主义者,所以这不太好。
  更好的答案是,其实我们并不需要准确的客观概率。还记得吗,概率只是人对某个事件发生可能性的一个主观估计。所以,只要把目前对于这些概率的主观估计代入贝叶斯定理,就能得到“今晚多云明天是否下雨”的一个主观概率。
  是的,主观贝叶斯主义认为,一切概率都是人们根据自己拥有的信息来推断某件事情发生的可能性,这是一种主观的度量。
  好了,问题又来了:我们如何根据自己拥有的信息来推断可能性呢?
  想像一下,我面前有一个大箱子,我知道里边有黑白两种颜色的球,知道它们的比例是固定的,黑球占比例p,白球占(1-p),问题是我不知道这个p是多少。那么,我会认为这个值p的具体概率分布,也就是它恰好在某个值附近的可能性是多少呢?
  因为我什么都不知道,所以我假定这个值p是从0到1均匀分布的,这就是我对p值的一个先验概率估计。
  然后我希望知道关于p的更多信息,所以我抽出一个球来看看,它是黑色的,我把它放回去。根据黑色的这个结果,利用贝叶斯定理,我可以修正我对p值的概率估计,得到这次实验的后验概率估计(准确来说是最可能的概率估计)。它不再是均匀分布了,而是p比较大的概率高一点。
但这个后验概率又可以作为下一次实验的先验概率。于是我重新做实验,取出一个球看看,发现这次是白色,于是我根据这个结果得到新的后验概率。如此重复多次之后,我对p值的后验概率不断根据已有的实验数据改变,而某个中心极限定理告诉我们,我可以对p的取值越来越确定,它必然取我的后验概率中最可能的值。用严谨的话来说,这个后验概率将会以概率1趋向于关于真实的p值的狄拉克分布。
  这其实与科学方法很相似:我们一开始什么都不知道,但是我们肯去做实验,逐渐就摸清了自然的规律。
  贝叶斯分析的好处在于,不需要任何客观估计,只要先验随便猜一个就可以了。这对于机器学习很重要,因为很多问题我们其实也不知道发生的概率是多少。比如说垃圾邮件,包含“发票”的邮件是垃圾邮件的概率是多少?统计当然是一个办法,但是不用统计直接让机器过数据,同样也可以,而且还能一下子做更多不同的分析,得出原来猜都猜不到的答案。
  贝叶斯分析的另一个有用之处是可以用来根据现有数据推测某件事情发生的概率。这时,在贝叶斯定理中,要计算的条件概率可以有另一种理解。比如说这次马航班机失踪,它坠毁在附近海域的这个事件记作A,这个是未知的,而它发动机失去联系了是事件B,这个事件是已知发生的。那么,条件概率的意思其实就是,在事件B已经发生的前提下,事件A发生的概率。也就是说,我们已经知道发动机失去联系,那么我们如果想要知道它坠毁在附近海域的概率,那么相当于计算。而为了计算,我们需要其它的概率,而这些概率是已知的,或者说可以通过已知的统计数据推断的。贝叶斯定理的威力之一在于能让我们由已知的概率以及手头的信息去推断未知的概率。

来看一个例子:
一机器在良好状态生产合格产品几率是90%,在故障状态生产合格产品几率是30%,机器良好的概率是75%,若一日第一件产品是合格品,那么此日机器良好的概率是多少。
贝叶斯方法及其应用(2)_第1张图片
(1)先验比率是75% : (1-75%) = 3 : 1;
(2)似然比率(Likelihood ratio)= 90% : 30% = 3;
(3)两者相乘,得后验比率 = 9 : 1;然后
(4)标准化(normalize),得后验概率 = 9 / (9+1) = 90%。

【故事】
让我们先来做一道小学数学题。

问:假设如来佛和玉皇大帝要打架,如来拥有全宇宙战斗力的 75%,剩下的战斗力都归玉帝。那么,玉帝的战斗力占全宇宙的多少?
答:太简单了,100% - 75% = 25%

问:此时,如来和玉帝的战力比是多少?
答:容易,75% : 25% = 3 : 1。

问:好了,现在,假设太上老君发明了一种仙丹,能增强战斗力,如来佛和玉帝都偷吃了一颗。可是,如来和玉帝体质不同——如来吃了之后,战斗力增加了 90 倍;玉帝吃了之后,战斗力只增加 30 倍。请问,两人偷吃仙丹之后,如来佛和玉帝的战力比变成了多少?
答:这也不难——如来相对战斗力 = 3 x 90 = 270,玉帝相对战斗力 = 1 x 30 = 30。
因此,如来战力:玉帝战力 = 270 : 30 = 9 : 1

问:好了,如来、玉帝吃了仙丹之后,如来占全宇宙战斗力的多大比例?
答:如来战斗力占比 = 9 / (9 + 1) = 90%。

【解释】
现在让我把上面的故事翻译一下,套到题目上。

(1) 你一开始有两个假说,良好(H1)和故障(H2),
H1和H2的先验概率比 = P(H1) : P(H2) = 3 : 1。【用P(良好) = 75%即可推出。】

(2)现在你拿到了一个证据E:第一天产品是合格的。这个证据的作用,在于改变两个假说的概率之比。

根据贝叶斯定理,这个「1 个零件合格」的证据会产生两个效果:
a. 会让 「机器良好」(H1) 的相对概率增加 90 倍 【因为 P(H1|E) = 90% 】,及
b. 会让 「机器故障」(H2) 的相对概率增加 30 倍 【因为 P(H2|E) = 30% 】。
【公式上看,应该是分别缩减到 0.9 倍和 0.3 倍,但是化为整数比较容易思考。】

(3) 根据(2),我们有了证据 E 之后,良好和故障的概率之比变为 3 x 90 : 1 x 30 = 270 : 30 = 9 : 1。

(4) 根据现有条件,其实还算不出 P(良好|1个合格) 。要算出 P(良好|1个合格) 的具体数值,还须明确给出一个条件,即「良好」和「故障」已经包括所有的假设了:
P(良好|1个合格) + P(故障|1个合格) = 1。
然后联立刚才得到的
P(良好|1个合格) : P(故障|1个合格) = 9 : 1,可解出
P(良好|1个合格) = 90%。

这就是一开始的计算思路。
【公式】

对应刚才的推理的,是贝叶斯定理常见形式的一个变体——分别对H1、H2列式,两式相除即可得。
最左边一项是先验比率(如来和玉帝吃仙丹前的实力对比),
中间一项是似然比率(仙丹对两人的效用比),
最右边一项是后验比率(如来和玉帝吃了仙丹后的实力对比)。

上述运算过程,实际上用的是下式,与上式有微妙区别:

【拓展】
这个形式的好处是非常容易拓展,比如说,如果要考虑3个(独立的)证据Ea、Eb、Ec:

回到原题。若问,假设这个机器第一天不是生产了 1 个零件,而是生产了 3 个零件,而且 3 个都合格(零件合格的概率互相独立),那机器良好的概率是多少?
(用故事的语言就是,如果如来和玉帝连吞3颗仙丹,那么如来的战斗力占全宇宙的多少?)
答案:
P(良好|3个合格) : P(故障|3个合格) = (3 : 1) x 3 x 3 x 3 = 81 : 1。【3 个合格零件,所以乘3次】
假设 P(良好|3个合格) + P(故障|3个合格) = 1,则
P(良好|三个合格) = 81 / (81 + 1) = 98.8%

【思考题】
假设机器生产了 100 个零件,61 个合格,39 个不合格(各个零件的生产相互独立),机器良好的概率是多少?
(提示:不合格零件的「效力」比合格零件的「效力」大。)

https://zh.wikipedia.org/wiki/%E8%B4%9D%E5%8F%B6%E6%96%AF%E6%A6%82%E7%8E%87
http://www.guokr.com/question/547339
http://www.zhihu.com/question/19725590

你可能感兴趣的:(机器学习)