模式识别系统的主要作用:判别各个模式(样本)所属的类别
判别函数进行分类依赖的因素:
若 x x x是二维模式样本 x = ( x 1 , x 2 ) T x = (x_1,x_2)^T x=(x1,x2)T,用 x 1 , x 2 x_1,x_2 x1,x2作为坐标分量,可以画出模式的平面图,若这些分属于 ω 1 , ω 2 \omega_1,\omega_2 ω1,ω2两类的模式可以用一个直线方程 d ( x ) = 0 d(x) = 0 d(x)=0来划分:
d ( x ) = ω 1 x 1 + ω 2 x 2 + ω 3 = 0 d(x) = \omega_1x_1 + \omega_2x_2 + \omega_3 = 0 d(x)=ω1x1+ω2x2+ω3=0
其中 x 1 , x 2 x_1,x_2 x1,x2为坐标分量, ω 1 , ω 2 , ω 3 \omega_1,\omega_2,\omega_3 ω1,ω2,ω3为参数方程,则将一个不知类别的模式代入 d ( x ) d(x) d(x),有:
d ( x ) { > 0 x ∈ ω 1 < 0 x ∈ ω 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 ) = 0 d(x) = 0 d(x)=0称为判别函数。
d ( x ) = ω 1 x 1 + ω 2 x 2 + ⋯ + ω n x n + ω n + 1 = ω 0 T x + ω 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 = ( x 1 , x 2 , ⋯ , x n ) T x = (x_1,x_2,\cdots,x_n)^T x=(x1,x2,⋯,xn)T, d ( x ) d(x) d(x)还可以表示为:
d ( x ) = ω T x d(x) = \omega^Tx d(x)=ωTx
其中 x = ( x 1 , x 2 , ⋯ , x n , 1 ) T x = (x_1,x_2,\cdots,x_n,1)^T x=(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称为增广权向量
一个训练用的模式集 { x } \{x\} {x},在模式集空间 x x x中线性不可分,但在模式空间 x ∗ x^* x∗中线性可分,其中 x ∗ x^* x∗的各个分量是 x x x的单值实函数, x ∗ x^* x∗的维数 k k k高于 x x x的维数 n n n,即若取
x ∗ = ( f 1 ( x ) , f 2 ( x ) , ⋯ , f k ( 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∗中是线性的,在 x x x中是非线性的,此时只要将模式 x x x进行非线性变换,使之变换后得到维数更高的模式 x ∗ x^* x∗,就可以用线性判别函数来进行分类
一个非线性判别函数可如下表示:
d ( x ) = ω 1 f 1 ( x ) + ω 2 f 2 ( x ) + ⋯ + ω k f k ( 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
其中 { f i ( x ) , i = 1 , 2 , ⋯ , k } \{f_i(x),i = 1,2,\cdots,k\} {fi(x),i=1,2,⋯,k}是模式 x x x的单值实函数,若定义为广义形式:
x ∗ = ( f 1 ( x ) , f 2 ( x ) , ⋯ , f k ( 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 ∗ ) = ω T x ∗ 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)
分段线性判别函数的设计:最小距离分类
设 μ 1 \mu_1 μ1和 μ 2 \mu_2 μ2为两个模式类 ω 1 \omega_1 ω1和 ω 2 \omega_2 ω2的聚类中心,定义决策规则:
∣ ∣ x − μ 1 ∣ ∣ 2 − ∣ ∣ x − μ 2 ∣ ∣ 2 { < 0 x ∈ ω 1 > 0 x ∈ ω 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−μ1∣∣2−∣∣x−μ2∣∣2{<0>0x∈ω1x∈ω2
这时的决策面是两类期望连线的垂直平分面,这样的分类器称为最小距离分类器
设有判别函数: d ( x ) = ω T x d(x) = \omega^Tx d(x)=ωTx,其中 x = ( x 1 x 2 ⋯ x n 1 ) T , ω = ( ω 1 ω 2 ⋯ ω n ω n + 1 ) T x = (x_1\ x_2\ \cdots\ \ x_n\ 1)^T,\omega = (\omega_1\ \omega_2\ \cdots\ \omega_n\ \omega_{n + 1})^T x=(x1 x2 ⋯ xn 1)T,ω=(ω1 ω2 ⋯ ωn ωn+1)T,判别界面为 ω T x = 0 \omega^Tx = 0 ωTx=0
目的:在低维空间里解析上或计算上行得通的方法,在高维空间里往往行不通,降低维数有时就会成为处理实际问题的关键,考虑将 d d d维空间的样本投影到一条直线上,形成一维空间,即把维数压缩到一维,我们需要根据实际情况找到一条最易分类的投影线,这就是Fisher判别方法要解决的基本问题
从 d d d维空间到一维空间的一般数学变换方法:假设有一集合 Γ \Gamma Γ包含 N N N个 d d d维样本 x 1 , x 2 , ⋯ , x N x_1,x_2,\cdots,x_N x1,x2,⋯,xN,其中 N 1 N_1 N1个属于 ω 1 \omega_1 ω1类的样本记为子集 Γ 1 \Gamma_1 Γ1, N 2 N_2 N2个属于 ω 2 \omega_2 ω2类的样本记为子集 Γ 2 \Gamma_2 Γ2,若对 x n x_n xn的分量做线性组合可得标量:
y n = ω T x n , n = 1 , 2 , ⋯ , N y_n = \omega^Tx_n,n = 1,2,\cdots,N yn=ωTxn,n=1,2,⋯,N
这样得到 N N N个一维样本 y n y_n yn组成的集合,并可分为两个子集 Γ 1 ′ , Γ 2 ′ \Gamma_1',\Gamma_2' Γ1′,Γ2′,实际上, ω \omega ω的值是无关紧要的,重要的是 ω \omega ω的方向,方向直接影响分类效果,我们希望投影以后,在一维 Y Y Y空间中各类样本尽可能分得开些,即希望两类均值之差越大越好,同时希望各类样本内部尽量密集,即希望样本类内离散度越小越好
在 d d d维 X X X空间
J F ( ω ) = ( m ~ 1 − m ~ 2 ) 2 S ~ 1 2 + S ~ 2 2 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~1−m~2)2
希望两类均值之差越大越好,同时希望各类样本内部尽量密集,即希望样本类内离散度越小越好,所以应该寻找使 J F ( ω ) J_F(\omega) JF(ω)尽可能大的 ω \omega ω作为投影方向,下面需要将 J F ( ω ) J_F(\omega) JF(ω)变为 ω \omega ω的显函数:
首先由各类样本的均值可推出:
m ~ i = 1 N i ∑ y ∈ Γ i ′ y = 1 N i ∑ x ∈ Γ i ω T x = ω T ( 1 N i ∑ x ∈ Γ i x ) = ω T m i \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∈Γi′∑y=Ni1x∈Γi∑ωTx=ωT(Ni1x∈Γi∑x)=ωTmi
这样Fisher准则函数 J F ( ω ) J_F(\omega) JF(ω)的分子可以写成:
( m ~ 1 − m ~ 2 ) 2 = ( ω T m 1 − ω T m 2 ) 2 = ( ω T m 1 − ω T m 2 ) ( ω T m 1 − ω T m 2 ) T = ( ω T m 1 − ω T m 2 ) ( m 1 T ω − m 2 T ω ) = ω T ( m 1 − m 2 ) ( m 1 − m 2 ) T ω = ω T S b ω \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~1−m~2)2=(ωTm1−ωTm2)2=(ωTm1−ωTm2)(ωTm1−ωTm2)T=(ωTm1−ωTm2)(m1Tω−m2Tω)=ωT(m1−m2)(m1−m2)Tω=ωTSbω
再来考察 J F ( ω ) J_F(\omega) JF(ω)的分母与 ω \omega ω的关系:
S ~ i 2 = ∑ y ∈ Γ i ′ ( y − m ~ i ) 2 = ∑ x ∈ Γ i ( ω T x − ω T m i ) 2 = ω T [ ∑ x ∈ Γ i ( x − m i ) ( x − m i ) T ] ω = ω T S i ω \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′∑(y−m~i)2=x∈Γi∑(ωTx−ωTmi)2=ωT[x∈Γi∑(x−mi)(x−mi)T]ω=ωTSiω
因此:
S ~ 1 2 + S ~ 2 2 = ω T ( S 1 + S 2 ) ω = ω T S ω ω \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ωω
带到 J F ( ω ) J_F(\omega) JF(ω)
J F ( ω ) = ω T S b ω ω T S ω ω J_F(\omega) = \frac{\omega^TS_b\omega}{\omega^TS_\omega\omega} JF(ω)=ωTSωωωTSbω
首先使分母为非零常数:
ω T S ω ω = c ≠ 0 \omega^TS_\omega\omega = c \neq 0 ωTSωω=c=0
定义拉格朗日函数为:
L ( ω , λ ) = ω T S b ω − λ ( ω T S ω ω ) L(\omega,\lambda) = \omega^TS_b\omega - \lambda(\omega^TS_\omega\omega) L(ω,λ)=ωTSbω−λ(ωTSωω)
上式对 ω \omega ω求偏导数:
∂ L ( ω , λ ) ∂ ω = 2 ( S b ω − λ S ω ω ) \frac{\partial L(\omega,\lambda)}{\partial \omega} = 2(S_b\omega - \lambda S_\omega\omega) ∂ω∂L(ω,λ)=2(Sbω−λSωω)
令偏导数为0:
S b ω ∗ − λ S ω ω ∗ = 0 S_b\omega^* - \lambda S_\omega\omega^* = 0 Sbω∗−λSωω∗=0
也就是:
S b ω ∗ = λ S ω ω ∗ S_b\omega^* = \lambda S_\omega\omega^* Sbω∗=λSωω∗
因为 S ω S_\omega Sω非奇异,将上式两边左乘 S ω − 1 S_\omega^{-1} Sω−1:
S ω − 1 S b ω ∗ = λ ω ∗ S_\omega^{-1}S_b\omega^* = \lambda\omega^* Sω−1Sbω∗=λω∗
上式为求一般矩阵 S ω − 1 S b S_\omega^{-1}S_b Sω−1Sb的特征值问题, S b = ( m 1 − m 2 ) ( m 1 − m 2 ) T S_b = (m_1 - m_2)(m_1 - m_2)^T Sb=(m1−m2)(m1−m2)T
S b ω ∗ = ( m 1 − m 2 ) ( m 1 − m 2 ) T ω ∗ = ( m 1 − m 2 ) R S_b\omega^* = (m_1 - m_2)(m_1 - m_2)^T\omega^* = (m_1 - m_2)R Sbω∗=(m1−m2)(m1−m2)Tω∗=(m1−m2)R
其中 R = ( m 1 − m 2 ) T ω ∗ R = (m_1 - m_2)^T\omega^* R=(m1−m2)Tω∗是一个标量,所以 S b ω ∗ S_b\omega^* Sbω∗总是在向量 ( m 1 − m 2 ) (m_1 - m_2) (m1−m2)的方向上,因此:
λ ω ∗ = S ω − 1 ( S b ω ∗ ) = S ω − 1 ( m 1 − m 2 ) R \lambda\omega^* = S_\omega^{-1}(S_b\omega^*) = S^{-1}_\omega(m_1 - m_2)R λω∗=Sω−1(Sbω∗)=Sω−1(m1−m2)R
得到:
ω ∗ = R λ S ω − 1 ( m 1 − m 2 ) \omega^* = \frac{R}{\lambda}S^{-1}_\omega(m_1 - m_2) ω∗=λRSω−1(m1−m2)
省略比例因子 R λ \frac{R}{\lambda} λR有:
ω ∗ = S ω − 1 ( m 1 − m 2 ) \omega^* = S^{-1}_\omega(m_1 - m_2) ω∗=Sω−1(m1−m2)