基本概念
一、定义
证据理论也被称为 Dempster-Shafer 理论,是一种不精确推理理论,主要用于处理不确定信息。它允许人们在证据不完全、不精确或相互矛盾的情况下进行推理和决策。
二、基本概念
- 识别框架:
- 识别框架是一个非空有限集合,表示所有可能的假设或命题的集合。用符号 Θ \Theta Θ 表示。
- 例如,对于一个疾病诊断问题,识别框架可以是 Θ = { 疾病 A , 疾病 B , 疾病 C } \Theta=\{ 疾病 A,疾病 B,疾病 C\} Θ={疾病A,疾病B,疾病C}。
- 基本概率分配函数(BPA):
- 基本概率分配函数用符号 m m m 表示,它将一个数值分配给识别框架 Θ \Theta Θ 的幂集 2 Θ 2^{\Theta} 2Θ 中的每个子集。
- m m m 的取值范围是从 0 0 0 到 1 1 1,并且满足 m ( ∅ ) = 0 m(\varnothing)=0 m(∅)=0, ∑ A ⊆ Θ m ( A ) = 1 \sum_{A\subseteq\Theta}m(A)=1 ∑A⊆Θm(A)=1。
- 例如,对于识别框架 Θ = { 疾病 A , 疾病 B , 疾病 C } \Theta=\{ 疾病 A,疾病 B,疾病 C\} Θ={疾病A,疾病B,疾病C}, m ( { 疾病 A } ) = 0.3 m(\{疾病 A\})=0.3 m({疾病A})=0.3, m ( { 疾病 B } ) = 0.4 m(\{疾病 B\})=0.4 m({疾病B})=0.4, m ( { 疾病 C } ) = 0.2 m(\{疾病 C\})=0.2 m({疾病C})=0.2, m ( { 疾病 A , 疾病 B } ) = 0.1 m(\{疾病 A,疾病 B\})=0.1 m({疾病A,疾病B})=0.1等。
- 信任函数(Belief Function):
- 信任函数用符号 B e l Bel Bel 表示,它是基于基本概率分配函数定义的。对于任意子集 A ⊆ Θ A\subseteq\Theta A⊆Θ,信任函数 B e l ( A ) = ∑ B ⊆ A m ( B ) Bel(A)=\sum_{B\subseteq A}m(B) Bel(A)=∑B⊆Am(B)。
- 信任函数表示对子集 A A A 的信任程度的下限。
- 例如,对于上述例子, B e l ( { 疾病 A } ) = m ( { 疾病 A } ) = 0.3 Bel(\{疾病 A\})=m(\{疾病 A\})=0.3 Bel({疾病A})=m({疾病A})=0.3, B e l ( { 疾病 A , 疾病 B } ) = m ( { 疾病 A } ) + m ( { 疾病 B } ) + m ( { 疾病 A , 疾病 B } ) = 0.3 + 0.4 + 0.1 = 0.8 Bel(\{疾病 A,疾病 B\})=m(\{疾病 A\})+m(\{疾病 B\})+m(\{疾病 A,疾病 B\})=0.3 + 0.4 + 0.1 = 0.8 Bel({疾病A,疾病B})=m({疾病A})+m({疾病B})+m({疾病A,疾病B})=0.3+0.4+0.1=0.8。
- 似然函数(Plausibility Function):
- 似然函数用符号 P l Pl Pl 表示,对于任意子集 A ⊆ Θ A\subseteq\Theta A⊆Θ,似然函数 P l ( A ) = 1 − B e l ( A ‾ ) Pl(A)=1-Bel(\overline{A}) Pl(A)=1−Bel(A),其中 A ‾ \overline{A} A 是 A A A 的补集。
- 似然函数表示对子集 A A A 的信任程度的上限。
- 例如,对于上述例子, P l ( { 疾病 A } ) = 1 − B e l ( { 疾病 B , 疾病 C } ) = 1 − ( m ( { 疾病 B } ) + m ( { 疾病 C } ) + m ( { 疾病 B , 疾病 C } ) ) = 1 − ( 0.4 + 0.2 + 0 ) = 0.7 Pl(\{疾病 A\})=1-Bel(\{疾病 B,疾病 C\})=1-(m(\{疾病 B\})+m(\{疾病 C\})+m(\{疾病 B,疾病 C\}))=1-(0.4 + 0.2 + 0)=0.7 Pl({疾病A})=1−Bel({疾病B,疾病C})=1−(m({疾病B})+m({疾病C})+m({疾病B,疾病C}))=1−(0.4+0.2+0)=0.7。
三、证据合成规则
- Dempster 合成规则:
- 当有多个独立的证据源时,可以使用 Dempster 合成规则将它们合并起来。
- 设 m 1 m_1 m1 和 m 2 m_2 m2 是两个基本概率分配函数,合成后的基本概率分配函数 m = m 1 ⊕ m 2 m=m_1\oplus m_2 m=m1⊕m2,对于任意非空子集 A ⊆ Θ A\subseteq\Theta A⊆Θ, m ( A ) = 1 1 − K ∑ B ∩ C = A m 1 ( B ) m 2 ( C ) m(A)=\frac{1}{1-K}\sum_{B\cap C=A}m_1(B)m_2(C) m(A)=1−K1∑B∩C=Am1(B)m2(C),其中 K = ∑ B ∩ C = ∅ m 1 ( B ) m 2 ( C ) K=\sum_{B\cap C=\varnothing}m_1(B)m_2(C) K=∑B∩C=∅m1(B)m2(C), K K K 表示两个证据之间的冲突程度。
- 如果 K ≠ 1 K\neq1 K=1,则合成是可行的;如果 K = 1 K = 1 K=1,则表示两个证据完全冲突,无法进行合成。
四、应用领域
- 信息融合:证据理论在多传感器信息融合中得到了广泛应用,可以将来自不同传感器的信息进行融合,提高决策的准确性。
- 风险评估:用于评估各种风险因素,确定风险的可能性和影响程度。
- 决策分析:帮助决策者在不确定的情况下做出合理的决策。
- 模式识别:处理模式识别中的不确定性问题。
五、优缺点
- 优点:
- 能够处理不确定和不精确的信息,比传统的概率理论更灵活。
- 可以表示证据之间的冲突和不确定性程度。
- 提供了信任函数和似然函数,分别表示信任程度的下限和上限,为决策提供了更多的信息。
- 缺点:
- 计算复杂度较高,尤其是在处理大规模问题时。
- 对证据的独立性要求较高,实际应用中很难满足完全独立的条件。
- 合成规则可能会导致一些不合理的结果,例如在证据冲突较大时。
示例
一、问题背景
假设有一个医疗诊断的场景,医生需要根据患者的症状来判断患者可能患有的疾病。识别框架为 Θ = { 疾病 A , 疾病 B , 疾病 C } \Theta=\{疾病 A,疾病 B,疾病 C\} Θ={疾病A,疾病B,疾病C}。
二、证据来源及基本概率分配函数
- 第一个证据源来自患者的症状表现,给出的基本概率分配函数
m
1
m_1
m1 如下:
- m 1 ( { 疾病 A } ) = 0.3 m_1(\{疾病 A\})=0.3 m1({疾病A})=0.3,表示根据这个证据源,认为患者患有疾病 A 的可能性为 0.3。
- m 1 ( { 疾病 B } ) = 0.4 m_1(\{疾病 B\})=0.4 m1({疾病B})=0.4,认为患者患有疾病 B 的可能性为 0.4。
- m 1 ( { 疾病 C } ) = 0.2 m_1(\{疾病 C\})=0.2 m1({疾病C})=0.2,认为患者患有疾病 C 的可能性为 0.2。
- m 1 ( { 疾病 A , 疾病 B } ) = 0.1 m_1(\{疾病 A,疾病 B\})=0.1 m1({疾病A,疾病B})=0.1,表示患者同时患有疾病 A 和疾病 B 的可能性为 0.1。
- 第二个证据源来自实验室检测结果,给出的基本概率分配函数
m
2
m_2
m2 如下:
- m 2 ( { 疾病 A } ) = 0.2 m_2(\{疾病 A\})=0.2 m2({疾病A})=0.2。
- m 2 ( { 疾病 B } ) = 0.3 m_2(\{疾病 B\})=0.3 m2({疾病B})=0.3。
- m 2 ( { 疾病 C } ) = 0.4 m_2(\{疾病 C\})=0.4 m2({疾病C})=0.4。
- m 2 ( { 疾病 A , 疾病 C } ) = 0.1 m_2(\{疾病 A,疾病 C\})=0.1 m2({疾病A,疾病C})=0.1。
三、证据合成
- 首先计算冲突系数
K
K
K: -
K
=
∑
B
∩
C
=
∅
m
1
(
B
)
m
2
(
C
)
K=\sum_{B\cap C=\varnothing}m_1(B)m_2(C)
K=∑B∩C=∅m1(B)m2(C)。
- 分别计算不同子集的乘积并求和:
- m 1 ( { 疾病 A } ) m 2 ( { 疾病 B } ) = 0.3 × 0.3 = 0.09 m_1(\{疾病 A\})m_2(\{疾病 B\})=0.3\times0.3 = 0.09 m1({疾病A})m2({疾病B})=0.3×0.3=0.09。
- m 1 ( { 疾病 A } ) m 2 ( { 疾病 C } ) = 0.3 × 0.4 = 0.12 m_1(\{疾病 A\})m_2(\{疾病 C\})=0.3\times0.4 = 0.12 m1({疾病A})m2({疾病C})=0.3×0.4=0.12。
- m 1 ( { 疾病 B } ) m 2 ( { 疾病 A } ) = 0.4 × 0.2 = 0.08 m_1(\{疾病 B\})m_2(\{疾病 A\})=0.4\times0.2 = 0.08 m1({疾病B})m2({疾病A})=0.4×0.2=0.08。
- m 1 ( { 疾病 B } ) m 2 ( { 疾病 C } ) = 0.4 × 0.4 = 0.16 m_1(\{疾病 B\})m_2(\{疾病 C\})=0.4\times0.4 = 0.16 m1({疾病B})m2({疾病C})=0.4×0.4=0.16。
- m 1 ( { 疾病 C } ) m 2 ( { 疾病 A } ) = 0.2 × 0.2 = 0.04 m_1(\{疾病 C\})m_2(\{疾病 A\})=0.2\times0.2 = 0.04 m1({疾病C})m2({疾病A})=0.2×0.2=0.04。
- m 1 ( { 疾病 C } ) m 2 ( { 疾病 B } ) = 0.2 × 0.3 = 0.06 m_1(\{疾病 C\})m_2(\{疾病 B\})=0.2\times0.3 = 0.06 m1({疾病C})m2({疾病B})=0.2×0.3=0.06。
- K = 0.09 + 0.12 + 0.08 + 0.16 + 0.04 + 0.06 = 0.55 K = 0.09 + 0.12 + 0.08 + 0.16 + 0.04 + 0.06 = 0.55 K=0.09+0.12+0.08+0.16+0.04+0.06=0.55。
- 分别计算不同子集的乘积并求和:
- 然后进行证据合成:
- 对于子集
{
疾病
A
}
\{疾病 A\}
{疾病A}:
- m ( { 疾病 A } ) = 1 1 − K ∑ B ∩ C = { 疾病 A } m 1 ( B ) m 2 ( C ) m(\{疾病 A\})=\frac{1}{1 - K}\sum_{B\cap C=\{疾病 A\}}m_1(B)m_2(C) m({疾病A})=1−K1∑B∩C={疾病A}m1(B)m2(C)。
- 这里只有 m 1 ( { 疾病 A } ) m 2 ( { 疾病 A } ) = 0.3 × 0.2 = 0.06 m_1(\{疾病 A\})m_2(\{疾病 A\})=0.3\times0.2 = 0.06 m1({疾病A})m2({疾病A})=0.3×0.2=0.06和 m 1 ( { 疾病 A , 疾病 B } ) m 2 ( { 疾病 A , 疾病 C } ) = 0.1 × 0.1 = 0.01 m_1(\{疾病 A,疾病 B\})m_2(\{疾病 A,疾病 C\})=0.1\times0.1=0.01 m1({疾病A,疾病B})m2({疾病A,疾病C})=0.1×0.1=0.01两项对结果有贡献。
- m ( { 疾病 A } ) = 1 1 − 0.55 × ( 0.06 + 0.01 ) = 0.07 0.45 ≈ 0.1556 m(\{疾病 A\})=\frac{1}{1 - 0.55}\times(0.06 + 0.01)=\frac{0.07}{0.45}\approx0.1556 m({疾病A})=1−0.551×(0.06+0.01)=0.450.07≈0.1556。
- 对于子集
{
疾病
B
}
\{疾病 B\}
{疾病B}:
- 同理可得 m ( { 疾病 B } ) = 1 0.45 × ( m 1 ( { 疾病 B } ) m 2 ( { 疾病 B } ) + m 1 ( { 疾病 A , 疾病 B } ) m 2 ( { 疾病 A , 疾病 B } ) ) m(\{疾病 B\})=\frac{1}{0.45}\times(m_1(\{疾病 B\})m_2(\{疾病 B\})+m_1(\{疾病 A,疾病 B\})m_2(\{疾病 A,疾病 B\})) m({疾病B})=0.451×(m1({疾病B})m2({疾病B})+m1({疾病A,疾病B})m2({疾病A,疾病B}))。
- 经计算 m ( { 疾病 B } ) ≈ 0.2311 m(\{疾病 B\})\approx0.2311 m({疾病B})≈0.2311。
- 对于子集
{
疾病
C
}
\{疾病 C\}
{疾病C}:
- m ( { 疾病 C } ) = 1 0.45 × ( m 1 ( { 疾病 C } ) m 2 ( { 疾病 C } ) + m 1 ( { 疾病 A , 疾病 C } ) m 2 ( { 疾病 A , 疾病 C } ) + m 1 ( { 疾病 B , 疾病 C } ) m 2 ( { 疾病 B , 疾病 C } ) ) m(\{疾病 C\})=\frac{1}{0.45}\times(m_1(\{疾病 C\})m_2(\{疾病 C\})+m_1(\{疾病 A,疾病 C\})m_2(\{疾病 A,疾病 C\})+m_1(\{疾病 B,疾病 C\})m_2(\{疾病 B,疾病 C\})) m({疾病C})=0.451×(m1({疾病C})m2({疾病C})+m1({疾病A,疾病C})m2({疾病A,疾病C})+m1({疾病B,疾病C})m2({疾病B,疾病C}))。
- 经计算 m ( { 疾病 C } ) ≈ 0.3111 m(\{疾病 C\})\approx0.3111 m({疾病C})≈0.3111。
- 对于子集
{
疾病
A
,
疾病
B
}
\{疾病 A,疾病 B\}
{疾病A,疾病B}:
- m ( { 疾病 A , 疾病 B } ) = 1 0.45 × ( m 1 ( { 疾病 A } ) m 2 ( { 疾病 A , 疾病 B } ) + m 1 ( { 疾病 A , 疾病 B } ) m 2 ( { 疾病 A } ) ) m(\{疾病 A,疾病 B\})=\frac{1}{0.45}\times(m_1(\{疾病 A\})m_2(\{疾病 A,疾病 B\})+m_1(\{疾病 A,疾病 B\})m_2(\{疾病 A\})) m({疾病A,疾病B})=0.451×(m1({疾病A})m2({疾病A,疾病B})+m1({疾病A,疾病B})m2({疾病A}))。
- 经计算 m ( { 疾病 A , 疾病 B } ) ≈ 0.0889 m(\{疾病 A,疾病 B\})\approx0.0889 m({疾病A,疾病B})≈0.0889。
- 对于子集
{
疾病
A
,
疾病
C
}
\{疾病 A,疾病 C\}
{疾病A,疾病C}:
- m ( { 疾病 A , 疾病 C } ) = 1 0.45 × ( m 1 ( { 疾病 A } ) m 2 ( { 疾病 A , 疾病 C } ) + m 1 ( { 疾病 A , 疾病 C } ) m 2 ( { 疾病 A } ) ) m(\{疾病 A,疾病 C\})=\frac{1}{0.45}\times(m_1(\{疾病 A\})m_2(\{疾病 A,疾病 C\})+m_1(\{疾病 A,疾病 C\})m_2(\{疾病 A\})) m({疾病A,疾病C})=0.451×(m1({疾病A})m2({疾病A,疾病C})+m1({疾病A,疾病C})m2({疾病A}))。
- 经计算 m ( { 疾病 A , 疾病 C } ) ≈ 0.0556 m(\{疾病 A,疾病 C\})\approx0.0556 m({疾病A,疾病C})≈0.0556。
- 对于子集
{
疾病
B
,
疾病
C
}
\{疾病 B,疾病 C\}
{疾病B,疾病C}:
- m ( { 疾病 B , 疾病 C } ) = 1 0.45 × ( m 1 ( { 疾病 B } ) m 2 ( { 疾病 B , 疾病 C } ) + m 1 ( { 疾病 B , 疾病 C } ) m 2 ( { 疾病 B } ) ) m(\{疾病 B,疾病 C\})=\frac{1}{0.45}\times(m_1(\{疾病 B\})m_2(\{疾病 B,疾病 C\})+m_1(\{疾病 B,疾病 C\})m_2(\{疾病 B\})) m({疾病B,疾病C})=0.451×(m1({疾病B})m2({疾病B,疾病C})+m1({疾病B,疾病C})m2({疾病B}))。
- 经计算 m ( { 疾病 B , 疾病 C } ) ≈ 0.1089 m(\{疾病 B,疾病 C\})\approx0.1089 m({疾病B,疾病C})≈0.1089。
- 对于子集
{
疾病
A
}
\{疾病 A\}
{疾病A}:
四、结果分析
- 信任函数:
- B e l ( { 疾病 A } ) = m ( { 疾病 A } ) = 0.1556 Bel(\{疾病 A\})=m(\{疾病 A\})=0.1556 Bel({疾病A})=m({疾病A})=0.1556。
- B e l ( { 疾病 B } ) = m ( { 疾病 B } ) = 0.2311 Bel(\{疾病 B\})=m(\{疾病 B\})=0.2311 Bel({疾病B})=m({疾病B})=0.2311。
- B e l ( { 疾病 C } ) = m ( { 疾病 C } ) = 0.3111 Bel(\{疾病 C\})=m(\{疾病 C\})=0.3111 Bel({疾病C})=m({疾病C})=0.3111。
- 似然函数:
- P l ( { 疾病 A } ) = 1 − B e l ( { 疾病 B , 疾病 C } ) = 1 − ( m ( { 疾病 B } ) + m ( { 疾病 C } ) + m ( { 疾病 B , 疾病 C } ) ) ≈ 1 − ( 0.2311 + 0.3111 + 0.1089 ) = 0.3489 Pl(\{疾病 A\})=1 - Bel(\{疾病 B,疾病 C\})=1-(m(\{疾病 B\})+m(\{疾病 C\})+m(\{疾病 B,疾病 C\}))\approx1-(0.2311 + 0.3111 + 0.1089)=0.3489 Pl({疾病A})=1−Bel({疾病B,疾病C})=1−(m({疾病B})+m({疾病C})+m({疾病B,疾病C}))≈1−(0.2311+0.3111+0.1089)=0.3489。
- P l ( { 疾病 B } ) = 1 − B e l ( { 疾病 A , 疾病 C } ) = 1 − ( m ( { 疾病 A } ) + m ( { 疾病 C } ) + m ( { 疾病 A , 疾病 C } ) ) ≈ 1 − ( 0.1556 + 0.3111 + 0.0556 ) = 0.4777 Pl(\{疾病 B\})=1 - Bel(\{疾病 A,疾病 C\})=1-(m(\{疾病 A\})+m(\{疾病 C\})+m(\{疾病 A,疾病 C\}))\approx1-(0.1556 + 0.3111 + 0.0556)=0.4777 Pl({疾病B})=1−Bel({疾病A,疾病C})=1−(m({疾病A})+m({疾病C})+m({疾病A,疾病C}))≈1−(0.1556+0.3111+0.0556)=0.4777。
- P l ( { 疾病 C } ) = 1 − B e l ( { 疾病 A , 疾病 B } ) = 1 − ( m ( { 疾病 A } ) + m ( { 疾病 B } ) + m ( { 疾病 A , 疾病 B } ) ) ≈ 1 − ( 0.1556 + 0.2311 + 0.0889 ) = 0.5244 Pl(\{疾病 C\})=1 - Bel(\{疾病 A,疾病 B\})=1-(m(\{疾病 A\})+m(\{疾病 B\})+m(\{疾病 A,疾病 B\}))\approx1-(0.1556 + 0.2311 + 0.0889)=0.5244 Pl({疾病C})=1−Bel({疾病A,疾病B})=1−(m({疾病A})+m({疾病B})+m({疾病A,疾病B}))≈1−(0.1556+0.2311+0.0889)=0.5244。
通过证据理论的合成结果,可以看出患者患有疾病 C 的可能性相对较高,其信任函数值为 0.3111,似然函数值为 0.5244。但同时也不能完全排除患有疾病 A 和疾病 B 的可能性。医生可以根据这些结果,结合其他临床信息,做出更准确的诊断决策。