【基於深度學習的腦電圖識別】基於大數據和混合深度學習架構的 EEG 自動分析

1. 摘要:

作者提出了一種利用隱馬爾可夫模型進行序列解碼、利用深度學習網絡進行後處理的混合機器學習系統,並在 TUH 腦電圖數據集進行訓練和評估;

這種方法提供了 90% 以上的敏感性,而保持 5% 以下的特異性,可以檢測三種臨牀感興趣的事件:

(1)尖峯和/或銳波;
(2)週期性偏側癲癇樣放電;
(3)全身性週期性癲癇樣放電;

還可以檢測用於建模背景噪聲的三個事件:

(1)僞影;
(2)眼動;
(3)背景;

2. 核心:

提出了一種基於隱馬爾可夫模型和深度學習的混合機器學習系統來實現 EEG 的自動解釋,研究結果在 TUH 腦電圖數據集上測試,該語料庫是世界上最大的可公開獲取的腦電圖記錄數據庫;

得出的結論是:使用大數據和深度學習,該系統性能接近臨牀接受的要求;

3. 數據集:

數據集使用的是 TUH EEG 數據集,詳細情況請移步我的這幾篇博客:

【基於深度學習的腦電圖識別】數據集篇:TUH EEG 數據集: 腦電信號自動判讀的大數據

【基於深度學習的腦電圖識別】TUH EEG 腦電圖數據下載方法

【基於深度學習的腦電圖識別】使用TUH 提供的工具爲 EDF 格式的腦電圖數據進行標註並保存爲.lbl文件

關於數據集的一些統計數據如下:
在這裏插入圖片描述

4. 網絡結構:

在這裏插入圖片描述
基本處理爲:

  1. 使用標準滑窗將 N 通道的 EEG 信號轉換成 N 個獨立的特徵流;
  2. 通過時序模型分析每個通道並生成事件假設;
  3. 最後通過三個處理步驟生成預測(俗稱過三關,咳咳跑題了跑題了);
    在這裏插入圖片描述
    在這裏插入圖片描述

4.1 預處理:特徵提取

在這裏插入圖片描述

基於深度學習的 EEG 分析系統的特徵提取往往依賴於信號的時頻表示;

基於倒譜的濾波器組或小波濾波器等技術在許多信號處理應用中是當前流行的分析技術,包括腦電圖分類,因此該系統使用了一種標準的基於線性倒譜系數的特徵提取方法;

作者對 EEG 使用線性頻率標度,因爲幾乎沒有證據表明非線性標度與此問題相關,而且在實踐中線性標度的性能稍好一些;

而且近期使用不同類型的特徵或直接使用採樣數據的實驗並沒有通過消除特徵提取過程和直接使用採樣數據來顯著改善性能;

在這裏插入圖片描述

在 LFCC 方法中,通過計算高分辨率的快速傅里葉變換來計算倒譜系數是很常見的,通常使用基於一組重疊帶通濾波器的過採樣方法對這種表示進行下行採樣,並使用離散餘弦變換將輸出轉換成倒譜域;

在本研究中,通過計算採樣後過採樣濾波器組輸出的平方和,丟棄零階倒譜項,代之以頻域能量項:

Ef=log(k=0N1X(k)2)E_f=log(\sum_{k=0}^{N-1}|X(k)|^2)

爲了更好地區分瞬態類脈衝事件和靜止背景噪聲,作者還引入了一個差分能量項,它試圖模擬能量的長期變化;

這個術語在以當前幀爲中心的 M 幀範圍內檢查能量,並計算在此區間內的最大值和最小值之間的差異:

Ed=maxm(Ef(m))minm(Ef(m))E_d=max_m(E_f(m))-min_m(E_f(m))

其中用來計算這一項的滑窗的間隔是 0.9 s;

在特徵提取過程中的最後一步是使用迴歸方法計算特徵導數:

dt=n=1Nm(ct+nctn)2n=1Nn2d_t=\frac{\sum_{n=1}^Nm(c_{t+n}-c_{t-n})}{2\sum_{n=1}^Nn^2}

其中 dtd_t 是一個 δ 係數,是從座標系 tt 計算的從 ct+nc_{t+n}ctnc_{t-n} 靜態係數,這些特徵通常被稱爲增量,因爲它們測量特徵隨時間的變化,;

在 EEG 處理中,一階導數 N 的取值通常爲 9(對應0.9秒),二階導數 N 的取值通常爲 3,導數的引入有助於系統區分穩態行爲(如脈衝信號)或非穩態信號(如峯值信號和眼球運動信號);

作者將這種方法再次應用到這些導數上,以獲得特徵的二階導數的估計值,即 δ-δ,這個過程使特徵向量的大小增加了三倍(添加 δ 和 δ-δ),並在性能方面提供了小而可測量的改進;
在這裏插入圖片描述

作者在研究中發現最佳的性能可以通過使用一個長度爲 26 的特徵向量,包括:

  1. 7 個倒譜系數;
  2. 1 個頻域量;
  3. 1 個微分量;
  4. 9 個絕對特性的 δ 係數;
  5. 排除了微分量的 δ-δ 係數;

4.2 第一關:使用隱馬爾可夫模型進行順序解碼

在這裏插入圖片描述
隱馬爾可夫模型(HMMs)是當今最強大的統計建模工具之一,是一類離散狀態序列(被建模稱爲馬爾可夫鏈)的雙隨機過程,能將時頻信號分解爲能量和頻率譜;

與語音識別系統一樣,作者假設腦電圖信號是由一個或多個符號序列編碼的某種信息的實現;

作者將 EEG 建模爲六個符號中的一個序列:SPSW、PLED、GPED、EYEM、ARTF 和 BCKG(可以看數據集中的具體解釋),並假設每個事件由一系列特徵向量或觀測值 O 表示,定義爲:

O=o1,o2,,oTO = o_1,o_2,…,o_T

其中 oto_t 是在時間 tt 觀察到的特徵向量;

然後考慮 SiS_i 是事件的有序集合中的第 ii 個元素,那麼就可以把原本孤立的事件識別問題轉換成,在給定先驗概率 P(s)P(s) 找到最可能的事件的問題,即預測基於概率 P(OSi)P(O|S_i) 的先驗概率 P(Si)P(S_i)

因此可以爲每個事件訓練一個 HMM 模型;

在這裏插入圖片描述

一個簡單的用於解碼 EGG 時序信號的 GMM-HMM 模型如上圖所示;

典型的 GMM-HMM 模型包括:

  1. NN 個狀態;
  2. LL 個組件的高斯混合模型;
  3. 狀態轉移概率 aija_{ij}
  4. 基於特徵 oo 的輸出概率 bij(o)b_{ij}(o)

考慮:

  1. a(i,t)a(i,t) 是前向概率,其中 i=1,2,,Ni=1,2,…,Nt=1,2,,Tt=1,2,…,T
  2. b(j,t)b(j,t) 是後向概率,其中 j=1,2,,Nj=1,2,…,Nt=T1,,0t=T-1,…,0
  3. P(OM)P(O|M) 作爲模型 M 生成特徵 O 的概率;

那麼 tt 時刻從狀態 ii 過渡到狀態 jj 的概率就可以定義爲:

γi(i,j)=α(i,t1)aijbij(Ot,μij,ij)β(j,t))P(OM)\gamma_i(i,j)=\frac{\alpha(i,t-1)a_{ij}b_{ij}(O_t,\mu_{ij},\sum_{ij})\beta(j,t))}{P(O|M)}

過渡概率的重估公式爲:

aij=tγi(i,j)tjγi(i,j)a_{ij}=\frac{\sum_t\gamma_i(i,j)}{\sum_t\sum_j\gamma_i(i,j)}

如果輸出向量 OtO_t 遵循一個 nn 維正態分佈,那麼密度函數的輸出如下:

bij(ot,μij,ij)=exp{(otμij)tij1(otμij)/2}(2π)n/2ij1/2b_{ij}(o_t,\mu_{ij},\sum_{ij})=\frac{exp\lbrace -(o_t-\mu_{ij})^t\sum^{-1}_{ij}(o_t-\mu_{ij})/2\rbrace}{(2\pi)^{n/2}|\sum_{ij}|^{1/2}}

其中 μ\mu 是均值,ij\sum_{ij} 是協方差矩陣,由此可以計算高斯混合模型中每個組件的參數:

μij=tγi(i,j)ottγi(i,j),\mu_{ij}=\frac{\sum_t\gamma_i(i,j)o_t}{\sum_t\gamma_i(i,j)},
ij=tγi(i,j)(otμij)(otμij)ttγi(i,j)\sum_{ij}=\frac{\sum_t\gamma_i(i,j)(o_t-\mu_{ij})(o_t-\mu_{ij})^t}{\sum_t\gamma_i(i,j)}

在信號建模的第一關中,我們將 EEG 信號的每個通道劃分爲 epoch,然後每個 epoch 由一系列幀表示,其中每個幀由一個特徵向量表示;

在訓練時,我們通過遍歷訓練數據集估計 K 個模型的參數(aij,bij,μij,ija_{ij},b_{ij},\mu_{ij},\sum_{ij});

解碼通常使用 Viterbi 算法,然後每個事件使用一個 HMM 模型,爲每個模型生成一個後驗概率,並選擇對應於最高概率的事件;

4.3 第二關:基於深度學習的時空上下文分析

結構:

在這裏插入圖片描述

深度學習允許由多個處理層組成的計算模型學習具有多個抽象級別的數據表示,並通過使用反向傳播算法來指示機器應該如何改變其內部參數來發現大數據集中複雜的結構;

圖中的第二關處理的目標是整合空間和時間背景來改進決策,因此,深度學習系統對每個信道的每個 epoch 的長度爲 6 的後驗概率向量輸出進行後處理;

作者在這裏使用了一種特殊類型的深度學習網絡,稱爲堆疊去噪自編碼器(SdA);

在這裏插入圖片描述

從結構上看,SdAs 是一種疊加去噪自編碼器的形式,利用底層去噪自編碼器的潛在表示作爲當前層的輸入,從而形成一個深度網絡;

自編碼器接收輸入向量 x[0,1]x\in[0,1],並通過一個確定的映射將它映射到一個隱藏特徵 y[0,1]y\in[0,1]

即:

y=fθ(x)=s(Wx+b)y=f_{\theta}(x)=s(Wx+b)

其中 θ={W,b}\theta=\lbrace W,b\rbraceWW 是一個 d×dd^{'}×d 大小的權重矩陣,bb 是偏置向量,ss 是非線性函數(比如 Sigmoid);

隱藏特徵 yy 然後被譯碼器映射到與輸入 xx 大小相同的向量 zz

z=gθ(y)=s(Wy+b)z=g_{\theta^{'}}(y)=s(W^{'}y+b^{'})

反向映射的權重矩陣 WW^{'} 可以在 W=WTW^{'}=W^T 的約束條件下優化,即具有相關權重;

可以利用損失函數 LL 對模型參數進行優化,使平均重構誤差最小,如重構交叉熵:

θ,θ=arg minθ,θ1ni=1nL(x(i),gθ,(fθ))\theta^{*},\theta^{'*}=\argmin_{\theta,\theta^{'}}\frac{1}{n}\sum^n_{i=1}L(x^{(i)},g_{\theta},(f_{\theta}))

處理過程:

首先通過隨機映射 x~=qD(x~x)\widetilde{x}=q_D(\widetilde{x}|x) 獲取初始輸入 xx 的加噪聲數據 x~\widetilde{x}

然後將這個損壞的輸入映射到一個隱藏的表示 y=fθ(x~)=s(Wx~+b)y=f_{\theta}(\widetilde{x})=s(W\widetilde{x}+b)

最後通過映射 z=gθ(y)=s(Wy+b)z=g_{\theta^{'}}(y)=s(W^{'}y+b^{'}) 重建向量 zz

在這裏插入圖片描述

第二階段處理的框圖如圖所示,這一階段包括三個並行的S dAs,旨在整合空間和時間背景,以改進決策;

這些 SdAs 採用不同的窗口大小來實現,以有效地執行信號的多時間尺度分析,並將事件標籤映射到單個複合 epoch 標籤向量上;

第一個SdA,被稱爲 SPSW-SdA,負責將標籤映射到兩個類中的一個:癲癇病樣和非癲癇病樣;

第二個SdA,被稱爲 EYEM-SdA,負責將標籤映射到背景(BCKG)和眼動(EYEM)類;

第三個SdA,被稱爲 6W-SdA,負責將標籤映射到六個可能的類中的任何一個;

前兩個sda使用相對較短的窗口上下文,因爲 SPSW 和 EYEM 是局部事件,只有在有足夠的時間分辨率時才能檢測到;

訓練:

這三個 SdA 網絡的訓練分爲兩個步驟:預訓練和微調;

去噪的自編碼器被堆疊起來形成一個深度網絡,這種體系結構的無監督預訓練一次完成一層,每一層都通過最小化重構其輸入(即前一層的輸出 zz)的損失函數來實現被訓練成一個去噪的自動編碼器;

一旦所有層都進行了預訓練,網絡就會經歷第二個階段的訓練,稱爲微調(fine-tuning);

在這裏作者考慮了監督微調,即最小化監督任務的預測誤差;

因此首先在網絡上添加一個邏輯迴歸層,然後像訓練多層感知器一樣訓練整個網絡;

此外,從圖中可以看出,在將深度學習網絡的輸入數據應用到這些 SdAs 之前,也可以使用全局主成分分析(PCA);

PCA 通過將每個通道的輸出連接到一個超向量中,然後在輸入到 SdA 之前降低它的維數,從而應用於每個單獨的 epoch;

並且對於罕見的和局部的事件,如 SPSW 和 EYEM,作者使用樣本外技術(out-of-sample)來增加訓練樣本的數量;

最後,使用一個稱爲增強器的模板將這三個 SdAs 的輸出組合起來,以獲得最終的決策;

爲了將這三個輸出相加,作者使用 6 路分類器的輸出初始化最終的概率輸出;

對於每個 epoch,如果其他兩個分類器檢測到癲癇病或眼球運動,並且 6 路分類器與此不一致,我們根據 2 路分類器的輸出更新輸出概率;

因此第二階段的總體結果是一個 6 維的概率向量,其中包含每個事件在 epoch 中的概率;

4.4 第三關:統計語言建模

在這裏插入圖片描述

神經學家在解讀腦電圖時,通常會對事件施加一定的限制,例如,PLED 和 GPED 不會在同一個會話中發生,然而前面的處理階段都沒有解決這個問題,在建立長期時間環境模型方面效果不是很好。第三階段的處理解決了這個問題,並通過使用基於統計語言模型的有限狀態機改進了總體檢測性能:

如圖所示,第三階段的後處理是爲了對第二階段的輸出施加一些上下文限制,這些上下文關係涉及信號的長期行爲,並以數據驅動的方式進行學習;

這種方法也借鑑了語音識別,在語音識別中使用概率語法,即通過使用施加特定語法約束的有限狀態集合將左右上下文與標籤結合起來;

在本研究中,作者利用訓練資料集並與 THU 神經科醫師協商,建立一個二元概率語法模型,提供從一種類型的元到另一種類型的元的概率轉換;

下表顯示了 6 個類中每個類的兩元圖概率,它對從一個事件到下一個事件的所有轉換概率進行了建模,來模擬神經學家使用的上下文知識;

在這裏插入圖片描述

例如:

  1. 由於 PLED 是長期事件,因此從一個事件轉換到下一個事件的概率很高,大約爲 0.9;

  2. 如果在出現的峯值是 PLED 或 GPED,那麼從它們轉換爲 SPSW 的概率是 0.0;

因此在編譯概率表之後,一個長窗口以每個 epoch 爲中心,並且通過將左上下文和右上下文作爲先驗來更新該 epoch 的後驗概率向量(本質上是通過其左上下文和右上下文來預測當前 epoch);

並且在算法的單次迭代中,也可以使用貝葉斯框架更新該語法的概率:

在這裏插入圖片描述
其中:

  1. KK 是分類數,即 K=6K=6
  2. LL 是 epoch 的數目;
  3. ϵprior\epsilon_{prior} 是單個 epoch 的先驗概率,長度爲 66
  4. MM 是權重;
  5. LPPLPPRPPRPP 分別是左右上下文概率;
  6. λ\lambda 是滑窗的衰減權重;
  7. α\alpha 是跟概率 PgpriorP_{gprior} 相關的權重;
  8. βL,βR,βC\beta_L,\beta_R,\beta_C 是正則化因數;
  9. PCkP_{C_k} 是先驗概率
  10. PCkLRP_{C_k|LR} 是 epoch CCkk 事件的後驗概率;
  11. yy 是語法模型的權重;
  12. nn 是迭代次數;
  13. Prob(i,j)Prob(i,j) 是語法模型中的概率;

該算法不斷迭代,直到基於概率向量解碼的事件分配收斂;

5. 實驗參數及結果:

5.1 數據:

作者與數名神經科醫生和本科生標註員合作,手動標註 TUH 數據集並進行評測:
在這裏插入圖片描述

訓練集包含 359 個樣本的片段,而評估集包含 159 個樣本;

需要注意的是,這些註釋是在通道的基礎上創建的——對觀察到的事件的特定通道進行了註釋;

6 類事件在訓練評價集中出現的頻率分佈如表所示:

在這裏插入圖片描述

訓練集的設計目的是提供足夠數量的示例來訓練諸如 HMMs 之類的統計模型;

注意,在現實中,99% 的數據都分配給了 BCKG 類,因此需要高性能的分類器來檢測需要處理不經常發生的事件,因爲大量的數據是不提供信息的,這通常被稱爲不平衡數據問題;

所有 EEG 均採用標準10-20系統記錄,每個EEG有 22 個通道的信號數據;

5.2 預處理:

一組簡單的初步實驗確定,計算複雜度和性能之間的合理權衡是將 10 秒的窗口分割爲 1 秒的時間間隔,並將這些時間間隔進一步細分爲 0.1 秒的幀;

因此,使用 0.2 秒重疊分析窗口每,0.1秒計算一次特徵,即每個通道中每 0.1 秒對應一個 26 維的特徵向量;

5.3 使用隱馬爾可夫模型進行順序解碼:

利用 HMMs 模型進行實驗,每個狀態使用 8 個高斯混合分量和一個對角協方差假設;

模型使用所有通道上的所有事件進行訓練,得到所謂的的通道無關模型,而依賴於通道的模型還沒有被證明能夠提高性能並且會增加系統的複雜性;

第一次處理的結果如下表所示:

在這裏插入圖片描述

而通過將三個背景類合併成一個類別,可以構造一個更有信息性的性能分析;

因此作者將第二階段的評估範式指定爲四分類任務:SPSW、GPED、PLE 和 BACKG,後一個類包含三個背景類,分類結果如下表所示:

在這裏插入圖片描述

最後,爲了生成 DET 曲線,作者還報告了一個雙向分類結果,即將數據分解爲目標類(TARG)和背景類(BCKG),結果如下表所示:

在這裏插入圖片描述

需要注意的是,所有這些表的分類結果都是通過將每個通道的每個 epoch 作爲獨立事件計數來度量的,因爲每個 epoch 都爲每個通道分配一個基於其類標籤的概率向量;

5.4 基於深度學習的時空上下文分析:

處理的第一階段的輸出是一個矢量,即每個 epoch 中的每個通道的 6 個分概率;

因此,如果有 22 個通道和 6 個類,那麼每個 epoch 的維數爲 6 x 22 = 132,這個 132 維的向量是在不考慮鄰近時間的相似向量的情況下計算出來的;

由於每個通道都對應於顱骨上特定的電極位置,因此同一 epoch 內其他通道提供的信息被稱爲空間上下文,從其他時代獲得的信息被稱爲時間上下文,那麼這一階段處理的目標就是將空間和時間背景結合起來以改進決策;

爲了整合上下文,到第二階段的深度學習系統的輸入是一個 6×22×窗口長度的向量,這種輸入維度較高,爲了解決這一問題,作者採用了一種標準方法,即在每個 SdA 之前使用主成分分析(PCA);

PCA 對於用於查找 SPSW 和 EYEM 的 SdA 檢測器輸出一個 13 維的向量,對於用於查找 6 路分類的 SdA 分類器輸出一個 20 爲維的向量;

此外,由於在訓練數據集中沒有足夠的 SPSW 和 EYEM 事件,作者使用了樣本外技術;

作者使用了一個開源工具包 Theano以實現SdAs,並利用交叉熵損失函數對模型參數進行優化,使平均重建誤差最小;

在優化過程中使用了小批量隨機梯度下降,從而減少了梯度估計中的方差,並且通常更好地利用了現代計算機中的分層存儲組織;

每一層的參數如下:

  1. SPSW SdA:
    1.1. 使用的窗口長度爲 3,這意味着它有 39 個輸入和 2 個輸出;
    1.2. 有三個隱藏層,每個層的損壞級別( corruption levels)爲 0.3;
    1.3. 每層的節點數爲:第一層=100,第二層=100,第三層=100;
    1.4. 預訓練時參數爲:學習率=0.5,迭代次數=200,批量大小=300;
    1.5. 微調時參數爲:學習率=0.2,迭代次數=800,批量大小=100;
  2. EYEM SdA :除了微調迭代次數改爲200外,其餘參數與 SPSW SdA 相同;
  3. Six-way SdA:
    3.1. 使用的窗口長度爲 41,這意味着它有 820 個輸入和 6 個輸出;
    3.2. 有三個隱藏層,每個層的損壞級別( corruption levels)爲 0.3;
    3.3. 每層的節點數爲:第一層=800,第二層=500,第三層=300;
    3.4. 預訓練時參數爲:學習率=0.5,迭代次數=150,批量大小=300;
    3.5. 微調時參數爲:學習率=0.1,迭代次數=300,批量大小=100;

第二階段處理的6路、4路、2路分類結果分別如下:
在這裏插入圖片描述

5.5 統計語言建模:

第二階段處理的輸出是一個矢量,每個epoch有6個分數(即概率),也是處理的第三階段的輸入;

第三的優化參數是:

  1. ϵprior=0.1\epsilon_{prior}=0.1
  2. M=1M=1
  3. λ=0.2λ=0.2
  4. α=0.1\alpha=0.1
  5. y=1y=1
  6. n=20n=20;
  7. 計算左右先驗概率的窗口長度爲10;

6路、4路和2路分類結果如下:
在這裏插入圖片描述

6. 討論:

6路分類任務可以構造成幾個子任務,當然,由於信號是背景的概率很高,系統對背景模型的選擇有很大的偏差,因此,我們可以看到 BACKG 的性能相當高,但是BCKG經常與SPSW混淆;

SPSW事件持續時間短,在BCKG中有許多類似於SPSW事件的瞬態事件,這是添加ARTF和EYEM模型的原因之一,這樣可以減少所有類與短脈衝SPSW事件的混淆;

GPED最常與PLED事件混淆,這兩個事件的持續時間都比SPSWs和人工事件長;從結果中可以看出,這兩個類的性能通常很高;

GPED和ple之間的主要區別是持續時間,因此作者設計了一個後處理來學習這個區別;例如,在第二輪處理中,作者實現了41秒的窗口持續時間,這樣SdA系統就可以暴露在長期的時間環境中;

作者還設計了三個獨立的SdA網絡來區分短期和長期環境;

雖然全面的性能提高了,但是通過添加第二輪後處理,SPSW的性能下降了,這反映了數據的不平衡;因此即使使用了樣本外技術來增加SPSWs的訓練樣本數量,但是也不能解決缺少帶註釋的SPSW數據的問題;

不同處理階段的結果摘要如下表所示:

在這裏插入圖片描述

可以看出多通道混合 HMM/DL 分類系統的總體性能是有希望的:敏感性超過90%,特異性低於5%;

由於誤報率隨靈敏度的變化非常大,因此作者使用DET曲線來測試性能:

在這裏插入圖片描述

從圖中可以很明顯地看出,當我們增加檢測率時,後處理顯著地提高了保持低誤報率的能力;

本研究表明,需要大量的語境處理才能達到5%的特異性;

7. 結論:

本文提出了一種能對臨牀相關腦電圖事件進行高效分類的三通系統,該系統結合了 HMMs 進行精確的時間分割和深度學習進行高性能的分類:

  1. 在第一步中,使用基於隱馬爾科夫模型的系統將信號轉換爲 EEG 事件,該系統對信號的時間演化進行建模;
  2. 在第二步中,三個不同窗口持續時間的疊加去噪自動編碼器(SDAs)被用來將事件標籤映射到單個複合 epoch 標籤向量上;
  3. 在第三步中,應用了概率語法,該語法將左右上下文與當前的標籤向量相結合,從而產生一個 epoch 的最終決策;

本文的混合 HMM/DL 系統提供了90%以上的敏感性,同時保持了5%以下的特異性,使自動化分析成爲臨牀醫生可行的選擇;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章