張博軒,趙天白,常振興,蔣翔宇,王少博
(1.中國電子科技集團公司 第54研究所,石家莊 050081;2.國網電力空間技術有限公司,北京 102213;3.電子科技大學 信息與通信工程學院,成都 610731)
水聲目標識別技術是當今世界各國研究的熱點和難點,隨著新型低噪聲推進器的研發和應用,如何在復雜的海洋環境中精確發現、定位和識別水聲目標是各國海軍部門都高度重視的問題。傳統的水聲目標識別方法主要利用經典信號處理方法提取目標特征并進行匹配,以此為依據對目標身份進行分類[1]。這類方法受人為經驗影響較大,自適應能力差,在復雜多變的海洋環境中識別準確率較低。因此,針對水中艦船目標機械輻射噪聲信號的人不在回路的識別成為水聲信號處理發展的熱點,尤其是如何將基于人工智能方法研發的目標識別算法模型從實驗室擴展至實際環境中并依舊取得良好、穩定的性能,是此類方法研究過程中的重中之重。
將人工智能技術引入水聲目標識別系統這一思路尚未取得突破性進展,無法在海洋實戰中實現應用賦能,其根本原因是深度神經網絡模型若想達到對數據的高效、準確的智能化處理,絕離不開用大量的數據來訓練模型參數。但是,由于絕大部分高價值水聲目標現存數據稀少,敏感目標難以采集,導致可供訓練的聲學數據樣本數據嚴重不足,從而影響了該方法的識別效率。傳統的水聲目標識別方法不需要大量的聲吶信號數據,如線譜分析法、匹配濾波法等。雖然這些方法在仿真中都取得了較好的識別效果,但它們對聲吶的信噪比或先驗因素要求較高,對不同類型的聲信號的辨析能力相差較大且檢測速度較慢,難以應用于實時且噪聲較復雜的場景。
在有限樣本閉集的前提下,文獻[2]等采用支持向量機(SVM,support vector machine)對鯨魚聲數據集進行處理,達到了94.5%的多類識別準確率;文獻[3]基于SVM提出差分進化粒子群混合算法,調優了核函數和懲罰項參數,以識別不同水下目標的輻射噪聲;文獻[4]團隊提出梯度提升機(AdaBoost)和SVM混合模型,對水面艦船輻射噪聲目標信號進行識別,在樣本和特征數量減少50%的情況下,取得相同的識別準確率;然而,這些方法在面對樣本分布不均衡或總體樣本較少的情況時,性能下降嚴重,而這兩點是在真實的海洋艦船機械輻射噪聲信號偵收過程中普遍存在的問題。因此,在有效信號采集較少的情況下,如何讓水聲目標探測與識別裝備保持較高的分類準確率仍是一個極具挑戰性的問題。
針對這一問題,在深度學習領域已有相關思路,系主要通過對數據進行變換、生成等操作來解決樣本缺失問題。文獻[5]提出了生成對抗網絡(GAN,generative adversarial network),將源域映射到目標域;文獻[6]將特征提取器和分類器分別作為標準GAN(standard generative adversarial network)[7]、最小二乘GAN[8](least-squares generative adversarial network)和相對GAN[9](relativistic generative adversarial networks)中的生成器和判別器,并用GAN的基本訓練方式引導其交替更新參數,從而使各個GAN變體模型學習到源域目標域指定特征;文獻[10]設計了部分共享參數的特征提取器,以獲得聲紋特性的更好表征。文獻[11]則采用循環一致對抗生成對抗網絡(CycleGAN,cycle generative adversarial networks)學習源域與目標域無標簽數據特征之間的映射,將源域帶標簽數據轉化至目標域進行模型訓練,從而保證目標域聲紋數據能夠被準確識別[12]。
基于上述分析,在目標的數據樣本集總量不足或分布不均時,如何利用先驗信息或現有的少量樣本生成大量的、有效的充足樣本集以輔助模型訓練,從而提升識別模型的穩定和泛化性能,是制約深度學習賦能于水聲目標識別系統的瓶頸問題,也是深度神經網絡模型在水聲目標識別問題中邁向實際應用的必經之路。
為解決該問題,本文提出一種基于樣本擴充網絡的水聲目標分類模型優化算法。該方法首先對實際偵收的水聲信號進行預處理,提取其梅爾倒譜系數和時頻譜圖后,利用基于CycleGAN的樣本擴充網絡和少量的真實數據實現樣本生成,加入后續的深度神經網絡訓練中,從而降低后續訓練的迭代次數和收斂難度,并提升模型分類識別的準確率、穩定性與泛化能力。實驗表明該方法在聲吶信號樣本較少的情況下,通過網絡進行樣本擴充,有效提高了神經網絡模型的識別準確度,收斂速度和穩定性[13]。
CycleGAN是GAN網絡的一個重要分支,通過在源域目標域互相映射,生成更符合需求的樣本。CycleGAN的原理從本質上分析是利用兩個相互鏡像對稱的環形生成對抗網絡結構,通過在源域、目標域的4個判別器和兩個生成器中建立映射,以實現樣本的傳遞和循環。并對判別器進行針對性設計,以適應環形結構帶來的改變。
具體地,該網絡由兩個生成器和4個判別器組成,多個模塊需要不同的約束條件來訓練參數。其損失函數如下:
(1)
其中:前兩項是不同的對抗損失,第三項為身份映射損失,而第四項為循環一致損失。對抗損失是基礎的GAN損失,在對損失值進行極大極小化的博弈過程中提升生成器的生成能力,以得到符合需要的生成樣本。循環一致性損失使網絡循環生成樣本與原始輸入樣本的特征保持一致,從而保證在兩個生成器的計算過程中保留全部海況信息以及船只信息。身份保持損失與循環一致性損失相似,均用以訓練生成器。在訓練過程中,需將這四類損失按權重相結合作為最終優化函數,確保模型向目標方向學習并逐步收斂。
為保證生成樣本的多樣性和更好的訓練網絡,本文通過加入掩碼來訓練CycleGAN。在加入掩碼后,CycleGAN的損失函數需要更新為:
(2)
(3)
(4)
(5)
以上損失函數均為原樣本與掩碼m點乘得到。
本文基于CycleGAN搭建了如圖1所示的樣本擴充網絡,其主要包括預處理、擴充網絡和分類器3個部分。接下來將對模型的每一部分進行詳盡的闡述。

圖1 樣本擴充網絡框架
聲信號識別中,音頻信號中的頻率成分是隨著時間推移而變化的,無法直接對整段音頻提取特征。因此,本文需要首先對長時間的音頻信號進行分幀處理,利用短時傅里葉變換(STFT,short-time Fourier transform)等分析手段對信號進行解析,以兼顧在不同維度下短幀信號的時頻分辨率。
將長時間信號進行分幀,本文利用滑動窗加權的方式實現。常用的窗口包括Kaiser窗、Blackman窗、Hanning窗、Hamming窗、矩形窗等,本文采用的窗函數是Hamming窗。
窗函數的數學表達式為:
(6)
針對時域信號,進行了加窗之后的信號輸出為:
Oi=xi(n)*w(n)
(7)
考慮到水聲信號為單通道音頻,可以通過諧波分量和沖激分量分解(HPSS,Harmonic and percussive source separation),將單通道音頻轉換為雙通道立體聲,其中兩個通道分別為諧波分量與沖激分量,作為新的音頻輸入供后續特征提取使用。HPSS的具體步驟如圖2所示。

圖2 HPSS提取步驟

(8)
而在使用中值濾波時,我們使用了01掩蔽矩陣(binary masking)的方式,對譜圖進行處理,掩蔽矩陣Mh和Mp的構建方式如下:
(9)
使用掩蔽矩陣Mh和Mp將STFT中所有的時域-頻域容器劃分到為諧波分量或沖激分量中,進而從原始的STFT結果劃分出諧波分量Xh和沖激分量Xp:
χh=(χ⊙Mh)
χp=(χ⊙Mp)
(10)
最后,通過逆快速傅里葉變換(iSTFT)將修改后的頻譜圖Xhχh和χp反變換回時域,產生分離的諧波和沖激信號。
利用深度學習進行信號處理時,直接對經過預處理之后的水聲信號進行采樣,再將數據合成一維向量作為深度學習模型的輸入的方法不但難以深度挖掘頻域信息,而且采樣數據往往受水下噪聲的影響較大,不利于分類器對水中目標的精確分類和識別。
而時頻圖像包含了水中目標的時域、頻域、幅度的三維信息,更能從多個維度表示出水中目標的特征,包含的信息量更加豐富,同時,作為二維圖像,適合利用卷積神經網絡(CNN,convolutional neural network)進行特征的提取和分類,故本文將時頻圖像和梅爾頻率域的倒譜系數譜圖作為表征水中目標的數據作為深度學習網絡的輸入。
對初步處理后的一維時域音頻信號求取其梅爾倒譜系數(MFCC,mel-scale frequency cepstral coefficients)。MFCC參數是參照人體聽覺的臨界帶效應設計而成,目前在語音領域被廣泛應用,具有良好實踐效果[14]。
MFCC譜圖的提取流程圖如下,首先對信號進行分幀加窗,從而使信號局部平穩,而后通過離散傅里葉變換獲得能量譜。在獲得音頻的能量譜的同時,還需要構造一個梅爾濾波器組,并與能量譜進行點積運算得到梅爾頻譜圖。梅爾濾波器組的作用是將能量譜轉換為更接近人耳機理的梅爾頻率,本文中設置梅爾濾波器的個數為128。濾波過程的公式如下:
(11)
其中:N表示每一幀的總點數,Hm(f)為梅爾濾波器組系數。
MFCC與時頻圖類似,區別在于時頻圖為線性譜圖,而MFCC的頻域軸為非等間距劃分,達到了展現更多低頻細節的目的。同時MFCC的濾波器組構建也不同于時頻圖的正弦波,而是三角濾波器。MFCC的計算公式如下:
E′(m)=lgE(m)
(12)
為了適配模型的圖像處理性能并提升對比模型的易適配度,本文選取了包含大量目標時頻域信息的LOFAR譜作為模型的輸入樣本[15]。信號的預處理和特征提取流程如下:首先對水聽器陣列采集的多陣元時域信號進行空域[16]、頻域濾波,隨后對得到的一維聲波序列信號進行濾波得到一組幀序列{L1(n),L2(n) ,…,Lk(n)},對每一幀Lk(n)進行標準化和中心化處理:
(13)
(14)
其中:yk(n)代表標準化后的信號,N代表幀長度,xk(n)代表中心化后的信號。將信號的采樣序列分為連續的若干幀,每幀N個采樣點。接著對每幀信號做歸一化和中心化處理,最后對處理后的每幀信號加窗做短時傅里葉變換得到時頻譜圖。
擴充網絡由2個生成器、4個判別器組成。生成器可分為3個模塊:下采樣模塊、殘差提取模塊和上采樣模塊,如圖3所示。

圖3 生成器結構示意圖
在上采樣模塊中,經過掩碼處理的特征向量通過兩層卷積層進行特征提取。模塊再經過一層1*1的卷積層將二維特征轉化為一維特征。在殘差提取模塊中,網絡利用六個相同的殘差模塊對源域的一維特征進行轉化,保留源域海況信息的同時將源域特征轉化為目標域特征。下采樣模塊通過一層1*1的卷積層和三層二維卷積層將一維特征轉化為二維的具有目標域特征的特征向量,其二維尺寸大小與輸入的源域合成特征向量一致。具體網絡參數見表1,其中n代表每個批次的樣本數量。

表1 生成器網絡結構參數
4個判別器結構如圖4所示。通過一層卷積以及4個卷積下采樣模塊對其進行特征提取,最后送入一個大小為1的輸出卷積層,進行判別。判別器的具體參數見表2。

表2 判別器網絡結構參數

圖4 判別器結構示意圖
2.3.1 分類器模型
本文使用KNN[15]、CNN[16]和殘差網絡[17](ResNet,resident network)3種基礎網絡搭建不同分類器。其中KNN超參數n_neighbors為9,p為1;CNN共4層卷積層,kernel_size為3;ResNet18由4個block和一個前置卷積層組成,kernel_size為5。
在選取模型配置時,綜合了水聲目標分類領域的數據集規模和樣本特征等因素,從而選擇ResNet框架來搭建模型。
與其他卷積神經網絡不同,ResNet的提出是為了解決梯度爆炸和消失問題。隨著神經網絡的網絡層深度不斷增加,但是網絡的性能和模型的參數并非線性關系。而在模型層數太深時,反向傳播的梯度信息并不能更新到淺層的參數,或者梯度太大導致參數不斷跳變,模型失效。
ResNet的解決方法是引入了“殘差學習”(RL,residual learning)的思想。所謂殘差學習,是指將輸入與輸出的差值(即“殘差”)學習到,然后將該殘差加到輸入上,從而得到輸出。這樣做的好處是可以讓網絡更容易地學習到恒等映射(Identity Mapping),從而避免了梯度消失和爆炸的問題。
具體來說,ResNet通過在網絡中添加“殘差塊”(Residual Block)來實現殘差學習。它包含了兩個卷積層和跨層連接,負責從輸入數據中學習和提取特征。通過兩個卷積層來保持輸入輸出的維度不改變,然后通過跨層連接來規避模型在遇到簡單任務時擬合難的問題。通過這種結構,既能讓模型的梯度傳播到淺層網絡,也能在更低的維度空間中持續提高模型的學習能力。
ResNet18是ResNet系列的一個變體。與其他變體相比,ResNet18的架構較淺,有18層。雖然它的層數較少,但仍然具有強大的特征提取能力。
在訓練數據有限的情況下。ResNet18具有較淺的結構,可以幫助減少過度擬合,提高泛化性能。并且ResNet18在模型容量(捕捉復雜模式和特征的能力)和模型復雜性(參數和層的數量)之間取得了平衡。它提供了一個合理的深度架構,能夠有效地捕捉和學習有用的特征,而不會變得過于復雜或容易過度擬合。
2.3.2 神經網絡結構參數的確定
鑒于本文將經過預處理和特征提取的信號譜圖作為多模態深度神經網絡模型的輸入,將根據獲得的信號數據決定網絡結構的具體參數。
對于CNN和ResNet來說,其搭建過程中有關的主要參數如下:
1)卷積層的卷積核大小、卷積核個數;
2)激活函數的種類(常用的如Sigmoid,tanh,relu,leaky relu);
3)網絡的層結構(卷積層的個數/全連接層的個數);
4)池化方法的種類;
5)Dropout的概率;
6)有無歸一化。
通過神經網絡使用的經驗可以得到,在調整參數時,重要的是先調整網絡的層結構、卷積層的卷積核個數以及激活函數的種類,其他參數雖然也會對性能或多或少地產生影響,但是差異不大,所以首先確定重要參數,然后再對其他參數進行微調即可。
我們根據信號包含信息的豐富程度來調整CNN的結構以及每一層的卷積核個數。由于提取的LOFAR和MFCC譜圖具有概括性的特點,CNN的層數不宜過多,以三層為初始值根據實際實驗結果進行微調。若聲納數據中只包含單個識別的目標,我們將用適當的卷積核數量,在增強網絡對于多層次信息的提取能力的同時避免過擬合問題。對于池化層,由于水聲數據具有較強噪聲,而可選取最大池化,以突出信號特征。
考慮到該網絡模型在深層特征提取方面的優勢,構建多層ResNet。而適當增加隱藏層向量的維度有利于增強向量對水聲目標特征的表征能力,提高分類識別率。同時為了避免過擬合,在ResNet網絡中采用了遷移學習的思想,即將該模型參數的初始值設定為在ImageNet數據集經過訓練的模型參數,有利于模型收斂至最優值。對于池化層,選取平均池化,以保留豐富的信號特征。
對于激活函數,常用的激活函數種類包括Sigmoid,tanh,ReLU,leaky ReLU等。Sigmoid和tanh激活函數的缺點在于當輸入值過大或過小時易出現梯度消失的現象,不利于神經網絡的訓練,而相比之下,Leaky ReLU和ReLU可以很好地避免這一現象,因此,采取ReLU作為神經網絡的激活函數。
再確定以上3個參數后,對于卷積神經網絡的其他參數(如卷積核大小,池化方法等)采用實驗微調的方法,尋找在此問題場景下的最佳參數值。
2.3.3 神經網絡訓練策略及優化方式
對于水中目標識別問題而言,需要搭建的模型往往較為復雜,批量梯度下降法計算量過大,消耗的內存過多,隨機梯度下降法易陷入局部最優,從而導致模型過擬合,因此,兩種算法均不適用。Adam算法則將批量梯度下降法和隨機梯度下降法二者相結合,利用一階矩估計和二階矩估計可以實現學習率的自適應調整。Adam算法本質上利用梯度的一階矩估計和二階矩估計動態調節每個參數的學習率。在經過偏差修正后,每一次迭代都有確定的范圍,使得參數比較平穩,善于處理稀疏梯度和非平穩目標。與此同時,算法對內存的需求小,且較適合應用于大規模數據及參數的場景。
本文實驗的運行平臺:操作系統為Ubuntu20.04,GPU為NVIDIA RTX 3090,內存大小為16 G。開發語言和平臺為Python3.8和Pytorch1.19。
本文實驗采用兩個數據集,均為艦船噪聲信號,每個樣本持續3秒,采樣率為5 000。數據集A包含6種不同海洋條件下的3類艦船輻射噪聲。如表3所示,數據集分為訓練集和測試集,訓練集共有7 046個樣本,測試集共有1 459個樣本。訓練集為第1~5天采集數據,測試集為第6天采集數據。

表3 數據集A詳細
數據集B包含4類船只在不同海況、航行狀態的輻射噪聲,單個樣本的平均持續時間為3.3 s。總共有11 307個樣本,具體情況如表4所示。各種海洋條件下的樣本均勻分布在整個數據集中。每一類樣本按1∶1的比例分為訓練集和測試集。

表4 數據集B詳細
實驗通過對比不同參數設置下的網絡性能,得到了最佳參數配置,具體為:生成器和鑒別器的初始層卷積核大小為5*5,卷積層數分別為12和5,訓練批次大小為64、訓練輪次為160、掩碼長度25。
本實驗采用3種評價指標來驗證算法的性能,分別為聲紋識別準確率、損失函數loss值、余弦相似度。
余弦值匹配算法[18]利用向量空間中兩個向量夾角的余弦值作為衡量兩個個體間差異的大小。余弦值越接近1,就表明夾角越接近0°,也就是兩個身份特征向量越相似,越有可能屬于同一個目標個體。公式定義為:
(15)
本文總共兩個獨立實驗,分別使用A、B兩個數據集。實驗一旨在驗證擴充網絡對分類器的整體性能的提升效果。實驗二旨在驗證擴充網絡對分類器識別小樣本類的提升效果。
首先通過提取艦船噪聲的MFCC譜圖[19]或LOFAR譜圖特征,訓練樣本擴充網絡,讓網絡能夠生成目標域樣本的特征譜圖,再通過反變換生成一維音頻聲信號。本次實驗在數據集A的三類樣本中互相生成對應的聲信號樣本,使得三類樣本訓練集的數據量均為7 046,測試集不做變化。
實驗中,根據生成器和判別器loss的誤差值判斷網絡的收斂速度[20]。鑒別器的loss曲線呈現先上升后下降趨勢,在96輪次后基本收斂。生成器的loss曲線總體呈現下降的趨勢,在120輪次后基本收斂。
在樣本擴充網絡訓練完成后,分別對1,2,3類生成樣本,并與目標類計算LOFAR譜圖的余弦相似度,如表5所示。

表5 實驗一 余弦相似度
在完成類間余弦相似度的驗證后,通過ResNet18搭建分類器進行對比實驗,比較分類器的準確率曲線,驗證擴充網絡有效性,分類結果如圖5所示。

圖5 分類器準確率對比
分類器共訓練70輪次,自上而下第三條曲線是總準確率。在加入生成樣本后,分類器的總準確率從76%提升到80%。為確保結果的準確性,實驗進一步選取了3個不同的分類器進行驗證,分別為KNN,CNN(4層卷積),ResNet18,每個實驗重復5次,并在表6中給出平均統計結果。

表6 實驗一樣本擴充前后分類準確率
經過對比實驗可以看出,在不同分類器網絡中,使用樣本擴充網絡擴充數據集,均能提升分類識別效果,相較于在原始數據集上最佳準確率74%,加入生成樣本后,最佳準確率能提升到82.1%。
實驗二首先通過提取艦船噪聲的MFCC譜圖/LOFAR譜圖特征,訓練樣本擴充網絡,使得網絡能夠生成目標域樣本的MFCC/LOFAR譜圖。再通過反變換生成聲信號樣本。與實驗一不同的是,此次實驗采用數據集B的一半作為訓練集,一半作為測試集,在樣本擴充網絡訓練完成后,只針對第4類進行擴充。
實驗中,根據生成器和判別器loss的誤差值判斷網絡的收斂速度。由于第4類樣本數量與其他3類相差過大,訓練過程中需要多次調整學習率。判別器的loss曲線訓練時呈現先下降后上升的趨勢,在300輪次時基本收斂。生成器的loss曲線呈現先上升后下降趨勢,在450輪次時基本收斂。
在樣本擴充網絡訓練完成后,對第4類原始樣本和生成樣本計算余弦相似度,結果如表7所示。

表7 實驗二余弦相似度
訓練好擴充網絡后,通過ResNet18搭建分類器進行對比實驗,比較分類器的準確率曲線,驗證擴充網絡有效性,分類結果如圖6所示。

圖6 分類器準確率對比
分類器共訓練30輪次,前4條曲線是單類的準確率,自上而下第四條曲線為總準確率。在加入生成樣本后,分類器的綜合識別準確率從88%提升到了96%,且收斂速度加快,模型也更加穩定。
為確保結果的準確性,進一步選取了3個不同的分類器進行驗證,分別是KNN,CNN(4層卷積),ResNet18,每個實驗重復5次,并在表8中給出平均結果。

表8 實驗二 樣本擴充前后分類準確率
經過對比實驗可以看出,在不同分類器網絡中,使用樣本擴充網絡對小樣本類進行擴充。相較于在原始數據集上最佳準確率96.5%,加入生成樣本后,最佳準確率提升到97.5%;針對生成的第4類樣本,最佳準確率從88%提升到了96%。
在水聲目標識別領域中,樣本分布不均衡或有效樣本缺失是一種常見問題。為了解決此問題,深度學習領域的研究提出了多種方法,大部分是對模型參數進行配置以實現針對性樣本生成。本文提出了一種樣本擴充網絡,該算法基于CycleGAN網絡搭建,通過學習與目標生成水聲數據樣本相似環境采集的頻譜特征和真實分布,生成真實樣本,并加入分類器訓練中,提升其性能。
本文設計了基于兩個不同水聲數據集的對比實驗,通過3個分類器對擴充網絡進行評估。實驗表明,擴充網絡能加速訓練和收斂過程,有效提升分類器的整體性能和對小樣本目標類的識別能力。