嚴(yán)良濤 項(xiàng)曉麗
(1 中國人民解放軍91388部隊(duì) 湛江 524022)
(2 廣州杰賽科技股份有限公司 廣州 510220)
水下輻射聲場和水聲信道的復(fù)雜性是造成水下目標(biāo)識別難度大的根本原因[1]。這兩方面因素的影響使聲吶接收的噪聲信號都是相互耦合、調(diào)制甚至畸變的,因此研究者們提出了多種特征提取方法[2?4],試圖從不同角度得到噪聲信號的特征,但水下環(huán)境的復(fù)雜性決定了這些特征必然呈現(xiàn)強(qiáng)非線性[5]。在目標(biāo)識別過程中,為保證識別的正確率應(yīng)將多種特征加以組合,但這會造成數(shù)據(jù)維數(shù)過高,識別速率下降。為此,本文提出了基于核(Kernel)的k近鄰[6](k-nearest neighbor,k-NN)水下目標(biāo)識別方法。該方法利用主成分分析[7](Principal components analysis,PCA)對高維的特征矩陣進(jìn)行降維,解決目標(biāo)識別速率低的問題;利用Kernel技巧將降維后的非線性特征映射到高維空間并在該空間進(jìn)行k-NN分類識別,能夠有效減小非線性特征在低維度空間距離度量誤差,提高識別正確率。實(shí)際實(shí)驗(yàn)數(shù)據(jù)的驗(yàn)證結(jié)果表明:與k-NN相比,基于核的k-NN的目標(biāo)識別速率略低,但目標(biāo)的識別正確率得到較大提高;與BP神經(jīng)網(wǎng)絡(luò)分類器相比,基于核的k-NN的目標(biāo)識別正確率略低,但目標(biāo)的識別速率得到較大提高。
給定特征樣本x,將其從n維特征空間映射到m維特征空間:
其中,S1為原始n維特征空間,S2為m維映射特征空間。x為S1中的特征樣本,ψ(x)為對應(yīng)S2中的特征樣本。ψ為將S1映射到S2的非線性映射,φi為特征映射函數(shù),i=1,···,m。
對x,y∈S1,其核函數(shù)(Kernel)表示形式為
在k-NN中,原始空間特征樣本x和y之間的距離二范數(shù)為
假定將x和y映射至高維特征空間中,那么此時(shí)高維空間特征樣本ψ(x)和ψ(y)之間的距離二范數(shù)為
式(4)中存在內(nèi)積項(xiàng)?(ψ(x)?ψ(y)),(ψ(x)?ψ(y))?,根據(jù)1.1節(jié)可知,利用Kernel可實(shí)現(xiàn)對該內(nèi)積的直接計(jì)算。此時(shí):
由式(5)可知,高維特征空間樣本ψ(x)和ψ(y)之間的距離可通過Kernel在原始空間中直接計(jì)算,而不受維度和映射ψ的限制。
基于核的k-NN的實(shí)現(xiàn)過程如下:給定一個用于訓(xùn)練的特征數(shù)據(jù)集,將其映射到高維特征空間,對新的輸入實(shí)例,利用Kernel計(jì)算其在高維特征空間中最鄰近的k個實(shí)例,若這k個實(shí)例的大多數(shù)屬于某個類,就把該新實(shí)例劃分為這個類。本文選擇高斯核函數(shù)進(jìn)行運(yùn)算,具體過程如表1所示。
表1 基于核的k-NN的算法實(shí)現(xiàn)過程Table 1 The algorithm of k-NN based on Kernel
在上述實(shí)現(xiàn)過程中選擇的高斯核函數(shù)靈活度高,不同的核參數(shù)C可以將原始空間映射到任意維空間。在對核參數(shù)C的優(yōu)化過程中,C值過大,高次特征上的權(quán)重衰減快,所映射出空間相當(dāng)于原始空間的子空間;C值過小,可將任意數(shù)據(jù)映射至線性可分的空間,但這很可能帶來嚴(yán)重的過擬合問題[8],因此C值的優(yōu)化尤其重要。k值的確定采用在一定范圍內(nèi)[9](樣本量開平方附近)進(jìn)行枚舉計(jì)算確定。
將實(shí)測的166段水下目標(biāo)噪聲信號進(jìn)行篩選、標(biāo)記和梅爾頻率倒譜系數(shù)(Mel frequency cepstrum coefficient,MFCC)特征提取[10]后,得到120組特征數(shù)據(jù),分屬4類目標(biāo),每類30組,將其中20×4組作為訓(xùn)練樣本集D(22×80),其余10×4組作為測試樣本集T(22×40)。利用PCA對訓(xùn)練樣本集D進(jìn)行降維,具體過程如表2所示。
表2 PCA的降維過程Table 2 The algorithm of reducing dimensionality with PCA
這樣就可以將一個特征樣本x映射到一個d′維特征子空間上去,此空間的維度小于原始的d維空間:
本文取閾值t=95%,根據(jù)計(jì)算確定d′=16,其方差貢獻(xiàn)圖如圖1所示。
從圖1可看出,第一主元占方差總和的22%左右,前16個主元占總體方差的95%左右。
訓(xùn)練樣本集D(22×80)經(jīng)過PCA降維后就轉(zhuǎn)換成低維數(shù)據(jù)集Z(16×80),接下來就可以在矩陣Z中利用1.3節(jié)中的基于核的k-NN進(jìn)行分類。
圖1 PCA方差貢獻(xiàn)圖Fig.1 Variance contribution graph with PCA
選擇高斯Kernel進(jìn)行距離度量計(jì)算,不同核參數(shù)C值代表將數(shù)據(jù)集Z(16×80)={z1,z2,···,z80}映射到不同的高維空間。在最優(yōu)C值的高維空間內(nèi)同一類別的樣本最聚集,正確分類識別率最高。核參數(shù)C值的優(yōu)化屬于超參數(shù)優(yōu)化問題[11],本文采用sklearn.grid_search模塊下的GridSearchCV對象對C值進(jìn)行優(yōu)化,其主要應(yīng)用對象為小數(shù)據(jù)集,基本原理是對人工設(shè)置的超參數(shù)進(jìn)行網(wǎng)格搜索得到最優(yōu)值;若算法中存在多個超參數(shù)需優(yōu)化,那么依次選取對模型影響最大的參數(shù)調(diào)優(yōu),直到所有的參數(shù)調(diào)整完畢。本文中只涉及核參數(shù)C值的優(yōu)化,應(yīng)用上述方法得到的最優(yōu)值為45.62。
對k值在樣本量開平方附近進(jìn)行枚舉計(jì)算確定,得到在訓(xùn)練樣本中不同k值與識別正確率之間的關(guān)系如圖2所示。
圖2 k值與識別正確率之間的關(guān)系Fig.2 The relationship between k and recognition accuracy
從圖2可看出,k=8時(shí)識別正確率最高約為88%,實(shí)際值為88.23%。
根據(jù)2.1節(jié)和2.2節(jié)得到的最優(yōu)d′、C及k值,將測試樣本T(22×40)進(jìn)行分類并與各樣本類別標(biāo)簽進(jìn)行對比得出識別正確率,同時(shí)計(jì)算每個測試樣本識別過程的消耗時(shí)間t。與傳統(tǒng)線性k-NN和BP神經(jīng)網(wǎng)絡(luò)分類器的比較如表3所示。
表3 基于核的k-NN、k-NN和BP神經(jīng)網(wǎng)絡(luò)分類器性能比較Table 3 The performance comparison of k-NN based on Kernel,k-NN and BP neural network
由表3可知,基于核的k-NN分類器的平均識別正確率為85%,高于k-NN分類器11.25%,低于BP神經(jīng)網(wǎng)絡(luò)分類器2.5%;平均耗時(shí)為22.562 s,高于k-NN分類器4.144 s,低于BP神經(jīng)網(wǎng)絡(luò)分類器33.908 s。BP神經(jīng)網(wǎng)絡(luò)分類器平均識別正確率雖略高于本文基于核的k-NN分類器,但其平均耗時(shí)超出基于核的k-NN分類器一倍多;k-NN分類器的平均耗時(shí)略小于基于核的k-NN分類器,在可接受范圍內(nèi),但其平均識別正確率相對于基于核的k-NN分類器過低。所以得出結(jié)論:相對于k-NN分類器和BP神經(jīng)網(wǎng)絡(luò)分類器,基于核的k-NN分類器綜合性能更優(yōu)。
本文利用Kernel技巧將原始空間數(shù)據(jù)映射至高維特征空間,實(shí)現(xiàn)了原始空間的非線性耦合數(shù)據(jù)在高維特征空間的線性可分,有效解決了水下目標(biāo)特征數(shù)據(jù)非線性不可分的問題。并采用PCA對特征數(shù)據(jù)矩陣進(jìn)行降維,利用k-NN進(jìn)行分類識別,形成了基于核的k-NN水下目標(biāo)識別方法。通過與傳統(tǒng)k-NN和BP神經(jīng)網(wǎng)絡(luò)分類器對比,說明了基于核的k-NN分類器性能的優(yōu)越性。