摘 要:提出一種基于核獨立分量分析的模糊核聚類神經網絡集成方法。該方法首先采用核獨立分量分析對高維數據進行特征提取;隨后用模糊核聚類算法根據相互獨立訓練出的多個神經網絡個體在驗證集上的輸出對其進行分類,并計算每一類中的所有個體在驗證集上的泛化誤差;然后取其中平均泛化誤差最小的神經網絡個體作為這一類的代表;最后經相對多數投票法得到集成的最終輸出。實驗結果表明,與其他集成方法相比,該方法具有較高的精確度和穩定性。
關鍵詞:核獨立分量分析; 特征提取; 模糊核聚類; 選擇性聚類集成
中圖分類號:TP18文獻標志碼:A
文章編號:1001-3695(2009)09-3318-03
doi:10.3969/j.issn.1001-3695.2009.09.033
Neural network ensemble based on KICA and KFCM
LI Yan, WANG Dong-feng, HAN Pu
(School of Control Science Engineering, North China Electric Power University, Baoding Hebei 071003, China)
Abstract:This paper proposed neural network ensemble based on KICA and KFCM. First analyzed the data with high dimension patterns using KICA to extract main features. Then used the KFCM algorithm to classify the individual neural network training independent by its output on validate sample and calculated the generalization errors of neural networks in each category to the validate set, according to which the individual neural network whose generalization error was minimum in its category will be selected and combined the predictions of the component networks through majority voting. The experiments show that the proposed approach has higher accuracy and stability compared with other ensemble methods.
Key words:kernel independent component analysis(KICA); features extraction; kernel fuzzy C-means clustering(KFCM);selective clustering ensemble
神經網絡技術由于其具有自學習、非線性模式識別、聯想能力、容錯性以及很強的泛函逼近能力,已在很多領域得到了成功的應用,但由于缺乏嚴密理論體系的指導,其應用效果往往取決于使用者的經驗。1990年,Hansen和Salamon開創性地提出了神經網絡集成(neural network ensemble, NNE)的方法,證明可以簡單地通過訓練多個神經網絡并將其結果進行合成,顯著地提高神經網絡系統的泛化能力。該方法易于使用且效果明顯,被視為一種非常有效的工程化神經計算方法。
神經網絡集成在解決高維數據的模式分類中普遍存在兩方面問題:a)面對數據的大量特征信息,如何選取最具有價值、分類能力最強的特征;b)如何將多個神經網絡的輸出結論進行結合以及如何生成集成中的個體網絡(包括如何有效地應用有限的樣本集)[1]。對子系統結果的集成技術主要有多數投票法、簡單平均值法、加權平均值法、基于遺傳算法的進化集成技術等[2]?,F有研究成果表明,當神經網絡集成中的個體網絡差異較大時,集成的效果較好。但如何獲得差異較大的個體網絡以及如何評價多個網絡之間的差異度,目前仍沒有較好的方法,而理論分析表明[3],對集成的個體進行必要的選擇能夠有效地降低神經網絡集成的泛化誤差。
核獨立分量分析(KICA)通過非線性映射,實現數據從輸入空間到特征空間的轉換;然后對映射后的數據進行ICA處理,因而具有很強的非線性處理能力。模糊核聚類(KFCM)技術利用核方法,在特征空間擴展模糊C-均值算法,對變換后的特征向量進行模糊聚類分析,使得組內對象的相似度最大而組間對象的相似度最小,從而發現對象中的內在特性。
1 基于KICA的特征提取
設x是原始空間Rn中可能被非線性混合的隨機向量,通過映射函數Φ:x→Φ(x)∈F,映射到一個特征空間F上。假定經非線性映射后的數據在特征空間上是線性可分的,則KICA算法的目標[4,5]是在特征空間上找到一個線性解混矩陣WΦ,由式(1)恢復各個獨立分量
S=WΦΦ(x)(1)
首先,在特征空間上對映射后的向量應用KPCA進行白化。假定Rn中的樣本數據x1,x2,…,xM,在F中滿足∑Mj=1Φ(xj)=0在特征空間F上的協方差算子
CΦt=(1/M)∑Mj=1Φ(xj)Φ(xj)T(2)
在有限維的特征空間里,也被稱為協方差矩陣。令Q=[Φ(x1),Φ(x2),…,Φ(xM)],則CΦt=(1/M)QQT,構造Gram矩陣R=QTQ,為一個M×M的矩陣,可以由一給定的核函數確定。
Rij=Φ(xi)TΦ(xj)=(Φ(xi)#8226;Φ(xj))=k(xi,xj)(3)
若采用高斯核函數,則
Rij=exp(-(xi-xj)2/(2σ2))(4)
計算R的m個最大的正特征值λ1≥λ2 ≥…≥λm相對應的正交特征向量γ1,γ2,…,γm,則CΦt的m個最大的正特征值為λ1/M,λ2/M,…,λm/M,相應的正交特征向量β1,β2,…,βm為
βj=(1/λj)Qγj;j=1,NA1AD,m(5)
V=(γ1,γ2,…,γm),Λ=diag(λ1,λ2,…,λm),則
B=(β1,β2,NA1AD,βm)=QVΛ-1/2(6)
BTCΦtB=diag(λ1/M,λ2/M,NA1AD,λm/M)=(1/M)Λ(7)
令P=B(Λ/M)-1/2=MQVΛ-1(8)
PTCΦtP=I(9)
其中:P為白化矩陣。
映射到特征空間的數據可由式(10)進行白化
y=PTΦ(x)=MΛ-1VTQTΦ(x)=MΛ-1VT[k(x1,x),NA1AD,k(xM,x)]T=MΛ-1VTRX(10)
在特征提取之前首先要按照以下方法進行去均值處理,令CM=(1/M)M×M為一個M×M矩陣,令C1=(1/M) M×1為一個M×1矩陣,可以對R和RX分別進行去均值處理。
R=R-CMR-RCM+CMRCM(11)
RX=RX-CMRX-RC1+CMRC1(12)
將式(10)的RX替換成RX,計算RX的m個最大的正特征值λ1≥λ2 ≥…≥λm相對應的正交特征向量γ1,γ2,…,γm,即
y=MΛ-1VTRX(13)
其中:V=(γ1,γ2,…,γm),Λ=diag(λ1,λ2,…,λm)。
在對數據白化后要做的是找到一個解混矩陣Wp,使s=Wpy, Wp是正交的。采用Hyvrinen提出的批處理固定點快速分離算法FastICA,步驟如下[5]:
a)選擇需要估計的分量的個數m,設迭代次數p←1;
b)隨機選擇一個初始權向量Wp;
c)令Wp=E{yg(W Tpy)}-E{g′(WTpy)}Wp,非線性函數g,g(y)=yexp(-y2/2);
d)Wp=Wp-∑p-1j=1(WTpWj)Wj;
e)令Wp=Wp/Wp;
f)若Wp不收斂,返回步驟c);
g)令p=p+1,如果p≤m,返回步驟b)。
由上述方法計算出解混矩陣Wp后,就可以得到一組獨立分量s,這樣特征空間中的樣本數據都可由s的線性組合來表示。線性組合的系數,即y在s上的投影系數就可以作為y的特征向量用來進行分類識別。
2 基于KFCM的神經網絡集成
2.1 模糊核聚類算法
KFCM算法的思想[6]同樣是利用非線性映射Φ(*)把輸入模式向量空間變換到一個高維特征空間;然后在該特征空間擴展模糊C-均值算法,對變換后的特征向量Φ(xi)進行模糊聚類分析。
令X={x1, x2,…, xn}為訓練樣本集,XRp,c為預定的類別數目,vi(i=1,2,…,c)為第i個聚類的中心,uik(i=1,2,…,c; k=1,2,…,n)是第k個樣本對第i類的隸屬度函數,且0≤uik≤1及0<∑nk=1uik Jm(U,v)=∑ci=1∑nk=1umikxk-vi2(14) 其中:U={uik},v={v1,v2,…, vc},m>1為模糊指數。其約束為 ∑ci=1uik=1,k=1,2,NA1AD,n(15) 現通過一個非線性映射Φ:χ→F(x∈Rp→Φ(x) ∈Rq,q>p,甚至可以為無窮維)將輸入空間χ變換至高維特征空間F;然后在特征空間F中進行聚類,則模糊核聚類算法的目標函數為 Jm(U,v)=∑ci=1∑nk=1umikΦ(xk)-Φ(vi)2(16) 定義核函數K(x,y),滿足K(x,y)=Φ(x)TΦ(y),將式(14)展開并進行核代入,有 Φ(xk)-Φ(vi)2=K(xk,xk)+K(vi,vi)-2K(xk,vi)(17) 將式(17)代入式(16),在式(15)的約束下優化(16)得 uik=(1/(K(xk,xk)+K(vi,vi)-2K(xk,vi)))1/m-1/(∑cj=1(1/(K(xk,xk)+K(vj,vj)-2K(xk,vj)))1/m-1)(18) vi=∑nk=1umikK(xk,vi)xk/∑nk=1umikK(xk,vi)(19) 其中:對于高斯核函數,有K(xk,vi)=K(xk,vi)。 KFCM算法描述如下: a)設定聚類數目c和參數m。 b)初始化各個聚類中心vi。 c)重復下面的運算,直到各個樣本的隸屬度值穩定:(a)用當前的聚類中心根據式(18)更新隸屬度;(b)用當前的聚類中心和隸屬度根據式(19)更新各個聚類中心。 本文中選擇高斯核函數,對于核函數的選擇還沒有一個通用的標準。其中高斯核函數是最常用的核函數,因為高斯核函數對應的特征空間是無窮維的,有限的樣本在該特征空間肯定是線性可分的。 2.2 神經網絡模糊核聚類集成 神經網絡選擇性集成的方法能夠取得比用全部個體集成更好的泛化性能[3],現在的問題是如何在已經獨立訓練出的神經網絡f1, f2,…, fm中,找到這m個網絡的一個子集Λ,使得由Λ組成的神經網絡集成具有最好的泛化能力。 本文采用神經網絡模糊核聚類集成(kernel fuzzy C-means clustering based neural network ensemble, KFCMNNE)的方法[7]來解決神經網絡集成中個體網絡的選取問題。即首先用模糊核聚類算法對由訓練樣本集相互獨立訓練出的m個神經網絡個體進行分類;然后計算每一類中的所有個體在驗證集上的泛化誤差,并取其中平均泛化誤差最小的神經網絡個體作為這一類的代表進行神經網絡集成,以保證個體網絡的精確度和差異度[8,9]。具體實現步驟如下: a)將m個神經網絡個體進行編號,并根據編號順序將各個神經網絡個體對每個驗證樣本的輸出h,以列向量的形式存放到輸出矩陣H中。 b)給定聚類數目c,對神經網絡的輸出矩陣H進行模糊核聚類分析,得到隸屬度矩陣U,矩陣U中的元素uij(i=1,2,…,c; j=1,2,…,m)表示第j個神經網絡屬于第i個聚類中心的隸屬度。 c)根據隸屬度矩陣U,可得每個神經網絡對所有c個類別的隸屬度的最大值,然后將相應的神經網絡歸入具有隸屬度最大值的類別。 d)計算每一類中的所有神經網絡個體在驗證集上的平均泛化誤差,選擇平均泛化誤差最小的神經網絡作為神經網絡集成的個體。 e)將每一類中選出的個體網絡對測試樣本的輸出經相對多數投票法得到集成的最終輸出Y。 3 實驗結果及分析 為了驗證本文提出的KICA_KFCMNNE方法的有效性,在UCI數據集上根據問題的類型、樣本大小等因素共選擇了五個數據集作為樣本集進行測試,相關說明如表1所示。 表1 用于實驗的UCI數據集 數據集示例數屬性數分類數數據集示例數屬性數分類數 breast-cancer286482sonar208602 credit-g1000612vehicle846184 lung-cancer32563---- 在KICA算法中,選擇核函數的類型為高斯徑向基函數,如式(20)所示,其中選取σ=2。KICA算法中其余參數的選取均采用Bach等人 [4]提供的軟件包中的默認參數。 K(xi,xj)=exp(-xi-xj2/(2σ2))(20) 由KICA方法對所有樣本數據進行特征提取并對特征提取后的新樣本數據集進行分層無放回隨機取樣,取出35%的數據作為訓練樣本集L;再取出35%的數據作為驗證樣本集V(注意,這里的L和V的交集為空集),剩余30%的數據作為測試樣本集T;然后,由L相互獨立地訓練出50個BP神經網絡。每個BP網絡均分為三層(即僅有一個隱含層),其中輸入層神經元數等于數據集的輸入變量個數,即屬性個數、隱層神經元個數各不相同,依據式(21)取值: n1=m+n+a(21) 其中:n1為隱層神經元數;m為輸出神經元數,即樣本數據集的分類個數;n為輸入神經元數。本文中取m+n的整數部分,a為[1,10]間的正整數(a=1,2,…, 10)。其中,隱層神經元的傳遞函數采用S型正切函數tansig,輸出層神經元的傳遞函數則采用logsig。BP網絡的訓練函數依次選擇BFGS準牛頓BP算法、Bayes規范化BP訓練函數、動量及自適應lrBP的梯度遞減訓練函數、Levenberg-Marquardt BP訓練函數和Fletcher-Powell連接梯度BP訓練函數。這樣就保證了50個BP網絡在初始權值、網絡結構或學習函數上的不同。BP算法的學習率均設為0.001,訓練結束的目標誤差為0.001。在訓練過程中,如果BP網絡的泛化誤差在五次連續運行中未發生變化,則該網絡的訓練被終止,避免出現過擬合問題。 本實驗KFCM算法中,聚類數目c=8,參數m=2,算法停止的條件為相鄰迭代步數間的隸屬度值的差的絕對值小于0.001,初始聚類中心取為0~1的隨機數,其中核函數也選用高斯核函數,并取σ=32;然后將50個神經網絡個體對V中每個驗證樣本的輸出h以列向量的形式按照編號順序存放到輸出矩陣H中,再由KFCM算法進行模糊核聚類分析并選擇最佳網絡;最后,將每個類別中的最佳BP網絡經相對多數投票法得到集成的最終輸出。實驗中,共采用五種不同的方法,其中NNE方法為傳統的神經網絡集成方法,KFCMNNE為樣本數據未經過KICA特征提取的模糊核聚類集成方法。每組數據集在每種方法下進行10次實驗,取其平均錯誤率作為分類精確度的評價指標,并計算每種方法在每組數據集中的最大與最小錯誤率之差ε,共五組,取其平均值ε作為穩定性的評價指標。運行結果列于表2中。 由表2可以看出,本文提出的基于核獨立分量分析的模糊核聚類神經網絡集成方法與其他幾種集成方法相比,具有較高的精確度和穩定性,這說明本文方法是有效的。KFCMNNE方法的分類錯誤率總是比KICA_KFCMNNE方法的錯誤率要高,并且KICA_KFCMNNE方法在實驗中的穩定性也是最好的,這說明在解決分類問題中對高維數據進行有效的特征提取是十分必要的。另外,在本文實驗研究中,KFCM算法中的聚類數目c選擇8是比較合適的。目前,有關聚類有效性的問題引起了很多學者的很大興趣,雖然已經提出了很多聚類有效性原則,但還沒有一個統一的標準來確定聚類數據的類別數目,因此如何確定聚類算法中數據的聚類數目問題仍是需要進一步研究和探索的。 4 結束語 1)在神經網絡集成用于解決高維數據的分類問題中,對大量特征信息進行特征提取是必要的,這樣可以提高神經網絡的學習效率和精確度,進一步提高集成的泛化能力。 2)模糊核聚類技術將子網絡的輸出映射到特征空間中進行模糊聚類分析,并選擇每類中的最佳網絡,保證了參與集成的子神經網絡之間的差異度和精確度,這種神經網絡集成的構造方法有效地降低了集成的分類錯誤率。仿真實驗結果表明,本文提出的基于核獨立分量分析的模糊核聚類集成(KICA_KFCMNNE)方法具有較高的精確度和穩定性。 參考文獻: [1]周志華,陳世福.神經網絡集成[J].計算機學報,2002, 25(1): 1-8. [2]SYLVESTER J, NITESH V C. Evolutionary ensemble creation and thinning[J]. Neural Networks, 2006, 7(16-21): 5148-5155. [3]ZHOU Zhi-hua, WU Jian-xin, TANG Wei. Ensembling neural networks: many could be better than all[J]. Artificial Intelligence, 2002, 137(1-2): 239-263. [4]BACH F R, JORDAN M I. Kernel independent component analysis [J]. Machine Learning Research, 2002, 3(1):1-48. [5]韋琦,魏新勞.應用核獨立分量分析的電力用戶負荷曲線估計[J]. 中國電機工程學報,2008, 28(16): 103-107. [6]張道強.基于核的聯想記憶及聚類算法的研究與應用[D].南京: 南京航空航天大學,2004:47-49. [7]普運偉,金煒東,朱明.核模糊C均值算法的聚類有效性研究[J]. 計算機科學,2007, 34(2): 207-210. [8]羅會蘭,孔繁勝,李一嘯.聚類集成中的差異性度量研究[J]. 計算機學報,2007, 30(8): 1315-1324. [9]李凱,黃厚寬.一種基于聚類技術的選擇性神經網絡集成方法[J].計算機研究與發展,2005, 42(4): 594-598.