密度估计的参数法
一、 前言回顾
在上一篇文章中,我们谈到了最小错误贝叶斯决策和最小风险贝叶斯决策。并举了这样一个特例。
当损失矩阵是等代价的损失矩阵时,最小风险贝叶斯决策实际上就是最小错误贝叶斯决策。损失矩阵
Λ 的元素为:
λij={1,i=j0,i=j
可能有朋友不太理解为什么要有这两种决策方式,或者他们有什么区别。在这篇文章中就展开的讲一讲他们不同的地方。
在分类的过程中,我们难免会犯错。 最小错误贝叶斯决策保证了最小的错误率,因为它的比较是直接建立在后验概率上的。但有些时候,工作状况可能没有那么理想,我们可能无法担负起错误的后果。 在这里,我想借用自动控制原理中的一个名词——稳定裕度。
从理论上说,一个线性系统的结构和参数一旦确定,它是否稳定就确定了。但是实际情况并不如此简单。大多数情况下,系统的参数总难免有不确定性。不确定的原因很多。例如测量的误差、公称值与实际值之间的正常偏差、温度变化引起的参数波动等。再如有的生产机械的参数经过长时间的运行可能发生相当大的变化;有的控制对象在不同的运行条件下,其参数可以在很大范围内变化,甚至基本动态性质也会发生变化。
考虑到不确定性的存在,我们就不能满足于仅仅判明某一系统是否稳定,而往往要问:如果系统的参数或结构发生了某种程度的变化,这个我们原以为稳定的系统是否仍能保持稳定呢?
孤阴则不生,孤阳则不长。改变一些参数,或者说牺牲掉一些指标,或许可以实现从局部最优向全局最优的转变。从稳定裕度的角度出发,大家可能明白了,在工作过程中,错误总是难免的,而一旦错误发生了,我们如何选择才能使风险最小,最小风险贝叶斯决策讲的就是这样的事情。最直观的是公式,而最难理解的也是公式。欢迎大家在评论区提出自己的理解,让我们共同交流、携手共进。
二、 高斯分类器
在前两篇文章中,我们谈到了模式分类的基本理论,并假定已知密度函数
p(x∣ϖi) 的所有信息。但实际上,这些信息是未知的,或者说我们只能知晓其一部分。而为了应用前文的决策方法,就要求我们必须应用密度函数。而为了直接估计类条件密度函数并使用贝叶斯法则来构造判别规则,我们可以假定模型是一个简单的参数模型,并使用有效的训练集来估计该模型的参数。也就是说,我们需要用一个简单的模型来构造类条件密度函数。
本文介绍的高斯分类器就是密度估计参数法的一种方式。
将正态(高斯)分布作为分类器中类条件概率密度函数的模型,或许是最广泛的做法。
正态分布:
- 均值为
μ ,方差为
σ2 的正态分布的概率密度函数为:
p(x∣μ,σ2)=N(x;μ,σ2)=2πσ2
1exp(−2σ2(x−μ)2)
- 均值为
μ ,协方差矩阵为
Σ 的多元正态分布的概率密度函数为:
p(x∣μ,Σ)=N(x;μ,Σ)=(2π)2d∣Σ∣211exp{−21(x−μ)TΣ−1(x−μ)}
其中,
Σ 是对称的半正定矩阵,
d 是数据的维数。
设来自
ϖj 类的数据向量采样于均值为
μj ,协方差矩阵为
Σj 的正态分布,则类条件概率密度函数为:
p(x∣ϖj)=N(x;μj,Σj)=(2π)2d∣Σj∣211exp{−21(x−μj)TΣj−1(x−μj)}
所谓分类,是将样本
x 分配到其使后验概率
p(ϖj∣x) 或
log(p(ϖj∣x)) 最大的那个类中。将正态的类条件概率密度带入到后验概率计算式中,有:
log(p(ϖj∣x))=log(p(x∣ϖj))+log(p(ϖj))−log(p(x))=−21(x−μj)TΣj−1(x−μj)−21log(∣Σj∣)−2dlog(2π)+log(p(ϖj))−log(p(x))
在比较中,由于这个式子中有些项是可以拿下去的,所以我们来把它化简一下,取判别函数:
gj(x)=log(p(ϖj))−21log(∣Σj∣)−21(x−μj)TΣj−1(x−μj)
判别规则为:若
gi>gj,i=j ,则将
x 归入
ϖi 类。在这里我们应用了对数函数的单调性。所以,在比较时,实际上我们就是在比较它们各自判别函数的极值。
这时,
gj(x),j=1,...,C 是基于正态的二次判别函数,对样本
x 进行分类的依据就是该判别函数的取值。
而在上述的估计中,由于我们用形式简单的正态分布构造了类概率密度函数,所以我们不知道它的参数
μj ,
Σj 和
p(ϖj) 的取值。但是,
μj 和
Σj可以通过基于训练集的估计值取代,估计值通过对每个类的数据样本集(假设各变量相互独立)采用极大似然估计法得到,在这里我们不加证明的给出下面的式子。
设有样本集
{x1,...,xn},xi∈Rd ,则
ϖj 类均值的极大似然估计即为样本的平均向量:
μ
j=n1Σi=1nxi
协方差矩阵的极大似然估计即为有偏的样本协方差矩阵:
Σ
j=n1Σi=1n(xi−μ
j)(xi−μ
j)T
因为上述方法对协方差矩阵的极大似然估计是有偏的,通常用一种无偏估计来代替:
Σ
j=n−11Σi=1n(xi−μ
j)(xi−μ
j)T
至于式中的先验概率
p(ϖj) ,如果收集训练数据的环境与模型的运行环境一致,则可以用
nj/Σini (
ni 为来自
ϖj 类的样本数)估计。先验概率的其他常见估计方案还有均匀分布
p(ϖj)=1/C ,或由专家来指定。
至此,一个高斯分类器(二次判别规则)便可以对数据向量实施分类。但是,如果协方差矩阵奇异,高斯分类器就会出现问题。这是因为,具有奇异性的协方差矩阵不能求逆,而且奇异矩阵的行列式为零,无法进行对数运算,上述的判别函数也就失效了。在后面的文章中,我们将重点解决协方差矩阵是奇异阵的问题方法。
夜之若何?其未央也。如果各位朋友和我一样在深夜中,翻到了这篇文章,只能说这是一种跨越文山书海的邂逅。欢迎各位同好者指出文中出现的问题。作者将仔细阅读并且按照意见修改文章。
最后,感谢大家的观看。