前序文章:
机器学习笔记—模式分类(二)参数判别估计法(最大似然估计和贝叶斯参数估计)1
机器学习笔记—模式分类(三)参数判别估计法2(最大似然估计)
机器学习笔记—模式分类(四)参数判别估计法3(贝叶斯参数估计)
机器学习笔记—模式分类(五)参数判别估计法4(充分统计量、维数、特征线性组合、特征缺失)
机器学习笔记—模式分类(六)参数判别估计法5(序列判决之隐马尔可夫模型HMM)
同类文章:
暂无
1、引言
在参数估计判别方法(贝叶斯)中,我们总是假设概率密度函数的参数形式已知,并在此条件下来处理有监督学习过程,但问题在于:
(1)对于许多实际的模式识别应用场合,上述假设未必成立,而且一般给出的概率密度的形式很少符合实际情况;
(2)所有经典的密度函数的参数形式都是即只有单个局部极大值,而现实中所遇到的却常常是多模情况;
(3)关于高维概率密度可以表示成一些一维密度的乘积的假设也不成立。
这里我们将讨论“非参数化方法”,它能处理任意的概率分布,而不必假设密度的参数形式已知,两种主要的“非参数化方法”:
(1)从训练样本中估计类条件概率密度函数p(x|wj),将估计出的结果作为真正的概率密度;
(2)直接估计后验概率P(wj|x),这种方法的实现方式与所设计的算法直接相关,如最近邻规则就省略了概率估计而直接进行判别函数的设计。
2、概率密度的估计
对每个类别都独立的估计概率密度,根据最大后验概率MAP原则进行分类。
假设p(x)是连续的并且区域R足够小,以至于在这个区间中p几乎没有变化,x为一个点,V是区域R所包含的体积,则
p(x)~=(k/n)/V。
如果固定体积V并且能获得越来越多的训练样本,那么比值k/n将能够如我们所希望的那样收敛,但即使如此所获得的其实是p(x)的空间平滑后的版本;
如果希望得到p(x)而不是平滑后的版本,那必须要求体积V趋近于0,在固定样本个数n的前提下则区域R会变得如此之小以至于其中可能不含有任何样本,此时p(x)~=0这样的估计没有意义,即使碰巧有样本落在点x处则估计结果为无穷大也没有意义。
实际过程中能够获得的训练样本个数总是有限的,体积V不能取得任意小,因此采用这种估计方法的话必须接受:k/n总是有一定变动的,概率密度函数p(x)总是存在一定程度的平滑效果。
为了估计点x出的概率密度,构造一系列包含点x的区域R1,R2,...,记Vn为区域Rn的体积,kn为落在区间Rn中的样本个数,
pn(x)=(kn/n)/V
表示对p(x)的第n次估计,如果要求pn(x)能够收敛到p(x),则必须满足3个条件,即n趋近无穷大时
(1)Vn趋近0,保证在区域均匀收缩和p(.)在点x处连续的情况下,空间平滑了的P/V能够收敛到p(x);
(2)kn趋近无穷大,保证频率之比能够收敛到概率P
(3)kn/n趋近0。
有两种方法可以获得这种区域序列:
(1)根据某一个确定的体积函数如Vn=1/sqrt(n)来逐渐收缩一个给定的初始空间,此即“Parzen窗方法”;
(2)确定kn为n的某个函数如kn=sqrt(n),则体积必须逐渐生长直到最后能包含进x的kn个相邻点,此即“kn近邻法”。
3、Parzen窗方法—概率密度的估计
假设区间Rn为d维的超立方体,hn为其一条边的长度,通过定义窗函数
解析得到落在窗中的样本个数kn的表达式,进而求出pn(x)的表达式
该表达式表明对p(x)的估计是对一系列关于x和xi的函数作平均,本质上是一种内插过程,即每个样本依据它离x的远近不同而对结果作出不同的贡献。
为保证pn(x)是一个合理的概率密度函数,既要保证其值非负又要保证积分结果为1,可以要求窗函数满足:
如果hn太大,pn(x)是n个宽的、慢变的函数的叠加,因此pn(x)是对p(x)非常平滑的估计,或称为散焦的估计;如果hn太小,pn(x)是n个以样本点为中心的尖脉冲的叠加,是一个充满噪声的估计。
hn亦即Vn的选取很大程度上影响pn(x),如果Vn太大,那么估计结果的分辨率就太低;如果Vn太小,那么估计结果的统计稳定性就不够。
在有限样本个数下,我们能做的就是取某种可接受的折中;如果样本个数无限,那么就可以在n增加时,让Vn缓慢的趋近于零,同时pn(x)收敛到某个概率密度p(x)。
在基于Parzen窗估计的分类器中,对每一个类别都独立的估计概率密度,并且根据最大后验概率(MAP)的原则进行分类,如果有多个类别且每个类别的先验概率都不相同,我们也能考虑进这个影响;
虽然使用高斯窗函数似乎有道理,但是在缺乏概率分布的其他信息的情况下,没有办法对选择不同窗宽的影响做出有用的理论性分析;
基于Parzen窗的概率密度估计和分类较好的说明了非参数方法的优点和局限性;
非参数方法的优点在于通用性,如果能采集足够多的训练样本,无论实际的概率密度函数的形式如何,我们肯定能够最终得到一个可靠的收敛结果;
另一方面为了得到比较精确的结果,实际需要的训练样本个数是非常惊人的,对训练样本个数的需求相对特征空间的维数呈指数增长,这种现象称为维数灾难,因此严重制约了这种方法的实际应用。
多数模式识别方法可以用并行处理的方式实现,以空间复杂度换取时间复杂度,这种实现方法通常具有一种人工神经网络的结构;
Parzen窗方法就可以使用神经网络的结构来实现,即通常所说的概率神经网络PNN,其最有用的场合是在计算速度要求很高、存储资源又比较容易满足的情况,并且新的训练样本很容易被加入以前训练好的分类器中,这一特性对于“在线”的应用特别有意义。
4、Kn近邻法—概率密度的估计
由于最佳的窗函数的选择总是一个问题,一种可行的解决方法就是让体积成为训练样本的函数,而不是硬性的规定窗函数为全体样本个数的某个函数;
如为了从n个训练样本中估计p(x),以点x为中心让体积扩张直到包含进kn个样本为止,其中的kn是关于n的某一个特定函数,这些样本被称为点x的kn个最近邻;
如果点x附件的概率密度很大那么这个体积就相对较小,如果在点x附近的概率密度较小那么这个体积就会比较大,但是一旦它进入某个概率密度很高的区域,这个体积的生长就会停止。
前面的讨论结果能够用于从已标记的样本集中估计后验概率P(wi|x)。假设把一个体积放在点x周围,并且能够包含进k个样本,其中的ki个属于类别wi,那么对于联合概率密度的估计是
pn(x,wi)=(ki/n)/V
对于后验概率的估计就是
Pn(wi|x)=pn(x,wi)/pn(x)=ki/k
即点x属于类别wi的后验概率就是体积中标记为wi的样本点的个数与体积中全部样本点的个数的比值,则为了达到最小的误差率,我们选择使这个比值最大的那个类别作为判决结果。
关于如何选择体积大小的问题,既可以用Parzen窗也可以用Kn近邻。在Parzen窗方法中,Vn必须是关于n的某个固定形式的函数,如Vn=1/sqrt(n);在最近邻方法中,Vn必须能够保证能包含进足够的样本数k,如k=sqrt(n)。
在这两种方法中,如果n能够趋向无穷大,那么在无限小的体积中就能有无穷多的样本,这样估计就能够达到非常高的准确度。