李曉華
(北京華醫共享醫療科技有限公司,北京100083)
當今社會,節奏快、壓力大已是一種常態,長期的高壓生活導致心血管類疾病成為人類健康的最大威脅。各種心臟疾病,在心電圖上會有不同的體現,因此,心電檢查或是實時心電監測,可以做到早發現、早預防。目前,臨床上對心電圖的診斷仍然主要采用臨床醫生人工分析的方法,人工診斷過程費時又費力,而診斷結果的是否準確又依賴于臨床大夫的專業水平。因此,準確、快速、方便的心電圖輔助診斷技術也成為了當前醫療領域研究的熱點問題。
傳統心電圖輔助診斷技術已經存在了幾十年, 這些方法,基本都是依賴于手動提取特征,然后再用各種分類器進行分類。這些方法包括基于小波特征提取[1];基于頻率的特征提取和統計特征[2],同時,分類方法包括支持向量機[3]、決策樹[4]等。這些方法都存在魯棒性不強,泛化能力太弱,易受干擾等因素影響,很難適應臨床復雜的場景。
一維卷積神經網絡對序列數據的處理也表現出了極佳的性能,它跟二維卷積類似,也是基于局部連接和權值共享的理念,極大的減少了參數量;此外,一維池化層可以降低特征分辨率,抽取更上層的特征,進一步減少參數量,提高了訓練和預測時的速度,同時也降低了對硬件的要求; 一維卷積神經網絡是一種端到端的結構,輸入序列數據,自動提取特征,自動完成分類診斷工作,魯棒性極高,可以勝任不同場景下的心電識別工作。
一維卷積神經網絡一般包括輸入層、一維卷積層、激活層、一維池化層、隨機失活層、全連接層等結構,各層的結構如下:
2.2.1 輸入層:本質上是一個輸入變量,作用是接收序列樣本,其輸入張量的形狀為:

其中,N 為batch_size,即:批量大小,指訓練時,每次輸入多少個樣本;T 為time step,即:時間步,也就是序列的長度;F 為feature,即:每個時間步的特征;
2.2.2 一維卷積層:通過一維卷積運算來提取特征,是一維卷積神經網絡最重要的組件, 其核心參數有:num_filters 是濾波器數量, 決定輸出特征圖的數量;kernel_size 是卷積核大小;padding是補充零行或是零列的數量;stride 是步長,指卷積過程中,每次移動幾行或幾列;卷積層輸出特征圖的高度計算公式為:

其中,Hout為輸出特征圖的高度;Hin為輸入特征圖的高度; Kh為卷積核的高度;P 為補零列數;S 為步長;計算寬度時,也類似;
2.2.3 激活層:主要目的是引入非線性因素,在深度學習中,最常用的激活函數為ReLU 激活函數, 它將大于零的輸入不做任何改變,直接輸出,其余輸入全部輸出零;其公式為:

其中,x 為輸入,max 函數為取最大值函數,y 為輸出;
2.2.4 一維池化層:池化層的主要作用是降采樣,丟棄無關的細節信息,抽取更高層的信息,有最大池化和平均池化兩種,常用的是最大池化; 其核心參數有:pool_size, 為池化核的大小;pool_padding,為補零行數或列數;pool_type,為池化類型,常用最大池化;池化層的輸出大小跟卷積層的計算方法類似,不再贅述;
2.2.5 全連接層:指的是前后兩層的所有神經元都有連接的網絡結構,其參數量比較多,主要用于最后的特征分類;全連接層最后的分類概率輸出,需要采用softmax 函數,其公式為:

其中,xi為第i 類的原始輸出;C 為總的類別數;Pi為第i 類最終的輸出概率;
本文所用的數據集共600 個心電病例, 每個病例記錄了12導聯同步采集10 秒鐘的心電波形,采樣率是500Hz,共有5000個時間步,通過圖1 可知,波形的幅度在-1.5 到2 之間,一個病例,可以構成[5000, 12]的序列輸入數據,其中,5000 代表時間步,12 代表每個時間步的特征;

圖1 示例波形
本文網絡結構在設計時,采用了如圖2 所以的結構,具體細節如下。
Input 為輸入層;Conv1D 為一維卷積層, 用于提取序列數據的特征, 卷積之后采用ReLU 激活;MaxPool1D 是一維池化層,池化核心為2X2,步長為2,padding 為'SAME',可以將整個序列的時間步降低一倍;GAPool1D 為全局平均一維池化層,該層的作用是取所有時間步上的特征的平均值,消除掉時間步;Dropout 為隨機失活層,在一定程度上可以避免過擬合;Dense 為全連接層,主要用于分類,第一層前連接的神經元個數分別為256,最后一層為2,最后通過Softmax 函數輸出兩類診斷結果的概率;訓練時,采用的損失函數為多分類交叉熵,其公式為:

圖2 本文網絡結構

其中, p( x) 為經x過one-hot 編碼的樣本標簽; q ( x)為網絡的輸出概率分布;
優化算法采用adam 算法;訓練時,每個批量的樣本為128 個,總訓練了21 個回合,最終的準確率為0.89。
實驗證明,基于一維卷積神經網絡的計算機輔助診斷算法可以有效的對心電病例進行輔助診斷,甚至已經超過了人類專家;通過遷移學習的策略,可以方便的進行病種的擴展,實現一個模型診斷多種疾病,極大提高了該算法的普適性和魯棒性。