贝叶斯推理
专家系统的规则可以表示为
IF E is true
THEN H is true {with probability p}
E表示证据(evidence),H代表假设(hypothesis)
P(H|E) = P(E|H) x P(H) ÷ [P(E|H) x P(H) + P(E|?H) x P(?H)]
P(H|E)被称为在观察到证据E后的假设H的"后验概率"(posterior probability)。?H表示假设不成立的事件。等式右侧的概率由专家提供,P(H)称为先验概率(prior probability),P(E|H)被称为条件概率(conditional probability)。这个等式的意义在于,基于假设得到证据的概率更容易得到。
有时基于单个证据E,专家不能选择单个假设,而是提供多个假设H1、H2、...、Hm。有时给定多个证据E1、E2、...、En,专家仍然会产生多个假设。各个假设之间相互独立,且所有假设的概率的和为1。
对于单个证据多个假设
P(Hi|E) = P(E|Hi) x P(Hi) ÷ ∑[ P(E|Hk) x P(Hk) ]
对于多个证据多个假设
P(Hi | E1E2...En) = P(E1E2...En | Hi) x P(Hi) ÷ ∑[ P(E1E2...En|Hk) x P(Hk) ]
要得到Hk发生时E1E2...En同时发生的概率对于专家而言是非常大的负担,几乎是不可能的,因此需要假定所有的证据之间都是独立的,上面的等式可以变换为:
P(Hi | E1E2...En) = P(E1 | Hi) x P(E2 | Hi) x ... x P(En | Hi) x P(Hi) ÷ ∑[ P(E1 | Hi) x P(E2 | Hi) x ...x P(En|Hk) x P(Hk) ]
充分性似然(likelihood of sufficiency)可以表示E对H的充分性程度:
LS = P(E | H) ÷ P(E | ?H)
该值远大于1时,则表示E出现时H出现的概率极其大。
必要性似然(likelihood of necessity)表示E对H的必要性程度:
LN = P(?E | H) ÷ P(?E | ?H)
如果该值在0和1之间,那么如果没有发现E时,H也极有可能不出现。
在基于规则的专家系统里,先验概率P(H)也可以转换为先验机率(prior odds):
O(H) = P(H) ÷ (1 - P(H))
由此可得后验机率:
O(H | E) = LS x O(H)
O(H | ?E) = LN x O(H)
根据后验机率可得到后验概率:
P(H | E) = O(H | E) ÷ [1 + O(H | E)]
P(H | ?E) = O(H | ?E) ÷ [1 + O(H | ?E)]
专家只需提供LS和LH,而不是精确的概率,从而降低专家的负担。
例如一个凶杀案的侦探专家系统:
规则1,
IF嫌疑人在现场 { LS 2.5 LN .1 }
THEN嫌疑人是凶手 { prior .5 }
规则2,
IF 嫌疑人在现场
AND 凶器有嫌疑人的指纹 { LS 10, LN .5 }
THEN嫌疑人是凶手 { prior .5 }
根据上面两条规则,系统可以依次提供问题,由用户回答:
问1:嫌疑人是否在现场?
答:在
首先,嫌疑人要么是凶手,要么不是凶手,在没有任何前提的条件下,概率各为50%(prior .5已经指出),所以
O(嫌疑人是凶手) = 0.5 / (1 - 0.5) = 1.0。
根据规则1,
O(嫌疑人是凶手 | 嫌疑人在现场) = 2.5 * 1.0 = 2.5。
因此P(嫌疑人是凶手 | 嫌疑人在现场) = 2.5 / (1 + 2.5) = 0.71。也就是说,如果嫌疑人在现场,他是凶手的概率是71%。
问2:凶器上是否有嫌疑人的指纹?
答:有
根据问1回答后的分析,O(嫌疑人是凶手)已经是2.5了,再根据规则2,再次更新
O(嫌疑人是凶手 | 嫌疑人在现场 ∩ 凶器上是否有嫌疑人的指纹) = 10 * 2.5 = 25,此时
P(嫌疑人是凶手 | 嫌疑人在现场 ∩ 凶器上是否有嫌疑人的指纹) = 25 / (1 + 25) = 0.96。此时可以看出,嫌疑人是凶手的可能性已经极其大了。
当然,还可以写更多的规则,而且还可以基于嫌疑人在现场为条件,来推出嫌疑人不是凶手的概率,如:
IF 嫌疑人在现场 { LS .3, LN 5 }
THEN 嫌疑人不是凶手 { prior .5}
在推理过程中,可以同时推理嫌疑人是凶手和嫌疑人不是凶手的概率,两个概率的和不一定是1.0,最后看谁的概率大,则取其结论。
贝叶斯方法的偏执(Bias)
贝叶斯推理的框架把概率值作为主要输入,而这需要人类的判断。然而,心理学的研究发现,专家无法给出精确的概率值,从而导致条件概率和专家给出的先验概率不一致。
比如让专家同时给出A发生时B发生的概率,以及B发生时A发生的概率,根据贝叶斯公式互换时,得到的概率很可能并不相同。
偏执,影响到概率的估计,会使先验概率不准确。需要专家大量时间的积累才能得到丰富的经验。
解决上述问题有几种方法,最流行的技术是分段线性插值(piecewise linear interpolation),PROSPECTOR应用了该技术。尽管如此,要使用贝叶斯方法,必须满足几个前提,包括基于结论的证据必须是条件独立的。在真实世界里,这些前提很难被满足,所以只有很少的一些系统是基于贝叶斯规则的。
可信度理论(certainty factor theory)和基于证据的推理(evidential reasoning)
可信度理论最开始由MYCIN引入,是贝叶斯推理的流行的可替代品。可信度(cf)是一个衡量专家相信程度的数值,取值范围是[-1.0, +1.0]。基于cf的规则可写为:
IF
THEN {cf}
相信程度(measure of belief,MB)的值为
MB(H, E) = 1 if P(H) = 1
或 {max[P(H | E), P(H)] - P(H)} ÷ { max[1,0] - P(H) } otherwise
不相信程度(measure of disbelief,MD)的值为
MD(H, E) = 1 if P(H) = 0
或 {min[P(H | E), p(H)] - P(H)} ÷ { min[1,0] - P(H) } otherwise
而cf的值可由MB和MD得到:
cf = [MB(H, E) - MD(H, E)] ÷ { 1 - min[MB(H, E), MD(H, E)] }
直观的看,越相信,cf值越接近+1.0;越不相信,cf值越接近-1.0。cf直接由专家给出,更加得主观。
对于同一个假设的多个证据,它们的cf值为:
cf(H, E1∩E2∩...∩En) = min[cf(E1), cf(E2), ..., cf(En)] x cf
cf(H, E1∪E2∪...∪En) = max[cf(E1), cf(E2), ..., cf(En)] x cf
简而言之,在推理链里,对合取取最小的,对析取取最大的。
当有两条得到相同结论的规则,比如:
1. IF A is X THEN C is Z { cf 0.8 }
2. IF B is Y THEN C is Z {cf 0.6 }
两条规则的cf可能会有冲突,当它们都被触发时,最终的cf值为:
cf(cf1, cf2) =
cf1 + cf2 x (1 - cf1) if cf1 > 0 and cf2 > 0
或 (cf1 + cf2) ÷ { 1 - min[ |cf1|, |cf2| ] } if cf1 < 0 or cf2 < 0
或 cf1 + cf2 x (1 + cf1) if cf1 < 0 and cf2 < 0
直观上看,两个都大于0的cf合并时,会比两个cf都大一些;都小于0时,比两个都小些;不同号时,中和一些。
作为贝叶斯推理的可选方案,可信度理论是很实用的。
贝叶斯推理和可信度的比较
贝叶斯推理适合于统计数据丰富,概率报告精确的预测和计划领域。否则可信度方法更加得适合。两者共同的问题在于:需要人类专家来提供信息。