陳 偉,孫 強,齊月月,徐 晨
1.南通大學 醫學院(護理學院),江蘇 南通226001
2.南通大學 信息科學技術學院,江蘇 南通226019
心血管疾病是全球的頭號殺手,每年死于心血管疾病的人數多于任何其他死因。據報道,2016年約有1 790萬人死于心血管疾病,占全球死亡總數的31%[1]。早發現、早治療是降低心血管疾病危害的重要途徑。因此提高心血管疾病的早期診斷效果是一項尤其重要的任務。
心臟聽診可以直接反映心臟血流動力、心室收縮狀況。有些心臟疾病在臨床表現之前,心音往往會出現異常,通過聽診可以確診某些異常。但是,人的耳朵在低頻范圍內對聲音強度變化的不足及其對低頻聲音的敏感性,使得心臟聽診任務變得困難。其次,心臟聽診對醫生的要求特別高,需要其擁有豐富的臨床經驗和技巧。因此,通過計算機自動提取心音信號(Phonocardiogram,PCG)的特征進行定量分析,來輔助診斷心臟疾病具有重要的意義。
近些年,國內外很多學者利用傳統的機器學習方法和信號處理的手段對心音分類的問題進行了大量的研究[2-13]。
Abdollahpur等提取了90種心音信號的時域、頻域和梅爾頻率倒譜系數(Mel Frequency Cepstrum Coefficient,MFCC)特征,利用三個前饋神經網絡和一個投票系統對正常和異常心音進行分類,正確率達到了0.826[2]。唐洪等在文獻[3]研究的基礎上提出了一種利用多域特征和支持向量機(Support Vector Machine,SVM)的方法識別正常和異常心音信號[4]。該方法提取了大量的心音特征,其中狀態頻譜、能量譜和熵譜結合SVM分類器證實為最有效方法,相比文獻[3]正確率提高了6%。Nogueira等[5]借助心電圖(Electrocardiogram,ECG)信號利用邏輯回歸隱半馬爾可夫模型(Logistic Regression-Hidden Semi-Markov Models,HSMM)[6]對心音信號分段,在此基礎上提取了相關時域特征和頻域特征,然后分別用SVM、卷積神經網絡(Convolutional Neural Network,CNN)及隨機森林分類器對心音信號分類。在所有的特征及分類器組合中MFCC特征及部分的時域特征結合SVM分類器的模型性能最優,其敏感性、特異性及最終得分分別是0.873 7、0.790 7、0.832 2。Chakir等[7]在分段的心音信號中提取一系列的時頻特征,然后結合判別式分類器對正常、雜音、早搏三種心音分類最終總精確度為1.58。上述研究中必須從分段的心音信號中提取大量的特征。而心音的準確分割很大程度上取決于心音信號的質量,這無疑影響到了心音分類模型的性能。Zabihi等[8]在未分段的心音信號中提取18種時頻域特征,設計了一個含有20個前饋神經網絡的分類器。該方法在2016年舉行的全球生理測量挑戰賽中獲得第二名[9-10]。Zhang等[11]提出了一種未分段的心音分類方法。首先,利用離散小波分解(Discrete Wavelet Transform,DWT)從心電信號的子帶包絡中提取自心音信號的相關特征;然后,將自相關特征進行融合得到擴散圖的統一特征表示;最后,用SVM分類器對其分類。該方法在PASCAL心音分類挑戰賽上取得了出色的表現[12]。Zhang等[13]提出了一種基于尺度譜圖和偏最小二乘回歸(Partial Least Square Regression,PLSR)的心音信號分類方法。首先,采用香農能量包絡的短時平均幅度差估計心動周期;然后,利用雙線性插值法對頻譜圖進行插值得到尺寸固定的頻譜圖;接著,利用PLSR方法對含有大量冗余信息的頻譜圖進行降維;最后,設計SVM分類器對降維后的特征分類。所提方法對正常、雜音、早搏三種心音分類總精確度為1.75,是目前心音多類研究中精確度最高的方法。
上述基于傳統機器學習的心音分類方法性能很大程度上依賴特征的提取,而且不同的特征對分類器的選擇也不盡相同。深度學習作為人工智能的核心技術,善于從海量數據中挖掘抽象的特征,且這些特征具有良好的泛化性能。近年來,已經出現了一些文獻將深度學習應用于心音的分類研究中典型的方法,如卷積神經網絡(CNN)[14-15]及循環神經網絡(Recurrent Neural Network,RNN)[16]。
Rubin等[14]提出了一種利用CNN對正常和異常心音進行自動分類的深度學習方法。作者使用文獻[6]提出的分割算法對3 s心音信號進行分割,然后將這些固定長度的心音信號轉換為二維熱圖用于訓練模型。但是,該團隊在全球生理測量挑戰賽中的成績得分并不高,只有0.727 8。Potes等[15]集成Adaboost和CNN分類器對正常和異常的心音進行分類。在該研究中,提取了124種時頻特征來訓練Adaboost分類器,心音信號被分解為4個頻段用于訓練CNN分類器,這種集成的方法在該比賽中表現最佳,其特異性、敏感性和總成績分別為0.778 1、0.942 4和0.860 2。Latif等[16]提出了一種基于RNN的心搏異常檢測方法,該方法基于HSMM方法[6]將心音分割為5個心動周期序列,并提取13種MFCC特征作為RNN模型的訓練數據,其優化的模型對正常、異常的識別總正確率達到97.63%。
本文提出了一種基于深度卷積神經網絡的心音分類方法。其主要貢獻有以下兩點:第一,現有的心音分類方法絕大部分依賴對心音的正確分段,而本文提出的方法直接對原始的未分段的心音信號進行識別,在減少計算機的計算成本情況下,提高了心音分類的識別精度。第二,提出了一種間接的手段對心音二維MFSC特征圖進行擴充,解決了深度學習對訓練樣本的需求,一定程度上提高了模型性能。
心音揭示了各種心臟生理、病理信息。它是由心肌的收縮和舒張、瓣膜啟閉、血流沖擊心室壁和大動脈等因素引起的機械振動而產生的聲音。完整的心動周期包括兩部分:心臟收縮期(Systole)和舒張期(Diastole)。二尖瓣和三尖瓣關閉標志著心臟收縮期的開始,此期間心臟射血。收縮期又分為兩部分:第一部分分為等容收縮期和快速心室射血期。等容收縮期間以二尖瓣和三尖瓣關閉后心室內壓力升高開始。快速心室射血期間,心室壓力超過主動脈和肺動脈壓力使得主動脈和肺動脈開放,導致血液快速從心室射出。心室收縮期的第二部分,心室壓力下降,心室射血變少直到心室舒張期開始。主動脈瓣和肺動瓣關閉標志著心室舒張期開始,此期間心臟充盈。舒張期的前1/3分為等容舒張期和快速充盈期。等容舒張期間血液沒有進入心室,心室容積不發生變化。快速充盈期間心房壓力大于心室壓力,血液快速進入心室。舒張期中間的1/3時期,幾乎沒有血液進入心室,此時心房和心室都處在舒張的狀態。心室舒張的最后1/3稱為晚期充盈期,此期間血液從心房擠壓到心室。心音包含4個成分,分別為第一心音(S1)、第二心音(S2)、第三心音(S3)及第四心音(S4)[17]。圖1描述了各個心音之間的關系示意圖[18]。

圖1 同步的心電及心音信號之間的關系示意圖Fig.1 PCG signal with simultaneously recorded ECG
本文提出的心音分類的系統結構如圖2所示,主要包括訓練及測試部分。

圖2 心音分類系統結構Fig.2 Structure of heart sound classification system
模型訓練階段,包括以下幾個過程。第一步,對PCG信號預處理。預處理過程包括:(1)心音信號下采樣,采樣頻率為2 000 Hz;(2)利用6階巴特沃斯濾波器帶寬限制在25~900 Hz范圍對心音濾波處理;(3)經濾波的信號進行幅值歸一化處理,使得提取的特征具有更強的魯棒性。第二步,將預處理后的PCG信號,生成具有3個通道的二維MFSC特征圖,具體過程見2.3節介紹。第三步,均衡及擴充訓練樣本。由于現有心音數據集的樣本數量有限及不同類別心音數量不均衡的問題,采用了2.4節的方法對樣本數量進行了有效的擴充。第四步,微調超參數訓練深度卷積神經網絡。
心音測試階段,包括以下幾個過程:首先,對心音信號采取與訓練階段同樣的預處理過程。接著,將其轉換成多張二維MFSC特征圖。然后,用訓練好的模型對每張二維MFSC特征圖進行測預,得到不同標簽的心音MFSC特征圖。最后,利用多數表決原則決定心音的類別。
2.2.1 Inception-ResNet-64網絡
深度卷積神經網絡是深度學習的重要模型之一,最初應用于計算機視覺領域[14]。它是一種特殊的深度前饋神經網絡,因其具有權值共享和稀疏連接等特點,可大大降低網絡模型的參數規模。理論上,網絡的深度和寬度的增加均可提高網絡的表征能力。
結合ResNet與GoogLeNet特性,Krizhevak等提出了Inception-ResNet網絡,該網絡在ImageNet數據集上取得了出色表現[19]。ResNet網絡不僅加快了網絡收斂速度,同時也提高了Inception網絡的準確率。在此模型啟發下,本文設計了Inception-ResNet-64網絡,并將其應用到心音分類任務中。
原始的模型中Stem模塊的輸入特征的尺寸為299×299,而本文的特征尺寸只有64×64,直接在原始的模型上訓練會出現維度不匹配的問題,修改后的Inception-ResNet-64網絡結構如圖3所示。其中Modified-Stem模塊是由不同尺寸的卷積操作堆疊構成的深度卷積層,1×1的卷積不僅起到了降維的作用,同時提升了網絡的非線性特性。Inception-ResNet模塊不改變輸出特征的參數尺寸,它不僅加深了整個網絡的深度,同時加快了網絡訓練的速度;Reduction-A及Reduction-B模塊分別將輸入特征的參數由31×31、15×15降維到15×15、7×7;卷積層深度卷積神經網絡的最后分別由Dropout及AveragePooling模塊組成。最終的目標函數由Softmax Loss和中心損失(Center Loss)構成的數據損失和模型參數L2正則化損失(Regularition Loss)共同組成。Modified-Stem結構如圖4所示,圖中分別給出了各個網絡輸出特征圖的尺寸及卷積或者池化操作的參數,其中“S”“V”代表卷積或者池化的填充方式分別為“SAME”“VALID”。

圖3 Inception-ResNet-64模型結構Fig.3 Inception-ResNet-64 model structure

圖4 Modified-Stem結構Fig.4 Modified-Stem structure
2.2.2損失函數
對修改后的深度卷積神經網絡模型優化過程中,引入了中心損失函數,它能增加不同類別之間的類間距離,同時縮小同類別的類內距離,總損失函數如式(1)所示:

其中,Ls和Lc代表Softmax損失和中心損失,分別由式(2)、(3)給出。λ為平衡中心損失在總損失中的系數,式中第三項為加入到總損失的L2正則化。m表示每批訓練的樣本數目。將L2正則化項加入,其由網絡中的權重ω決定。α為權重衰減系數,總損失中,可以使神經網絡獲得更小的權重值,從而在一定程度上避免過擬合問題。

聲譜圖作為一種可視化的聲學特征廣泛應用于語音信號處理領域[20-21]。心音信號和語音信號相似也是一種典型的非平穩信號,將更符合人耳聽覺特征的梅爾濾波器組應用于心音的聲譜圖得到的二維特征稱為MFSC特征圖,并將其應用于心音分類研究中[22]。心音MFSC特征圖生成的過程如圖5所示。首先,將預處理后的心音信號進行預加重處理,即用一階高通濾波器提升高頻部分使得信號頻譜更加平坦。然后,進行分幀、加窗、短時傅里葉變換等處理,其中窗口長度、幀移分別為40 ms、20 ms。接著,將每一幀功率譜估計的結果經一組有64個Mel濾波器組進行處理,分別和每個濾波器進行加權求和,從而獲得64個特征能量數值。對這64個特征值取對數,得到MFSC濾波器對數能量,稱之為靜態MFSC特征。對以上靜態特征進行一階差分和二階差分運算,將其作為動態特征,然后將這三種特征映射到圖像RGB通道組合成RGB三通道圖像。由于PCG信號持續時間不等,而深度卷積神經網絡的輸入特征尺寸是固定的,將MFSC特征圖在時域方向上以64幀即1.28 s為一個單位對MFSC特征圖進行連續不重疊剪切。因此,可以將一張尺寸不固定的MFSC特征圖剪切成若干個64×64大小的二維圖像,且PCG信號時間越長,產生的MFSC特征圖也就越多。

圖5 心音MFSC特征圖產生過程Fig.5 Process of MFSC feature maps
圖6 、圖7分別給出了正常、雜音、早搏三種心音的時域波形圖及對應的MFSC特征圖。圖7橫坐標表示心音時間域方向的幀數,縱坐標表示心音MFSC頻率的通道。

圖6 三種心音波形Fig.6 Three heart sounds waves

圖7 三種心音MFSC特征圖Fig.7 Three heart sounds MFSC feature maps
增加訓練樣本的數量是提高深度學習模型性能的一個有效方法。本文間接地以心音的二維MFSC特征圖為對象,分別從頻域、時域進行處理:頻域信息的部分丟失及隨機的屏蔽時域的信息。假設g(x,y)為待擴充的Mel特征圖,通過設計不同的掩模函數h(x,y)與g(x,y)相乘,可以獲得擴充后的MFSC特征圖f(x,y),如式(4)所示,其中x、y分別表示MFSC特征圖的時域和頻域坐標。

(1)頻率域信息的部分丟失

其中,f是小于F-f0的隨機整數,F是MFSC特征圖的最大通道數值,f0是小于F0的隨機整數。
(2)隨機屏蔽時域信息

其中,t是小于T-t0的隨機整數,T為MFSC特征圖時域上最大的幀數,t0是小于T0的隨機整數。實驗中通過表1中的策略對MFSC特征圖進行擴充,其中Nf、Nt表示掩模函數的個數。

表1 Mel特征圖擴充策略Table 1 Policy of augment on Mel feature maps
圖8 (a)為一例6 s時長的心音的MFSC特征圖,該MFSC特征圖經歸一化后以零均值單位方差分布。圖8(b)、圖8(c)分別是經過以上兩種方法擴充后的MFSC特征圖,圖8(d)為同時采用了這兩種掩模函數后的MFSC特征圖。
“形勢與政策”課教學內容的調整、補充與完善,亟需優化教學設計,構建政治性、時效性、思想性兼具的內容體系。高校應增強對“形勢與政策”課程的重視程度,設定和優化教學內容,確保新時代中國特色社會主義思想入腦入心。

圖8 MFSC特征圖擴充結果Fig.8 Results of augment on MFSC feature map
為驗證本文方法的效果,在PASCAL心音數據集(Dataset-B)上進行測試,并與文獻[7,12-13]方法比較。此數據集均來自臨床,包括320例正常心音、95例雜音及46例早搏三種心音類型。每例心音的時長不等,最長有12 s,最短只有1.2 s,采樣頻率為8 000 Hz,均為wav格式。表2給出了訓練樣本和測試樣本的統計信息,其中測試樣本的標簽是未公開的。

表2 訓練集和測試集樣本統計Table 2 Statistics of training and test datasets
用2.3節介紹的方法將訓練集心音信號轉換成MFSC特征圖,轉換之后的MFSC特征圖稱為原始數據集。為了驗證本文所提數據擴充方法在深度卷積神經網絡上的效果,分別用表1中的策略對原始的數據集進行擴充,擴充后的數據集分別為數據集A、B、C,具體信息如表3所示。

表3 Mel特征圖統計Table 3 Statistics of Mel feature maps
(1)精確度(Precision)衡量了分類器的預測的精度,用式(7)表示。

其中,TP表示正確劃分為正例的個數,FP表示錯誤地將負例劃分為正例的個數。
(2)Youden’s Index(r)衡量了診斷病理性心音如雜音和早搏兩種疾病的能力,用式(8)表示。

其中,TN表示正確劃分為正例的個數,FN表示錯誤地將正例劃分為負例的個數。
(3)分類器的預測正負樣本的能力用Discriminant Power(DP)指標衡量。DP的數值越大,分類器能夠區分正負樣本的能力越強。特別的,當特異性或靈敏性為1時,表明分類器區分正負樣本的能力相當好。

實驗系統環境為Ubuntu16.04,內存為64 GB的NVIDIA GeForce GTX 1080Ti GPU,深度學習框架為TensorFlow 1.7.0,編程語言為python 2.3。
分別在原始數據集、數據集A、數據集B及數據集C下實驗,驗證集與訓練集的劃分比例為1∶4。本文的深度卷積神經網絡模型配置如下:Adam優化器優化目標函數;學習率采用階梯下降的方式,初始學習率為0.3,每20次迭代學習率除以10直到迭代100次為止;L2正則化的權重衰減設置為5×10-4;Dropout層的保持概率為0.8;式(1)中的標量λ被設置為1,α設為5×10-4,m設為64。
3.4.1其他模型對比
實驗中將J48、MLP、CS UCL[12]和SS-PLSR[13]、PASM[7]幾種心音分類方法與本文方法進行比較分析,各評價指標如3.2節所述。其中J48、MLP、CS UCL是當年比賽中性能最好的方法。J48方法和MLP方法一樣只提取了心音的時域特征,不同的是J48采用決策樹分類器,MLP利用多層感知機作為分類器。而CS UCL利用決策樹分類器,小波分解和頻譜圖作為特征矢量。SS-PLSR、PASM分別于2017年、2018年發表,是目前為止性能最好的方法。
從表4中可以得出,本文方法無論是精確度總精確度指標、診斷病理心音的能力r指標,還是分類器的預測正負樣本的能力DP指標,均優于上述幾種方法。同時,本文模型的正常精確度、雜音精確度及早搏精確度指標分別為0.804 7、1、1,說明了模型能夠將測試集中136個正樣本(正常心音)全部識別出來,對正負樣本的區分能力表現相當好。同時,從表中可以發現,SS-PLSR方法的性能尤其是r、DP指標好于PASM、J48、MLP及CS UCL方法,一方面說明了該方法利用雙線性插值對頻譜圖處理,得到固定大小的頻譜圖特征,更有利于SVM分類器的分類,也進一步說明了傳統分類器分類性能對心音特征提取的有效性非常敏感。而本文基于深度學習的方法能從心音信號的MFSC特征圖中自動提取更有效的特征并準確預測所屬的類別。

表4 模型性能對比Table 4 Model performance comparison
因此,本文方法與其他基于人工提取特征的方法相比明顯地提高了心音分類識別的能力。
3.4.2數據擴充效果
為了驗證本文提出的心音擴充方法的效果,分別比較了在原始訓練集、訓練集A、訓練集B及訓練集C下訓練的模型性能。圖9給出了四種模型在驗證集上的正確率曲線。四條曲線表明了隨著迭代次數的增加,模型在驗證集上的正確率越來越高最終趨于穩定。在訓練集A、B、C下模型最終的驗證集正確率分別為0.975 0、0.987 1、0.995 3,明顯高于原始訓練集訓練的模型的正確率0.765 0。訓練集C下的模型最優,是由于同時使用了時間域及頻域擴充的樣本,其訓練集的數據量比訓練集A或B高出了2倍,有效增加了訓練樣本,進而提高了深度卷積神經網絡的學習性能。圖10給出了四種模型在測試樣本上的總精確度指標。在訓練集A、B、C下,模型在測試樣本上的總精確度指標分別為2.743 2、2.720 0、2.804 0,均高于原始訓練集訓練的模型的總精確度指標。其中,訓練集A的模型及訓練集B的模型分別是在時間域及頻率域上擴充的樣本,在驗證集及測試集中的表現相當,說明了無論是頻域屏蔽還是時間域上的隨機丟棄,均能有效地增加訓練樣本,進而提高模型的性能。

圖9 四種模型在驗證集上正確率曲線對比Fig.9 Comparison of validation accuracy curves of Four Models

Fig.10 Total precision comparison of four models on test datasets
本文提出了一種利用深度學習結合心音MFSC特征圖的方法對心音信號進行分類識別。基于MFSC濾波器組的聲學特征更適合人耳的聽覺特性,因此將心音轉換為MFSC特征圖作為深度卷積神經網絡的輸入是將深度卷積神經網絡應用于心音分類的切入點。基于深度學習的心音識別系統可以自動地從MFSC特征圖中學習到能夠表征不同類別心音的深層特征,并通過最小化事先定義的損失函數來實現深度學習模型的訓練,從而實現整個心音識別系統的優化。針對現有人工標注的數據集不多導致模型訓練精度不高的問題,提出了對心音的MFSC特征圖進行時域和頻域的屏蔽處理方法。本文提出的方法大大擴充了訓練樣本的數量,進一步提高了模型的性能。
深度學習有著比傳統機器學習方法無可比擬的優勢,將其應用于心臟疾病的智能診斷有助于提高自動化檢測效率。未來的工作會與臨床專家合作,采集、標注更加豐富的心音數據,以及進一步評估、優化本文的模型。