简单理解D-S证据理论

  • 前言
  • 一、D-S证据理论基础
  • 1.识别框架
  • 2.基本信任分配函数
  • 二、D-S证据理论证据合成计算
  • 1.Dempster合成规则
  • 2.计算实例
  • 3. 合成计算中存在的问题
  • 总结


前言

证据理论是由著名学者 Dempster 与 Shafer 建立起来的,因此又称为D-S证据理论。它主要是把命题转化为数学集合的方式来看待和分析,由于在集合中可以包含多个元素,不同于概率论只针对单一元素考虑,正因为证据理论具有的模糊性,恰恰能更好地表达命题存在的不确定性情况。其实,它更像是模拟人类正常的思维方式,首先面对一个问题是观察和收集信息,即证据。然后综合各方面的信息来做出判断,得到问题的最终结果,即证据合成。这里面最重要的还是确定问题答案范围(识别框架)、证据集合分配对应概率(基本信任分配函数)和证据概率数据的合成(Dempster 合成规则)。

一、D-S证据理论基础

1.识别框架

假设现在存在一个需要判决的问题,对该问题进行求解,我们把所能认识到的所有可能结果形成的完备集合用 Θ 来表示,且 Θ 中的所有元素间存在互斥的关系,元素数量也是有限、可列举的;在任何一个时刻,问题的答案取值只能是 Θ 中的元素,把这样的不相容事件组成的集合 Θ 称为识别框架,可以将其表示为:

ds证据理论数据融合python代码 ds证据理论分配权重_算法


其中,θj 称为识别框架 Θ 的一个事件或元素。

接着我们引入幂集的概念,即识别框架 Θ 全部子集的集合,记作 2Θ,幂集可以表示为:

ds证据理论数据融合python代码 ds证据理论分配权重_证据理论_02


在识别框架 Θ 中,它的任意子集 A 都对应着某问题答案的命题,可以形容这个命题为“A 是问题的答案”。

举个简单的例子,某家店失窃了,监控可以准确查看进出店的人员,但是没有办法发现具体的作案细节。假如失窃那段时间内,进出店的人有小王、小张、小屈、小常。那么对于“谁是小偷”这个问题,我们就可以把集合{小王,小张,小屈,小常}作为识别框架,那么问题的答案就可以是{小王},{小张},{小屈},{小常},{小王,小张},{小王,小屈},…,{小王,小张,小屈,小常},即识别框架全部子集都可以作为问题的答案。

2.基本信任分配函数

确定了识别框架后,就需要建立证据信息,也就是命题集合对应的概率分配问题。通常对于一个命题来说,我们在综合分析了信息之后,应该可以做出一个比较合适的判决,能够提出一个具体的数字,能合理描述出对某个命题的支持程度,这个数字代表赋予给该命题的信任度。这样建立起识别框架中命题基本信任值的初始分配,证据理论用基本信任分配函数来系统地概括所有命题最终确定下来的分配结果。

设 Θ 为一个识别框架,在识别框架 Θ 上的基本信任分配函数 m 是一个 2Θ→[0, 1]的映射,该函数满足如下的条件:

ds证据理论数据融合python代码 ds证据理论分配权重_证据理论_03


m(A)体现了证据对命题 A 的支持度,其值为该命题的基本信任分配值。空集的基本信任值为零,其他所有子集的信任值总和等于 1。如果 m(A)的值大于 0,那么 A 就可以被称为焦元。

延续上面的例子,如果店内有一名店员老李,失窃时他正在值班游走,经过他的观察分析判断,觉得“小王是小偷”的概率为0.5,“小张为小偷”的概率为0.2,由于小屈和小常是同行的,他也难以分辨他们是小偷的具体情况,因此他觉得“小屈和小常是小偷”的概率为0.2,最后还有0.1的概率他也不知道如何分配。那么我们根据老李的描述,可以得到一条完整的证据E1:m1({小王})=0.5,m1({小张})=0.2,m1({小屈,小常})=0.2,m1( Θ )=0.1。

对于命题集合A来说,当 A⊆Θ且 A≠Θ,并且 A 包含多个元素时,m(A) 对应的也是命题 A 的信任值,但是并不清楚这些信任值对 A 中的元素来说,应该具体如何进行分配;当 A=Θ 时,则 m(A)表示的是分配完 Θ 中的其他子集命题信任值后所遗留的部分,它指的是未知的部分。如果 m(A)的值大于 0,那么 A 就可以被称为焦元。

二、D-S证据理论证据合成计算

1.Dempster合成规则

在现实中很多情况下,我们在收集信息时,会获得多个不同的证据数据,这时我们需要想办法得到一个统一的基本信任分配函数,才能进行信息的有效处理。Dempster最初提出了一种证据合成方法,即对两个或多个证据的基本信任分配函数使用正交和的方式进行运算,此方法被称为Dempster合成规则。如果已知在同一识别框架上存在多个不同证据的信度函数,即基本信任分配函数,如果它们没有彻底冲突,则可以通过使用Dempster组合法则计算出一个新的基本信任分配函数。

若识别框架 Θ 下,存在两个证据 E1 和 E2, m1 和 m2 为基本信任分配函数,Ai和Bj为焦元。因此,根据两个证据的基本信任分配情况,把它们分别作为 x 轴和 y 轴进行空间结合,我们可以得到它们根据 Dempster合成规则进行组合的空间图像描述,其直观表达如下图 所示。

ds证据理论数据融合python代码 ds证据理论分配权重_算法_04


我们可以整个大矩形看作总的基本信任值为 1,横条和竖条分割出小矩形进行识别框架对应子集的基本信任分配。图中阴影矩形表示在 Ai和 Bj上都共同分配的交叉部分,按照几何面积来计算其值为 m1(Ai)m2(Bj),应该将该值直接分配给 Ai和 Bj 的交集,即 Ai∩Bj。所以,新合成信任值就是所有证据相交分配在其命题集合上的信任值之和。但是为了满足空集的信任值必须等于零的条件, Ai∩Bj=Φ 部分的值将会无法分配,这样会出现总的基本信任值比1小的现象, 因此需要将新得到的信任分配进行归一化处理。假定识别框架 Θ 下,两个证据 E1 和 E2 相应的基本信任分配函数分别为 m1 和 m2,Ai和 Bj,则Dempster合成规则为

ds证据理论数据融合python代码 ds证据理论分配权重_算法_05

ds证据理论数据融合python代码 ds证据理论分配权重_算法_06


其中,K 是冲突系数,能够描述出证据间的冲突大小情况,K 越大表明证据之间的冲突越大。当 K=1 时,Dempster组合规则无法进行计算。1/1-K 为正则化因子,本质上是为了使 m(A)的总和值为 1。

对于多个证据的合成,计算思路是一样的。多个 m1,m2,…, mn函数也可以使用正交和的方式进行处理,产生一个新的 m 函数,可以表达为 m1⨁m2⨁…⨁mn。若 m1⨁m2⨁…⨁mn 存在,那么在计算的过程中顺序对结果没有任何影响,满足交换率和结合率。

假定同一识别框架 Θ 下,存在 n 组证据 E1,E2,…, En,m1,m2,…, mn 为对应的基本信任分配函数,焦元分别为 A1,A2,…, An,则Dempster合成规则为

ds证据理论数据融合python代码 ds证据理论分配权重_证据理论_07


ds证据理论数据融合python代码 ds证据理论分配权重_证据理论_08

2.计算实例

依旧延续上面的例子,假如店里有好几个店员,他们都像老李一样根据自己的判断提供了证据信息,综合起来为:
E1:m1({小王})=0.5,m1({小张})=0.2,m1({小屈,小常})=0.2,m1( Θ )=0.1;
E2:m2({小王})=0.3,m2({小张})=0.3,m2({小屈,小常})=0.2,m2( Θ )=0.2;
E3:m3({小王})=0.2,m3({小张})=0.2,m3({小屈,小常})=0.1,m3( Θ )=0.5。

首先,我们先计算新合成的m({小王}) 值,即三条证据命题集合交集为{小王}的信任值乘积之和:
m({小王}) =[ m1({小王})+m1( Θ )] * [m2({小王}) + m2( Θ )]*[ m3({小王}) + m3( Θ )] - [m1( Θ ) * m2(Θ) * m3(Θ)]=0.2,
同理得m({小张})=0.065,m({小屈,小常})= 0.062,m( Θ )=0.01。
再进行归一化处理,可知1-K = m({小王}) + m({小张}) + m({小屈,小常}) +m(Θ)=0.337。
因此,最终结果应该为:
m({小王})=0.593,m({小张})=0.193,m({小屈,小常})=0.184,m3( Θ )=0.03。

3. 合成计算中存在的问题

利用经典Dempster组合规则容易易产生悖论,存在几种典型的悖论情况:

①常规冲突问题:当多个证据的基本信任分配函数存在强烈的冲突时,融合后会产生的结果是明显不合理的,甚至不能使用合成规则进行合成(完全冲突,即 K=1)。

②一票否决问题:如果存在一条证据的某一命题的基本信任分配为 0 的情况时,则不管其它证据的该命题的基本信任分配值是多少,融合结果都将为 0,这体现了证据理论的局限性,不能合理对冲突量进行分配。
例1:设 Θ={a,b,c},存在如下两条证据:
证据 E1:m1(a)=0.999, m1(b)=0.001, m1( c )=0;
证据 E2:m2(a)=0, m2(b)=0.001, m2( c )=0.999.
利用公式计算得到合成结果 m(a)=m( c )=0 和 m(b)=0.000001/(1-K) = 1。此例中,虽然两个证据中 b 的信任值都非常低,但最终计算结果却是 b 的信任值为 1,即 b 为真,很明显不符合常理的推断。

③鲁棒性不佳:虽然证据中焦元的基本信任分配值变化只是很小的,但合成结果却可能会完全不一样,对于证据的变动过于敏感。
如果对上述例1 中证据 E1 稍稍进行修改:m1(a)=0.998, m1(b)=0.001, m1( c )=0.001,m2 不变,合成结果将是 m(b)= m1⨁m2(b)=0.001,与之前差不多相反的效果。之所以产生这样结果,是因为 Dempster组合规则对冲突信息处理有误。

总结

单看一堆公式的时候总是有点难理解,希望通过举例的描述方式能帮助更好的理解证据理论。证据理论还算是一个比较冷门的方向,虽然说也在人工智能方面有些应用,但因为实际存在许多的问题,至少理论方面都还不够成熟,未来的发展肯定还有很长的路要走。