势函数

势函数法

势函数主要用于确定分类面,其思想来源于物理。

 

1 势函数法基本思想

  • 假设要划分属于两种类别 ω1

ω2
的模式样本,这些样本可看成是分布在 n
维模式空间中的点 xk

  • 把属于 ω1
  • 的点比拟为某种能源点,在点上,电位达到峰值。
  • 随着与该点距离的增大,电位分布迅速减小,即把样本 xk 附近空间 x 点上的电位分布,看成是一个势函数 K(x,xk)
  • 对于属于 ω1
  • 的样本集群,其附近空间会形成一个”高地”,这些样本点所处的位置就是”山头”。
  • 同理,用电位的几何分布来看待属于 ω2
    • 的模式样本,在其附近空间就形成”凹地”。
    • 只要在两类电位分布之间选择合适的等高线,就可以认为是模式分类的判别函数。

     

    2. 判别函数的产生

    • 模式分类的判别函数可由分布在模式空间中的许多样本向量 { xk,k=1,2,,xkω1w2}
  • 的势函数产生。
  • 任意一个样本所产生的势函数以 K(x,xk) 表征,则判别函数 d(x) 可由势函数序列 K(x,x1),K(x,x2), 来构成,序列中的这些势函数相应于在训练过程中输入机器的训练模式样本 x1,x2,
  • 在训练状态,模式样本逐个输入分类器,分类器就连续计算相应的势函数,在第 k
  • 步迭代时的积累位势决定于在该步前所有的单独势函数的累加。
  • K(x) 表示积累位势函数,若加入的训练样本 xk+1
    • 是错误分类,则积累函数需要修改,若是正确分类,则不变。

     

    3.判别函数产生逐步分析

        设初始势函数 K0(x)=0

        第一步:加入第一个训练样本 x1

    则有  

    K1(x)={ K(x,x1)K(x,x1)ifx1ω1ifx1ω2

    这里第一步积累势函数 K1(x)

    描述了加入第一个样本时的边界划分。当样本属于 ω1 时,势函数为正;当样本属于 ω2

    时,势函数为负。

          第二步:加入第二个训练样本 x2

    则有

    1. x2ω1

    K1(x2)>0 ,或 x2ω2 K1(x2)<0 ,则分类正确,此时 K2(x)=K1(x)

  • ,即积累势函数不变。
  • x2ω1 K1(x2)<0 ,则 K2(x)=K1(x)+K(x,x2)=±K(x,x1)+K(x,x2)
  • x2ω2 K1(x2)>0
    1. ,则

    K2(x)=K1(x)K(x,x2)=±K(x,x1)K(x,x2)

         以上(ii)、(iii)两种情况属于错分。假如 x2

    处于 K1(x) 定义的边界的错误一侧,则当 xω1 时,积累位势 K2(x) 要加 K(x,x2) ,当 xω2 时,积累位势 K2(x) 要减 K(x,x2)

          第 K

    步:设 Kk(x) 为加入训练样本 x1,x2,,xk 后的积累位势,则加入第 (k+1) 个样本时, Kk+1(x)

    决定如下:

    1. 若 xk+1ω1

    Kk(xk+1)>0 ,或 xk+1ω2 Kk(xk+1)<0 ,则分类正确,此时 Kk+1(x)=Kk(x)

    ,即积累位势不变。

    2. 若 xk+1ω1

    Kk(xk+1)<0 ,则 Kk+1(x)=Kk(x)+K(x,xk+1)

    ;

    3. 若 xk+1ω2

    Kk(xk+1)>0 ,则 Kk+1(x)=Kk(x)K(x,xk+1)

    .

         因此,积累位势的迭代运算可写成: Kk+1(x)=Kk(x)+rk+1K(x,xk+1)

    rk+1

    为校正系数:     

    rk+1=0011ifxk+1ω1andKk(xk+1)>0ifxk+1ω2andKk(xk+1)<0ifxk+1ω1andKk(xk+1)<0ifxk+1ω2andKk(xk+1)>0

          若从给定的训练样本集 x1,x2,,xk,

    中去除不使积累位势发生变化的样本,即使 Kj(xj+1)>0 xj+1ω1 ,或 Kj(xj+1)<0 xj+1ω2 的那些样本,则可得一简化的样本序列 { x1,x2,,xj,}

    ,它们完全是校正错误的样本。此时,上述迭代公式可归纳为:

    Kk+1(x)=xjajK(x,xj)

    其中         

    aj={ +11forxjω1forxjω2

    也就是说,由 k+1

    个训练样本产生的积累位势,等于 ω1 类和 ω2

    类两者中的校正错误样本的总位势之差。

     

          从势函数可以看出,积累位势起着判别函数的作用:当 xk+1

    属于 ω1 时, Kk(xk+1)>0 ;当 xk+1 属于 ω2 时, Kk()xk+1<0

    ,则积累位势不做任何修改就可用作判别函数。

    由于一个模式样本的错误分类可造成积累位势在训练时的变化,因此势函数算法提供了确定 ω1

    ω2 两类判别函数的迭代过程。判别函数表达式:取 d(x)=K(x) ,则有: dk+1(x)=dk(x)+rk+1K(x,xk+1)

    .

     

    4 构成势函数的两种方式:

        第一类势函数和第二类势函数 

         第一类势函数

         可用对称的有限多项式展开,即:

    K(x,xk)=i=1mϕi(x)ϕi(xk)

    其中{ 《势函数》}在模式定义域内为正交函数集。将这类势函数代入判别函数,有:

    dk+1(x)=dk(x)+rk+1i=1mϕi(xk+1)ϕi(x)=dk(x)+i=1mrk+1ϕi(xk+1)ϕi(x)

    得迭代关系:

    dk+1(x)=i=1mCi(k+1)ϕi(x)

    其中

    Ci(k+1)=Ci(k)+rk+1ϕi(xk+1)

    因此,积累位势可写成:

    Kk+1(x)=i=1mCi(k+1)ϕi(x)

    $Ci$可用迭代式求得。 

         第二类势函数:

         选择双变量 x

    和$x_k$的对称函数作为势函数,即$K(x, x_k) = K(x_k, x)$,并且它可展开成无穷级数,例如:

    (a)  K(x,xk)=eαxxk2

    (b)   K(x,xk)=11+αxxk2

    , α

    是正常数

    (c)  K(x,xk)=sinαxxk2αxxk2

    《势函数》

     

    5.势函数法

    实例1:用第一类势函数的算法进行分类

    1. 选择合适的正交函数集{ 《势函数》}

    选择Hermite多项式,其正交域为(-∞, +∞),其一维形式是

    《势函数》

    《势函数》《势函数》

    其正交性:《势函数》

    其中,Hk(x)前面的乘式为正交归一化因子,为计算简便可省略。因此,Hermite多项式前面几项的表达式为

    H0(x)=1,        H1(x)=2x,        H2(x)=4x2-2,

    H3(x)=8x3-12x,        H4(x)=16x4-48x2+12

    1. 建立二维的正交函数集

    二维的正交函数集可由任意一对一维的正交函数组成,这里取四项最低阶的二维的正交函数

    《势函数》

    《势函数》

    《势函数》

    《势函数》

    1. 生成势函数

    按第一类势函数定义,得到势函数

    《势函数》

    其中《势函数》《势函数》

    1. 通过训练样本逐步计算累积位势K(x)

    给定训练样本:ω1类为x=(1 0)T, x=(0 -1)T

    ω2类为x=(-1 0)T, x=(0 1)T

    累积位势K(x)的迭代算法如下

    第一步:取x=(1 0)T∈ω1,故

    K1(x)=K(x, x)=1+4x1·1+4x2·0+16x1x2·1·0=1+4x1

    第二步:取x=(0 -1)T∈ω1,故K1(x)=1+4·0=1

    因K1(x)>0且x∈ω1,故K2(x)=K1(x)=1+4x1

    第三步:取x=(-1 0)T∈ω2,故K2(x)=1+4·(-1)=-3

    因K2(x)<0且x∈ω2,故K3(x)=K2(x)=1+4x1

    第四步:取x=(0 1)T∈ω2,故K3(x)=1+4·0=1

    因K3(x)>0且x∈ω2

    故K4(x)=K3(x)-K(x,x)=1+4x1-(1+4x2)=4x1-4x2

    将全部训练样本重复迭代一次,得

    第五步:取x=x=(1 0)T∈ω1,K4(x)=4

    故K5(x)=K4(x)=4x1-4x2

    第六步:取x=x=(0 -1)T∈ω1,K5(x)=4

    故K6(x)=K5(x)=4x1-4x2

    第七步:取x=x=(-1 0)T∈ω2,K6(x)=-4

    故K7(x)=K6(x)=4x1-4x2

    第八步:取x=x=(0 1)T∈ω2,K7(x)=-4

    故K8(x)=K7(x)=4x1-4x2

    以上对全部训练样本都能正确分类,因此算法收敛于判别函数

    d(x)= 4x1-4x2

    《势函数》

     

    实例2:用第二类势函数的算法进行分类

     

     

    选择指数型势函数,取α=1,在二维情况下势函数为

    《势函数》

    这里:ω1类为x=(0 0)T, x=(2 0)T

    ω2类为x=(1 1)T, x=(1 -1)T

    可以看出,这两类模式是线性不可分的。算法步骤如下:

    第一步:取x=(0 0)T∈ω1,则

    K1(x)=K(x,x)=《势函数》

    第二步:取x=(2 0)T∈ω1

    因K1(x)=e-(4+0)=e-4>0,

    故K2(x)=K1(x)=《势函数》

    第三步:取x=(1 1)T∈ω2

    因K2(x)=e-(1+1)=e-2>0,

    故K3(x)=K2(x)-K(x,x)=《势函数》

    第四步:取x=(1 -1)T∈ω2

    因K3(x) =e-(1+1)-e-(0+4)=e-2-e-4>0,

    故K4(x)=K3(x)-K(x,x)

    =《势函数》

    需对全部训练样本重复迭代一次

    第五步:取x=x=(0 0)T∈ω1,K4(x)=e0-e-2-e-2=1-2e-2>0

    故K5(x)=K4(x)

    第六步:取x=x=(2 0)T∈ω1,K5(x)=e-4-e-2-e-2=e-4-2e-2<0

    故K6(x)=K5(x)+K(x,x)

    =《势函数》

    第七步:取x=x=(1 1)T∈ω2,K6(x)=e-2-e0-e-4+e-2=2e-2-e-4-1<0

    故K7(x)=K6(x)

    第八步:取x=x=(1 -1)T∈ω2,K7(x)=e-2-e-4-e0+e-2=2e-2-e-4-1<0

    故K8(x)=K7(x)

    第九步:取x=x=(0 0)T∈ω1,K8(x)=e0-e-2-e-2+e-4=1+e-4-2e-2>0

    故K9(x)=K8(x)

    第十步:取x=x=(2 0)T∈ω1,K9(x)=e-4-e-2-e-2+e0=1+e-4-2e-2>0

    故K10(x)=K9(x)

    经过上述迭代,全部模式都已正确分类,因此算法收敛于判别函数

    《势函数》

    《势函数》

    势函数分类算法评价:

    1.用第二类势函数,当训练样本维数和数目都较高时,需要计算和存储的指数项较多。

    2. 正因为势函数由许多新项组成,因此有很强的分类能力

    原文作者:Yaroo
    原文地址: https://blog.csdn.net/Yaroo/article/details/65626708
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞