佘霖琳,孫 紅,趙祎彤,李嘉雪,宋雲(yún)龍
(上海理工大學(xué)光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
21 世紀(jì)以來,人工智能的興起使得基于語音、文字、圖像等模式識(shí)別的人機(jī)交互成為研究熱點(diǎn)。要實(shí)現(xiàn)機(jī)器與機(jī)器以及人與機(jī)器之間的交流互動(dòng),能夠精確定位發(fā)出聲源的人或機(jī)器位置是極其重要的[1-2]。目前,聲源定位在視頻會(huì)議、助聽器、智能降噪[3]、車載電話、鳴笛抓拍等領(lǐng)域有著廣闊的應(yīng)用前景。
傳統(tǒng)聲源定位算法大體可分3 類:基于到達(dá)時(shí)延估計(jì)(Time Difference of Arrival,TDOA)的聲源定位算法[4]、基于最大輸出功率的可控波束形成聲源定位算法[5]、基于高分辨率譜估計(jì)的聲源定位算法[6]。其中,第一類算法根據(jù)聲源信號(hào)到達(dá)不同位置麥克風(fēng)的時(shí)間差確定聲源位置;第二類算法利用波束形成技術(shù),但需基于背景噪聲和聲源信號(hào)先驗(yàn)知識(shí),因此限制了算法應(yīng)用;第三類算法來源于高分辨率譜估計(jì)技術(shù),其定位性能好,但計(jì)算復(fù)雜度高,難以達(dá)到應(yīng)用場景要求的實(shí)時(shí)性。在3 類方法中,TDOA 算法因其計(jì)算復(fù)雜度與硬件實(shí)現(xiàn)成本較低而受到較多關(guān)注。其發(fā)展主要分為兩個(gè)階段:第一階段為傳統(tǒng)的時(shí)延估計(jì)方法,以相關(guān)分析、相位譜、參數(shù)估計(jì)為基礎(chǔ),以數(shù)據(jù)收集作為手段進(jìn)行聲源定位,其中應(yīng)用最廣泛的為孫洋等[7]提出的基于相關(guān)分析的廣義互相關(guān)函數(shù)法(Generialized Cross-Correlation,GCC)和Haykin[8]提出的基于自適應(yīng)濾波器的最小均方自適應(yīng)濾波法(Least Mean Square,LMS)。但GCC 算法需要對(duì)信號(hào)和噪聲譜估計(jì)其加權(quán)函數(shù),從而增加了算法復(fù)雜度。LMS 算法穩(wěn)定性較差,若迭代步長過大,會(huì)出現(xiàn)不收斂的情況;若迭代步長過小,則會(huì)導(dǎo)致不平穩(wěn)信號(hào)還未實(shí)現(xiàn)尋優(yōu)便又引入新的誤差。第二階段出現(xiàn)了機(jī)器學(xué)習(xí)聲源定位方法,目前應(yīng)用較多的為焦琛等[9]提出的基于相位加權(quán)廣義互相關(guān)函數(shù)的卷積神經(jīng)網(wǎng)絡(luò)算法(Convolutional Neural Networks,CNN)。
使用機(jī)器學(xué)習(xí)算法相較于傳統(tǒng)算法能避免繁重的計(jì)算、具有較高準(zhǔn)確度,并且可通過改變少量參數(shù)以適應(yīng)更多不同的復(fù)雜應(yīng)用場景。但對(duì)于如何選取其算法模型參數(shù),目前尚無明確的理論研究,大多通過反復(fù)實(shí)驗(yàn)、參考類似經(jīng)驗(yàn)得到。本文運(yùn)用機(jī)器學(xué)習(xí)中的BP 神經(jīng)網(wǎng)絡(luò)算法對(duì)聲源定位進(jìn)行研究,探討適合本研究場景的最佳模型參數(shù),以期為聲源定位技術(shù)的深入發(fā)展及應(yīng)用提供參考[10]。
BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)是一種有監(jiān)督的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法,其利用誤差的反向傳播原理,改變傳統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu),引入新的分層與邏輯。學(xué)習(xí)過程由正向傳播和反向傳播兩部分組成,在正向傳播過程中,輸入模式從輸入層經(jīng)過隱含層神經(jīng)元處理后傳向輸出層,每一層神經(jīng)元狀態(tài)只影響下一層神經(jīng)元狀態(tài)。如果在輸出層得不到期望的輸出,則轉(zhuǎn)入反向傳播,此時(shí)誤差信號(hào)從輸出層向輸入層傳播,并沿途調(diào)整各層間連接權(quán)值和閾值。該過程反復(fù)交替進(jìn)行,直至網(wǎng)絡(luò)的全局誤差趨向給定的極小值。在反復(fù)訓(xùn)練過程中,其采用梯度下降法使得權(quán)值沿著誤差函數(shù)的負(fù)梯度方向改變,并收斂于最小點(diǎn)。BP 算法主要步驟如下:
(1)正向傳播過程。在輸入層中,單元i的輸出值oi等于其輸入值xi的加權(quán)和:
輸出值為:
式中,f若為sigmod函數(shù),則:
在輸出層中,因?yàn)檩敵鰧訂卧淖饔煤瘮?shù)為線性,故輸出值為輸入值的加權(quán)和。對(duì)于第k 個(gè)輸出單元,輸出值yk為:
(2)反向傳播過程。首先定義誤差函數(shù)Ep為:
BP 學(xué)習(xí)算法采用梯度下降法調(diào)整權(quán)值,每次調(diào)整量為:
式中,η 為學(xué)習(xí)率,0<η<1,由此式可得到權(quán)值修正量公式。對(duì)于輸出層與隱含層之間的權(quán)值v:
其中,有:
對(duì)于隱含層與輸入層之間的權(quán)值w:
在神經(jīng)網(wǎng)絡(luò)中,單層神經(jīng)網(wǎng)絡(luò)只用于表示線性分離函數(shù)[11],而當(dāng)數(shù)據(jù)非線性分離時(shí)需要增加隱藏層[12]。對(duì)于簡單的數(shù)據(jù)集,通常包含1~2 個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò)即可得到最優(yōu)結(jié)果。而對(duì)于涉及時(shí)間序列或計(jì)算機(jī)視覺等內(nèi)容的復(fù)雜數(shù)據(jù)集,則需要額外增加隱藏層層數(shù)。
當(dāng)沒有隱藏層時(shí),僅能表示線性可分函數(shù)或決策;當(dāng)隱藏層數(shù)為1 時(shí),可以擬合任何包含從一個(gè)有限空間到另一個(gè)有限空間的連續(xù)映射函數(shù);當(dāng)隱藏層數(shù)為2 時(shí),搭配適當(dāng)?shù)募せ詈瘮?shù)可表示任意精度的任意決策邊界,并且可擬合任意精度的任何平滑映射;當(dāng)隱藏層數(shù)>2 時(shí),多出來的隱藏層可學(xué)習(xí)更為復(fù)雜的描述。
層數(shù)越深,理論上擬合函數(shù)的能力增強(qiáng),效果越好,但實(shí)際上更深的層數(shù)可能帶來過擬合問題,同時(shí)也會(huì)增加訓(xùn)練難度,使模型難以收斂。因此,在使用BP 神經(jīng)網(wǎng)絡(luò)時(shí),較可取的方法是參照已有的表現(xiàn)優(yōu)異的模型。而當(dāng)缺少可參考模型時(shí),從一或兩個(gè)隱藏層開始嘗試不失為探究最佳層數(shù)較為合適的方法。
在確定隱藏層的神經(jīng)元個(gè)數(shù)方面,若神經(jīng)元太少將導(dǎo)致欠擬合[13],網(wǎng)絡(luò)不能有效地學(xué)習(xí),需要大量增加訓(xùn)練次數(shù),并且嚴(yán)重影響訓(xùn)練精度;而神經(jīng)元過多可能導(dǎo)致過擬合,訓(xùn)練集中包含的有限信息量不足以訓(xùn)練隱藏層中的所有神經(jīng)元。即使訓(xùn)練數(shù)據(jù)包含的信息量足夠,隱藏層中過多的神經(jīng)元也會(huì)增加訓(xùn)練時(shí)間,導(dǎo)致難以達(dá)到預(yù)期效果。顯然,選擇一個(gè)合適的隱藏層神經(jīng)元數(shù)量是至關(guān)重要的。
在確定神經(jīng)元個(gè)數(shù)方面,首先應(yīng)該考慮此前提:隱含層節(jié)點(diǎn)數(shù)必須小于N-1(N 是訓(xùn)練樣本數(shù)),否則網(wǎng)絡(luò)模型的系統(tǒng)誤差與訓(xùn)練樣本的特性無關(guān)而趨于0,即建立的網(wǎng)絡(luò)模型缺乏泛化能力,也無任何使用價(jià)值。而除此之外,當(dāng)前并沒有一種科學(xué)的確定神經(jīng)元個(gè)數(shù)的方法,最佳數(shù)量需要通過不斷的實(shí)驗(yàn)獲得。
對(duì)于如何確定神經(jīng)元數(shù)量和隱藏層層數(shù),本研究通過不斷實(shí)驗(yàn)的方法,從1 個(gè)神經(jīng)元、1 層隱藏層開始遞增,如果欠擬合則增加層數(shù)和神經(jīng)元,如果過擬合則減小層數(shù)和神經(jīng)元。
在BP 神經(jīng)網(wǎng)絡(luò)的標(biāo)準(zhǔn)算法中,其反向傳播過程是基于梯度下降法,通過調(diào)整權(quán)值和閾值使輸出期望值與神經(jīng)網(wǎng)絡(luò)實(shí)際輸出值的均方誤差梯度趨于最小而實(shí)現(xiàn)的。雖然標(biāo)準(zhǔn)訓(xùn)練算法下的BP 網(wǎng)絡(luò)得到了廣泛應(yīng)用,但其自身也存在一些不足,主要包括以下4 個(gè)方面:
(1)由于學(xué)習(xí)速率是固定的,因此網(wǎng)絡(luò)收斂速度慢,訓(xùn)練需要較長時(shí)間。如果問題復(fù)雜,BP 算法需要的訓(xùn)練時(shí)間可能會(huì)非常長,無法滿足應(yīng)用要求。針對(duì)這一點(diǎn),可采用變化的學(xué)習(xí)速率或自適應(yīng)學(xué)習(xí)速率加以改進(jìn),如利用學(xué)習(xí)速率自適應(yīng)的BP 算法。
(2)BP 算法可使權(quán)值收斂到某個(gè)值,但并不保證其為誤差平面的全局最小值,這是因?yàn)椴捎锰荻认陆捣赡軙?huì)產(chǎn)生一個(gè)局部最小值。對(duì)于該問題可采用附加動(dòng)量法來解決,如動(dòng)量因子BP 算法[14]。
(3)對(duì)于網(wǎng)絡(luò)隱含層層數(shù)與神經(jīng)單元個(gè)數(shù)選擇尚無理論上的指導(dǎo),一般是根據(jù)經(jīng)驗(yàn)或者反復(fù)實(shí)驗(yàn)確定。因此,網(wǎng)絡(luò)模型各項(xiàng)參數(shù)的可移植性差,并且網(wǎng)絡(luò)往往存在很大的冗余性,在一定程度上增加了網(wǎng)絡(luò)的學(xué)習(xí)負(fù)擔(dān)。
(4)網(wǎng)絡(luò)學(xué)習(xí)和記憶具有不穩(wěn)定性,在增加了學(xué)習(xí)樣本的情況下,訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)需要從頭開始重新訓(xùn)練,對(duì)于以前的權(quán)值和閾值并無記憶。
由于BP 標(biāo)準(zhǔn)算法有很多不足,因此在不同的實(shí)際應(yīng)用情況下,需要將其與改進(jìn)的BP 算法函數(shù)相結(jié)合。考慮到本研究模型屬于中型網(wǎng)絡(luò),以下介紹適合中型網(wǎng)絡(luò)的改進(jìn)算法及其相應(yīng)特點(diǎn):①traingdx:帶有動(dòng)量項(xiàng)的自適應(yīng)學(xué)習(xí)算法,訓(xùn)練速度較快;②trainrp:彈性BP 算法,收斂速度快,占用內(nèi)存小;③traincgf:Fletcher-Reeves 共軛梯度法[15],是對(duì)存儲(chǔ)量要求最小的共軛梯度法;④trainscg:歸一化共軛梯度法,唯一一種不需要線性搜索的共軛梯度法;⑤trainlm:Levenberg-Marquardt 算法,是介于牛頓法與梯度下降法之間的一種非線性優(yōu)化方法,對(duì)于過參數(shù)化問題不敏感,能有效處理冗余參數(shù)問題,大大減小了代價(jià)函數(shù)陷入局部極小值的機(jī)會(huì)[16]。
在建立神經(jīng)網(wǎng)絡(luò)之前,需要先設(shè)計(jì)出采樣模型,獲得輸入數(shù)據(jù)與輸出數(shù)據(jù)的形式,再設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)。采樣模型如圖1 所示(彩圖掃OSID 碼可見,下同)。
Fig.1 Sampling model圖1 采樣模型
如圖1 所示,把地面劃分為n 個(gè)小區(qū)域后,每一次測試時(shí)分別在某一個(gè)小區(qū)域的中心坐標(biāo)處用發(fā)聲裝置發(fā)聲。4個(gè)麥克風(fēng)兩兩一組,形成AB、BC、CD 3 組,分別記錄3 組內(nèi)兩個(gè)麥克風(fēng)收到聲音的時(shí)間差,具體如下:
由此可得到n 組對(duì)應(yīng)的數(shù)據(jù),分別為3 組時(shí)間差以及一對(duì)二維坐標(biāo)值,其中xi為橫坐標(biāo)值,yi為縱坐標(biāo)值,則第i組數(shù)據(jù)為:
本研究將聲源定位場景簡化為在一個(gè)占地面積為100m2的房間里對(duì)聲源進(jìn)行水平面上二維坐標(biāo)定位的模型。假設(shè)房間是一個(gè)標(biāo)準(zhǔn)的長方體,房間長為10m,寬為10m,高為5m。在麥克風(fēng)陣列位置選取方面,選定4 個(gè)麥克風(fēng)的位置分別為A(4.9,4.9,1.0)、B(4.9,5.1,1.0)、C(5.1,5.1,1.0)、D(5.0,5.0,2.0),使其在空間構(gòu)成一個(gè)四面體[17]。
對(duì)于神經(jīng)網(wǎng)絡(luò)輸入、輸出數(shù)據(jù)的獲取,本研究根據(jù)基于時(shí)延的聲源定位基本原理,由聲源位置坐標(biāo)計(jì)算各組麥克風(fēng)接收來自同一聲源聲音的時(shí)間差作為測試集的輸入數(shù)據(jù),將聲源實(shí)際位置坐標(biāo)作為輸出數(shù)據(jù),之后利用BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練、驗(yàn)證、測試后,則可得到用于聲源定位的模型。
在分析比較神經(jīng)網(wǎng)絡(luò)隱藏層神經(jīng)元個(gè)數(shù)、隱藏層層數(shù)對(duì)算法精確性影響的實(shí)驗(yàn)中,訓(xùn)練集、驗(yàn)證集都采用400 個(gè)數(shù)據(jù)量,測試集采用50 個(gè)數(shù)據(jù)量。而在比較不同數(shù)據(jù)量下不同算法精確性的實(shí)驗(yàn)中,訓(xùn)練集、驗(yàn)證集采用的數(shù)據(jù)量從400 開始遞增,測試集仍采用50 個(gè)數(shù)據(jù)量。
為了專注探究算法的精確性,排除環(huán)境干擾,在一個(gè)100 m2房間里實(shí)現(xiàn)對(duì)聲源的二維空間定位,本研究借助MATLAB 進(jìn)行仿真實(shí)驗(yàn)[18]。運(yùn)用其中的rand 函數(shù)隨機(jī)生成點(diǎn)坐標(biāo)數(shù)據(jù)集用于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練、驗(yàn)證與測試。由于數(shù)據(jù)集是隨機(jī)生成的,為了保證實(shí)驗(yàn)結(jié)果的有效性,本研究對(duì)同一參數(shù)下的神經(jīng)網(wǎng)絡(luò)都進(jìn)行了50 次測試,最后取50次結(jié)果的平均值作為對(duì)比分析的實(shí)驗(yàn)數(shù)據(jù)。運(yùn)用構(gòu)建神經(jīng)網(wǎng)絡(luò)的函數(shù),通過設(shè)置隱藏層神經(jīng)元個(gè)數(shù)、隱藏層層數(shù)以及反向傳播函數(shù)對(duì)應(yīng)的函數(shù)參數(shù),構(gòu)建本研究所需的不同結(jié)構(gòu)的BP 神經(jīng)網(wǎng)絡(luò)。
對(duì)比、分析3 類因素對(duì)聲源定位精確性的影響后,將得到適合構(gòu)建此模型的最佳網(wǎng)絡(luò)模型,并且得出一定條件下該算法能達(dá)到的最佳定位效果。考慮到本研究要解決的是回歸預(yù)測問題,故選取R 值(Regression)、MSE(Mean Squared Error)作為算法精確性評(píng)價(jià)標(biāo)準(zhǔn)。
(1)mapminmax[19]。[Y,PS]=mapminmax(X,YMIN,YMAX),將歸一化的信息保存到結(jié)構(gòu)體PS 中,自定義MIN、MAX 的范圍。
Y=mapminmax(‘a(chǎn)pply’,X,PS),用已知的歸一化規(guī)則PS 歸一化其他信息。
X=mapminmax(‘reverse’,Y,PS),用于反歸一化。
(2)newff。net=newff(P,T,[S1S2…S(N-l)],{TF1 TF2…TFNl},BTF,BLF,PF,IPF,OPF,DDF),用于創(chuàng)建前向型神經(jīng)網(wǎng)絡(luò)。
(3)train。[net,tr,Y,E,Pf,Af]=train(net,P,T,Pi,Ai),用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
(4)sim[20]。[Y,Pf,Af,E,perf]=sim(net,P,Pi,Ai,T),用于模擬預(yù)測,Y 即最終預(yù)測的輸出。
本研究在使用‘newfff’函數(shù)構(gòu)建神經(jīng)網(wǎng)絡(luò)時(shí),設(shè)置隱含層輸出函數(shù)為‘tansig’,輸出層輸出函數(shù)為‘purelin’,設(shè)置訓(xùn)練參數(shù)依次為:Leaning_rate(學(xué)習(xí)率)=0.1、初始max_epoch(最大迭代次數(shù))=5 000、初始goal(目標(biāo)誤差)=4e-6、max_fail(最大失敗次數(shù))=10 000。其中,最大迭代次數(shù)與目標(biāo)誤差需要根據(jù)每次具體實(shí)驗(yàn)效果加以調(diào)整,以確保在神經(jīng)網(wǎng)絡(luò)達(dá)到相對(duì)穩(wěn)定的狀態(tài)下記錄實(shí)驗(yàn)數(shù)據(jù)。
本實(shí)驗(yàn)采用LM(LevenBerg-Marquardt)[21]反向傳播函數(shù)下、隱藏層層數(shù)為1 的BP 神經(jīng)網(wǎng)絡(luò)[22]對(duì)神經(jīng)網(wǎng)絡(luò)的神經(jīng)元個(gè)數(shù)進(jìn)行探究。
對(duì)于神經(jīng)元個(gè)數(shù)選擇,本實(shí)驗(yàn)從1 開始進(jìn)行測試。通過實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)神經(jīng)元個(gè)數(shù)取1~4 時(shí),所需迭代次數(shù)遠(yuǎn)大于最大迭代次數(shù)的初始值(5 000),嘗試調(diào)整目標(biāo)誤差,使其增大至4e-3,之后得到網(wǎng)絡(luò)穩(wěn)定時(shí)的最終MSE 與R 值結(jié)果;當(dāng)神經(jīng)元個(gè)數(shù)取5~6 時(shí),出現(xiàn)達(dá)到最大迭代次數(shù)而結(jié)果曲線未達(dá)到穩(wěn)定狀態(tài)的情況,故嘗試將最大迭代次數(shù)設(shè)置為8 000;當(dāng)神經(jīng)元個(gè)數(shù)取7~9 時(shí),在實(shí)驗(yàn)初始設(shè)置的參數(shù)值下,已可獲得網(wǎng)絡(luò)的穩(wěn)定狀態(tài);當(dāng)神經(jīng)元個(gè)數(shù)取10 及以上時(shí),達(dá)到原目標(biāo)誤差后曲線未趨于平穩(wěn),故將目標(biāo)誤差設(shè)置為4e-9。由實(shí)驗(yàn)結(jié)果可得,當(dāng)神經(jīng)元個(gè)數(shù)增加到10 之后,數(shù)據(jù)結(jié)果的穩(wěn)定性較差且越來越差,故本實(shí)驗(yàn)對(duì)神經(jīng)元個(gè)數(shù)的研究止于49。實(shí)驗(yàn)所得不同神經(jīng)元個(gè)數(shù)下的MSE 值與R 值變化情況如圖2、圖3 所示。
Fig.2 Change of MSE value of the different numbers of neurons圖2 不同神經(jīng)元個(gè)數(shù)下的MSE值變化情況
Fig.3 Change of R value of the different numbers of neurons圖3 不同神經(jīng)元個(gè)數(shù)下的R 值變化情況
分析圖2、圖3 可知,隨著神經(jīng)元個(gè)數(shù)的增加,MSE 值整體呈遞減趨勢(shì),R 值呈遞增趨勢(shì)。為了得到更準(zhǔn)確的實(shí)驗(yàn)結(jié)果,本實(shí)驗(yàn)進(jìn)行局部探測,選取實(shí)驗(yàn)結(jié)果較佳的神經(jīng)元個(gè)數(shù)為5~9 時(shí)的BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行研究,如圖4、圖5 所示。
Fig.4 Change of MSE value of the different numbers of neurons from 5 to 9圖4 5~9 個(gè)神經(jīng)元個(gè)數(shù)下的MSE 值變化情況
Fig.5 Change of R value of the different numbers of neurons from 5 to 9圖5 5~9 個(gè)神經(jīng)元個(gè)數(shù)下的R 值變化情況
由圖可知,神經(jīng)元個(gè)數(shù)為7 時(shí)的BP 神經(jīng)網(wǎng)絡(luò)在整體趨勢(shì)中表現(xiàn)最好,接下來依次是個(gè)數(shù)為8、9、6、5 的BP 神經(jīng)網(wǎng)絡(luò)。相對(duì)于后4 種BP 神經(jīng)網(wǎng)絡(luò),神經(jīng)元個(gè)數(shù)為7 的BP 神經(jīng)網(wǎng)絡(luò)均方差MSE 值最小,R 值最大,網(wǎng)絡(luò)收斂速度更快,網(wǎng)絡(luò)穩(wěn)定性更強(qiáng)。故得到當(dāng)隱藏層神經(jīng)元個(gè)數(shù)取7 時(shí),BP 神經(jīng)網(wǎng)絡(luò)算法的預(yù)測結(jié)果最佳,該神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[23]如圖6 所示,并且為得到較理想的實(shí)驗(yàn)效果,以下實(shí)驗(yàn)中神經(jīng)元個(gè)數(shù)都取7 進(jìn)行研究。
本實(shí)驗(yàn)采用LM 反向傳播函數(shù)下神經(jīng)元個(gè)數(shù)為7 的BP神經(jīng)網(wǎng)絡(luò)對(duì)神經(jīng)網(wǎng)絡(luò)的隱藏層層數(shù)進(jìn)行探究。
每層隱藏層都取7 個(gè)神經(jīng)元,從1 開始遞增隱藏層層數(shù)進(jìn)行實(shí)驗(yàn)。對(duì)于1~2 層神經(jīng)網(wǎng)絡(luò),在未達(dá)到最大迭代次數(shù)時(shí),此神經(jīng)網(wǎng)絡(luò)誤差即可減小到初始目標(biāo)誤差以下,而后觀察MSE 隨迭代次數(shù)遞增的變化曲線可知,MSE 穩(wěn)定在e-9 數(shù)量級(jí)。通過增加隱藏層重復(fù)上述操作,實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)隱藏層為3~13 層時(shí),達(dá)到原目標(biāo)誤差后曲線未趨于穩(wěn)定,有繼續(xù)下降趨勢(shì),表明精確性有望繼續(xù)提高,故實(shí)驗(yàn)需要減小目標(biāo)誤差,直到得到每一種隱藏層層數(shù)下網(wǎng)絡(luò)模型的最小穩(wěn)定誤差。而當(dāng)層數(shù)取13 以上時(shí),相對(duì)應(yīng)的穩(wěn)定最小誤差已無法達(dá)到原先設(shè)定的目標(biāo)誤差,且相差甚遠(yuǎn),則增大目標(biāo)誤差后繼續(xù)觀察。鑒于當(dāng)隱藏層為13~16 層時(shí),在相同參數(shù)下每次測試的數(shù)據(jù)變化過大,且平均誤差過大,表明其實(shí)際應(yīng)用價(jià)值較低,因此不再遞增層數(shù)繼續(xù)實(shí)驗(yàn)。
Fig.6 Neural network structure圖6 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
取1~16 層數(shù)據(jù)進(jìn)行研究分析,1~16 層隱藏層層數(shù)下BP 神經(jīng)網(wǎng)絡(luò)誤差MSE 值如圖7 所示,對(duì)應(yīng)的R 值如圖8 所示。觀察兩圖可以看出,13~16 層下神經(jīng)網(wǎng)絡(luò)誤差較大,1~12 層下誤差較?。?~11 層下神經(jīng)網(wǎng)絡(luò)擬合度較好,R 值都為1,12~16 層下R 值小于1,且層數(shù)達(dá)到14 層以上時(shí),R 值急劇下降。由此可得出結(jié)論:BP 神經(jīng)網(wǎng)絡(luò)隱藏層層數(shù)的遞增與算法性能的提升并不呈正相關(guān)。
Fig.7 Change of MSE value of the different numbers of hidden layers圖7 不同隱藏層層數(shù)下的MSE值變化情況
Fig.8 Change of R value of the different numbers of hidden layers圖8 不同隱藏層層數(shù)下的R 值變化情況
此外,實(shí)驗(yàn)發(fā)現(xiàn),層數(shù)分別取13~16 層時(shí)的神經(jīng)網(wǎng)絡(luò)每次測試得到的MSE 值數(shù)量級(jí)變化范圍為e-3~e-8。由此可得,雖然此最小誤差與1~12 層時(shí)的誤差同級(jí),但平均誤差過大,此時(shí)的網(wǎng)絡(luò)穩(wěn)定性差、有過擬合傾向,并且13 層以上的神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)間過長,應(yīng)用價(jià)值較低。
為了進(jìn)一步探究1~12 層范圍內(nèi)的最佳層數(shù),本實(shí)驗(yàn)對(duì)圖7 中1~12 層的MSE 值數(shù)據(jù)單獨(dú)進(jìn)行繪制。觀察得到1 層下的MSE 值數(shù)量級(jí)為e-6,遠(yuǎn)大于2~12 層下的MSE 值數(shù)量級(jí)。為了更直觀、清晰地分析最佳層數(shù),取2~12 層數(shù)據(jù),得到如圖9 所示的曲線圖。由圖可以得出,當(dāng)隱藏層取3、4、8、9 層時(shí),該神經(jīng)網(wǎng)絡(luò)達(dá)到最佳預(yù)測精度。由于8、9 層神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)間長于3、4 層,可見當(dāng)隱藏層取3、4 時(shí),該BP 神經(jīng)網(wǎng)絡(luò)預(yù)測結(jié)果達(dá)到最佳。為得到較理想的實(shí)驗(yàn)效果,以下實(shí)驗(yàn)中隱藏層層數(shù)都取3 進(jìn)行研究。
Fig.9 Change of MSE value of the different numbers of hidden layers from 2 to 12圖9 2~12 不同隱藏層層數(shù)下的MSE 值變化情況
本實(shí)驗(yàn)采用神經(jīng)元個(gè)數(shù)為7、隱藏層層數(shù)為3 的BP 神經(jīng)網(wǎng)絡(luò)對(duì)反向傳播算法進(jìn)行探究。分別針對(duì)不同數(shù)據(jù)量,選擇不同的反向傳播算法對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,旨在探究不同算法在不同數(shù)據(jù)量下的適應(yīng)性與精確性,并驗(yàn)證基于LM 算法的BP 神經(jīng)網(wǎng)絡(luò)適用于本研究采用的中型網(wǎng)絡(luò)聲源定位模型。
對(duì)于反向傳播函數(shù)[24],本實(shí)驗(yàn)選用trainlm(LevenBerg-Marquard 算法)、trainbr(貝葉斯正則化算法)、trainrp(彈性BP 算法)、trainscg(歸一化共軛梯度法)以及traincgf(Fletcher-Reeves 共軛梯度法)。
通過實(shí)驗(yàn)發(fā)現(xiàn),對(duì)于trainlm 算法,當(dāng)數(shù)據(jù)量取400~2 800 時(shí),在初始最大迭代次數(shù)(5 000)、目標(biāo)誤差(4e-6)下,網(wǎng)絡(luò)未達(dá)到穩(wěn)定狀態(tài)。調(diào)整目標(biāo)誤差為4e-7 時(shí),觀察MSE 隨迭代次數(shù)遞增的變化曲線可知,MSE 值穩(wěn)定在1e-6數(shù)量級(jí)。通過增加數(shù)據(jù)量,發(fā)現(xiàn)該算法訓(xùn)練達(dá)到最大迭代次數(shù)后,其MSE 值在1e-4 數(shù)量級(jí)。調(diào)整最大迭代次數(shù)為8 000 后,實(shí)驗(yàn)發(fā)現(xiàn)該網(wǎng)絡(luò)訓(xùn)練過程緩慢,且出現(xiàn)過擬合現(xiàn)象,則適度增大目標(biāo)誤差、減少迭代次數(shù)??紤]到繼續(xù)增加數(shù)據(jù)量后算法訓(xùn)練時(shí)間過長,且誤差并未降低,故本實(shí)驗(yàn)對(duì)數(shù)據(jù)量的討論止于4 000。對(duì)于其他4 種算法,采取與上述相同的思路進(jìn)行實(shí)驗(yàn),得到不同算法在不同數(shù)據(jù)量下的MSE 值與R 值變化情況如圖10、圖11 所示。
分析圖10、圖11 可知,總體來看,在采用的5 種算法中,trainlm 算法的MSE 值最低,R 值最高。其中,trainbr 算法訓(xùn)練結(jié)果與trainlm 算法較為接近,但由50 次采用相同參數(shù)和數(shù)據(jù)量的測試結(jié)果可得,trainbr 算法的誤差波動(dòng)較大,沒有trainlm 算法穩(wěn)定。而其余3 種算法trainrp、trainscg、traincgf 與前兩種算法相比,均方誤差均高出兩個(gè)數(shù)量級(jí),且R 值都偏小。
Fig.10 Change of MSE value of different algorithms under different data volumes圖10 不同算法在不同數(shù)據(jù)量下的MSE 值變化情況
Fig.11 Change of R value of different algorithms under different data volumes圖11 不同算法在不同數(shù)據(jù)量下的R 值變化情況
此外,通過實(shí)驗(yàn)發(fā)現(xiàn),隨著數(shù)據(jù)量的增加,trainlm 算法和trainbr 算法的MSE 值與R 值在數(shù)據(jù)量約大于2 800 時(shí)有輕微振蕩,MSE 值趨于增大,R 值趨于減小。同時(shí),trainrp算法和trainscg 算法的MSE 值趨于減小,R 值趨于增大。由此得出,trainlm 算法和trainbr 算法更適合處理數(shù)據(jù)量較小的數(shù)據(jù)集,而其余3 種算法更適合處理數(shù)據(jù)量較大的數(shù)據(jù)集。
本仿真實(shí)驗(yàn)構(gòu)建的神經(jīng)網(wǎng)絡(luò)輸入數(shù)據(jù)數(shù)量為3,輸出數(shù)據(jù)數(shù)量為2,神經(jīng)元數(shù)量為7,隱藏層層數(shù)為3,該神經(jīng)網(wǎng)絡(luò)屬于中型網(wǎng)絡(luò)。由此可得,trainrp、trainscg 算法明顯不適用于本實(shí)驗(yàn)的神經(jīng)網(wǎng)絡(luò),而較適用于大型網(wǎng)絡(luò)。traincgf 算法的預(yù)測效果相比這兩者有所提高,但也未達(dá)到較高的精確度。相比之下,trainlm、trainbr 算法更適合于本實(shí)驗(yàn)的神經(jīng)網(wǎng)絡(luò),且適合處理數(shù)據(jù)量較小的數(shù)據(jù)集。通過進(jìn)一步比較,trainlm 算法相比trainbr 算法速度更快且精確度更高,對(duì)中型網(wǎng)絡(luò)而言是速度最快的一種訓(xùn)練算法,在訓(xùn)練時(shí)間和訓(xùn)練精度上都較適合本研究。
在本研究中,使用BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行聲源定位的準(zhǔn)確度已可達(dá)到較高水平,R 值可達(dá)到1,MSE 值在e-11 數(shù)量級(jí)下,位置誤差在毫米范圍內(nèi)。含有3 個(gè)隱藏層、每層含7 個(gè)神經(jīng)元、反向傳播函數(shù)取LM 的神經(jīng)網(wǎng)絡(luò)是目前適用于此聲源定位場景的最佳網(wǎng)絡(luò)模型。然而,占用內(nèi)存過大是LM算法的缺點(diǎn),并且若要進(jìn)一步提高算法精度、提升魯棒性,仍有以下幾方面值得作進(jìn)一步改進(jìn)和深入研究:
(1)本研究是在MATLAB 環(huán)境下進(jìn)行的仿真實(shí)驗(yàn),若在實(shí)際情況下進(jìn)行實(shí)驗(yàn),麥克風(fēng)所接受到的聲音信號(hào)除聲源信號(hào)外,還包括四周墻壁的反射信號(hào)、環(huán)境的噪音信號(hào)等。在這種情況下,對(duì)聲源位置的預(yù)測將受多方因素干擾,如何結(jié)合去噪算法[25]提取主要聲源特征、建立模型以及維持原聲源定位算法的有效性需要作進(jìn)一步研究。
(2)在當(dāng)前模型下,LM 為較適合的反向傳播函數(shù),而若在更寬闊的場景以及更復(fù)雜的大型網(wǎng)絡(luò)模型情況下,結(jié)合降噪算法,可考慮對(duì)反向傳播函數(shù)進(jìn)行靈活變換,在每一層隱藏層中選取不同的反向傳播函數(shù),將有望提高不同模型下算法的精確性與穩(wěn)定性。
(3)本研究驗(yàn)證了LM 算法對(duì)中型網(wǎng)絡(luò)的適用性與有效性。在大型網(wǎng)絡(luò)下,LM 算法可考慮通過設(shè)置其內(nèi)部mem-reduc 參數(shù)為大于1 的整數(shù),以將Jacobian 矩陣[26]分為多個(gè)子矩陣。而為了降低其占用的內(nèi)存,該方法中的系統(tǒng)開銷與Jacobian 各子矩陣的關(guān)系有待進(jìn)一步探究。