張金亮,李東平,周靖
(湖北汽車工業(yè)學(xué)院 電氣與信息工程學(xué)院,湖北 十堰442002)
被動(dòng)聲源定位是一種運(yùn)用聲學(xué)原理、使用電子設(shè)備接收和處理聲學(xué)信號(hào)以檢測鎖定目標(biāo)的技術(shù)。被動(dòng)聲源定位技術(shù)發(fā)展至今已有100多年,最早以1906 年的聲吶系統(tǒng)為世人所知,隨著技術(shù)的發(fā)展,利用聲源的振動(dòng)、頻率、聲壓級(jí)、傳播等特性,可以較好地實(shí)現(xiàn)聲源定位并用于系統(tǒng)異常情況的識(shí)別和診斷[1],也為深海探測、水下通訊、偵測敵軍等提供了可能。隨著電磁干擾、隱身技術(shù)、反輻射材料相關(guān)技術(shù)的發(fā)展,傳統(tǒng)的主動(dòng)探測面臨巨大的挑戰(zhàn)?;邴溈孙L(fēng)陣列探測的主動(dòng)探測技術(shù)憑借其隱蔽性好、成本低、定位精度高等獨(dú)特的優(yōu)勢,受到許多研究人員的青睞,隨著現(xiàn)代科技的不斷突破,該技術(shù)在軍事領(lǐng)域、工業(yè)工程、環(huán)境監(jiān)測以及日常民用領(lǐng)域都有著廣泛的應(yīng)用[2]。Brandstein等人于1996年首次將麥克風(fēng)陣列信號(hào)應(yīng)用于人的聲音定位和追蹤,基于一系列的研究,傳統(tǒng)聲源定位方法分為基于時(shí)延估計(jì)的聲源定位算法[3-4]、基于高分辨率譜估計(jì)的聲源定位算法[5]、基于可控波束形成的聲源定位算法[6]。傳統(tǒng)的聲源定位盡管部分算法易于實(shí)現(xiàn),計(jì)算量小,但其在復(fù)雜噪聲環(huán)境或多聲源場景下效果較差,魯棒性也有待進(jìn)一步提高[7-8]。機(jī)器學(xué)習(xí)從已有案例中學(xué)習(xí)知識(shí)和經(jīng)驗(yàn),針對各種情況建立起不同的模型,并用來推斷實(shí)際問題。與常規(guī)的解決策略相比,這種學(xué)習(xí)算法的新穎之處在于它特別重視樣本數(shù)據(jù),即使用數(shù)據(jù)驅(qū)動(dòng)。傳統(tǒng)聲源定位方法并不使用預(yù)先獲得的先驗(yàn)信息,某些情況下會(huì)局限于預(yù)定的區(qū)域內(nèi),機(jī)器學(xué)習(xí)算法利用分類識(shí)別以及其高度泛化能力對聲源進(jìn)行定位,可以較好地解決傳統(tǒng)方法存在的一些問題,不僅有更強(qiáng)的魯棒性,而且能夠在麥克風(fēng)無法收到直達(dá)聲時(shí)依舊有效。近年來,基于支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)等機(jī)器學(xué)習(xí)的聲源定位算法得到廣泛關(guān)注。文中旨在繼續(xù)對聲源定位模型中機(jī)器學(xué)習(xí)應(yīng)用展開研究,采用基于麥克風(fēng)陣列進(jìn)行聲源測量和數(shù)據(jù)采集,并對數(shù)據(jù)集進(jìn)行篩選和處理,重點(diǎn)對機(jī)器學(xué)習(xí)中線性回歸、決策樹、多層感知機(jī)、集成學(xué)習(xí)4 種算法進(jìn)行分析,并應(yīng)用于聲源定位中,使用Python 機(jī)器學(xué)習(xí)工具箱sklearn 對4 種不同的算法進(jìn)行實(shí)現(xiàn),并對不同算法的性能和特點(diǎn)進(jìn)行分析。
結(jié)合實(shí)際應(yīng)用場景,考慮點(diǎn)聲源的情形,由聲音傳播模型可知,點(diǎn)聲源的波陣面為球面,聲波在某點(diǎn)處的聲壓與該點(diǎn)至聲源中心的距離成反比,在被動(dòng)聲源定位系統(tǒng)中,往往需采用3個(gè)或者3個(gè)以上接收設(shè)備測量聲源相關(guān)的信息[9-10]。在理想環(huán)境中,麥克風(fēng)陣列接收的信號(hào)視為直達(dá)聲音信號(hào)。在聲源發(fā)出聲波之后,麥克風(fēng)陣列的每個(gè)陣列元件接收聲學(xué)信號(hào)用于后續(xù)處理。圖1展示了由3個(gè)麥克風(fēng)構(gòu)成的理想模型示意圖。若以3 個(gè)接收端為圓心,當(dāng)接收到的聲波傳遞時(shí)間、聲壓級(jí)一定時(shí),有且僅有1個(gè)交點(diǎn),即聲源點(diǎn)。因此可通過機(jī)器學(xué)習(xí)方法去“學(xué)習(xí)”這一規(guī)律,達(dá)到預(yù)測新輸入的目的。
圖1 聲源定位模型示意圖
基于上述三點(diǎn)麥克風(fēng)接收模型,按照圖2所示的方案選擇100 m×100 m的空曠場地,分別在預(yù)定的位置放置3個(gè)麥克風(fēng)及聲級(jí)計(jì),其位置構(gòu)成三角形,從圖標(biāo)記位置出發(fā),先橫向后縱向,每隔5 m移動(dòng)聲源依次采樣,通過不斷改變聲源位置來構(gòu)造數(shù)據(jù)集,聲源的聲壓設(shè)置為固定值100 dB,便于后續(xù)數(shù)據(jù)整理;同時(shí)還需要測量溫度、空氣濕度等一些影響聲音傳播的環(huán)境因素。在每個(gè)位置點(diǎn)進(jìn)行10組試驗(yàn)后,將3 個(gè)接收端的數(shù)據(jù)記錄下來,經(jīng)整理后存入Excel中,以備進(jìn)一步使用。
圖2 聲源測量及數(shù)據(jù)采集方案示意圖
數(shù)據(jù)集的好壞在一定程度上影響機(jī)器學(xué)習(xí)的效果和最終數(shù)據(jù)分析的質(zhì)量,因此對上述方案中每個(gè)位置點(diǎn)采集到的10組數(shù)據(jù)剔除最大值和最小值后,再進(jìn)行均值處理,以排除測量誤差的影響。此外,為了降低計(jì)算復(fù)雜度、減少噪聲干擾和提高識(shí)別精度,對數(shù)據(jù)降維。
點(diǎn)聲源傳播過程中隨著距離衰減,理想情況下的衰減公式為
式中:r1為參考點(diǎn)到聲源的距離;r2為實(shí)際點(diǎn)到聲源的距離。圖3為聲源隨距離衰減的波形圖。由圖3可見,篩選后的數(shù)據(jù)能較好地反映實(shí)際的場景,由于噪聲干擾及地面反射等因素,實(shí)際聲場中聲波聲壓級(jí)幅值會(huì)有較小的波動(dòng),反映出的函數(shù)關(guān)系和理想曲面十分接近,因此所采集的樣本數(shù)據(jù)是有效的,可用于后續(xù)的訓(xùn)練和學(xué)習(xí)。
圖3 聲源隨距離衰減的波形圖
損失函數(shù)可以用來評(píng)定一個(gè)模型的泛化能力,
式中:α為學(xué)習(xí)率,在式(5)中每次更新時(shí)乘以學(xué)習(xí)率可控制更新參數(shù)的快慢。當(dāng)α值太小,訓(xùn)練得很慢;但是α值比較大的話,訓(xùn)練加快,卻容易過擬合,在實(shí)驗(yàn)過程中需要根據(jù)實(shí)際情況調(diào)整。
回歸決策樹一般使用CART(classification and regression tree)算法,由若干個(gè)二叉樹組合,若用于分類,每個(gè)結(jié)點(diǎn)表示“是”或“否”;若用于回歸,每個(gè)結(jié)點(diǎn)反映為數(shù)值。對于不同的特征,回歸樹將某屬性劃分為多個(gè)范圍,每個(gè)范圍對應(yīng)著1 個(gè)固定輸出。通過判別條件,將樣本分到相應(yīng)的葉子結(jié)點(diǎn)中。由于每個(gè)結(jié)點(diǎn)服從二項(xiàng)分布,故其劃分邊界與坐標(biāo)軸平行。按照上述規(guī)則,將測試數(shù)據(jù)歸納到指定結(jié)點(diǎn)中,預(yù)測結(jié)果時(shí)可以使用平均值作為輸出。決策樹劃分的過程也就是建立樹的過程,每劃分1次,隨即確定劃分單元對應(yīng)的輸出,也就多了1 個(gè)結(jié)點(diǎn)。當(dāng)根據(jù)停止條件劃分終止的時(shí)候,每個(gè)單元的輸出也就確定了,也就是葉結(jié)點(diǎn)。
假設(shè)X和Y分別為輸入和輸出變量,并且Y是連續(xù)變量,給定訓(xùn)練數(shù)據(jù)集為
式中:c1和c2為劃分后2個(gè)區(qū)域內(nèi)固定的輸出值,方括號(hào)內(nèi)的2 個(gè)min 表示使用的是最優(yōu)值,即各自區(qū)域內(nèi)平方誤差最小的值,易知這2個(gè)最優(yōu)的輸出值是各自對應(yīng)區(qū)域內(nèi)y的均值,所以式(8)可寫為
找到使損失最小的(j,s)后,對每個(gè)特征的取值依次遍歷,首先劃分出2 個(gè)初始區(qū)域,按上述過程依次構(gòu)造二叉樹,直到劃分完所有的訓(xùn)練集或達(dá)到某預(yù)設(shè)條件。此方法切分的樹稱為最小二乘回歸樹。
多層感知機(jī)(MLP,Multilayer Perceptron)也叫人工神經(jīng)網(wǎng)絡(luò),從網(wǎng)絡(luò)結(jié)構(gòu)上看是一種前饋神經(jīng)網(wǎng)絡(luò),最簡單的MLP只有3層,即輸入層、輸出層以及1 個(gè)隱層。隨著隱層數(shù)量的增加,其結(jié)構(gòu)越復(fù)雜,處理能力也越強(qiáng)。多層感知機(jī)每層神經(jīng)元之間是全連接的,通過訓(xùn)練網(wǎng)絡(luò)中的權(quán)值連接,可以使感知機(jī)對1組輸入加權(quán)處理,實(shí)現(xiàn)目標(biāo)輸出[12]。
BP神經(jīng)網(wǎng)絡(luò)(back propagation network)是一種應(yīng)用廣泛的權(quán)值調(diào)整算法,基本方法是隨機(jī)梯度下降,目的是使實(shí)際輸出值與期望值的均方誤差最小。BP算法分為信號(hào)的前向傳播和誤差的反向傳播。也就是說,當(dāng)計(jì)算輸出時(shí),信號(hào)經(jīng)由每層神經(jīng)網(wǎng)絡(luò)依次從左至右傳遞;而更新權(quán)重時(shí),則從右至左反向傳遞,減小系統(tǒng)誤差。示意圖如圖4 所示。正向傳播時(shí),輸入信號(hào)由隱層加權(quán)處理后作用于輸出結(jié)點(diǎn),若該結(jié)點(diǎn)上的輸出值與期望值不符,則進(jìn)行誤差反向傳播。誤差的反向傳播是將輸出層誤差向輸入層逐層反饋,并將誤差分?jǐn)偨o各層所有單元,以此作為調(diào)整各單元權(quán)值的依據(jù)。權(quán)值的修正是沿著代價(jià)函數(shù)梯度的反方向進(jìn)行的,通過調(diào)整輸入結(jié)點(diǎn)與隱層結(jié)點(diǎn)的聯(lián)結(jié)強(qiáng)度和隱層結(jié)點(diǎn)與輸出結(jié)點(diǎn)的聯(lián)結(jié)強(qiáng)度以及閾值,使誤差沿梯度方向下降,經(jīng)過反復(fù)學(xué)習(xí)訓(xùn)練,確定與最小誤差對應(yīng)的權(quán)值和閾值,此時(shí)停止訓(xùn)練。
圖4 BP神經(jīng)網(wǎng)絡(luò)節(jié)點(diǎn)關(guān)系示意圖
集成學(xué)習(xí)可通過多個(gè)基學(xué)習(xí)器來完成學(xué)習(xí)任務(wù)。按照個(gè)體學(xué)習(xí)器之間是否存在依賴關(guān)系,采用基于裝袋(bagging)的集成學(xué)習(xí)方法。裝袋是自助抽樣的投票方法。設(shè)1個(gè)訓(xùn)練數(shù)據(jù)集為M,樣本數(shù)量為N,先從M中隨機(jī)抽取1個(gè)樣本,放入集合Ms,然后再將該樣本放回到M中。重復(fù)上述過程N(yùn)次,集合Ms中得到了N個(gè)樣本的采樣數(shù)據(jù)。由于采樣是有放回的過程,服從二項(xiàng)分布,那么1 個(gè)樣本沒
隨機(jī)森林(Random,RF)是一種典型的Bagging算法,在Bagging的基礎(chǔ)上做出了相應(yīng)的改進(jìn),基本思想是集成多棵決策樹用于數(shù)據(jù)分類和回歸。在構(gòu)建RF的過程中,假設(shè)樣本具有D個(gè)不同的特征,從D個(gè)特征中隨機(jī)選取E個(gè)特征,保持E不變,且E小于D,然后隨機(jī)選擇每個(gè)機(jī)會(huì)節(jié)點(diǎn)中的特征。每個(gè)學(xué)習(xí)器相互獨(dú)立且是隨機(jī)的,從而構(gòu)建了RF[12]。在進(jìn)行數(shù)據(jù)在線預(yù)測時(shí),學(xué)習(xí)器都會(huì)產(chǎn)生各自的預(yù)測結(jié)果,最終通過投票決策綜合分析得出輸出結(jié)果,通常取平均數(shù),算法示意圖如圖5所示。
圖5 集成學(xué)習(xí)—隨機(jī)森林算法示意圖
1)抽樣產(chǎn)生訓(xùn)練數(shù)據(jù)集RF采用Bagging抽樣技術(shù),從原始的訓(xùn)練數(shù)據(jù)集中重復(fù)抽樣K次,產(chǎn)生K個(gè)訓(xùn)練子集(假設(shè)需隨機(jī)生成K棵決策樹)。訓(xùn)練子集中的樣本存在一定的重復(fù),主要是為了在訓(xùn)練模型時(shí),每棵決策樹的輸入樣本都不是全部的樣本,使森林中的決策樹不至于產(chǎn)生局部最優(yōu)解。
2)構(gòu)建K個(gè)學(xué)習(xí)器(決策樹)每個(gè)訓(xùn)練集得到1個(gè)最優(yōu)模型,K個(gè)訓(xùn)練集得到K個(gè)最優(yōu)模型,每個(gè)最優(yōu)模型產(chǎn)生1棵決策樹,從而產(chǎn)生K棵決策樹形成森林,每棵樹不需要剪枝處理。
3)生成隨機(jī)森林,使用投票決策輸出結(jié)果 根據(jù)決策樹對測試樣本進(jìn)行綜合分析,以平均值作為預(yù)測結(jié)果。若是分類問題,需要對K個(gè)模型進(jìn)行投票處理,何種結(jié)果出現(xiàn)次數(shù)多就分為哪一類;若是回歸問題,則需要對K個(gè)模型的預(yù)測結(jié)果求平均。
圖6 基于機(jī)器學(xué)習(xí)聲源定位方法
基于4種機(jī)器學(xué)習(xí)的定位流程和方法如圖6所示?;谇笆稣鹿?jié)中的固定場景下,3個(gè)麥克風(fēng)分別接收預(yù)定位置聲源信號(hào),通過采集的信息可得到聲源到各麥克風(fēng)的傳播時(shí)間和聲壓級(jí),進(jìn)一步計(jì)算每2 個(gè)麥克風(fēng)之間接收信號(hào)的到達(dá)時(shí)間差(timedifferences-of-arrival,TDOA),并將其和聲壓級(jí)共同作為特征向量,分別基于不同的機(jī)器學(xué)習(xí)算法,對特征向量和分類器的權(quán)重系數(shù)進(jìn)行調(diào)整和更新,從而得到分類模型,完成樣本的訓(xùn)練。在定位測試時(shí),同樣通過3個(gè)麥克風(fēng)分別接收某個(gè)測試位置的聲源信號(hào),提取TDOA 和聲壓級(jí)特征向量后,根據(jù)訓(xùn)練的分類模型提取輸出定位結(jié)果。
針對4種算法,使用Python下機(jī)器學(xué)習(xí)工具箱sklearn 對其進(jìn)行仿真和對比分析。在具體實(shí)現(xiàn)過程中,參數(shù)調(diào)整好后,使用regr.fit(X,y)來訓(xùn)練數(shù)據(jù),使用某一特定比例的訓(xùn)練集,均勻選取樣本總數(shù)的70%作為測試集,X對應(yīng)于訓(xùn)練樣本中的輸入,即聲源分別到每個(gè)麥克風(fēng)的傳播時(shí)間和接收到的聲壓級(jí),y對應(yīng)于訓(xùn)練樣本中的輸出,即聲源的二維坐標(biāo)和聲源聲壓級(jí)。剩下30%數(shù)據(jù)集用來檢測模型擬合的優(yōu)劣程度,利用regr.predict(X_test)預(yù)測輸出,將預(yù)測出來的結(jié)果與真實(shí)情況比較,以此來評(píng)判模型及算法準(zhǔn)確性。
選取部分測試集的數(shù)據(jù)進(jìn)行展示,所有測試集及對應(yīng)的預(yù)測結(jié)果(樣本總數(shù)的30%)用三維曲面表示,結(jié)果如圖7 所示:神經(jīng)網(wǎng)絡(luò)和隨機(jī)森林算法相對于線性回歸和決策樹算法的預(yù)測數(shù)據(jù)覆蓋更全面,分布也相對比較平坦、均勻。
為進(jìn)一步驗(yàn)證不同算法特征,對其具體性能進(jìn)行分析。對于每個(gè)軸方向上4 種算法預(yù)測數(shù)據(jù)最大誤差統(tǒng)計(jì)結(jié)果如表1 所示,4 種算法的X向距離偏差較Y向距離和聲壓級(jí)的偏差更大一些。
圖7 三維曲面預(yù)測結(jié)果
表1 各軸向最大誤差統(tǒng)計(jì)
對于多元線性回歸模型而言,其主要優(yōu)勢在于建模簡便、易于理解,適用于數(shù)據(jù)量不大的情況,訓(xùn)練時(shí)間短,但是當(dāng)訓(xùn)練樣本中有噪聲時(shí),會(huì)產(chǎn)生較大誤差。某些情況可能會(huì)忽略交互效應(yīng)和非線性的因果關(guān)系,可能出現(xiàn)欠擬合現(xiàn)象,導(dǎo)致不能取得最好的預(yù)測效果。該模型在處理聲源定位的問題上得分較高,較好地?cái)M合了測試集,這是由于樣本數(shù)據(jù)有比較好的線性關(guān)系,且噪聲點(diǎn)較少。
回歸決策樹擬合略差,其均方差為27.89,CART對噪聲敏感,易在訓(xùn)練中造成過擬合。優(yōu)點(diǎn)是計(jì)算量小,對缺失數(shù)據(jù)不敏感,采用自頂向下遞歸方式構(gòu)造決策樹,每次劃分都使當(dāng)前誤差最小,訓(xùn)練時(shí)間復(fù)雜度小、效率高,只用構(gòu)建1次決策樹,每次預(yù)測的最大計(jì)算次數(shù)不超過決策樹的深度。
多層感知機(jī)有很強(qiáng)的魯棒性和泛化能力,人工神經(jīng)網(wǎng)絡(luò)由許多個(gè)簡單的處理單元并聯(lián)組合而成,其分布式處理的方式能夠運(yùn)算大規(guī)模數(shù)據(jù)。每個(gè)神經(jīng)元接受大量其他神經(jīng)元的輸入,通過非線性的輸入、輸出關(guān)系,進(jìn)而影響其他神經(jīng)元。該算法最明顯的缺點(diǎn)是在隱層數(shù)量和神經(jīng)元個(gè)數(shù)的選取上徘徊不定,至今沒有明確的理論依據(jù),只能憑經(jīng)驗(yàn)去摸索。由于神經(jīng)網(wǎng)絡(luò)收斂速度很慢,訓(xùn)練過程會(huì)耗費(fèi)大量時(shí)間,另外在使用梯度下降法優(yōu)化權(quán)值的過程中容易陷入局部最小值。
集成學(xué)習(xí)明顯優(yōu)于弱學(xué)習(xí)器(決策樹)。Bagging 對回歸結(jié)果采用簡單平均的方法,性能穩(wěn)定,泛化能力較強(qiáng),可有效降低模型的方差。訓(xùn)練過程并行且互不干擾,對大規(guī)模樣本的處理具有優(yōu)勢。相比CART決策樹,其魯棒性有很大程度的提高。
文中研究的是多輸入多輸出的回歸問題,將機(jī)器學(xué)習(xí)中線性回歸、決策樹、多層感知機(jī)、集成學(xué)習(xí)4種算法應(yīng)用于聲源的定位中,使用sklearn工具箱對算法進(jìn)行仿真,分析不同算法模型的預(yù)測結(jié)果和性能指標(biāo),為不同應(yīng)用環(huán)境和場合下聲源定位算法的選擇提供一定參考。然而,在實(shí)際應(yīng)用算法移植的可行性來看,需考慮硬件平臺(tái)及處理器算力的限制,后續(xù)將展開進(jìn)一步的研究。