1
模式识别与智能计算的MATLAB实现
1.4.3.3 2.3.3 势函数法
2.3.3 势函数法

势函数法是近邻法的一种变种。它是利用物理概念,通过训练模式对特征空间中的积累位势函数修正,使积累位势函数具有正确分类的作用,从而以其作为判别函数。由于位势函数是非线性的,所以由位势函数训练算法产生的判别函数是非线性的。该方法可用于非线性可分情况,也可用于线性可分情况。位势函数选取的灵活性使位势法有很强的分类能力。

现有分属两类ω1和ω2的模式集{xj},可以设想每个特征点上都具有某种形式的相同的能量(如电位)。令属于ω1类的模式特征点具有正的位能,于是在该点处能量达其最大值,随着与该点距离的增加,其周围空间中的能量分布逐渐减少,位能逐渐变低;令属于ω2的模式特征点具有负的位能,在该点处位能达其负的最大值,随着与该点距离的增加,负位能逐渐升高。特征点xj及其周围的位能分布可以用一个位势函数K(x,xj)表示,位势函数为零的等值面即为两类的阈值界面。

选择位势函数应满足三个条件:

①K(x,xj)=K(xj,x)。

②K(x,xj)是连续光滑函数。

③K(x,xj)是x与xj间距离的单值下降函数,当且仅当x=xj时,K(x,xj)达其最大值。当x与xj之间的距离趋于无穷大时,K(x,xj)趋于零。

通常选择的位势函数有:

alt

其中,α为常数,其作用是控制位势函数衰减的速度。当类间的界面越复杂时,α的选择应使位势函数衰减得越快。

下面给出产生具有分类能力的积累位势函数的算法。

设训练模式集{x1,x2,…,xN},分属ω1和ω2类;定义一个位势函数K(x,xj)。

①初始化。令特征空间中各点处的初始积累位势函数K0(x)=0,判错计数m=0。

②令j=1,输入训练模式x1,使积累位势函数

alt

③令j=j+1,输入xj,计算积累位势函数

Kj(x)=Kj-1(x)+αjK(x,xj

积累位势函数的调整规则为

alt

④若j<N,则返至③;若j=N,则检查是否有模式判错。若m=0,则结束,d(x)=Kj(x);若m≠0,则令j=0,m=0,返回③。

用于多类问题的技术要点是:

①初始化。令初始积累位势函数alt,表示类别。

②当xj+1∈ωi时,迭代规则是

alt (∀l≠i), 则alt (∀i)

alt, 则

alt

③在全部训练模式均满足当x∈ωi时,有alt,算法结束。