心音分析對先心病早期診斷具有重要意義。本文不依賴分割心動周期,提出一種基于費希爾判別升半正弦函數(F-HRSF)改進的梅爾頻率倒譜系數(MFCC)和集成決策網絡的心音分類算法。首先對心音信號進行分幀加窗得到幀處理的心音信號,然后提取其MFCC特征。考慮到MFCC子帶分量的權重問題,根據各子帶分量的費希爾判別比值重構升半正弦函數,計算出貢獻系數用于加權。本文分類模型采用卷積神經網絡(CNN)、長短時記憶網絡(LSTM)和門控循環單元(GRU)三種網絡集成,最后通過多數投票算法得出二分類結果,準確率、靈敏度、特異度、修正準確率和F得分分別為92.15%、91.43%、92.83%、92.01%和92.13%。結果說明本文算法在先心病早期篩查中具有較大潛力。
引用本文: 王原林, 孫靜, 楊宏波, 郭濤, 潘家華, 王威廉. 基于改進梅爾頻譜倒譜系數和集成決策網絡的心音分類算法. 生物醫學工程學雜志, 2022, 39(6): 1140-1148. doi: 10.7507/1001-5515.202111059 復制
版權信息: ?四川大學華西醫院華西期刊社《生物醫學工程學雜志》版權所有,未經授權不得轉載、改編
引言
先心病(congenital heart diseases,CHD)作為先天性畸形病種的一類是影響青少年身體健康的嚴重疾病,若不及時進行醫療干預,會嚴重影響生活水平甚至導致患者死亡。在2017年就有20余萬人因先心病喪生,因此對先心病的早期篩查是提高患者存活率和生活質量的重要手段[1]。心音(heart sound,HS)是由心臟肌群收縮、瓣膜開合和血液流動碰撞心臟壁引發的機械性振動而產生的聲音[2]。心音可分為第一心音(first heart sound,S1)、第二心音(second heart sound,S2)、第三心音(third heart sound,S3)和第四心音(fourth heart sound,S4)[3]。S1、S2是心音的主要成分,也是臨床上關注的重點。心音含有心臟重要的生理病理信息,是診斷心血管疾病的重要依據。多年來國內外研究人員一直在嘗試自動診斷心音的方法,并對心音分析展開了多方面的研究。
心音分析流程通常包含三個階段:預處理、特征提取、分類識別。預處理主要是對心音信號(phonocardiogram,PCG)進行分割得到完整單個心動周期[4]。傳統的心音分類需要精確定位分割出單個心動周期,但是準確分割出單個心動周期會增加計算量以及算法的復雜度,而且如果分割效果差會影響分類效果。國內外研究人員對自動心音分類的研究提出了很多方法。例如,Zabihi等[5]采用2016年PhysioNet心臟病學計算挑戰賽數據集,從時域、頻域和時頻域 [如小波變換、梅爾頻譜倒譜系數(mel frequency cepstrum coefficient,MFCC)等]上選擇了18個特征子集,在測試集上準確率達到了85.90%。文獻[5]使用多種特征進行分類,但是過多特征會導致計算量大、算法復雜,并且準確率也有待提升。Sujit等[6]從時域和頻域提取特征后使用決策樹進行分類,得到了78.33%的準確率,其分類準確率還有待提升。Chen等[7]簡單提取短時傅里葉變換(short-time Fourier transform,STFT)譜圖送入卷積神經網絡(convolutional neural networks,CNN)訓練,在39例測試樣本上達到了95.49%的準確率。Asmare等[8]從170名受試者心音樣本中提取了對數梅爾頻譜系數(log mel-frequency spectral coefficients,MFSC)分量并結合CNN進行分類,準確率達到了96.10%。文獻[7]和文獻[8]的分類準確率達到較好的效果,但是所選取的心音數據樣本量太少難以推廣到實際篩查中,準確率的可信度較低,并且文獻[8]使用MFSC方法會引入冗余特征導致分類準確率下降。Rubin等[9]選擇心音挑戰賽數據集中3 240例心音,并采用MFCC結合CNN的方法實現心音分類,在測試集上得到了84.80%的準確率。文獻[5]與文獻[9]選取公開數據集中的心音樣本,但是公開數據集缺乏針對嬰幼兒的數據,而在先心病的發展過程中嬰幼兒階段的篩查尤為關鍵,因此公開數據集的數據分布具有局限性。Khan等[10]通過MFCC進行特征提取并搭建了基于長短時記憶網絡(long short-term memory,LSTM)的分類模型用來識別,在625例測試樣本上得到了80.68%的準確率。但是,文獻[9]和文獻[10]對MFCC各維子帶分量沒有區分,不能突顯不同子帶對于分類的貢獻。Gao等[11]采用門控循環單元(gated recurrent unit,GRU)網絡分類,在108名患者和1 297名健康受試者組成的數據集中達到98.82%的準確率。文獻[11]選用的方法得到了很好的效果,但是所選取的數據正、負樣本分布不合理,準確率可信度較低。
針對上述研究存在的問題,本文提出了一種基于費希爾判別升半正弦函數(Fisher’s discriminant half raised-sine function,F-HRSF)改進的MFCC和集成決策網絡的心音分析方法,分類模型采用CNN、LSTM和GRU三種網絡異質集成。本文所用實驗數據正、負樣本數均衡且大部分采集于嬰幼兒與低年齡段人群,針對先心病的早期篩查,數據分布具有合理性。
1 方法
本文算法有以下幾個步驟:① 將幅值歸一化后的心音信號進行預加重、加窗分幀,得到幀處理的心音信號。② 對預處理后的幀信號提取MFCC特征,得到MFCC子帶特征分量。針對不同子帶分量求得費希爾判別(Fisher's discriminant,Fisher)比值,對不同的分量進行最小-最大(min-max)標準化,然后重構升半正弦函數(half raised-sine function,HRSF)計算出不同分量的貢獻度,將獲得的貢獻系數用于加權得到新的MFCC特征分量。同時,考慮到MFCC的動態特性,將一階差分MFCC分量與貢獻度加權的MFCC靜態分量進行特征融合得到特征序列矩陣。③ 將上一步得到的特征序列矩陣送入CNN、LSTM、GRU三種網絡異質集成的分類模型。最后通過多數投票算法進行決策,得到最終二分類效果。心音分類流程如圖1所示。
 圖1
				心音分析流程圖
			
												
				Figure1.
				Flowchart of heart sound analysis
						
				圖1
				心音分析流程圖
			
												
				Figure1.
				Flowchart of heart sound analysis
			
								1.1 數據來源與說明
本文所用數據源于課題組在云南省阜外心血管病醫院以及參加云南省各地山區小學先心病篩查時采集的樣本所建的心音數據庫。所有心音志愿者年齡均在8個月至18歲,全體志愿者均簽署知情同意書自愿提供心音樣本。本文所使用的心音數據庫得到云南大學人體研究材料倫理委員會以及云南省阜外心血管病醫院倫理委員會的授權使用,篩查過程獲取的異常患者樣本均由跟隨的超聲醫生以及后續醫院確診。心音數據庫的建立采用課題組自主研發的心音采集設備和The ONE ThinkLabs電子聽診器(Thinklabs Medical LLC,美國)。采樣頻率為5 000 Hz,采集時長為20 s。
數據集中的心音樣本共5 000例。心音樣本來自1 000名心音志愿者,其中包含500名患者與500名健康志愿者,男女比例為1∶1。每位志愿者采集5個臨床聽診點,每個點位采集1次共計5次。該數據集的正、負樣本分布均衡,患者和健康志愿者的心音樣本均為2 500例。異常病種包含房間隔缺損、室間隔缺損、動脈導管未閉等先心病中常見疾病類型。該數據集信息統計如表1所示。數據集劃分為訓練集、測試集和驗證集,各自的比例分別為0.7、0.2和0.1。為了控制實驗的變量,本文研究實驗和對比實驗均采用相同數據集。本文所使用的數據集正、負樣本分布合理且數據量大,使得分類模型具有較高的魯棒性。
 表1
                志愿者信息統計
		 	
		 			 				Table1.
    			Information statistics of volunteers
			
						表1
                志愿者信息統計
		 	
		 			 				Table1.
    			Information statistics of volunteers
       		
       				1.2 預處理
在預處理階段通常會對心音信號按照心動周期進行分割,而本文算法無需分割。通常一個心動周期時長為0.8 s,但是由于生理或病理因素可能導致心動周期時長大于0.8 s[12]。為了保證截取過程中截取至少一個完整心動周期,同時減少采集過程中人為因素對于單個心動周期的影響,本研究隨機截取4 s心音信號,并對心音信號進行幅值歸一化、預加重、加窗分幀的處理。預加重是為了消除心音采集過程中摩擦音的影響。在自然語言處理中加窗分幀是常用的預處理方法,分幀是為了在短時間尺度上將心音近似為平穩信號[13]。本文選擇漢明窗作為窗函數,漢明窗具有旁瓣衰減較大的特性[14],適用于心音信號的分幀,其中分幀窗長為0.1 s。為了避免兩幀之間衰減過大且更加平穩,本研究在兩幀之間設置重疊區域,重疊區域通常為窗長的一半,即0.05 s。圖2所示為心音信號分幀加窗的過程。
 圖2
				心音信號的幀處理過程
			
												
				Figure2.
				Frame-based processing of heart sound signal
						
				圖2
				心音信號的幀處理過程
			
												
				Figure2.
				Frame-based processing of heart sound signal
			
								1.3 特征提取
語音識別中MFCC是一種常用的提取聲音特征的方法,例如Likitha等[15]提取MFCC特征用于語音情感分析并且得到不錯的效果。近年來MFCC方法也廣泛地應用在臨床心音診斷上,例如Deng等[16]采用MFCC特征進行心血管疾病的心音特征提取。
1.3.1 MFCC
獲取MFCC有以下過程:首先對幀處理的心音信號進行快速傅里葉變換(fast Fourier transform,FFT),然后通過梅爾濾波器組得到該幀在對應頻段上的能量值。最后進行離散余弦變換(discrete cosine transform,DCT),從而得到MFCC。但是各MFCC子帶分量的權值均相同,不能很好地反映心音的低頻特性,并且靜態MFCC特征也不能捕捉到心音的動態細節。針對上述問題,本研究對獲取的MFCC進行了改進。
1.3.2 Fisher比
Fisher是一種旨在尋找類間差異大而類內方差小的線性判別函數,常用于對多個信號頻帶進行子帶篩選[17]。子帶篩選是從子帶分量中選出表征能力較強的分量,Fisher能較好地識別子帶的差異。因此本文采用Fisher比值進行子帶篩選。
將上述得到的MFCC根據維數劃分子帶并計算Fisher比值。Fisher比表達式為類間散度與類內散度的比值[18],如式(1)所示。其中,Fisher比值越大說明該分量表征能力越強;反之,該分量表征能力越差。
|  | 
其中,SB為類間散度矩陣,SW為類內散度矩陣。
類間散度即類間區分度,SB是第i維特征分量類間散度和,如式(2)所示。
|  | 
其中,M為心音樣本數, 為心音j的i維分量均值,mi為所有心音的i維分量均值。
為心音j的i維分量均值,mi為所有心音的i維分量均值。
類內散度即類內區分度,SW是第i維特征分量類內方差和,如式(3)所示。
|  | 
其中,nj為心音j的樣本數, 為心音j的第i維分量。
為心音j的第i維分量。
將計算好的各維Fisher比值通過min-max標準化,在閾值選擇上,為了保證子帶分量的完整性且減緩各子帶的衰減速度,將范圍設定在0.5~1。得到的標準化公式如式(4)所示。
|  | 
其中,Fi為第i維子帶Fisher比值,Rmax、Rmin分別為閾值范圍的上、下限,在本式中分別為1和0.5,Ri為擬計算的第i維子帶的Fisher比權值。
1.3.3 基于F-HRSF的子帶加權
子帶加權是指增強表征能力突出的分量并且減弱表征能力較差分量的方法。子帶加權能更好地突出表征能力強的子帶對于分類的貢獻。HRSF能突出魯棒性較好的中間子帶,抑制高頻子帶和易受噪聲影響的低頻子帶。在語音信號處理中,常采用HRSF對子帶進行加權[19],但是為了能更好地反映MFCC各子帶的貢獻,應對HRSF進行重構,故將上一步得到的Fisher比權值用來重新擬合HRSF,得到F-HRSF。其矩陣表達的公式如式(5)所示。
|  '/> | 
其中, 為改進后的貢獻系數,
 為改進后的貢獻系數, 為子帶維數。
 為子帶維數。 為余弦系數,
 為余弦系數, 為正弦系數。
 為正弦系數。
通過上述過程得到的F-HRSF來計算出各維數子帶的貢獻系數,將貢獻系數用于對子帶進行加權,重新得到新的MFCC分量如式(6)所示。
|  '/> | 
其中,Mi為第i維分量加權后的子帶分量, 為第i維子帶分量。
為第i維子帶分量。
HRSF和F-HRSF的前13維子帶的貢獻系數對比如圖3所示。
 圖3
				HRSF和F-HRSF的貢獻系數對比
			
												
				Figure3.
				Contribution coefficient of HRSF and F-HRSF
						
				圖3
				HRSF和F-HRSF的貢獻系數對比
			
												
				Figure3.
				Contribution coefficient of HRSF and F-HRSF
			
								標準的MFCC分量反映了心音的靜態特性,可以通過一階差分反映心音的動態特性。故將上一步加權后的靜態MFCC分量  與一階差分MFCC分量進行融合。融合方式如式(7)所示。
 與一階差分MFCC分量進行融合。融合方式如式(7)所示。
|  '/> | 
其中, 為
 為  的一階差分。
 的一階差分。
最終得到二維的特征序列矩陣作為后續神經網絡的輸入,該矩陣反映了各子帶間不同的權重且融合了心音的動態特性,便于后續提高心音分類的識別率。
1.4 分類識別
神經網絡廣泛應用于心音分析等領域并在分類識別中取得了較大的成果。在心音分類上, Xiao等[20]利用一維卷積神經網絡(one-dimension convolutional neural networks,1DCNN)對心音進行分類。Zhang等[21]使用LSTM網絡分類并與其他傳統分類方法進行對比。本文提出一種使用CNN、LSTM、GRU三種神經網絡集成決策的分類方法。與圖像處理不同,心音作為一維時序信號,較深層的網絡結構會產生嚴重的過擬合現象,為防止過擬合的產生本文網絡均選擇層數較淺的結構[22]。
1.4.1 網絡搭建
本文共搭建三種結構的分類網絡,分別為:① CNN[23]。1DCNN是CNN網絡的一種形式,1DCNN對于處理序列數據具有較好的效果。本文搭建的1DCNN具有兩個卷積層,每個卷積層都含有32個卷積核,卷積核大小為3 × 1,步長為1 × 1,激活函數選擇線性整流函數(rectified linear unit,ReLU)。池化層選用最大池化和平均池化,池化核大小為2 × 1。② LSTM[24]。LSTM是帶有門控結構的循環神經網絡(recurrent neural network,RNN)。LSTM具體過程如下:遺忘門對上一個節點傳來的輸入進行選擇性遺忘,ft為忘記門控。輸入門可以對輸入xt繼續選擇性記憶,選擇的門控信號由記憶門控pt進行控制。在輸出階段,通過門控信號ot控制當前狀態的輸出并將上一階段得到的Ct進行放縮。③ GRU[25]。GRU是LSTM的一種變體。GRU的具體過程如下:通過上一個節點輸的狀態ht ? 1和當前的輸入xt獲取到兩個門控狀態,分別是重置門控rt和更新門控zt。將得到的重置門控用來獲取重置后信息并與xt拼接,之后送入tanh激活函數放縮,得到結點狀態  。接下來進行更新記憶階段,在這個階段進行遺忘、記憶兩個部分,利用更新門控zt實現。三種網絡的結構如圖4所示。
。接下來進行更新記憶階段,在這個階段進行遺忘、記憶兩個部分,利用更新門控zt實現。三種網絡的結構如圖4所示。
 圖4
				三種網絡的結構圖
						
				圖4
				三種網絡的結構圖
			
									a. 卷積神經網絡;b. 長短時記憶網絡;c. 門控循環單元
Figure4. Structure diagram of three kinds of networka. CNN; b. LSTM; c. GRU
1.4.2 集成決策
集成學習通過構建多組分類器來完成分類任務,也叫做多分類器系統。集成學習方式包含同質集成和異質集成,異質集成是指分類器通過不同種類的算法實現的集成方式。集成決策能有效避免因單一分類器性能不佳而導致的分類識別率差的問題。因此,本文選用CNN、LSTM、GRU三種網絡進行異質集成,網絡集成如圖5所示。LSTM、GRU網絡作為RNN網絡的一種,具有較強的獲取全局信息的能力,而CNN網絡注重局部信息的提取。將三者集成能突顯各網絡特點,進一步提高分類識別率。本文搭建集成網絡采用的是并行化結構[26],這是因為計算機在處理多任務時并行結構遠遠優于串行結構,并行結構能較好地節省計算資源和降低訓練時長。
 圖5
				網絡集成框架
			
												
				Figure5.
				Network integration framework
						
				圖5
				網絡集成框架
			
												
				Figure5.
				Network integration framework
			
								決策規則采用硬投票的方法,基分類器使用CNN、LSTM、GRU三種網絡進行多數投票,即三個網絡中有兩個網絡認為是異常則標定為異常。由于返回置信矩陣的值為0至1之間的概率值,因此制定規則為置信度大于0.5量化為1,即異常,置信度小于0.5量化為0,即正常。異常情況如表2所示。
 表2
                投票結果為異常的情況
		 	
		 			 				Table2.
    			Circumstances where the voting result is abnormal
			
						表2
                投票結果為異常的情況
		 	
		 			 				Table2.
    			Circumstances where the voting result is abnormal
       		
       				2 實驗與分析
2.1 實驗環境
本實驗所用硬件配置為:中央處理器(Ryzen7 4800H @2.90GHz,AMD,美國),獨立顯卡(NVIDIA GeForce RTX2060 6GB,Nvidia,美國)。深度學習框架為TensorFlow 2.0(Google,美國),編程語言為Python 3.8(Python Software Foundation,美國)。
2.2 評價指標
本文采用五種評價指標評估模型性能,其中準確度Acc、靈敏度Se、特異度Sp如式(8)~(10)所示。
|  | 
|  | 
|  | 
其中,TP表示正確識別異常的數目,即真陽性;FN表示異常未被檢出的數目,即假陰性;TN表示正確識別正常的數目,即真陰性;FP表示正常被錯檢出的數目,即假陽性。
另外兩個指標為修正準確率MAcc和F得分( )。MAcc指標是為了應對其他外界因素對準確度的影響所設定,根據PhysioNet挑戰賽[27]評價規則對Sp和Se指標添加不定權系數
)。MAcc指標是為了應對其他外界因素對準確度的影響所設定,根據PhysioNet挑戰賽[27]評價規則對Sp和Se指標添加不定權系數 。本文
。本文 設置為0.5,從而得到修正準確率MAcc指標,如式(11)所示。
設置為0.5,從而得到修正準確率MAcc指標,如式(11)所示。
|  | 
在臨床上假陰性的風險遠大于假陽性。假陽性可以通過后續檢查進一步排除,而假陰性會因為篩查結果耽誤治療時間,因此減少假陰性病例在臨床上具有重大意義。所以本文引入  指標用來進一步衡量,如式(12)所示,
 指標用來進一步衡量,如式(12)所示, 為Sp和Se的調和系數。
 為Sp和Se的調和系數。
|  | 
由于假陰性的重要意義,應適度增加Se指標的重要性。因此本文將  值設為1.2。
 值設為1.2。
2.3 實驗結果與分析
為了將本文所提出的F-HRSF改進MFCC和集成決策網絡的分類模型與其他算法進行對比,特征提取方式選擇MFSC和MFCC,分類模型選擇三種類型的網絡,分別是CNN、LSTM和GRU。集成決策網絡的層數選取如表3所示,從表中可見選擇2層的效果較好,因此本文選用2層的網絡結構。將不同的特征提取算法與不同的分類網絡組合之后進行訓練、驗證和測試。根據上述方法,本文特征提取及分類算法與其他算法對比如表4所示,其中對比實驗與本文算法均在同一測試集上進行。模型資源占比與運行時間如表5所示,其中資源占比為GPU資源占比,運行時間為每一輪訓練所需的時間。
 表3
                不同層數下的Acc與損失值
		 	
		 			 				Table3.
    			Relationship between Acc and loss value under different layers
			
						表3
                不同層數下的Acc與損失值
		 	
		 			 				Table3.
    			Relationship between Acc and loss value under different layers
       		
       				 表4
                各算法性能比較
		 	
		 			 				Table4.
    			Performance comparison of various algorithms
			
						表4
                各算法性能比較
		 	
		 			 				Table4.
    			Performance comparison of various algorithms
       		
       				 表5
                不同網絡資源占比與運行時間的比較
		 	
		 			 				Table5.
    			Comparison of different network resources and running time
			
						表5
                不同網絡資源占比與運行時間的比較
		 	
		 			 				Table5.
    			Comparison of different network resources and running time
       		
       				本文算法對比文獻[7-10],同時結合消融實驗。文獻[7]采用傳統的STFT方法在小樣本上取得不錯的分類結果。文獻[8]和文獻[9]采用語音識別中常用的MFSC和MFCC特征,MFCC與MFSC采用與人耳結構相似的三角濾波器組,MFCC相比MFSC增加一步DCT變換去除冗余特征。文獻[9]和文獻[10]采用目前流行的CNN和LSTM神經網絡分類,CNN根據卷積核大小的滑動窗口獲取信息,LSTM憑借門控信號進行長短時記憶。從表4可以看出這幾種特征提取及分類方法都具有良好的效果,但是F-HRSF改進MFCC的集成決策模型明顯優于其他幾種方法。結果顯示:① F-HRSF改進的MFCC特征相比于MFCC特征在Acc、MAcc和F1.2三個評價指標上更優。通過對比Acc值,證實了對于不同子帶進行加權能更好地突顯其特性,提高了在篩查過程中的患者檢出率。通過對比MAcc值,表明F-HRSF改進的MFCC特征抗環境雜音能力更強。通過對比F1.2值,得出使用F-HRSF改進的MFCC特征進行分類可以得到更少的假陰性病例。② MFSC與LSTM模型、MFSC與GRU模型和MFCC與GRU模型三種方法的Se值略高于本文算法,但是這三種方法的Sp值顯著低于本文算法,這將導致假陽性病例增加。MFSC與CNN模型和MFCC與CNN模型兩種方法的Sp值略高于本文算法,但是它們的Se值又顯著低于本文算法,這將導致假陰性病例增加。③ 對于單一網絡,CNN分類識別具有較好的Sp值;LSTM和GRU分類能獲取更高的Se值。本文集成三種網絡能有效地權衡Se與Sp指標,在綜合評價指標上得到最優效果。④ 從表5中可以看出,本文模型在資源消耗與運行時間上并無顯著增加,證明本文模型具有較強的實用性。
綜上所述,基于F-HRSF改進MFCC的集成決策網絡模型對不同子帶權重進行重新分配,結合了多種網絡的特點進行集成決策,在綜合評價指標上對比現有方法有所提升。
3 結論
本文提出了一種F-HRSF改進MFCC和集成網絡決策的心音分類方法。首先對原始心音信號進行分幀加窗,得到幀處理的心音信號。其次對幀處理的心音信號提取MFCC,并針對子帶間權重的問題,將其劃分不同子帶求得Fisher比值。然后根據Fisher比值重構HRSF,得到F-HRSF并計算各子帶權值進行加權,獲得改進后MFCC特征矩陣。接著將特征矩陣送入CNN、LSTM、GRU三種并行搭建的集成網絡中得到各自的分類置信矩陣,最后通過多數投票算法決策出最終的二分類結果。本文選擇五種評價指標,在綜合評價指標MAcc和F1.2上本文算法獲得92.01%和92.13%的結果,對比其他幾種方法綜合性能最佳,為先心病的早期篩查提供了一種可行的思路。
重要聲明
利益沖突聲明:本文全體作者均聲明不存在利益沖突。
作者貢獻聲明:王原林,第一作者,負責實驗設計與實踐、數據采集、數據分析和論文寫作;孫靜負責心音分析指導、論文寫作指導和數據收集;楊宏波負責醫學指導和數據收集;郭濤負責醫學指導和處理數據;潘家華負責醫學指導和數據審查;王威廉,通信作者,負責心音理論研究、論文整體審查潤色和論文寫作指導。
倫理聲明:本文所使用的心音數據庫得到云南大學人體研究材料倫理委員會(批文編號:CHSRE2021008)以及云南省阜外心血管病醫院倫理委員會(批文編號:IRB2020-BG-028)的授權使用。
引言
先心病(congenital heart diseases,CHD)作為先天性畸形病種的一類是影響青少年身體健康的嚴重疾病,若不及時進行醫療干預,會嚴重影響生活水平甚至導致患者死亡。在2017年就有20余萬人因先心病喪生,因此對先心病的早期篩查是提高患者存活率和生活質量的重要手段[1]。心音(heart sound,HS)是由心臟肌群收縮、瓣膜開合和血液流動碰撞心臟壁引發的機械性振動而產生的聲音[2]。心音可分為第一心音(first heart sound,S1)、第二心音(second heart sound,S2)、第三心音(third heart sound,S3)和第四心音(fourth heart sound,S4)[3]。S1、S2是心音的主要成分,也是臨床上關注的重點。心音含有心臟重要的生理病理信息,是診斷心血管疾病的重要依據。多年來國內外研究人員一直在嘗試自動診斷心音的方法,并對心音分析展開了多方面的研究。
心音分析流程通常包含三個階段:預處理、特征提取、分類識別。預處理主要是對心音信號(phonocardiogram,PCG)進行分割得到完整單個心動周期[4]。傳統的心音分類需要精確定位分割出單個心動周期,但是準確分割出單個心動周期會增加計算量以及算法的復雜度,而且如果分割效果差會影響分類效果。國內外研究人員對自動心音分類的研究提出了很多方法。例如,Zabihi等[5]采用2016年PhysioNet心臟病學計算挑戰賽數據集,從時域、頻域和時頻域 [如小波變換、梅爾頻譜倒譜系數(mel frequency cepstrum coefficient,MFCC)等]上選擇了18個特征子集,在測試集上準確率達到了85.90%。文獻[5]使用多種特征進行分類,但是過多特征會導致計算量大、算法復雜,并且準確率也有待提升。Sujit等[6]從時域和頻域提取特征后使用決策樹進行分類,得到了78.33%的準確率,其分類準確率還有待提升。Chen等[7]簡單提取短時傅里葉變換(short-time Fourier transform,STFT)譜圖送入卷積神經網絡(convolutional neural networks,CNN)訓練,在39例測試樣本上達到了95.49%的準確率。Asmare等[8]從170名受試者心音樣本中提取了對數梅爾頻譜系數(log mel-frequency spectral coefficients,MFSC)分量并結合CNN進行分類,準確率達到了96.10%。文獻[7]和文獻[8]的分類準確率達到較好的效果,但是所選取的心音數據樣本量太少難以推廣到實際篩查中,準確率的可信度較低,并且文獻[8]使用MFSC方法會引入冗余特征導致分類準確率下降。Rubin等[9]選擇心音挑戰賽數據集中3 240例心音,并采用MFCC結合CNN的方法實現心音分類,在測試集上得到了84.80%的準確率。文獻[5]與文獻[9]選取公開數據集中的心音樣本,但是公開數據集缺乏針對嬰幼兒的數據,而在先心病的發展過程中嬰幼兒階段的篩查尤為關鍵,因此公開數據集的數據分布具有局限性。Khan等[10]通過MFCC進行特征提取并搭建了基于長短時記憶網絡(long short-term memory,LSTM)的分類模型用來識別,在625例測試樣本上得到了80.68%的準確率。但是,文獻[9]和文獻[10]對MFCC各維子帶分量沒有區分,不能突顯不同子帶對于分類的貢獻。Gao等[11]采用門控循環單元(gated recurrent unit,GRU)網絡分類,在108名患者和1 297名健康受試者組成的數據集中達到98.82%的準確率。文獻[11]選用的方法得到了很好的效果,但是所選取的數據正、負樣本分布不合理,準確率可信度較低。
針對上述研究存在的問題,本文提出了一種基于費希爾判別升半正弦函數(Fisher’s discriminant half raised-sine function,F-HRSF)改進的MFCC和集成決策網絡的心音分析方法,分類模型采用CNN、LSTM和GRU三種網絡異質集成。本文所用實驗數據正、負樣本數均衡且大部分采集于嬰幼兒與低年齡段人群,針對先心病的早期篩查,數據分布具有合理性。
1 方法
本文算法有以下幾個步驟:① 將幅值歸一化后的心音信號進行預加重、加窗分幀,得到幀處理的心音信號。② 對預處理后的幀信號提取MFCC特征,得到MFCC子帶特征分量。針對不同子帶分量求得費希爾判別(Fisher's discriminant,Fisher)比值,對不同的分量進行最小-最大(min-max)標準化,然后重構升半正弦函數(half raised-sine function,HRSF)計算出不同分量的貢獻度,將獲得的貢獻系數用于加權得到新的MFCC特征分量。同時,考慮到MFCC的動態特性,將一階差分MFCC分量與貢獻度加權的MFCC靜態分量進行特征融合得到特征序列矩陣。③ 將上一步得到的特征序列矩陣送入CNN、LSTM、GRU三種網絡異質集成的分類模型。最后通過多數投票算法進行決策,得到最終二分類效果。心音分類流程如圖1所示。
 圖1
				心音分析流程圖
			
												
				Figure1.
				Flowchart of heart sound analysis
						
				圖1
				心音分析流程圖
			
												
				Figure1.
				Flowchart of heart sound analysis
			
								1.1 數據來源與說明
本文所用數據源于課題組在云南省阜外心血管病醫院以及參加云南省各地山區小學先心病篩查時采集的樣本所建的心音數據庫。所有心音志愿者年齡均在8個月至18歲,全體志愿者均簽署知情同意書自愿提供心音樣本。本文所使用的心音數據庫得到云南大學人體研究材料倫理委員會以及云南省阜外心血管病醫院倫理委員會的授權使用,篩查過程獲取的異常患者樣本均由跟隨的超聲醫生以及后續醫院確診。心音數據庫的建立采用課題組自主研發的心音采集設備和The ONE ThinkLabs電子聽診器(Thinklabs Medical LLC,美國)。采樣頻率為5 000 Hz,采集時長為20 s。
數據集中的心音樣本共5 000例。心音樣本來自1 000名心音志愿者,其中包含500名患者與500名健康志愿者,男女比例為1∶1。每位志愿者采集5個臨床聽診點,每個點位采集1次共計5次。該數據集的正、負樣本分布均衡,患者和健康志愿者的心音樣本均為2 500例。異常病種包含房間隔缺損、室間隔缺損、動脈導管未閉等先心病中常見疾病類型。該數據集信息統計如表1所示。數據集劃分為訓練集、測試集和驗證集,各自的比例分別為0.7、0.2和0.1。為了控制實驗的變量,本文研究實驗和對比實驗均采用相同數據集。本文所使用的數據集正、負樣本分布合理且數據量大,使得分類模型具有較高的魯棒性。
 表1
                志愿者信息統計
		 	
		 			 				Table1.
    			Information statistics of volunteers
			
						表1
                志愿者信息統計
		 	
		 			 				Table1.
    			Information statistics of volunteers
       		
       				1.2 預處理
在預處理階段通常會對心音信號按照心動周期進行分割,而本文算法無需分割。通常一個心動周期時長為0.8 s,但是由于生理或病理因素可能導致心動周期時長大于0.8 s[12]。為了保證截取過程中截取至少一個完整心動周期,同時減少采集過程中人為因素對于單個心動周期的影響,本研究隨機截取4 s心音信號,并對心音信號進行幅值歸一化、預加重、加窗分幀的處理。預加重是為了消除心音采集過程中摩擦音的影響。在自然語言處理中加窗分幀是常用的預處理方法,分幀是為了在短時間尺度上將心音近似為平穩信號[13]。本文選擇漢明窗作為窗函數,漢明窗具有旁瓣衰減較大的特性[14],適用于心音信號的分幀,其中分幀窗長為0.1 s。為了避免兩幀之間衰減過大且更加平穩,本研究在兩幀之間設置重疊區域,重疊區域通常為窗長的一半,即0.05 s。圖2所示為心音信號分幀加窗的過程。
 圖2
				心音信號的幀處理過程
			
												
				Figure2.
				Frame-based processing of heart sound signal
						
				圖2
				心音信號的幀處理過程
			
												
				Figure2.
				Frame-based processing of heart sound signal
			
								1.3 特征提取
語音識別中MFCC是一種常用的提取聲音特征的方法,例如Likitha等[15]提取MFCC特征用于語音情感分析并且得到不錯的效果。近年來MFCC方法也廣泛地應用在臨床心音診斷上,例如Deng等[16]采用MFCC特征進行心血管疾病的心音特征提取。
1.3.1 MFCC
獲取MFCC有以下過程:首先對幀處理的心音信號進行快速傅里葉變換(fast Fourier transform,FFT),然后通過梅爾濾波器組得到該幀在對應頻段上的能量值。最后進行離散余弦變換(discrete cosine transform,DCT),從而得到MFCC。但是各MFCC子帶分量的權值均相同,不能很好地反映心音的低頻特性,并且靜態MFCC特征也不能捕捉到心音的動態細節。針對上述問題,本研究對獲取的MFCC進行了改進。
1.3.2 Fisher比
Fisher是一種旨在尋找類間差異大而類內方差小的線性判別函數,常用于對多個信號頻帶進行子帶篩選[17]。子帶篩選是從子帶分量中選出表征能力較強的分量,Fisher能較好地識別子帶的差異。因此本文采用Fisher比值進行子帶篩選。
將上述得到的MFCC根據維數劃分子帶并計算Fisher比值。Fisher比表達式為類間散度與類內散度的比值[18],如式(1)所示。其中,Fisher比值越大說明該分量表征能力越強;反之,該分量表征能力越差。
|  | 
其中,SB為類間散度矩陣,SW為類內散度矩陣。
類間散度即類間區分度,SB是第i維特征分量類間散度和,如式(2)所示。
|  | 
其中,M為心音樣本數, 為心音j的i維分量均值,mi為所有心音的i維分量均值。
為心音j的i維分量均值,mi為所有心音的i維分量均值。
類內散度即類內區分度,SW是第i維特征分量類內方差和,如式(3)所示。
|  | 
其中,nj為心音j的樣本數, 為心音j的第i維分量。
為心音j的第i維分量。
將計算好的各維Fisher比值通過min-max標準化,在閾值選擇上,為了保證子帶分量的完整性且減緩各子帶的衰減速度,將范圍設定在0.5~1。得到的標準化公式如式(4)所示。
|  | 
其中,Fi為第i維子帶Fisher比值,Rmax、Rmin分別為閾值范圍的上、下限,在本式中分別為1和0.5,Ri為擬計算的第i維子帶的Fisher比權值。
1.3.3 基于F-HRSF的子帶加權
子帶加權是指增強表征能力突出的分量并且減弱表征能力較差分量的方法。子帶加權能更好地突出表征能力強的子帶對于分類的貢獻。HRSF能突出魯棒性較好的中間子帶,抑制高頻子帶和易受噪聲影響的低頻子帶。在語音信號處理中,常采用HRSF對子帶進行加權[19],但是為了能更好地反映MFCC各子帶的貢獻,應對HRSF進行重構,故將上一步得到的Fisher比權值用來重新擬合HRSF,得到F-HRSF。其矩陣表達的公式如式(5)所示。
|  '/> | 
其中, 為改進后的貢獻系數,
 為改進后的貢獻系數, 為子帶維數。
 為子帶維數。 為余弦系數,
 為余弦系數, 為正弦系數。
 為正弦系數。
通過上述過程得到的F-HRSF來計算出各維數子帶的貢獻系數,將貢獻系數用于對子帶進行加權,重新得到新的MFCC分量如式(6)所示。
|  '/> | 
其中,Mi為第i維分量加權后的子帶分量, 為第i維子帶分量。
為第i維子帶分量。
HRSF和F-HRSF的前13維子帶的貢獻系數對比如圖3所示。
 圖3
				HRSF和F-HRSF的貢獻系數對比
			
												
				Figure3.
				Contribution coefficient of HRSF and F-HRSF
						
				圖3
				HRSF和F-HRSF的貢獻系數對比
			
												
				Figure3.
				Contribution coefficient of HRSF and F-HRSF
			
								標準的MFCC分量反映了心音的靜態特性,可以通過一階差分反映心音的動態特性。故將上一步加權后的靜態MFCC分量  與一階差分MFCC分量進行融合。融合方式如式(7)所示。
 與一階差分MFCC分量進行融合。融合方式如式(7)所示。
|  '/> | 
其中, 為
 為  的一階差分。
 的一階差分。
最終得到二維的特征序列矩陣作為后續神經網絡的輸入,該矩陣反映了各子帶間不同的權重且融合了心音的動態特性,便于后續提高心音分類的識別率。
1.4 分類識別
神經網絡廣泛應用于心音分析等領域并在分類識別中取得了較大的成果。在心音分類上, Xiao等[20]利用一維卷積神經網絡(one-dimension convolutional neural networks,1DCNN)對心音進行分類。Zhang等[21]使用LSTM網絡分類并與其他傳統分類方法進行對比。本文提出一種使用CNN、LSTM、GRU三種神經網絡集成決策的分類方法。與圖像處理不同,心音作為一維時序信號,較深層的網絡結構會產生嚴重的過擬合現象,為防止過擬合的產生本文網絡均選擇層數較淺的結構[22]。
1.4.1 網絡搭建
本文共搭建三種結構的分類網絡,分別為:① CNN[23]。1DCNN是CNN網絡的一種形式,1DCNN對于處理序列數據具有較好的效果。本文搭建的1DCNN具有兩個卷積層,每個卷積層都含有32個卷積核,卷積核大小為3 × 1,步長為1 × 1,激活函數選擇線性整流函數(rectified linear unit,ReLU)。池化層選用最大池化和平均池化,池化核大小為2 × 1。② LSTM[24]。LSTM是帶有門控結構的循環神經網絡(recurrent neural network,RNN)。LSTM具體過程如下:遺忘門對上一個節點傳來的輸入進行選擇性遺忘,ft為忘記門控。輸入門可以對輸入xt繼續選擇性記憶,選擇的門控信號由記憶門控pt進行控制。在輸出階段,通過門控信號ot控制當前狀態的輸出并將上一階段得到的Ct進行放縮。③ GRU[25]。GRU是LSTM的一種變體。GRU的具體過程如下:通過上一個節點輸的狀態ht ? 1和當前的輸入xt獲取到兩個門控狀態,分別是重置門控rt和更新門控zt。將得到的重置門控用來獲取重置后信息并與xt拼接,之后送入tanh激活函數放縮,得到結點狀態  。接下來進行更新記憶階段,在這個階段進行遺忘、記憶兩個部分,利用更新門控zt實現。三種網絡的結構如圖4所示。
。接下來進行更新記憶階段,在這個階段進行遺忘、記憶兩個部分,利用更新門控zt實現。三種網絡的結構如圖4所示。
 圖4
				三種網絡的結構圖
						
				圖4
				三種網絡的結構圖
			
									a. 卷積神經網絡;b. 長短時記憶網絡;c. 門控循環單元
Figure4. Structure diagram of three kinds of networka. CNN; b. LSTM; c. GRU
1.4.2 集成決策
集成學習通過構建多組分類器來完成分類任務,也叫做多分類器系統。集成學習方式包含同質集成和異質集成,異質集成是指分類器通過不同種類的算法實現的集成方式。集成決策能有效避免因單一分類器性能不佳而導致的分類識別率差的問題。因此,本文選用CNN、LSTM、GRU三種網絡進行異質集成,網絡集成如圖5所示。LSTM、GRU網絡作為RNN網絡的一種,具有較強的獲取全局信息的能力,而CNN網絡注重局部信息的提取。將三者集成能突顯各網絡特點,進一步提高分類識別率。本文搭建集成網絡采用的是并行化結構[26],這是因為計算機在處理多任務時并行結構遠遠優于串行結構,并行結構能較好地節省計算資源和降低訓練時長。
 圖5
				網絡集成框架
			
												
				Figure5.
				Network integration framework
						
				圖5
				網絡集成框架
			
												
				Figure5.
				Network integration framework
			
								決策規則采用硬投票的方法,基分類器使用CNN、LSTM、GRU三種網絡進行多數投票,即三個網絡中有兩個網絡認為是異常則標定為異常。由于返回置信矩陣的值為0至1之間的概率值,因此制定規則為置信度大于0.5量化為1,即異常,置信度小于0.5量化為0,即正常。異常情況如表2所示。
 表2
                投票結果為異常的情況
		 	
		 			 				Table2.
    			Circumstances where the voting result is abnormal
			
						表2
                投票結果為異常的情況
		 	
		 			 				Table2.
    			Circumstances where the voting result is abnormal
       		
       				2 實驗與分析
2.1 實驗環境
本實驗所用硬件配置為:中央處理器(Ryzen7 4800H @2.90GHz,AMD,美國),獨立顯卡(NVIDIA GeForce RTX2060 6GB,Nvidia,美國)。深度學習框架為TensorFlow 2.0(Google,美國),編程語言為Python 3.8(Python Software Foundation,美國)。
2.2 評價指標
本文采用五種評價指標評估模型性能,其中準確度Acc、靈敏度Se、特異度Sp如式(8)~(10)所示。
|  | 
|  | 
|  | 
其中,TP表示正確識別異常的數目,即真陽性;FN表示異常未被檢出的數目,即假陰性;TN表示正確識別正常的數目,即真陰性;FP表示正常被錯檢出的數目,即假陽性。
另外兩個指標為修正準確率MAcc和F得分( )。MAcc指標是為了應對其他外界因素對準確度的影響所設定,根據PhysioNet挑戰賽[27]評價規則對Sp和Se指標添加不定權系數
)。MAcc指標是為了應對其他外界因素對準確度的影響所設定,根據PhysioNet挑戰賽[27]評價規則對Sp和Se指標添加不定權系數 。本文
。本文 設置為0.5,從而得到修正準確率MAcc指標,如式(11)所示。
設置為0.5,從而得到修正準確率MAcc指標,如式(11)所示。
|  | 
在臨床上假陰性的風險遠大于假陽性。假陽性可以通過后續檢查進一步排除,而假陰性會因為篩查結果耽誤治療時間,因此減少假陰性病例在臨床上具有重大意義。所以本文引入  指標用來進一步衡量,如式(12)所示,
 指標用來進一步衡量,如式(12)所示, 為Sp和Se的調和系數。
 為Sp和Se的調和系數。
|  | 
由于假陰性的重要意義,應適度增加Se指標的重要性。因此本文將  值設為1.2。
 值設為1.2。
2.3 實驗結果與分析
為了將本文所提出的F-HRSF改進MFCC和集成決策網絡的分類模型與其他算法進行對比,特征提取方式選擇MFSC和MFCC,分類模型選擇三種類型的網絡,分別是CNN、LSTM和GRU。集成決策網絡的層數選取如表3所示,從表中可見選擇2層的效果較好,因此本文選用2層的網絡結構。將不同的特征提取算法與不同的分類網絡組合之后進行訓練、驗證和測試。根據上述方法,本文特征提取及分類算法與其他算法對比如表4所示,其中對比實驗與本文算法均在同一測試集上進行。模型資源占比與運行時間如表5所示,其中資源占比為GPU資源占比,運行時間為每一輪訓練所需的時間。
 表3
                不同層數下的Acc與損失值
		 	
		 			 				Table3.
    			Relationship between Acc and loss value under different layers
			
						表3
                不同層數下的Acc與損失值
		 	
		 			 				Table3.
    			Relationship between Acc and loss value under different layers
       		
       				 表4
                各算法性能比較
		 	
		 			 				Table4.
    			Performance comparison of various algorithms
			
						表4
                各算法性能比較
		 	
		 			 				Table4.
    			Performance comparison of various algorithms
       		
       				 表5
                不同網絡資源占比與運行時間的比較
		 	
		 			 				Table5.
    			Comparison of different network resources and running time
			
						表5
                不同網絡資源占比與運行時間的比較
		 	
		 			 				Table5.
    			Comparison of different network resources and running time
       		
       				本文算法對比文獻[7-10],同時結合消融實驗。文獻[7]采用傳統的STFT方法在小樣本上取得不錯的分類結果。文獻[8]和文獻[9]采用語音識別中常用的MFSC和MFCC特征,MFCC與MFSC采用與人耳結構相似的三角濾波器組,MFCC相比MFSC增加一步DCT變換去除冗余特征。文獻[9]和文獻[10]采用目前流行的CNN和LSTM神經網絡分類,CNN根據卷積核大小的滑動窗口獲取信息,LSTM憑借門控信號進行長短時記憶。從表4可以看出這幾種特征提取及分類方法都具有良好的效果,但是F-HRSF改進MFCC的集成決策模型明顯優于其他幾種方法。結果顯示:① F-HRSF改進的MFCC特征相比于MFCC特征在Acc、MAcc和F1.2三個評價指標上更優。通過對比Acc值,證實了對于不同子帶進行加權能更好地突顯其特性,提高了在篩查過程中的患者檢出率。通過對比MAcc值,表明F-HRSF改進的MFCC特征抗環境雜音能力更強。通過對比F1.2值,得出使用F-HRSF改進的MFCC特征進行分類可以得到更少的假陰性病例。② MFSC與LSTM模型、MFSC與GRU模型和MFCC與GRU模型三種方法的Se值略高于本文算法,但是這三種方法的Sp值顯著低于本文算法,這將導致假陽性病例增加。MFSC與CNN模型和MFCC與CNN模型兩種方法的Sp值略高于本文算法,但是它們的Se值又顯著低于本文算法,這將導致假陰性病例增加。③ 對于單一網絡,CNN分類識別具有較好的Sp值;LSTM和GRU分類能獲取更高的Se值。本文集成三種網絡能有效地權衡Se與Sp指標,在綜合評價指標上得到最優效果。④ 從表5中可以看出,本文模型在資源消耗與運行時間上并無顯著增加,證明本文模型具有較強的實用性。
綜上所述,基于F-HRSF改進MFCC的集成決策網絡模型對不同子帶權重進行重新分配,結合了多種網絡的特點進行集成決策,在綜合評價指標上對比現有方法有所提升。
3 結論
本文提出了一種F-HRSF改進MFCC和集成網絡決策的心音分類方法。首先對原始心音信號進行分幀加窗,得到幀處理的心音信號。其次對幀處理的心音信號提取MFCC,并針對子帶間權重的問題,將其劃分不同子帶求得Fisher比值。然后根據Fisher比值重構HRSF,得到F-HRSF并計算各子帶權值進行加權,獲得改進后MFCC特征矩陣。接著將特征矩陣送入CNN、LSTM、GRU三種并行搭建的集成網絡中得到各自的分類置信矩陣,最后通過多數投票算法決策出最終的二分類結果。本文選擇五種評價指標,在綜合評價指標MAcc和F1.2上本文算法獲得92.01%和92.13%的結果,對比其他幾種方法綜合性能最佳,為先心病的早期篩查提供了一種可行的思路。
重要聲明
利益沖突聲明:本文全體作者均聲明不存在利益沖突。
作者貢獻聲明:王原林,第一作者,負責實驗設計與實踐、數據采集、數據分析和論文寫作;孫靜負責心音分析指導、論文寫作指導和數據收集;楊宏波負責醫學指導和數據收集;郭濤負責醫學指導和處理數據;潘家華負責醫學指導和數據審查;王威廉,通信作者,負責心音理論研究、論文整體審查潤色和論文寫作指導。
倫理聲明:本文所使用的心音數據庫得到云南大學人體研究材料倫理委員會(批文編號:CHSRE2021008)以及云南省阜外心血管病醫院倫理委員會(批文編號:IRB2020-BG-028)的授權使用。
 
        

 
                 
				 
																   	
                                                                    
                                                                    
																	 
                                                                    
                                                                        
                                                                        
                                                                         
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	