线性判别函数

模式识别系统的主要作用:判别各个模式(样本)所属的类别

用判别函数分类的概念

判别函数进行分类依赖的因素:

  • 判别函数的几何性质:线性的和非线性的函数
  • 判别函数的系数

两类问题的判别函数

xxx是二维模式样本x=(x1,x2)Tx = (x_1,x_2)^Tx=(x1,x2)T,用x1,x2x_1,x_2x1,x2作为坐标分量,可以画出模式的平面图,若这些分属于ω1,ω2\omega_1,\omega_2ω1,ω2两类的模式可以用一个直线方程d(x)=0d(x) = 0d(x)=0来划分:
d(x)=ω1x1+ω2x2+ω3=0 d(x) = \omega_1x_1 + \omega_2x_2 + \omega_3 = 0 d(x)=ω1x1+ω2x2+ω3=0
其中x1,x2x_1,x_2x1,x2为坐标分量,ω1,ω2,ω3\omega_1,\omega_2,\omega_3ω1,ω2,ω3为参数方程,则将一个不知类别的模式代入d(x)d(x)d(x),有:
d(x){>0x∈ω1<0x∈ω2 d(x) \begin{cases} \gt 0 & x \in \omega_1 \\ \lt 0 & x \in \omega_2 \end{cases} d(x){>0<0xω1xω2
此时d(x)=0d(x) = 0d(x)=0称为判别函数。

n维线性判别函数的一般形式

d(x)=ω1x1+ω2x2+⋯+ωnxn+ωn+1=ω0Tx+ωn+1 d(x) = \omega_1x_1 + \omega_2x_2 + \cdots + \omega_nx_n + \omega_{n + 1} = \omega_0^Tx + \omega_{n+1} d(x)=ω1x1+ω2x2++ωnxn+ωn+1=ω0Tx+ωn+1
其中ω0=(ω1,ω2,⋯ ,ωn)T\omega_0 = (\omega_1,\omega_2,\cdots,\omega_n)^Tω0=(ω1,ω2,,ωn)T称为权向量或参数向量x=(x1,x2,⋯ ,xn)Tx = (x_1,x_2,\cdots,x_n)^Tx=(x1,x2,,xn)Td(x)d(x)d(x)还可以表示为:
d(x)=ωTx d(x) = \omega^Tx d(x)=ωTx
其中x=(x1,x2,⋯ ,xn,1)Tx = (x_1,x_2,\cdots,x_n,1)^Tx=(x1,x2,,xn,1)T称为增广模式向量ω=(ω1,ω2,⋯ ,ωn+1)T\omega = (\omega_1,\omega_2,\cdots,\omega_{n+1})^Tω=(ω1,ω2,,ωn+1)T称为增广权向量

  • 两类情况判别函数:
    d(x)=ωTx{>0x∈ω1≤0x∈ω2 d(x) = \omega^Tx \begin{cases} \gt 0 & x \in \omega_1 \\ \leq 0 & x \in \omega_2 \end{cases} d(x)=ωTx{>00xω1xω2
  • 第一种多类情况:
    用线性判别函数将属于ωi\omega_iωi类的模式与不属于ωi\omega_iωi类的模式分开,其判别函数为:
    di(x)=ωiTx={>0x∈ωi≤0x∉ωi,i=1,2,⋯ ,M d_i(x) = \omega_i^Tx = \begin{cases} \gt 0 & x \in \omega_i \\ \leq 0 & x \notin \omega_i \end{cases},i = 1,2,\cdots,M di(x)=ωiTx={>00xωix/ωi,i=1,2,,M
    一个区域明确属于某一类的条件是除了这一类的判别函数的值大于0,其他判别函数的值均小于等于0,否则该区域为不确定区域
  • 第二种多类情况:
    采用每对划分,即ωi/ωj\omega_i/\omega_jωi/ωj两分法,一个判别界面只能分开两种类别,其判别函数为:
    dij(x)=ωijTx d_{ij}(x) = \omega_{ij}^Tx dij(x)=ωijTx
    如果dij>0,∀j≠id_{ij} \gt 0,\forall j \neq idij>0,j=i,那么x∈ωix \in \omega_ixωi
    有一个性质dij=−djid_{ij} = -d_{ji}dij=dji;
    要分开MMM类模式,共需要M(M−1)/2M(M - 1) / 2M(M1)/2个判别函数;
    不确定区域:若所有dij(x)d_{ij}(x)dij(x),找不到∀j≠i,dij(x)>0\forall j \neq i,d_{ij}(x) \gt 0j=i,dij(x)>0的情况;
  • 第三种多类情况:
    第二种多类情况的特例,是没有不确定区域的ωi/ωj\omega_i/\omega_jωi/ωj两分法,此时对MMM类情况有MMM个判别函数
    dk(x)=ωkTx,k=1,2,⋯ ,M d_k(x) = \omega_k^Tx,k = 1,2,\cdots,M dk(x)=ωkTx,k=1,2,,M
    di(x)>dj(x),∀j≠i,i,j=1,2,⋯ ,Md_i(x) \gt d_j(x),\forall j \neq i,i,j = 1,2,\cdots,Mdi(x)>dj(x),j=i,i,j=1,2,,M那么x∈ωix \in \omega_ixωi,将分类的特点是将MMM类情况分为M−1M - 1M1个两类问题

广义线性判别函数

一个训练用的模式集{x}\{x\}{x},在模式集空间xxx中线性不可分,但在模式空间x∗x^*x中线性可分,其中x∗x^*x的各个分量是xxx的单值实函数,x∗x^*x的维数kkk高于xxx的维数nnn,即若取
x∗=(f1(x),f2(x),⋯ ,fk(x)),k>n x^* = (f_1(x),f_2(x),\cdots,f_k(x)),k \gt n x=(f1(x),f2(x),,fk(x)),k>n
则分类界面在x∗x^*x中是线性的,在xxx中是非线性的,此时只要将模式xxx进行非线性变换,使之变换后得到维数更高的模式x∗x^*x,就可以用线性判别函数来进行分类
一个非线性判别函数可如下表示:
d(x)=ω1f1(x)+ω2f2(x)+⋯+ωkfk(x)+ωk+1 d(x) = \omega_1f_1(x) + \omega_2f_2(x) + \cdots + \omega_kf_k(x) + \omega_{k + 1} d(x)=ω1f1(x)+ω2f2(x)++ωkfk(x)+ωk+1
其中{fi(x),i=1,2,⋯ ,k}\{f_i(x),i = 1,2,\cdots,k\}{fi(x),i=1,2,,k}是模式xxx的单值实函数,若定义为广义形式:
x∗=(f1(x),f2(x),⋯ ,fk(x),1)T x^* = (f_1(x),f_2(x),\cdots,f_k(x),1)^T x=(f1(x),f2(x),,fk(x),1)T
此时有:
d(x∗)=ωTx∗ d(x^*) = \omega^Tx^* d(x)=ωTx
其中ω=(ω1,ω2,⋯ ,ωk,ωk+1)\omega = (\omega_1,\omega_2,\cdots,\omega_k,\omega_{k + 1})ω=(ω1,ω2,,ωk,ωk+1)

fi(x)选用二次多项式函数

  • xxx是二维的情况,即x=(x1 x2)Tx = (x_1\ x_2)^Tx=(x1 x2)T,判别函数为:
    d(x)=ω11x12+ω12x1x2+ω22x22+ω1x1+ω2x2+ω3 d(x) = \omega_{11}x_1^2 + \omega_{12}x_1x_2 + \omega_{22}x_2^2 + \omega_1x_1 + \omega_2x_2 + \omega_3 d(x)=ω11x12+ω12x1x2+ω22x22+ω1x1+ω2x2+ω3
    线性化为d(x∗)=ωTx∗d(x^*) = \omega^Tx^*d(x)=ωTx
    x∗=(x12x1x2x22x1x21)Tω=(ω11ω12ω22ω1ω2ω3)T x^* = (\begin{matrix} x_1^2 & x_1x_2 & x_2^2 & x_1 & x_2 & 1\end{matrix})^T \\ \omega = (\begin{matrix} \omega_{11} & \omega_{12} & \omega_{22} & \omega_1 & \omega_2 & \omega_3\end{matrix})^T x=(x12x1x2x22x1x21)Tω=(ω11ω12ω22ω1ω2ω3)T
    此时x∗x^*x的维数为5,原维数为2
  • xxxnnn维的情况,判别函数为:
    d(x)=∑j=1nωjjxj2+∑j=1n−1∑k=j+1nωjkxjxk+∑j=1nωjxj+ωn+1 d(x) = \sum_{j = 1}^n\omega_{jj}x_j^2 + \sum_{j = 1}^{n - 1}\sum_{k = j + 1}^n\omega_{jk}x_jx_k + \sum_{j = 1}^n\omega_jx_j + \omega_{n + 1} d(x)=j=1nωjjxj2+j=1n1k=j+1nωjkxjxk+j=1nωjxj+ωn+1
    其中有平方项nnn个,二次项n(n−1)/2n(n - 1)/2n(n1)/2个,一次项nnn个,常数项111个,总项数为:
    n+n(n+1)/2+n+1=(n+1)(n+2)/2>n n + n(n + 1) / 2 + n + 1 = (n + 1)(n + 2)/2 \gt n n+n(n+1)/2+n+1=(n+1)(n+2)/2>n
    x∗x^*x的各分量的一般化形式为:
    fi(x)=xp1sxp2t,p1,p2=1,2,⋯ ,n,s,t=0,1 f_i(x) = x_{p_1}^sx_{p_2}^t,p_1,p_2 = 1,2,\cdots,n,s,t = 0,1 fi(x)=xp1sxp2t,p1,p2=1,2,,n,s,t=0,1

fi(x)为rrr次多项式函数

  • xxxnnn维模式:
    fi(x)=xp1s1xp2s2⋯xprsr,p1,p2,⋯ ,pr=1,2,⋯ ,n,s1,s2,⋯ ,sr=0,1 f_i(x) = x_{p_1}^{s_1}x_{p_2}^{s_2}\cdots x_{p_r}^{s_r},p_1,p_2,\cdots,p_r = 1,2,\cdots,n,s_1,s_2,\cdots,s_r = 0,1 fi(x)=xp1s1xp2s2xprsr,p1,p2,,pr=1,2,,n,s1,s2,,sr=0,1
    判别函数d(x)d(x)d(x)可以用以下递推式给出:
    常数项:d(0)(x)=ωn+1d^{(0)}(x) = \omega_{n + 1}d(0)(x)=ωn+1
    一次项:d(1)(x)=∑p1=1nωp1xp1+d(0)(x)d^{(1)}(x) = \sum_{p_1 = 1}^n\omega_{p_1}x_{p_1} + d^{(0)}(x)d(1)(x)=p1=1nωp1xp1+d(0)(x)
    二次项:d(2)(x)=∑p1=1n∑p2=p1nωp1p2xp1xp2+d(1)(x)d^{(2)}(x) = \sum_{p_1 = 1}^n\sum_{p_2 = p_1}^n\omega_{p_1p_2}x_{p_1}x_{p_2} + d^{(1)}(x)d(2)(x)=p1=1np2=p1nωp1p2xp1xp2+d(1)(x)
    rrr次项:d(r)(x)=∑p1=1n∑p2=p1n⋯∑pr=pr−1nωp1p2⋯prxp1xp2⋯xpr+d(r−1)(x)d^{(r)}(x) = \sum_{p_1 = 1}^n\sum_{p_2 = p_1}^n\cdots\sum_{p_r = p_{r - 1}}^n\omega_{p_1p_2\cdots p_r}x_{p_1}x_{p_2}\cdots x_{p_r} + d^{(r - 1)}(x)d(r)(x)=p1=1np2=p1npr=pr1nωp1p2prxp1xp2xpr+d(r1)(x)
    d(x)d(x)d(x)总项数为:
    Nω=Cn+rr=(n+r)!r!n! N_\omega = C_{n + r}^r = \frac{(n + r)!}{r!n!} Nω=Cn+rr=r!n!(n+r)!

分段线性判别函数

分段线性判别函数的设计:最小距离分类
μ1\mu_1μ1μ2\mu_2μ2为两个模式类ω1\omega_1ω1ω2\omega_2ω2的聚类中心,定义决策规则:
∣∣x−μ1∣∣2−∣∣x−μ2∣∣2{<0x∈ω1>0x∈ω2 ||x - \mu_1||^2 - ||x - \mu_2||^2 \begin{cases} \lt 0 & x \in \omega_1 \\ \gt 0 & x \in \omega_2 \end{cases} ∣∣xμ12∣∣xμ22{<0>0xω1xω2
这时的决策面是两类期望连线的垂直平分面,这样的分类器称为最小距离分类器

模式空间和权空间

设有判别函数:d(x)=ωTxd(x) = \omega^Txd(x)=ωTx,其中x=(x1 x2 ⋯  xn 1)T,ω=(ω1 ω2 ⋯ ωn ωn+1)Tx = (x_1\ x_2\ \cdots\ \ x_n\ 1)^T,\omega = (\omega_1\ \omega_2\ \cdots\ \omega_n\ \omega_{n + 1})^Tx=(x1 x2   xn 1)T,ω=(ω1 ω2  ωn ωn+1)T,判别界面为ωTx=0\omega^Tx = 0ωTx=0

Fisher线性判别

目的:在低维空间里解析上或计算上行得通的方法,在高维空间里往往行不通,降低维数有时就会成为处理实际问题的关键,考虑将ddd维空间的样本投影到一条直线上,形成一维空间,即把维数压缩到一维,我们需要根据实际情况找到一条最易分类的投影线,这就是Fisher判别方法要解决的基本问题
ddd维空间到一维空间的一般数学变换方法:假设有一集合Γ\GammaΓ包含NNNddd维样本x1,x2,⋯ ,xNx_1,x_2,\cdots,x_Nx1,x2,,xN,其中N1N_1N1个属于ω1\omega_1ω1类的样本记为子集Γ1\Gamma_1Γ1,N2N_2N2个属于ω2\omega_2ω2类的样本记为子集Γ2\Gamma_2Γ2,若对xnx_nxn的分量做线性组合可得标量:
yn=ωTxn,n=1,2,⋯ ,N y_n = \omega^Tx_n,n = 1,2,\cdots,N yn=ωTxn,n=1,2,,N
这样得到NNN个一维样本yny_nyn组成的集合,并可分为两个子集Γ1′,Γ2′\Gamma_1',\Gamma_2'Γ1,Γ2,实际上,ω\omegaω的值是无关紧要的,重要的是ω\omegaω的方向,方向直接影响分类效果,我们希望投影以后,在一维YYY空间中各类样本尽可能分得开些,即希望两类均值之差越大越好,同时希望各类样本内部尽量密集,即希望样本类内离散度越小越好

Fisher准则函数中的基本参量

dddXXX空间

  • 各类样本的均值向量mim_imi
    mi=1Ni∑x∈Γix,i=1,2 m_i = \frac{1}{N_i}\sum_{x \in \Gamma_i}x,i = 1,2 mi=Ni1xΓix,i=1,2
  • 样本类内离散度矩阵SiS_iSi和总样本类内离散度矩阵SωS_\omegaSω
    Si=∑x∈Γi(x−mi)(x−mi)T,i=1,2Sω=S1+S2 S_i = \sum_{x \in \Gamma_i}(x - m_i)(x - m_i)^T,i = 1,2 \\ S_\omega = S_1 + S_2 Si=xΓi(xmi)(xmi)T,i=1,2Sω=S1+S2
  • 样本类间离散度矩阵SbS_bSb
    Sb=(m1−m2)(m1−m2)T S_b = (m_1 - m_2)(m_1 - m_2)^T Sb=(m1m2)(m1m2)T
    SbS_bSb是对称半正定矩阵
    在一维YYY空间
  • 各类样本的均值
    m~i=1Ni∑y∈Γi′y,i=1,2 \tilde{m}_i = \frac{1}{N_i}\sum_{y \in \Gamma_i'}y,i = 1,2 m~i=Ni1yΓiy,i=1,2
  • 样本类内离散度S~i2\tilde{S}_i^2S~i2和总样本类内离散度S~ω\tilde{S}_\omegaS~ω
    S~i2=∑y∈Γi′(y−m~i)2,i=1,2S~ω=S~12+S~22 \tilde{S}_i^2 = \sum_{y \in \Gamma_i'}(y - \tilde{m}_i)^2,i = 1,2 \\ \tilde{S}_\omega = \tilde{S}_1^2 + \tilde{S}_2^2 S~i2=yΓi(ym~i)2,i=1,2S~ω=S~12+S~22

Fisher准则函数

JF(ω)=(m~1−m~2)2S~12+S~22 J_F(\omega) = \frac{(\tilde{m}_1 - \tilde{m}_2)^2}{\tilde{S}_1^2 + \tilde{S}_2^2} JF(ω)=S~12+S~22(m~1m~2)2
希望两类均值之差越大越好,同时希望各类样本内部尽量密集,即希望样本类内离散度越小越好,所以应该寻找使JF(ω)J_F(\omega)JF(ω)尽可能大的ω\omegaω作为投影方向,下面需要将JF(ω)J_F(\omega)JF(ω)变为ω\omegaω的显函数:
首先由各类样本的均值可推出:
m~i=1Ni∑y∈Γi′y=1Ni∑x∈ΓiωTx=ωT(1Ni∑x∈Γix)=ωTmi \tilde{m}_i = \frac{1}{N_i}\sum_{y \in \Gamma_i'}y = \frac{1}{N_i}\sum_{x \in \Gamma_i}\omega^Tx = \omega^T\left( \frac{1}{N_i}\sum_{x \in \Gamma_i}x\right) = \omega^Tm_i m~i=Ni1yΓiy=Ni1xΓiωTx=ωT(Ni1xΓix)=ωTmi
这样Fisher准则函数JF(ω)J_F(\omega)JF(ω)的分子可以写成:
(m~1−m~2)2=(ωTm1−ωTm2)2=(ωTm1−ωTm2)(ωTm1−ωTm2)T=(ωTm1−ωTm2)(m1Tω−m2Tω)=ωT(m1−m2)(m1−m2)Tω=ωTSbω \begin{aligned} (\tilde{m}_1 - \tilde{m}_2)^2 &= (\omega^Tm_1 - \omega^Tm_2)^2 \\ &= (\omega^Tm_1 - \omega^Tm_2)(\omega^Tm_1 - \omega^Tm_2)^T \\ &= (\omega^Tm_1 - \omega^Tm_2)(m_1^T\omega - m_2^T\omega) \\ &= \omega^T(m_1 - m_2)(m_1 - m_2)^T\omega = \omega^TS_b\omega \end{aligned} (m~1m~2)2=(ωTm1ωTm2)2=(ωTm1ωTm2)(ωTm1ωTm2)T=(ωTm1ωTm2)(m1Tωm2Tω)=ωT(m1m2)(m1m2)Tω=ωTSbω
再来考察JF(ω)J_F(\omega)JF(ω)的分母与ω\omegaω的关系:
S~i2=∑y∈Γi′(y−m~i)2=∑x∈Γi(ωTx−ωTmi)2=ωT[∑x∈Γi(x−mi)(x−mi)T]ω=ωTSiω \begin{aligned} \tilde{S}_i^2 &= \sum_{y \in \Gamma_i'}(y - \tilde{m}_i)^2 \\ &= \sum_{x \in \Gamma_i}(\omega^Tx - \omega^Tm_i)^2 \\ &= \omega^T\left[\sum_{x \in \Gamma_i}(x - m_i)(x - m_i)^T\right]\omega \\ &= \omega^TS_i\omega \end{aligned} S~i2=yΓi(ym~i)2=xΓi(ωTxωTmi)2=ωT[xΓi(xmi)(xmi)T]ω=ωTSiω
因此:
S~12+S~22=ωT(S1+S2)ω=ωTSωω \tilde{S}_1^2 + \tilde{S}_2^2 = \omega^T(S_1 + S_2)\omega = \omega^TS_\omega\omega S~12+S~22=ωT(S1+S2)ω=ωTSωω
带到JF(ω)J_F(\omega)JF(ω)
JF(ω)=ωTSbωωTSωω J_F(\omega) = \frac{\omega^TS_b\omega}{\omega^TS_\omega\omega} JF(ω)=ωTSωωωTSbω

最佳变换向量ω∗\omega^*ω的求取

首先使分母为非零常数:
ωTSωω=c≠0 \omega^TS_\omega\omega = c \neq 0 ωTSωω=c=0
定义拉格朗日函数为:
L(ω,λ)=ωTSbω−λ(ωTSωω) L(\omega,\lambda) = \omega^TS_b\omega - \lambda(\omega^TS_\omega\omega) L(ω,λ)=ωTSbωλ(ωTSωω)
上式对ω\omegaω求偏导数:
∂L(ω,λ)∂ω=2(Sbω−λSωω) \frac{\partial L(\omega,\lambda)}{\partial \omega} = 2(S_b\omega - \lambda S_\omega\omega) ωL(ω,λ)=2(SbωλSωω)
令偏导数为0:
Sbω∗−λSωω∗=0 S_b\omega^* - \lambda S_\omega\omega^* = 0 SbωλSωω=0
也就是:
Sbω∗=λSωω∗ S_b\omega^* = \lambda S_\omega\omega^* Sbω=λSωω
因为SωS_\omegaSω非奇异,将上式两边左乘Sω−1S_\omega^{-1}Sω1:
Sω−1Sbω∗=λω∗ S_\omega^{-1}S_b\omega^* = \lambda\omega^* Sω1Sbω=λω
上式为求一般矩阵Sω−1SbS_\omega^{-1}S_bSω1Sb的特征值问题,Sb=(m1−m2)(m1−m2)TS_b = (m_1 - m_2)(m_1 - m_2)^TSb=(m1m2)(m1m2)T
Sbω∗=(m1−m2)(m1−m2)Tω∗=(m1−m2)R S_b\omega^* = (m_1 - m_2)(m_1 - m_2)^T\omega^* = (m_1 - m_2)R Sbω=(m1m2)(m1m2)Tω=(m1m2)R
其中R=(m1−m2)Tω∗R = (m_1 - m_2)^T\omega^*R=(m1m2)Tω是一个标量,所以Sbω∗S_b\omega^*Sbω总是在向量(m1−m2)(m_1 - m_2)(m1m2)的方向上,因此:
λω∗=Sω−1(Sbω∗)=Sω−1(m1−m2)R \lambda\omega^* = S_\omega^{-1}(S_b\omega^*) = S^{-1}_\omega(m_1 - m_2)R λω=Sω1(Sbω)=Sω1(m1m2)R
得到:
ω∗=RλSω−1(m1−m2) \omega^* = \frac{R}{\lambda}S^{-1}_\omega(m_1 - m_2) ω=λRSω1(m1m2)
省略比例因子Rλ\frac{R}{\lambda}λR有:
ω∗=Sω−1(m1−m2) \omega^* = S^{-1}_\omega(m_1 - m_2) ω=Sω1(m1m2)

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐