任靈,黃玉丹,陳穎
南京大學(xué)電子科學(xué)與工程學(xué)院,江蘇南京210023
心血管疾病目前已經(jīng)成為人類的頭號(hào)致死病種[1],醫(yī)生能夠根據(jù)心音信號(hào)在心血管疾病的早期發(fā)現(xiàn)癥狀并提供初步診斷[2]。心音分割[3-4]和心音分類[5-6]是心音分析主要方法。心音分類的典型方法有基于人工神經(jīng)網(wǎng)絡(luò)的分類[7]、基于支持向量機(jī)的分類[8]、基于隱馬爾可夫模型的分類[9-10]和基于聚類的分類[11]。Liang 等[12]采用波包分解特征與人工神經(jīng)網(wǎng)絡(luò)的方法,成功區(qū)分了兒童心音信號(hào)中的天然雜音和病理性雜音,并且取得了80%的敏感性與90%的特異性。Ari 等[13]采用最小二乘支持向量機(jī)的方法判別心音信號(hào)是否正常,在測(cè)試集上的準(zhǔn)確率達(dá)到86.72%。Bentley 等[14]使用無監(jiān)督K 近鄰(KNearest Neighbors, KNN)來區(qū)分正常心音和異常心音,在一個(gè)大小未知的數(shù)據(jù)庫中報(bào)告了100%和87%的準(zhǔn)確率。
由于先前的研究缺乏標(biāo)準(zhǔn)化、高質(zhì)量、嚴(yán)格驗(yàn)證的心音數(shù)據(jù)庫,不同研究之間的直接對(duì)比分析受到阻礙。同時(shí)許多研究并未單獨(dú)劃分測(cè)試集,使得模型在訓(xùn)練集上過擬合。本研究的心音信號(hào)來自2016年的PhysioNet 挑戰(zhàn)賽的心音數(shù)據(jù)庫[15],選擇了Huang 等[16]提出的新型交叉對(duì)比神經(jīng)網(wǎng)絡(luò)(Cross-Contrast Neural Network, CCNN)區(qū)分正常與異常的心音信號(hào)。CCNN 是一種結(jié)合了時(shí)間序列分析方法與機(jī)器學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),機(jī)器學(xué)習(xí)的方法彌補(bǔ)了傳統(tǒng)特征提取方法中泛化能力不足、抗干擾性較差的問題,時(shí)間序列分析又從統(tǒng)計(jì)學(xué)的角度為深度學(xué)習(xí)的可解釋性提供理論支持,使得CCNN 適用于數(shù)據(jù)量較小的醫(yī)學(xué)問題。
Yang 等[17]提出了IBS,觀測(cè)在兩種不同的信號(hào)中,同一個(gè)序列出現(xiàn)的頻率特征。如圖1所示,每一個(gè)點(diǎn)代表某種序列,其所在位置代表其在信號(hào)中出現(xiàn)頻次的排名,其中X 軸代表時(shí)間信號(hào)1,Y軸代表時(shí)間信號(hào)2。結(jié)合IBS,圖1中點(diǎn)的散亂程度表示兩個(gè)信號(hào)的相似程度。圖中的點(diǎn)越集中在對(duì)角線附近,則表示兩個(gè)信號(hào)越相似,圖中的點(diǎn)越散亂,越遠(yuǎn)離對(duì)角線,兩個(gè)信號(hào)的相似程度越低。目前IBS 的應(yīng)用領(lǐng)域有:SARS 冠狀病毒的基因組分類[18]、醫(yī)學(xué)圖像配準(zhǔn)[19]、文學(xué)作品作者的鑒別等[20]。
圖1 兩個(gè)時(shí)間信號(hào)上不同序列特征出現(xiàn)頻次秩的散點(diǎn)圖Fig.1 Scatter plot of the rank-frequency distribution of different sequences on two time signals
CCNN 由Huang 等[16]在2019年發(fā)表文章中首次提出,如圖2所示該網(wǎng)絡(luò)利用VGG的前4層得到特征概率,而后利用改進(jìn)的IBS方法計(jì)算兩個(gè)輸入信號(hào)的相似程度,根據(jù)眾多濾波器判斷的結(jié)果進(jìn)行投票,區(qū)分正常和異常的心音信號(hào)。
圖2 CCNN網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Cross-contrast neural network(CCNN)structure
具體的訓(xùn)練過程如下:(1)將N個(gè)信號(hào)兩兩配對(duì),組合成C2N個(gè)數(shù)據(jù)輸入對(duì),打上標(biāo)簽(類別相同label=0,不同為label=1);(2)將每批數(shù)據(jù)輸入CCNN 的前半部分,在第四個(gè)卷積層獲得大小為w×h×d的特征圖(w×h×d=28×28×512);(3)計(jì)算特征圖(w×h)中大于某個(gè)閾值的元素個(gè)數(shù),得到d維特征向量=[p1,p2,…,pd];(4)將一個(gè)批次C2N個(gè)關(guān)系對(duì)得到的特征向量p→x、p→y輸入改進(jìn)后的IBS 模型,計(jì)算損失,將梯度反向傳播給網(wǎng)絡(luò)的參數(shù),更新網(wǎng)絡(luò)的權(quán)重;(5)反復(fù)執(zhí)行過程(1)~(4),直到模型在驗(yàn)證集上的損失值不再下降或預(yù)測(cè)的準(zhǔn)確率不再上升為止。
本研究使用softsign函數(shù)代替邏輯判斷的閾值計(jì)數(shù)操作,同時(shí)對(duì)特征向量進(jìn)行歸一化操作,歸一化的方法如下:
其中,fi,j代表第i號(hào)特征圖中的第j個(gè)像素值,d和M分別是最后一層卷積層的維度和輸出特征圖的像素個(gè)數(shù)。CCNN 在原有IBS 方法的基礎(chǔ)上提出一種改進(jìn)算法—Modified IBS 算法(簡稱ModIBS),將IBS的值歸一化到0~1。設(shè)原始IBS 值為Normal IBS,簡稱NorIBS,公式如下:
其中,Rx,i是第x個(gè)數(shù)據(jù)輸出概率里第i個(gè)概率值的排名,F(xiàn)i是第i個(gè)濾波器在輸入x和y中的概率熵之和,Z是歸一化系數(shù)。
隨機(jī)打亂概率向量的其中之一,得到混亂狀態(tài)下的IBS值,命名為RevIBS。
α為指數(shù)放大因子,最終的損失函數(shù)采用交叉熵計(jì)算:
本研究在2016年P(guān)hysioNet/Cinc 挑戰(zhàn)賽提供的開源心聲數(shù)據(jù)集上展開[15],原始數(shù)據(jù)為2 000 Hz 的wav 格式心音信號(hào)。數(shù)據(jù)預(yù)處理流程如下:首先,讀入2 000 Hz 采樣的一維時(shí)間序列,對(duì)原序列進(jìn)行1 000 Hz 的降采樣。然后,根據(jù)心音信號(hào)的頻率范圍,使用25~400 Hz 的帶通濾波器進(jìn)行濾波。最后,對(duì)序列做平滑處理。心音信號(hào)的預(yù)處理過程如圖3所示。
圖3 心音信號(hào)預(yù)處理流程圖Fig.3 Preprocessing of heart sound signals
本研究選取VGG 網(wǎng)絡(luò)進(jìn)行特征提取,其輸入信號(hào)的維度為224×224×3。采用長度為512 的窗口截取原始信號(hào)并疊加漢明窗,通過短時(shí)傅里葉變換得到頻譜圖,將頻譜圖的前224個(gè)幅度特征存儲(chǔ)為1×224大小的數(shù)組。以步長256 滑動(dòng)窗口,重復(fù)上述步驟,直到取滿224 個(gè)窗口為止。對(duì)每一個(gè)1×224 的特征進(jìn)行一階差分和二階差分并和原數(shù)組疊加,最終輸出224×224×3 的頻譜圖。在變換后的數(shù)據(jù)上劃分訓(xùn)練集與測(cè)試集(比例為4:1),使用訓(xùn)練集進(jìn)行CCNN網(wǎng)絡(luò)迭代訓(xùn)練。
本研究的訓(xùn)練與測(cè)試流程如圖4所示。
圖4 基于CCNN的心音信號(hào)分類的訓(xùn)練和測(cè)試流程圖Fig.4 Flowchart of training and testing of heart sound signal classification based on CCNN
2.2.1 模型訓(xùn)練假設(shè)一個(gè)批次的數(shù)據(jù)大小為N張圖像,兩兩配對(duì)得到C2N個(gè)數(shù)據(jù)輸入對(duì)。由于計(jì)算平臺(tái)GPU 內(nèi)存有限,本文采取批量梯度下降的方法對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。為了保證輸入數(shù)據(jù)的0、1平衡性,具體數(shù)據(jù)輸入方法如下:(1)每次從訓(xùn)練集中順序讀取1個(gè)錨點(diǎn)文件,假設(shè)其為正常心音;(2)從訓(xùn)練集剩余的文件中分別挑選x- 1張和y張正常、異常心音頻譜圖,使得以下公式成立:
從高校辦學(xué)職能出發(fā),高校投入成本及功能產(chǎn)出的形式是多樣的,尤其在建立指標(biāo)體系時(shí),各種功能、成本指標(biāo)量化的數(shù)據(jù)具有不同的量綱,因此,對(duì)功能指標(biāo)、成本指標(biāo)無量綱處理是價(jià)值管理理論與方法應(yīng)用于高校績效考核中必須解決的重要環(huán)節(jié)。在實(shí)際應(yīng)用中,可引入功能績點(diǎn)與成本級(jí)點(diǎn)的概念,功能績點(diǎn)反映的是功能產(chǎn)出的水平,成本級(jí)點(diǎn)反映的是資源投入的情況,制定統(tǒng)一的定量標(biāo)準(zhǔn),并對(duì)照標(biāo)準(zhǔn)進(jìn)行定量計(jì)算,實(shí)現(xiàn)功能與成本數(shù)據(jù)的無量綱化。
(3)選取正常心音和異常心音的個(gè)數(shù)分別為x和N-x的近似正整數(shù),組成數(shù)據(jù)大小為N的批次,輸入網(wǎng)絡(luò);(4)計(jì)算損失,將梯度反向傳播給網(wǎng)絡(luò)的參數(shù),更新網(wǎng)絡(luò)的權(quán)重;(5)重復(fù)步驟(1)~(4),直到遍歷完訓(xùn)練集中的所有錨點(diǎn)文件。
為了解決網(wǎng)絡(luò)的過擬合與陷入局部最優(yōu)的問題,本研究在CCNN 的基礎(chǔ)上,加入了可動(dòng)態(tài)調(diào)整的學(xué)習(xí)率和L2 正則化。其中,學(xué)習(xí)率決定梯度對(duì)CCNN 網(wǎng)絡(luò)權(quán)重調(diào)整幅度的大小;L2 正則化則可以提高模型的泛化能力并且防止過擬合。圖5和圖6展示了訓(xùn)練過程。
圖5 準(zhǔn)確率和損失值隨著訓(xùn)練步驟進(jìn)行的變化趨勢(shì)Fig.5 Variation trends of accuracy and loss value with the training steps
圖6 TP和TN隨著訓(xùn)練步驟進(jìn)行的變化趨勢(shì)Fig.6 Variation trends of TP and TN with the training steps
訓(xùn)練過程中隨著訓(xùn)練步數(shù)的推進(jìn),訓(xùn)練集的準(zhǔn)確率逐漸上升,損失值逐漸下降,同時(shí)真陰率(TN)、真陽率(TP)也穩(wěn)步上升。本研究劃分出20%數(shù)據(jù)作為驗(yàn)證集,為了避免過擬合問題,當(dāng)模型在驗(yàn)證集上的準(zhǔn)確率開始下降時(shí)停止訓(xùn)練。這樣的訓(xùn)練方式在維持?jǐn)?shù)據(jù)輸入均衡性的同時(shí)保證訓(xùn)練的穩(wěn)定性,通過將信號(hào)兩兩組成信號(hào)對(duì)的方法,有效填補(bǔ)數(shù)據(jù),緩解了深度神經(jīng)網(wǎng)絡(luò)難以在小數(shù)據(jù)集上收斂的問題。
2.2.2 模型測(cè)試將第2.2.1 小節(jié)訓(xùn)練得到的模型用于心音信號(hào)的測(cè)試。采用與訓(xùn)練集數(shù)據(jù)完全相同的預(yù)處理方式將未知正?;虍惓5男囊粜盘?hào)轉(zhuǎn)化為頻譜圖,并且將未知心音信號(hào)與訓(xùn)練集中的正常和異常心音信號(hào)進(jìn)行兩兩組合構(gòu)成信號(hào)對(duì),如圖4b所示,以預(yù)測(cè)結(jié)果為0(兩幅圖像來源于同一分類)最多的類別作為最終分類結(jié)果。
心音記錄的分類分為3個(gè)層次:正常、異常、不確定,總分根據(jù)分類的各項(xiàng)指標(biāo)綜合計(jì)算[6]。
總體得分Score、靈敏度Se、特異性Sp定義如下:
表1 分類結(jié)果具體定義Tab.1 Definitions of the classification results
本研究在測(cè)試集上進(jìn)行了10 次5 折交叉驗(yàn)證,結(jié)果如表2所示。本研究選取了常用的機(jī)器學(xué)習(xí)方法與CCNN 進(jìn)行對(duì)比,結(jié)果如表3所示。可以看到,上述幾種方法中,CCNN 對(duì)心音分類的效果最好。CCNN的預(yù)期是經(jīng)過訓(xùn)練后,同一類別的兩幅圖像中的點(diǎn)應(yīng)當(dāng)聚集在對(duì)角線附近,而對(duì)于不同類別的兩種信號(hào),其特征分布則呈現(xiàn)出散亂的狀態(tài)。為了驗(yàn)證實(shí)驗(yàn)預(yù)期,本文選擇3 段心音信號(hào),其中2 段來自正常心音信號(hào),1段來自異常心音信號(hào)。
表2 CCNN測(cè)試結(jié)果Tab.2 CCNN test results
表3 常用的機(jī)器學(xué)習(xí)方法與CCNN進(jìn)行對(duì)比Tab.3 Comparison between commonly-used machine learning methods and CCNN
觀察這兩組心音信號(hào)的特征分布在訓(xùn)練前后的變化。圖7展示的為第四層卷積在訓(xùn)練前和訓(xùn)練后的特征分布??梢钥吹?,對(duì)于相同類別的信號(hào),從圖7a 到圖7b 呈現(xiàn)出往對(duì)角線聚集的趨勢(shì),而對(duì)于不同類別的信號(hào),從圖7c 到圖7d 呈現(xiàn)遠(yuǎn)離對(duì)角線的散亂趨勢(shì)。圖8展示了3段不同心音信號(hào)的原始頻譜圖(圖像大小224×224)與通過幾種濾波器后輸出的頻譜圖(圖像大小28×28)。
圖7 模型訓(xùn)練過程中分布的變化Fig.7 Distribution changes during model training
圖8 不同心音信號(hào)的原始頻譜圖與通過幾種濾波器后的頻譜圖Fig.8 Original spectrograms of different heart sound signals and spectrograms filtered by different filters
從心音信號(hào)的維度來看,同一個(gè)濾波器對(duì)不同的心音信號(hào)有著不同的響應(yīng)。可以明顯地看出,394號(hào)濾波器對(duì)正常心音信號(hào)響應(yīng)更強(qiáng),27 號(hào)濾波器在異常信號(hào)上的響應(yīng)更強(qiáng),而72 號(hào)濾波器不管對(duì)正常信號(hào)還是異常信號(hào)的響應(yīng)都沒有明顯的強(qiáng)弱關(guān)系,代表了某種區(qū)分度較小的模式。從這3 個(gè)典型的濾波可以看出,不同濾波器表現(xiàn)出不同的區(qū)分模式,而這些不同的濾波器,在一次次迭代的過程中更新它們的權(quán)重,最終可以得到一組最能區(qū)分正常與異常心音信號(hào)的權(quán)重?cái)?shù)據(jù),達(dá)到了最初對(duì)CCNN 結(jié)合時(shí)間序列分析方法的設(shè)想。
這種新的網(wǎng)絡(luò)結(jié)構(gòu)與訓(xùn)練方法,同時(shí)利用深度卷積神經(jīng)網(wǎng)絡(luò)與IBS方法的優(yōu)點(diǎn),針對(duì)醫(yī)學(xué)數(shù)據(jù)做出了改進(jìn),一定程度上克服了諸如數(shù)據(jù)量少、數(shù)據(jù)集差異不明顯的弊端。而與傳統(tǒng)機(jī)器學(xué)習(xí)中人工設(shè)計(jì)特征的方法相比,深度神經(jīng)卷積網(wǎng)絡(luò)的引入可以由網(wǎng)絡(luò)提取出對(duì)分類有用的特征,大大簡化特征提取流程。其中兩兩組合信號(hào)的方式給網(wǎng)絡(luò)提供更多的信息,放大不同類別心音信號(hào)間的差異性,并且一定程度上擴(kuò)充了心音數(shù)據(jù)的數(shù)據(jù)量。這種方法尤其適用于數(shù)據(jù)難以獲取,并且數(shù)據(jù)數(shù)量較少的醫(yī)學(xué)場景。
本文受到IBS 與CNN 的啟發(fā),將新型深度神經(jīng)網(wǎng)絡(luò)CCNN 用于心音信號(hào)的分類。在此基礎(chǔ)上,采用了IBS 中序列相似性的度量方法,借助CNN 的強(qiáng)大特征表現(xiàn)能力,對(duì)動(dòng)態(tài)生成的信號(hào)進(jìn)行分類。本文采用的訓(xùn)練方法主要有以下3 個(gè)主要特點(diǎn):(1)結(jié)合統(tǒng)計(jì)學(xué)的思想,將先驗(yàn)知識(shí)加入神經(jīng)網(wǎng)絡(luò)的特征提取過程,使網(wǎng)絡(luò)具備良好的泛化性;(2)使用交叉對(duì)比的輸入模式擴(kuò)展數(shù)據(jù)集,引入了除內(nèi)容信息之外的對(duì)比信息;(3)CCNN 前半部分的特征抽取網(wǎng)絡(luò)架構(gòu)靈活易調(diào)整。
綜上所述,本文利用CCNN 在心音數(shù)據(jù)集上取得了較好的結(jié)果(靈敏度為0.834 6,特異性為0.962 3,綜合得分為0.898 5),證明CCNN 在醫(yī)學(xué)數(shù)據(jù)集上的可行性,為小數(shù)據(jù)深度學(xué)習(xí)提供一種新思路。