何榮欽 胡鵬 馮金鹿
(第七一五研究所,杭州,310023)
對(duì)水聲目標(biāo)、雜波進(jìn)行分類在漁業(yè)生產(chǎn)、海洋信息產(chǎn)業(yè)、科學(xué)調(diào)查研究以及國防軍事中有著重要作用[1],可以更好的從雜波中將目標(biāo)區(qū)分出來,為后續(xù)聲吶信息處理提供重要幫助[2]。水聲目標(biāo)的識(shí)別總體框架一般包括目標(biāo)獲取、特征提取、分類識(shí)別三大部分。在目標(biāo)獲取部分,海洋試驗(yàn)不夠多,一般數(shù)據(jù)積累較少,優(yōu)質(zhì)數(shù)據(jù)集不容易獲取。特征提取部分,常規(guī)特征提取較成熟,基本上能夠反映目標(biāo)真實(shí)特性[3]。
傳統(tǒng)的水聲目標(biāo)和雜波的分類是通過人工觀察聲吶畫面來區(qū)分,將雜波剔除,選擇目標(biāo)。因此僅停留在表面特征上,工作量大,不能很好的完成分類工作。人工智能分類方法可以提高分類準(zhǔn)確率和自動(dòng)化。當(dāng)水聲數(shù)據(jù)集樣本中目標(biāo)數(shù)量較少、雜波較多時(shí),采用一種能夠適應(yīng)不平衡數(shù)據(jù)集的方法尤為重要。集成方法的基分類器相對(duì)簡單,通過boost 之后又能表現(xiàn)出很好的效果,且對(duì)樣本集數(shù)量沒有太大要求。本文采用AdaBoost 和RusBoost 方法,對(duì)數(shù)量有限的不平衡水聲目標(biāo)數(shù)據(jù)進(jìn)行交叉驗(yàn)證實(shí)驗(yàn),對(duì)比分析兩類算法識(shí)別效果。
Boost 是一類可將弱學(xué)習(xí)器提升為強(qiáng)學(xué)習(xí)器的算法[4]。先從訓(xùn)練集訓(xùn)練出一個(gè)基學(xué)習(xí)器,再根據(jù)基學(xué)習(xí)器的表現(xiàn)對(duì)樣本分布進(jìn)行調(diào)整,使得先前基學(xué)習(xí)器做錯(cuò)的訓(xùn)練樣本在后續(xù)受到更多關(guān)注,然后基于調(diào)整后的樣本分布來訓(xùn)練下一個(gè)基學(xué)習(xí)器。如此循環(huán)進(jìn)行,直至基學(xué)習(xí)器數(shù)目達(dá)到事先指定的值T,最后將T個(gè)基學(xué)習(xí)器進(jìn)行加權(quán)結(jié)合。其中AdaBoost[5]就是常用方法。隨著T的增加,集成錯(cuò)誤率將指數(shù)級(jí)下降,最終趨于零。因此AdaBoost對(duì)分類有較好的效果。但是當(dāng)目標(biāo)較少、雜波較多時(shí),雜波類對(duì)誤差損失函數(shù)貢獻(xiàn)較大,因此,AdaBoost 模型更容易傾向于數(shù)量較多的雜波,更可能將目標(biāo)分類成雜波,不能準(zhǔn)確地將目標(biāo)從雜波區(qū)分出來。
圖1 AdaBoost 算法流程
(1)初始化
(2)迭代
● 基分類器
式中,m為迭代計(jì)數(shù)。
● 分類誤差
當(dāng)目標(biāo)數(shù)據(jù)少、雜波多,整個(gè)數(shù)據(jù)集存在較大不平衡問題,因此從數(shù)據(jù)角度出發(fā),對(duì)樣本進(jìn)行抽樣[6-9]。隨機(jī)采樣是較常見的方法,主要分為隨機(jī)上采樣和隨機(jī)下采樣。前者從少數(shù)樣本中有放回的進(jìn)行抽樣,重復(fù)多次,組合成新的與多數(shù)樣本數(shù)量相近的樣本集。而隨機(jī)下采樣則相反,在多數(shù)樣本中有放回或者無放回的重復(fù)采樣,抽取與少數(shù)樣本數(shù)量相近的樣本集。本文中因?yàn)槟繕?biāo)較少且雜波較多,需要多次重復(fù)上采樣才能使得樣本相對(duì)平衡分布。雜波對(duì)應(yīng)的樣本數(shù)量較大,通過重復(fù)上采樣會(huì)使得目標(biāo)被重復(fù)采樣次數(shù)過多,生成目標(biāo)上采樣也不能保證與真實(shí)目標(biāo)特征一致且與雜波特征不一樣。人工隨機(jī)下采樣對(duì)數(shù)據(jù)集預(yù)處理,雖然表面上看解決了數(shù)據(jù)不平衡問題,但雜波可能是由多種原因造成,本身就存在不均衡的問題,因此實(shí)際送給Boost 的訓(xùn)練數(shù)已經(jīng)去除了部分雜波,每個(gè)基分類器獲得的子數(shù)據(jù)集來源于同一人為下采樣后數(shù)據(jù)集,使得被去除的雜波信息丟失。因此,本文采樣應(yīng)用RusBoost 方法,它使用完整數(shù)據(jù)集,對(duì)基學(xué)習(xí)器獨(dú)立下采樣訓(xùn)練集成,這樣能夠盡量保證雜波被全部利用,避免采樣造成的信息丟失[10]。
RusBoost 即隨機(jī)欠采樣提升算法?;驹砼cAdaBoost 類似。只是對(duì)訓(xùn)練集預(yù)處理時(shí),使用RUS(Random Under-Sampling)方法進(jìn)行抽取,將隨機(jī)下采樣抽取后的訓(xùn)練集子集輸入boost 方法中,最終得到訓(xùn)練模型。該算法區(qū)別在于:先將所有樣本設(shè)置歸一化的樣本權(quán)重。
第i次迭代時(shí),從多數(shù)類樣本中隨機(jī)下采樣得到m個(gè)樣本,與少數(shù)類樣本組成隨機(jī)下采樣訓(xùn)練子集Si,并重新歸一化權(quán)重Sd。此時(shí)得到了第i次迭代的訓(xùn)練集Si和權(quán)重Sd。然后進(jìn)行Boost 迭代。
數(shù)據(jù)為海試獲得的主動(dòng)水聲目標(biāo)數(shù)據(jù)。從目標(biāo)中提取出關(guān)于幾何特征和回波信號(hào)特征。水聲目標(biāo)特征提取是通過信號(hào)分析和圖像分析得到。一般從信號(hào)發(fā)射、信號(hào)傳播和接收回波信號(hào)并處理分析后得到目標(biāo)的材料特征、幾何特征以及運(yùn)動(dòng)特征[1,11]。本文提取4 類特征共12 個(gè),分別是擴(kuò)展類特征4個(gè)、信噪比特征1 個(gè)、統(tǒng)計(jì)特征2 個(gè)和形狀特征5個(gè)。擴(kuò)展類特征是根據(jù)主動(dòng)聲吶回波信號(hào)的距離角度等擴(kuò)展,比如距離擴(kuò)展;信噪比特征是能量信噪比相關(guān)的特征,比如能量密度;統(tǒng)計(jì)特征是回波中過門限點(diǎn)的統(tǒng)計(jì)學(xué)特征,比如峰度;形狀特征是回波中過門限點(diǎn)形狀分布特征,比如點(diǎn)密度。
本次水聲目標(biāo)數(shù)據(jù)集A 共有目標(biāo)176 個(gè),雜波43 036 個(gè)。隨機(jī)劃分為訓(xùn)練集A_train 和測試集A_test,其中訓(xùn)練集包含105 個(gè)目標(biāo),25 863 個(gè)雜波;測試集包含71 個(gè)目標(biāo),17 173 個(gè)雜波。數(shù)據(jù)集B 目標(biāo)67 個(gè),雜波8929 個(gè)。數(shù)據(jù)集A 和B 為不同時(shí)間不同海域試驗(yàn)數(shù)據(jù)。
訓(xùn)練采用交叉驗(yàn)證法,進(jìn)行5 折交叉驗(yàn)證。迭代次數(shù)為50。采用決策樹作為具體基分類器,并將決策樹最大深度設(shè)置為20。分別使用AdaBoost 和RusBoost 進(jìn)行訓(xùn)練,得到訓(xùn)練驗(yàn)證結(jié)果。最后分別對(duì)測試集A_test 和數(shù)據(jù)集B 進(jìn)行測試。
圖2 為AdaBoost 和RusBoost 的ROC(Receiver Operating Characteristic)曲線??梢钥吹絻烧逺OC曲線較為相近,但是預(yù)測結(jié)果相差較大。對(duì)于驗(yàn)證結(jié)果,設(shè)定目標(biāo)為正例,雜波為反例,那么AdaBoost的真正例率(真實(shí)正例被預(yù)測為正例的比例,用TPR表示)為0.44,假正例率(真實(shí)的反例被預(yù)測為正例的比例,用FPR表示)為0.00,對(duì)目標(biāo)濾除較多。RusBoost 的TPR為0.92,F(xiàn)PR為0.02,即90%以上的目標(biāo)被正確分類,被錯(cuò)誤分類為目標(biāo)的雜波的比例也很低。
圖2 訓(xùn)練集A_train ROC 曲線
圖3 和圖4 分別為AdaBoost 和RusBoost 數(shù)據(jù)集A 目標(biāo)預(yù)測概率值的頻率分布直方圖。很明顯可以看出,前者雜波較為集中,目標(biāo)分散在0.2~0.9之間,但是一部分目標(biāo)預(yù)測概率低于0.5,無法被正確分類。后者雜波預(yù)測概率雖然往0.5 偏移,但是目標(biāo)基本上集中到了0.5 右側(cè)。根據(jù)預(yù)測概率,能夠較好地將目標(biāo)分類出來。這也就解釋了ROC曲線相近,但是概率分布存在差異,使得后者分類效果較好。
測試集A_test 和數(shù)據(jù)集B 分別進(jìn)行測試,結(jié)果見表1~3。從表1、2 可以看出, AdaBoost 雖然FPR很低,但TPR僅0.5 左右,一半真實(shí)目標(biāo)未被正確分類。應(yīng)用RusBoost 方法后,雖然雜波被分類成目標(biāo)是數(shù)量略有升高,但是TPR超過了0.9。使用相近的數(shù)據(jù)集B 進(jìn)行測試(表3)后,仍舊可以接近0.9 的目標(biāo)分類正確率,由于B 數(shù)據(jù)集雜波相對(duì)較少,因此FPR有所上升,但實(shí)際留下的雜波數(shù)量變化不大。
表2 測試集A_test 混淆矩陣
表3 數(shù)據(jù)集B TPR-FPR 表
經(jīng)過研究對(duì)比,RusBoost 較AdaBoost 更好地處理水聲目標(biāo)不平衡數(shù)據(jù),使得目標(biāo)被正確分類,雜波也盡可能被正確分類。通過數(shù)據(jù)集A 訓(xùn)練得到的模型在數(shù)據(jù)集B 上進(jìn)行測試也能有較好的效果,模型具有一定的泛化能力。因此在有限的不平衡水聲目標(biāo)數(shù)據(jù)集下,訓(xùn)練速度較快且能夠應(yīng)對(duì)不平衡數(shù)據(jù)的RusBoost 方法在目標(biāo)雜波分類中效果較好,能夠勝任諸多科研生產(chǎn)任務(wù)。未來隨著數(shù)據(jù)集的擴(kuò)充與數(shù)據(jù)集質(zhì)量的提高,可以引入更多的機(jī)器學(xué)習(xí)方法,以尋求更好的結(jié)果。