1. 程式人生 > >【模式識別與機器學習】——3.9勢函式法:一種確定性的非線性分類方法

【模式識別與機器學習】——3.9勢函式法:一種確定性的非線性分類方法

目的

  用勢函式的概念來確定判別函式和劃分類別介面。

基本思想

  假設要劃分屬於兩種類別ω1和ω2的模式樣本,這些樣本可看成是分佈在n維模式空間中的點xk。 把屬於ω1的點比擬為某種能源點,在點上,電位達到峰值。 隨著與該點距離的增大,電位分佈迅速減小,即把樣本xk附近空間x點上的電位分佈,看成是一個勢函式K(x, xk)。 對於屬於ω1的樣本叢集,其附近空間會形成一個“高地”,這些樣本點所處的位置就是“山頭”。 同理,用電位的幾何分佈來看待屬於ω2的模式樣本,在其附近空間就形成“凹地”。 只要在兩類電位分佈之間選擇合適的等高線,就可以認為是模式分類的判別函式。

3.9.1 判別函式的產生

  模式分類的判別函式可由分佈在模式空間中的許多樣本向量{xk, k=1,2,…且 }的勢函式產生。 任意一個樣本所產生的勢函式以K(x, xk)表徵,則判別函式d(x)可由勢函式序列K(x, x1), K(x, x2),…來構成,序列中的這些勢函式相應於在訓練過程中輸入機器的訓練模式樣本x1,x2,…。 在訓練狀態,模式樣本逐個輸入分類器,分類器就連續計算相應的勢函式,在第k步迭代時的積累位勢決定於在該步前所有的單獨勢函式的累加。 以K(x)表示積累位勢函式,若加入的訓練樣本xk+1是錯誤分類,則積累函式需要修改,若是正確分類,則不變。 

  從勢函式可以看出,積累位勢起著判別函式的作用 當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 )

3.9.2 勢函式的選擇

選擇勢函式的條件:一般來說,若兩個n維向量x和xk的函式K(x, xk)同時滿足下列三個條件,則可作為勢函式。 K(x, xk)= K(xk, x),並且當且僅當x=xk時達到最大值; 當向量x與xk的距離趨於無窮時,K(x, xk)趨於零; K(x, xk)是光滑函式,且是x與xk之間距離的單調下降函式。

勢函式法

例項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

(2) 建立二維的正交函式集

二維的正交函式集可由任意一對一維的正交函式組成,這裡取四項最低階的二維的正交函式

(3) 生成勢函式

按第一類勢函式定義,得到勢函式

 

其中,

(4) 通過訓練樣本逐步計算累積位勢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)

經過上述迭代,全部模式都已正確分類,因此演算法收斂於判別函式

討論

用第二類勢函式,當訓練樣本維數和數目都較高時,需要計算和儲存的指數項較多。 正因為勢函式由許多新項組成,因此有很強的分類能力。