线性判别函数
模式识别系统的主要作用:判别各个模式(样本)所属的类别
用判别函数分类的概念
判别函数进行分类依赖的因素:
- 判别函数的几何性质:线性的和非线性的函数
- 判别函数的系数
两类问题的判别函数
若x是二维模式样本x=(x1,x2)T,用x1,x2作为坐标分量,可以画出模式的平面图,若这些分属于ω1,ω2两类的模式可以用一个直线方程d(x)=0来划分:
d(x)=ω1x1+ω2x2+ω3=0
其中x1,x2为坐标分量,ω1,ω2,ω3为参数方程,则将一个不知类别的模式代入d(x),有:
d(x){>0x∈ω1<0x∈ω2
此时d(x)=0称为判别函数。
n维线性判别函数的一般形式
d(x)=ω1x1+ω2x2+⋯+ωnxn+ωn+1=ωT0x+ωn+1
其中ω0=(ω1,ω2,⋯,ωn)T称为权向量或参数向量,x=(x1,x2,⋯,xn)T,d(x)还可以表示为:
d(x)=ωTx
其中x=(x1,x2,⋯,xn,1)T称为增广模式向量,ω=(ω1,ω2,⋯,ωn+1)T称为增广权向量
d(x)=ωTx{>0x∈ω1≤0x∈ω2
- 第一种多类情况:
用线性判别函数将属于ωi类的模式与不属于ωi类的模式分开,其判别函数为:
di(x)=ωTix={>0x∈ωi≤0x∉ωi,i=1,2,⋯,M
一个区域明确属于某一类的条件是除了这一类的判别函数的值大于0,其他判别函数的值均小于等于0,否则该区域为不确定区域
- 第二种多类情况:
采用每对划分,即ωi/ωj两分法,一个判别界面只能分开两种类别,其判别函数为:
dij(x)=ωTijx
如果dij>0,∀j≠i,那么x∈ωi;
有一个性质dij=−dji;
要分开M类模式,共需要M(M−1)/2个判别函数;
不确定区域:若所有dij(x),找不到∀j≠i,dij(x)>0的情况;
- 第三种多类情况:
第二种多类情况的特例,是没有不确定区域的ωi/ωj两分法,此时对M类情况有M个判别函数
dk(x)=ωTkx,k=1,2,⋯,M
即di(x)>dj(x),∀j≠i,i,j=1,2,⋯,M那么x∈ωi,将分类的特点是将M类情况分为M−1个两类问题
广义线性判别函数
一个训练用的模式集{x},在模式集空间x中线性不可分,但在模式空间x∗中线性可分,其中x∗的各个分量是x的单值实函数,x∗的维数k高于x的维数n,即若取
x∗=(f1(x),f2(x),⋯,fk(x)),k>n
则分类界面在x∗中是线性的,在x中是非线性的,此时只要将模式x进行非线性变换,使之变换后得到维数更高的模式x∗,就可以用线性判别函数来进行分类
一个非线性判别函数可如下表示:
d(x)=ω1f1(x)+ω2f2(x)+⋯+ωkfk(x)+ωk+1
其中{fi(x),i=1,2,⋯,k}是模式x的单值实函数,若定义为广义形式:
x∗=(f1(x),f2(x),⋯,fk(x),1)T
此时有:
d(x∗)=ωTx∗
其中ω=(ω1,ω2,⋯,ωk,ωk+1)
fi(x)选用二次多项式函数
- x是二维的情况,即x=(x1 x2)T,判别函数为:
d(x)=ω11x21+ω12x1x2+ω22x22+ω1x1+ω2x2+ω3
线性化为d(x∗)=ωTx∗
x∗=(x21x1x2x22x1x21)Tω=(ω11ω12ω22ω1ω2ω3)T
此时x∗的维数为5,原维数为2
d(x)=n∑j=1ωjjx2j+n−1∑j=1n∑k=j+1ωjkxjxk+n∑j=1ωjxj+ωn+1
其中有平方项n个,二次项n(n−1)/2个,一次项n个,常数项1个,总项数为:
n+n(n+1)/2+n+1=(n+1)(n+2)/2>n
x∗的各分量的一般化形式为:
fi(x)=xsp1xtp2,p1,p2=1,2,⋯,n,s,t=0,1
fi(x)为r次多项式函数
fi(x)=xs1p1xs2p2⋯xsrpr,p1,p2,⋯,pr=1,2,⋯,n,s1,s2,⋯,sr=0,1
判别函数d(x)可以用以下递推式给出:
常数项:d(0)(x)=ωn+1
一次项:d(1)(x)=∑np1=1ωp1xp1+d(0)(x)
二次项:d(2)(x)=∑np1=1∑np2=p1ωp1p2xp1xp2+d(1)(x)
r次项:d(r)(x)=∑np1=1∑np2=p1⋯∑npr=pr−1ωp1p2⋯prxp1xp2⋯xpr+d(r−1)(x)
d(x)总项数为:
Nω=Crn+r=(n+r)!r!n!
分段线性判别函数
分段线性判别函数的设计:最小距离分类
设μ1和μ2为两个模式类ω1和ω2的聚类中心,定义决策规则:
||x−μ1||2−||x−μ2||2{<0x∈ω1>0x∈ω2
这时的决策面是两类期望连线的垂直平分面,这样的分类器称为最小距离分类器
模式空间和权空间
设有判别函数:d(x)=ωTx,其中x=(x1 x2 ⋯ xn 1)T,ω=(ω1 ω2 ⋯ ωn ωn+1)T,判别界面为ωTx=0
Fisher线性判别
目的:在低维空间里解析上或计算上行得通的方法,在高维空间里往往行不通,降低维数有时就会成为处理实际问题的关键,考虑将d维空间的样本投影到一条直线上,形成一维空间,即把维数压缩到一维,我们需要根据实际情况找到一条最易分类的投影线,这就是Fisher判别方法要解决的基本问题
从d维空间到一维空间的一般数学变换方法:假设有一集合Γ包含N个d维样本x1,x2,⋯,xN,其中N1个属于ω1类的样本记为子集Γ1,N2个属于ω2类的样本记为子集Γ2,若对xn的分量做线性组合可得标量:
yn=ωTxn,n=1,2,⋯,N
这样得到N个一维样本yn组成的集合,并可分为两个子集Γ′1,Γ′2,实际上,ω的值是无关紧要的,重要的是ω的方向,方向直接影响分类效果,我们希望投影以后,在一维Y空间中各类样本尽可能分得开些,即希望两类均值之差越大越好,同时希望各类样本内部尽量密集,即希望样本类内离散度越小越好
Fisher准则函数中的基本参量
在d维X空间
mi=1Ni∑x∈Γix,i=1,2
- 样本类内离散度矩阵Si和总样本类内离散度矩阵Sω
Si=∑x∈Γi(x−mi)(x−mi)T,i=1,2Sω=S1+S2
Sb=(m1−m2)(m1−m2)T
Sb是对称半正定矩阵
在一维Y空间
~mi=1Ni∑y∈Γ′iy,i=1,2
- 样本类内离散度~S2i和总样本类内离散度~Sω
~S2i=∑y∈Γ′i(y−~mi)2,i=1,2~Sω=~S21+~S22
Fisher准则函数
JF(ω)=(~m1−~m2)2~S21+~S22
希望两类均值之差越大越好,同时希望各类样本内部尽量密集,即希望样本类内离散度越小越好,所以应该寻找使JF(ω)尽可能大的ω作为投影方向,下面需要将JF(ω)变为ω的显函数:
首先由各类样本的均值可推出:
~mi=1Ni∑y∈Γ′iy=1Ni∑x∈ΓiωTx=ωT(1Ni∑x∈Γix)=ωTmi
这样Fisher准则函数JF(ω)的分子可以写成:
(~m1−~m2)2=(ωTm1−ωTm2)2=(ωTm1−ωTm2)(ωTm1−ωTm2)T=(ωTm1−ωTm2)(mT1ω−mT2ω)=ωT(m1−m2)(m1−m2)Tω=ωTSbω
再来考察JF(ω)的分母与ω的关系:
~S2i=∑y∈Γ′i(y−~mi)2=∑x∈Γi(ωTx−ωTmi)2=ωT[∑x∈Γi(x−mi)(x−mi)T]ω=ωTSiω
因此:
~S21+~S22=ωT(S1+S2)ω=ωTSωω
带到JF(ω)
JF(ω)=ωTSbωωTSωω
最佳变换向量ω∗的求取
首先使分母为非零常数:
ωTSωω=c≠0
定义拉格朗日函数为:
L(ω,λ)=ωTSbω−λ(ωTSωω)
上式对ω求偏导数:
∂L(ω,λ)∂ω=2(Sbω−λSωω)
令偏导数为0:
Sbω∗−λSωω∗=0
也就是:
Sbω∗=λSωω∗
因为Sω非奇异,将上式两边左乘S−1ω:
S−1ωSbω∗=λω∗
上式为求一般矩阵S−1ωSb的特征值问题,Sb=(m1−m2)(m1−m2)T
Sbω∗=(m1−m2)(m1−m2)Tω∗=(m1−m2)R
其中R=(m1−m2)Tω∗是一个标量,所以Sbω∗总是在向量(m1−m2)的方向上,因此:
λω∗=S−1ω(Sbω∗)=S−1ω(m1−m2)R
得到:
ω∗=RλS−1ω(m1−m2)
省略比例因子Rλ有:
ω∗=S−1ω(m1−m2)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异