- 模式识别与人工智能(基于MATLAB)
- 周润景
- 2296字
- 2024-11-01 20:08:27
2.3 最小风险贝叶斯决策
2.3.1 最小风险贝叶斯决策理论
决策理论是为了实现特定的目标,根据客观的可能性,在占有一定信息和经验的基础上,借助一定的工具、技巧和方法,对影响未来目标实现的诸因素进行准确的计算和判断优选后,对未来行动做出决定。在某些情况下,引入风险的概念以求风险最小的决策更为合理。例如对癌细胞的识别,识别的正确与否直接关系到病人的身体健康。风险的概念常与损失相联系。当参数的真值和决策结果不一致会带来损失时,这种损失作为参数的真值和决策结果的函数,称为损失函数。损失函数的期望值称为风险函数。为了分析引入损失函数λ(αi,ωj)(i=1,2,…,a;j=1,2,…,m),这个函数表示当处于状态ωj时采取决策为αi所带来的损失。在决策论中,常以决策表一目了然地表示各种情况下的决策损失,我们用表2-2来描述。这是在已知先验概率P(ωj)及类条件概率密度P(X|ωj)(j=1,2,…,m)的条件下进行讨论的。
表2-2 贝叶斯决策表

根据贝叶斯公式,后验概率为

当引入“损失”的概念后考虑错判所造成的损失时,就不能只根据后验概率的大小做决策,而必须考虑所采取的决策是否损失为最小。对于给定的X,如果采取决策αi(i=1,2,…,a),λ可以在m个λ(αi,ωj),j=1,2,…,m当中任取一个,其相应概率密度函数为P(ωj|X)。因此在采取决策αi情况下的条件期望损失为

在决策论中又把采取决策αi的条件期望损失R(αi|X)称为条件风险。由于X是随机向量的观察值,对于X的不同观察值,采取αi决策时,其条件风险的大小是不同的。所以究竟采取哪一种决策将随X的取值而定。决策α可以被看成随机向量X的函数,记为α(X),这里定义期望风险为

式中,dx是特征空间的体积元,积分在整个特征空间进行。期望风险R反映对整个特征空间所有X的取值都采取相应的决策α(X)所带来的平均风险;而条件风险R(αi|X)只是反映了对某一X的取值采取决策αi所带来的风险。显然,需要采取一系列决策α(X)使期望风险R最小。在考虑错判带来的损失时,我们希望损失最小。如果在采取每一个决策或行动时,都使其风险最小,则对所有的X做出决策时,其期望风险也必然最小,这样的决策就是最小风险贝叶斯决策。
最小风险贝叶斯决策规则为:如果

则有α=α(k)(即采取决策αk)。对于实际问题,可按下列步骤进行最小风险贝叶斯决策。
(1)在已知P(ωj),P(X|ωj),j=1,2,…,m,并给出待识别的X的情况下,根据贝叶斯公式可以计算出后验概率,见式(2-9)。
(2)利用计算出的后验概率及决策表,按式(2-10),计算出αi(i=1,2,…,a)的条件风险R(αi|X)。
(3)对步骤(2)中得到的a个条件风险值R(αi|X)(i=1,2,…,a)进行比较,找出使条件风险最小的决策αk,根据式(2-12),则αk就是最小风险贝叶斯决策。
应指出,最小风险贝叶斯决策除了要符合实际情况的先验概率P(ωj)及类条件概率密度P(X|ωj)(j=1,2,…,m)外,还必须要有适合的损失函数λ(αi,ωj)(i=1,2,…,a;j=1,2,…,m)。实际工作中要列出合适的决策表很不容易,往往要根据研究的具体问题,通过分析错误决策所造成的损失的严重程度,与有关专家共同商讨来确定。
2.3.2 最小错误率与最小风险的贝叶斯决策比较
错误率最小的贝叶斯决策规则与风险最小的贝叶斯决策规则有着某种联系。这里再讨论一下两者的关系。首先设损失函数为

式中,假设对于m类只有m个决策,即不考虑“拒绝”的情况,对于正确决策即i=j,λ(αi,ωj)=0,就是说没有损失;对于任何错误决策,其损失为1,这样定义的损失函数称为0-1损失函数。此时条件风险为

式中,表示对X采取决策ωj(此时ωj就相当于αi)的条件错误概率。所以在采取0-1损失函数时,使

得最小风险贝叶斯决策,就等价于式(2-16)的最小错误率贝叶斯决策。

由此可见,最小错误率贝叶斯决策就是在采用0-1损失函数条件下的最小风险贝叶斯决策,即前者是后者的特例。
2.3.3 贝叶斯算法的计算过程
(1)输入类数M,特征数n,待分样本数m。
(2)输入训练样本数N和训练集矩阵X(N×n),并计算有关参数。
(3)计算待分析样本的后验概率。
(4)若按最小风险原则分类,则输入各值,计算各样本属于各类时的风险并判定各样本类别。
2.3.4 最小风险贝叶斯分类的MATLAB实现
1.初始化
初始化程序如下:

2.参数计算
参数计算程序如下:

3.完整程序及仿真结果
程序代码如下:



运行程序得到的损失函数的矩阵为:

得到如表2-3所示的贝叶斯决策表。
表2-3 贝叶斯决策表

损失函数的函数图界面如图2-3所示。

图2-3 损失函数的函数图界面
继续运行程序,MATLAB命令窗口显示的结果如下:





运行程序得到的结果整理如表2-4所示。
表2-4 待测样本分类表

对比正确分类后发现,存在一组数据(1494.63,2072.59,2550.51)与正确分类有出入,用上述方法得到结果属于类别3,而正确的分类结果是属于类别1。这可能是基于最小风险贝叶斯分类的分类方法存在误差所导致的。
反过来验证分类结果的正确性。首先修改MATLAB循环语句的循环次数与后验概率的输入向量,程序代码如下:

执行程序后MATLAB命令窗口将显示结果,摘录其中一部分如下:

这与训练样本的分类结果是完全吻合的。
2.3.5 结论
以贝叶斯决策为核心内容的统计决策理论是统计模式识别的重要基础,理论上该分类理论就有最优性能,即分类错误或风险在所有分类器中是最小的,常可以作为衡量其他分类器设计方法的优劣标准。
但是该方法明显的局限在于:需要已知类别数以及各类别的先验概率和类条件概率密度。也就是说,要分两步来解决模式识别问题——先根据训练样本设计分类器,接着对测试样本进行分类。因此,有必要研究直接从测试样本出发设计分类器的其他方法。