包善書,車 波,鄧林紅
(1.常州大學 計算機與人工智能學院,江蘇 常州 213164;2.常州大學 生物醫(yī)學工程與健康科學研究院 常州市呼吸醫(yī)學工程重點實驗室,江蘇 常州 213164)
肺音是臨床聽診的一種重要生理信號,其信號特征與肺部疾病有著緊密關(guān)聯(lián),如從哮喘和慢性阻塞性肺疾病患者的肺音中可聽到一種連續(xù)型的異常肺音,通常稱為哮鳴音(Wheezes)[1],而從慢性支氣管炎、肺炎、肺纖維化等患者的肺音中則可聽到一種間斷型的異常肺音,即所謂的爆裂音(Crackles)[2]。
目前臨床聽診中,醫(yī)生主要依靠經(jīng)驗判斷患者的肺音類型以輔助其對患者肺部疾病的診斷。但由于肺音信號混雜著人體復雜生理環(huán)境下的背景噪音(如心音、腸道音等),其信噪比往往較低,僅僅依賴醫(yī)生的主觀經(jīng)驗判斷容易發(fā)生對肺部疾病的漏診甚至誤診。隨著計算機技術(shù)的不斷發(fā)展,運用機器學習等數(shù)據(jù)驅(qū)動的方法實現(xiàn)對肺音信號的智能識別和分類,進而輔助醫(yī)生診斷患者肺部疾病狀況已成為重要的發(fā)展趨勢[3-5]。
然而,目前肺音識別研究所面臨的主要問題在于:傳統(tǒng)機器學習方法難以從肺音特征中獲取關(guān)鍵信息,導致識別效果不理想;深度學習方法對數(shù)據(jù)的依賴性較高,而肺音數(shù)據(jù)稀少且難以獲取,致使識別網(wǎng)絡容易過擬合,難以完成精準高效的分類識別。近年來使用最廣泛的肺音數(shù)據(jù)集是生物醫(yī)學健康信息學國際會議(ICBHI)[6]公開的ICBHI-2017,該數(shù)據(jù)集包含來自126 名受試者的6 898 個帶注釋的4 類肺音數(shù)據(jù),但數(shù)據(jù)量仍然不夠充裕?;谠摂?shù)據(jù)集的肺音識別研究有:文獻[7]提出一種特征融合的方法,在融合肺音的短時傅里葉譜特征與小波特征后,采用支持向量機(Support Vector Machine,SVM)識別ICBHI 數(shù)據(jù)集中的4 類肺音,識別準確率為67.29%;文獻[8]采用肺音的梅爾頻率倒譜系數(shù)(Mel Frequency Cepstral Coefficient,MFCC)特征,通過長短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡分類識別4 類肺音,識別準確率為74%;文獻[9]提取肺音的短時傅里葉譜特征,利用一種名為Parallelpooling CNN 的卷積神經(jīng)網(wǎng)絡分類識別4 類肺音,識別準確率為70.45%。由此可見,無論是傳統(tǒng)的機器學習算法還是深度學習算法,都難以在肺音識別中取得較好的效果,當前亟需開發(fā)一種基于數(shù)據(jù)自驅(qū)動、識別高精度和綜合性能優(yōu)異的肺音識別方法。
2017 年,Google 推出在Audio Set[10]音頻 數(shù)據(jù)集上訓練的VGGish 神經(jīng)網(wǎng)絡,該方法隨即在音頻分類與識別的研究中得到了較好的應用,顯示出在有限數(shù)據(jù)集基礎(chǔ)上獲得高精度分類識別的巨大潛力[11-12]。此外,現(xiàn)代有關(guān)音頻信號的研究往往從時域和頻率域2 個方面入手,運用時頻分析的方法將信號的時序波形圖轉(zhuǎn)化為蘊含頻域特征和時域特征的譜圖,依據(jù)譜圖的特征識別信號本身[13]。針對小型音頻數(shù)據(jù)集,借助遷移學習與圖像識別的思路,使用大型數(shù)據(jù)集ImageNet 上的預訓練卷積神經(jīng)網(wǎng)絡識別信號也是一種有效的方式。
綜上,考慮到遷移學習方法能克服數(shù)據(jù)集規(guī)模較小所致模型識別精度低的問題[14-15],本文借助VGGish 網(wǎng)絡在Audio Set 上的預訓練參數(shù)以及VGG19 在ImageNet 上的預訓練參數(shù),提出一種雙源域遷移學習方法識別肺音。首先,構(gòu)建一種VGGish優(yōu)化模型,針對VGGish 網(wǎng)絡的結(jié)構(gòu)特性,在網(wǎng)絡全連接層之前融合高效通道注意力(Efficient Channel Attention,ECA-Net)[16]模塊;其次,采用多尺度擴張卷積對VGGish 網(wǎng)絡的輸出特征圖進行卷積運算,從而捕獲高維向量的內(nèi)在聯(lián)系,得到語義信息更豐富的特征;然后,利用雙向門控循環(huán)單元(Bidirectional Gated Recurrent Unit,BiGRU)從增強后的特征中獲取肺音的時序特性;最后,提出一種融合VGGish 優(yōu)化模型與VGG19 的肺音識別模型(LSR-Net),用訓練數(shù)據(jù)分別訓練VGGish 優(yōu)化模型與VGG19 作為特征提取器,將具有高層語義的特征向量融合后輸入CatBoost 算法[17]實現(xiàn)分類。
1.1.1 VGGish 網(wǎng)絡
Audio Set包含200多萬個音頻數(shù)據(jù),共600多類,預訓練模型VGGish 中的參數(shù)蘊含了大量音頻數(shù)據(jù)的通用特性,利用在該數(shù)據(jù)集上訓練好的VGGish網(wǎng)絡,能在一定程度上克服過擬合問題,從而對肺音實現(xiàn)較好的分類效果。值得一提的是,Audio Set上用來訓練VGGish 的數(shù)據(jù)不是音頻文件的波形信號,而是波形數(shù)據(jù)轉(zhuǎn)換后具有特定形狀的對數(shù)梅爾頻率譜(Logarithmic Mel spectrum,Log-Mel),具體步驟如下:1)用16 000 Hz 重新采樣音頻數(shù)據(jù);2)對重采樣后的音頻數(shù)據(jù)進行短時傅里葉變換,得到頻譜圖;3)將步驟2)中的頻譜圖映射到64 階梅爾濾波器組中計算梅爾頻率譜,然后再取對數(shù),得到對數(shù)梅爾頻率譜;4)以0.96 s 的時長重新組幀,共96 幀,每一幀包含64 個梅爾頻帶,即對于時長為Ns 的音頻文件,所對應的對數(shù)梅爾譜圖維度為,其中,表示N除以0.96后向上取整數(shù)。圖1 展示了實驗所用肺音數(shù)據(jù)的時域波形圖(上圖)與按這種方式轉(zhuǎn)換后的對數(shù)梅爾頻率譜(下圖)。由圖1 可見,相對于肺音的波形數(shù)據(jù),對數(shù)梅爾頻率譜蘊含著更多的時頻信息。
圖1 不同類型肺音的波形時域圖與對數(shù)梅爾頻率譜Fig.1 Waveform time domain diagrams and logarithmic Mel spectrums of different types of lung sounds
表1 列出了VGGish 網(wǎng)絡的結(jié)構(gòu)及網(wǎng)絡層參數(shù)。由表1 可見,VGGish 的輸入特征圖維度為96×64×1,這意味著維度為的對數(shù)梅爾頻率譜無法直接輸入VGGish,因此,常用的方式是讓VGGish 按照時序依次學習個時間步內(nèi)譜圖的信息。
表1 VGGish 網(wǎng)絡的結(jié)構(gòu)與網(wǎng)絡層參數(shù) Table 1 Structure and network layer parameters of VGGish network
1.1.2 ECA-Net
借助預訓練模型能一定程度上克服因肺音數(shù)據(jù)稀少帶來的困擾,但僅依靠預訓練參數(shù)未必能取得理想的效果。為進一步提高識別精度,本文從模型自身的角度對VGGish 進行改進。由于VGGish 本身是一種卷積神經(jīng)網(wǎng)絡,因此本文考慮在VGGish 中融合通道注意力機制以提升性能。通道注意力包括SE-Net、CBAM[18-19]等,通過實驗可以發(fā)現(xiàn),ECA-Net是通道注意力機制中提升肺音識別效果最為顯著的一種,其核心功能為:通過學習的方式,為特征向量的通道數(shù)分配權(quán)重,以利于關(guān)注重要特征和抑制次要特征,從而提升識別精度。ECA-Net 結(jié)構(gòu)如圖2所示。
圖2 ECA-Net 結(jié)構(gòu)Fig.2 Structure of ECA-Net
設(shè)輸入特征向量F的數(shù)據(jù)維度為W×H×C(W與H分別為寬和高,C為通道數(shù)),經(jīng)過全局平均池化(Global Average Pooling,GAP)后,得到一個1×1×C的特征向量Y,這個特征向量經(jīng)過一維卷積運算與Sigmoid 函數(shù)得到通道注意力圖ω,ω中的數(shù)ωi即為對應通道的權(quán)重,最后將每個通道上的數(shù)乘上該通道對應的權(quán)重,即完成對每個通道權(quán)重的分配。ωi與ω的計算公式如式(1)與式(2)所示:
其中:yi為Y的第i個分量;wi為yi對應的權(quán)重;k表示局部跨通道交互的覆蓋范圍,即一維卷積核的大??;Ωi為與yi相鄰的K個通道的集合;Convk表示一維卷積;σ為Sigmoid 函數(shù)。
1.1.3 特征增強
由表1 可知:對于每個時間步的譜圖,VGGish 輸出128 維的特征向量;對于Ns 的音頻數(shù)據(jù),VGGish輸出維的特征圖。常規(guī)思路是直接對維的特征圖進行分類,但是這種做法忽略了128 維特征向量內(nèi)部的關(guān)聯(lián)。
考慮到擴張卷積能夠增大感受野,從而捕獲高維度向量中距離較遠的元素之間的關(guān)系,同時多尺度卷積能從不同的感受野獲取信息,從而全面捕獲高維向量內(nèi)部的關(guān)聯(lián)信息,本文提出一種基于多尺度擴張卷積的特征增強的方法,即針對每128 維向量,采用多個大小不同且擴張率不同的一維卷積核進行卷積運算,并將運算后的特征向量相加。上述特征增強示意圖如圖3 所示。
圖3 特征增強示意圖Fig.3 Schematic diagram of feature augment
由圖3 可見,對于任意128 維的特征向量F,將其分別經(jīng)過t次一維卷積運算后相加得到增強后的向量。此過程具體由式(3)給出,其中,F(xiàn)Aug表示增強后的向量,Convi表示第i次卷積運算。
1.1.4 VGGish 優(yōu)化模型的構(gòu)建
本文在VGGish 網(wǎng)絡中融合ECA-Net 后,使VGGish 網(wǎng)絡按照時序依次學習譜圖中的信息。在此基礎(chǔ)上,對VGGish 提取的特征圖進行特征增強,并使用BiGRU 捕獲肺音數(shù)據(jù)的時序信息,完成對肺音的識別分類。此模型命名為VGGish 優(yōu)化模型,具體工作原理如圖4 所示。本文用VGGish+ECA-Net表示融合了ECA-Net 的VGGish 網(wǎng)絡。在圖4 中,TimeStep 為時間步,意味著本文只構(gòu)建了一個VGGish 網(wǎng)絡,并非個,相較于使用個VGGish 網(wǎng)絡并行處理,可有效減少不必要的內(nèi)存開銷。
圖4 基于VGGish 優(yōu)化模型的肺音識別示意圖Fig.4 Schematic diagram of lung sound recognition based on VGGish optimization model
VGG19 是一種經(jīng)典的卷積神經(jīng)網(wǎng)絡,其包含16 個卷積層、5 個最大池化層、3 個全連接層。為了使用VGG19 在ImageNet 上的預訓練參數(shù),需要將肺音的波形數(shù)據(jù)轉(zhuǎn)化至規(guī)格為224×224×3 的譜圖,具體步驟如下:1)將肺音的波形數(shù)據(jù)轉(zhuǎn)換至規(guī)格為224×224×1 的譜圖;2)將步驟1)中的譜 圖復制3 份,拼接成規(guī)格為224×224×3 的譜圖。
譜圖的形式有多種,考慮到對數(shù)梅爾頻率譜在音頻識別與分類中表現(xiàn)出色,本文依舊選擇將肺音信號轉(zhuǎn)換為對數(shù)梅爾頻率譜,只是譜圖的轉(zhuǎn)換方式及參數(shù)與轉(zhuǎn)換后的形狀與上文中提及的略有不同。為了提升VGG19 的識別效果,本文舍去最后的3 個全連接層,并融合通道注意力模塊ECA-Net。基于VGG19的肺音識別示意圖如圖5所示。
圖5 基于VGG19 的肺音識別示意圖Fig.5 Schematic diagram of lung sound recognition based on VGG19
本文借助VGGish 在Audio Set 上的預訓練參數(shù)以及VGG19 在ImageNet 上的預訓練參數(shù),提出一種基于雙源域遷移學習的肺音識別方法LSR-Net。使用訓練后的VGGish 優(yōu)化模型以及VGG19 作為特征提取器,將具有高級語義的特征向量輸入CatBoost算法,最終實現(xiàn)肺音的識別?;贚SR-Net 的肺音識別示意圖如圖6 所示,將肺音信號分別轉(zhuǎn)換為規(guī)格為與(224,224,3)的對數(shù)梅爾頻率譜輸入VGGish 優(yōu)化模型與VGG19,并將輸出的256 維與128 維特征向量融合后輸入CatBoost 算法。CatBoost 是梯度提升決策樹的主流算法之一,較XGBoost[20]與LightGBM[21],其所使用的Ordered boosting 方法能在一定程度上緩解過擬合。
圖6 基于LSR-Net 的肺音識別示意圖Fig.6 Schematic diagram of lung sound recognition based on LSR-Net
本文采用2017 年生物醫(yī)學健康信息學國際會議提供的公開數(shù)據(jù)集(ICBHI-2017)和文獻[22]公開的數(shù)據(jù)集(Coswara)作為實驗數(shù)據(jù)集。
ICBHI-2017 中包含來自126 名受試者的6 898 個帶注釋的4 類肺音數(shù)據(jù),其中有3 642 個正常肺音、1 864 個爆裂音、886 個哮鳴音、506 個爆裂音與哮鳴音混合的異常肺音。將數(shù)據(jù)集按照8∶2 的比例分為訓練集與測試集,并將肺音數(shù)據(jù)的采樣時長設(shè)置為6 s。
Coswara 為一個持續(xù)擴充樣本的新冠音頻數(shù)據(jù)集,現(xiàn)階段包含來自1 000 多位健康受試者與600 多位新冠受試者的肺音、咳嗽、說話等音頻數(shù)據(jù)。實驗數(shù)據(jù)包含來自673 位新冠患者的1 345 個肺音數(shù)據(jù)以及等量的健康受試者的1 345 個肺音數(shù)據(jù)。本文將這2 690 個肺音數(shù)據(jù)按照8∶2 的比例分為訓練集與測試集。
本文中的ICBHI 肺音實驗數(shù)據(jù)集有專門的評估指標,即特異性、敏感性與ICBHI-score,相關(guān)計算公式如下所示:
其中:TP表示樣本的真實值為正類,模型也識別為正類的樣本數(shù)量;FN表示樣本的真實值為正類,模型識別為負類的樣本數(shù)量,正類可以為任意類型的肺音,除正類外的其余肺音即為負類;Normal 表示正常肺音;Abnormal 表示異常肺音,包含哮鳴音、爆裂音以及兩者的混合音;特異性指標Sp表示在正常肺音中,模型識別正確的占其總數(shù)的比例;敏感性指標Se表示除正常肺音以外的3 類異常肺音中,模型識別正確的數(shù)目占這3 類異常肺音的比例;IICBHI-score為ICBHI-score。
對于新冠數(shù)據(jù)集Coswara,同樣使用特異性和敏感性作為評估指標。同時考慮到數(shù)據(jù)集中2 類樣本的個數(shù)相同,因此使用準確率作為第3 個指標。
本文提出一種VGGish 優(yōu)化模型,單獨運用VGGish 可以實現(xiàn)肺音的識別,即將VGGish 網(wǎng)絡按時序?qū)W習后輸出的特征向量直接輸入全連接層分類。基于VGGish 的肺音識別示意圖如圖7 所示。
圖7 基于VGGish 的肺音識別示意圖Fig.7 Schematic diagram of lung sound recognition based on VGGish
為了驗證本文對VGGish 優(yōu)化的有效性,將原VGGish 網(wǎng)絡添加任一優(yōu)化方式后的VGGish 網(wǎng)絡與VGGish 優(yōu)化模型在ICBHI-2017 與Coswara 數(shù)據(jù)集上進行實驗,結(jié)果如表2 和表3 所示。實驗結(jié)果顯示,VGGish 優(yōu)化模型的指標較原VGGish 提升顯著,且在VGGish 中任意優(yōu)化方式都會提高模型的性能。這些結(jié)果說明本文采用的多種優(yōu)化方式結(jié)合的方法是合理且有效的。
表2 VGGish優(yōu)化的有效性驗證(ICBHI-2017數(shù)據(jù)集實驗結(jié)果)Table 2 Validation of VGGish optimization(experimental results on ICBHI-2017 dataset)%
表3 VGGish 優(yōu)化的有效性驗證(Coswara 數(shù)據(jù)集實驗結(jié)果)Table 3 Validation of VGGish optimization(experimental results on Coswara dataset)%
本文借助VGG19在ImageNet上的預訓練參數(shù)實現(xiàn)肺音識別,ImageNet作為最具權(quán)威代表的圖像數(shù)據(jù)集,其上的預訓練模型不僅僅只有VGG19。本文使用ImageNet 不同的預訓練模型在肺音數(shù)據(jù)集上進行實驗,實驗結(jié)果如表4 和表5 所示。實驗結(jié)果顯示,較其他卷積神經(jīng)網(wǎng)絡,VGG19對肺音的識別效果最好。雖然ResNet、DenseNet等結(jié)構(gòu)更優(yōu)異的卷積神經(jīng)網(wǎng)絡在許多計算機視覺任務中取得了比VGG19更佳的效果,但在數(shù)據(jù)量較為稀少的肺音數(shù)據(jù)上表現(xiàn)得并不出色。這進一步說明,現(xiàn)有的肺音數(shù)據(jù)的確不夠充裕,致使網(wǎng)絡過擬合現(xiàn)象嚴重,泛化能力弱。
表4 ImageNet 上不同預訓練模型的識別效果比較(ICBHI-2017 數(shù)據(jù)集實驗結(jié)果)Table 4 Comparison of recognition effects of different pre-training models on ImageNet(experimental results on ICBHI-2017 dataset)%
表5 ImageNet 上不同預訓練模型的識別效果比較(Coswara 數(shù)據(jù)集實驗結(jié)果)Table 5 Comparison of recognition effects of different pre-training models on ImageNet(experimental results on Coswara dataset)%
本文使用訓練后的VGGish 優(yōu)化模型與VGG19作為特征提取器,將具有語義的高層特征向量融合后輸入CatBoost 算法以構(gòu)建LSR-Net。圖8 與圖9 所示的混淆矩陣分別展示了LSR-Net 在ICBHI-2017 與Coswara 上對每種肺音分類的具體情況。由圖8 的混淆矩陣可知,該模型在ICBHI-2017 分類結(jié)果的各項指標中,特異性指標為88.75%,敏感性指標為72.04%,ICHBI-score 為80.39%;由圖9 的混淆矩陣可知,該模型在Coswara 上分類結(jié)果的各項指標中,特異性指標為80.66%,敏感性指標為77.69%,準確率為79.18%。由此可以看出,LSR-Net 對肺音的識別效果較VGGish 優(yōu)化模型與VGG19 有較大提升。
圖8 LSR-Net 在ICBHI-2017 上對肺音識別的混淆矩陣Fig.8 The confusion matrix of LSR-Net for lung sound recognition on ICBHI-2017
圖9 LSR-Net 在Coswara 上對肺音識別的混淆矩陣Fig.9 The confusion matrix of LSR-Net for lung sound recognition on Coswara
為探究識別效果的提升是否僅與CatBoost 算法有關(guān),而與雙源域的預訓練模型結(jié)合無關(guān),本文分別將VGG19 單獨結(jié)合CatBoost、將VGGish 優(yōu)化模型單獨結(jié)合CatBoost 在肺音數(shù)據(jù)集上進行實驗,結(jié)果如表6 和表7 所示。實驗結(jié)果顯示,無論是VGG19結(jié)合CatBoost,亦或是VGGish 優(yōu)化模型結(jié)合CatBoost,對肺音的識別效果均沒有LSR-Net 好,從而驗證了本文提出的雙源域遷移學習方法的性能優(yōu)越性。
表7 CatBoost 算法對模型性能的影響(Coswara 數(shù)據(jù)集實驗結(jié)果)Table 7 Impact of CatBoost algorithm on model performance(experimental results on Coswara dataset)%
對數(shù)梅爾頻率譜與梅爾頻率倒譜系數(shù)是音頻領(lǐng)域常用的特征,神經(jīng)網(wǎng)絡、支持向量機與極端梯度提升決策樹則是音頻識別中常用的分類器。表8 顯示了常用識別方法與LSR-Net 在Coswara 上的實驗結(jié)果。實驗結(jié)果顯示,本文中的LSR-Net無論是特異性或是敏感性指標都明顯高于對比的常用識別方法,這主要得益于LSR-Net 中的預訓練參數(shù)一定程度上解決了音頻信號共性特征學習的問題,從而表現(xiàn)出色。
表8 不同方法的性能比較(Coswara 數(shù)據(jù)集實驗結(jié)果)Table 8 Comparison of performance of different methods(experimental results on Coswara dataset)%
目前有關(guān)肺音識別的研究大多集中在ICBHI-2017 數(shù)據(jù)集上,將不同識別方法與LSR-Net 進行比較,實驗結(jié)果如表9 所示。實驗結(jié)果顯示,本文提出的LSR-Net 的特異性、敏感性指標與ICBHIscore 均高于其他對比方法。此外還可以發(fā)現(xiàn),當未使用數(shù)據(jù)增強或者遷移學習方法時,識別效果欠佳,這再次驗證了本文從遷移學習方法著手的正確性。
表9 不同方法的性能比較(ICBHI-2017 數(shù)據(jù)集實驗結(jié)果)Table 9 Comparison of performance of different methods(experimental results on ICBHI-2017 dataset)%
本文針對肺音識別中因數(shù)據(jù)集規(guī)模較小所致識別精度不高的問題,提出一種基于雙源域遷移學習的肺音識別方法。借助VGGish 網(wǎng)絡在Audio Set 上的預訓練參數(shù)以及VGG19 在ImageNet 上的預訓練參數(shù),緩解網(wǎng)絡的過擬合問題。在此基礎(chǔ)上,提出一種VGGish 優(yōu)化模 型、VGG19 與CatBoost 算法結(jié) 合的肺音識別模型LSR-Net。在ICBHI-2017 與Coswara 數(shù)據(jù)集上的實驗結(jié)果表明,LSR-Net 性能優(yōu)于現(xiàn)有的肺音識別方法。下一步將嘗試把特征融合、幀加權(quán)等技術(shù)運用到LSR-Net中,并綜合考慮多個不同源域上的預訓練模型,探究更適合肺音聲學特征的識別模型,為臨床肺音聽診提供更高精度的輔助識別技術(shù)。