线性判别函数简单,容易实现; 非线性判别函数复杂,不容易实现; 若能将非线性判别函数转换为线性判别函数,则有利于模式分类的实现。

基本思想

  设有一个训练用的模式集{x},在模式空间x中线性不可分,但在模式空间x*中线性可分,其中x*的各个分量是x的单值实函数,x*的维数k高于x的维数n,即若取  x* = (f1(x), f2(x), …., fk(x)), k>n 则分类界面在x*中是线性的,在x中是非线性的,此时只要将模式x进行非线性变换,使之变换后得到维数更高的模式x*,就可以用线性判别函数来进行分类。

广义线性判别函数的描述

一个非线性判别函数可如下表示:

 【模式识别与机器学习】——3.2广义线性判别函数

其中{fi(x), i = 1,2,…,k}是模式x的单值实函数。若定义成广义形式:

x* = (f1(x), f2(x), …, fk(x), 1)T

此时有:

d(x*) = wTx*,其中w = (w1, w2, …, wk, wk+1)T

该式表明,非线性判别函数已被变换成广义线性,因此只讨论线性判别函数不会失去一般性意义。

 线性判别函数

(1)取fi(x)为一次函数

例如xi,则变换后的模式x*=x,x*的维数k为x的维数n,此时广义线性化后的判别式仍为:d(x) = wTx + wn+1

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

1.x是二维的情况,即x =(x1 x2)T。若原判别函数为:

 【模式识别与机器学习】——3.2广义线性判别函数

要线性化为d(x*) = wTx*,须定义:

 【模式识别与机器学习】——3.2广义线性判别函数

【模式识别与机器学习】——3.2广义线性判别函数

此时,只要把模式空间x*中的分量定义成x的单值实函数,x*即变成线性可分。此时x*的维数(这里为6)大于x的维数(这里为2)。

2.x是n维的情况,此时原判别函数设为:

【模式识别与机器学习】——3.2广义线性判别函数

式中各项的组成应包含x的各个分量的二次项、一次项和常数项,其中平方项n个,二次项n(n-1)/2个,一次项n个,常数项一个

其总项数为:n + n(n-1)/2 + n + 1 = (n+1)(n+2)/2 > n

显然,对于d(x*) = wTx*,x*的维数大于x的维数,w分量的数目也与x*的维数相应。x*的各分量的一般化形式为:

 【模式识别与机器学习】——3.2广义线性判别函数

(3)fi(x)选用r次多项式函数, x是n维的情况

1.定义描述

【模式识别与机器学习】——3.2广义线性判别函数

【模式识别与机器学习】——3.2广义线性判别函数

【例如】

【模式识别与机器学习】——3.2广义线性判别函数

2.总项数讨论

【模式识别与机器学习】——3.2广义线性判别函数

【说明】

  d(x)的项数随r和n的增加会迅速增大,即使原来模式x的维数不高,若采用次数r较高的多项式来变换,也会使变换后的模式x*的维数很高,给分类带来很大困难。

   实际情况可只取r=2,或只选多项式的一部分,例如r=2时只取二次项,略去一次项,以减少x*的维数。

(4) 广义线性判别实例

 【模式识别与机器学习】——3.2广义线性判别函数

【模式识别与机器学习】——3.2广义线性判别函数

【模式识别与机器学习】——3.2广义线性判别函数

【模式识别与机器学习】——3.2广义线性判别函数