人工智能領(lǐng)域的很多技術(shù)早已被應(yīng)用在一些和醫(yī)療相關(guān)議題豆挽,較為常見的是利用深度學(xué)習(xí)技術(shù)對(duì)醫(yī)學(xué)影像進(jìn)行分析 (如協(xié)助判斷患者是否患有癌癥慨仿,預(yù)測(cè)癌細(xì)胞是否出現(xiàn)轉(zhuǎn)移);也有很多是利用深度學(xué)習(xí)于訊號(hào)處理 (如分析病患的腦電波訊號(hào) EEG谭网, 輔助醫(yī)生診斷睡眠呼吸暫停綜合癥,Sleep Apnea Syndrome)低斋。
我想實(shí)際了解一下如何使用深度學(xué)習(xí)技術(shù)對(duì)人的腦電波進(jìn)行分析,因此選了一篇已經(jīng)發(fā)表的論文匪凡,針對(duì)其設(shè)計(jì)的模型進(jìn)行還原膊畴。該論文使用了較為熱門的卷積神經(jīng)網(wǎng)絡(luò) (Convolutional Neural Networks, CNN) 作為模型的主要結(jié)構(gòu),并把問題的定義歸為監(jiān)督式學(xué)習(xí)(Supervised Learning)病游。
閱讀要求:需要有基礎(chǔ)的機(jī)器學(xué)習(xí)相關(guān)知識(shí)
PS: 所有程式碼均不公開到 Github
Related Paper:
O. Tsinalis, P. M. Matthews, Y. Guo, and S. Zafeiriou. (Oct. 2016). “Automatic sleep stage scoring with single-channel EEG using convolutional neural networks.” [Online]. Available:https://arxiv.org/abs/ 1610.01683
Problem Definition
論文使用人體EEG腦波信號(hào)唇跨,對(duì)睡眠狀態(tài)進(jìn)行偵測(cè)。片段的EEG信號(hào)會(huì)有相對(duì)應(yīng)的睡眠狀態(tài)標(biāo)簽衬衬,輸入資料為EGG信號(hào)买猖,輸出資料為睡眠狀態(tài)類別;如某個(gè)EGG信號(hào)序列為 [1, 0, 2, 3, 4, 5 ...] 滋尉,睡眠狀態(tài)類別是 [ N1]玉控,因此 [1, 0, 2, 3, 4, 5 ...] -- [N1] 即為一筆訓(xùn)練資料,因此問題定義為分類問題 (Classification)狮惜,因此問題用監(jiān)督式學(xué)習(xí) Supervised Learning 可解高诺。
Dataset
為了在復(fù)原論文所提出模型的同時(shí),測(cè)試其模型的一般性碾篡,因此我使用的資料集與論文中所使用的資料集不同虱而,我所使用的是UCDDB資料集 (University College Dublin Sleep Apnea Database)[1]。 UCDDB資料集收集25名病患(21男开泽,4女牡拇,平均年齡50歲,平均體重95kg穆律,平均身高173cm)的PSG信號(hào)資料惠呼。每一份記錄包含兩個(gè)EEG channel的資料(C3-A3和C4-A1 ;指的是頭部不同的位點(diǎn))峦耘。資料的取樣率為128Hz罢杉,即每秒鐘有128個(gè)資料點(diǎn);此外贡歧,每30秒的訊號(hào)資料將對(duì)應(yīng)一個(gè)睡眠狀態(tài)標(biāo)簽 (共有 5 種睡眠狀態(tài))滩租。舉例而言,一筆150秒的資料包含 5 筆 30 秒的訊號(hào)資料利朵,對(duì)應(yīng)5個(gè)睡眠狀態(tài)標(biāo)簽律想,總共有150 x 128 = 19200個(gè)資料點(diǎn)。
Model Structure
論文中绍弟,模型的結(jié)構(gòu)如下圖所示(我只還原其設(shè)計(jì)技即,因?yàn)橘Y料的不同,輸入向量的大小會(huì)不一樣)樟遣。模型基于CNN網(wǎng)路而叼,輸入資料會(huì)先經(jīng)過 20 個(gè) 1D-filter 進(jìn)行特征提取取身笤,然后做max -pooling 的動(dòng)作;然后 20 個(gè) vector 會(huì)堆疊在一起形成一個(gè) 2D 的向量空間葵陵;這個(gè) 2D 的向量會(huì)經(jīng)過 400 個(gè) filter 做進(jìn)一步的特征提取液荸,400 個(gè)向量經(jīng)過 max -pooling 后進(jìn)入全連接層,隨后輸出 5 維的向量脱篙,對(duì)應(yīng) 5 個(gè)睡眠狀態(tài) (如 [0,0,0,0,1] 對(duì)應(yīng)狀態(tài)1娇钱, [0,0,0,1,0] 對(duì)應(yīng)狀態(tài)2, [0,0,1,0,0] 對(duì)應(yīng)狀態(tài)3绊困, [0,1,0,0,0] 對(duì)應(yīng)狀態(tài)4文搂, [1,0,0,0,0] 對(duì)應(yīng)狀態(tài)5 )。
Experiment Setting
環(huán)境:使用VScode編寫程式煤蹭,程式語(yǔ)言為python 3.6,深度學(xué)習(xí)框架為Tensorflow 2.0 + Keras取视,運(yùn)行環(huán)境配有多張高性能GPU疯兼。
資料前處理:使用raw-data作為輸入,不做任何計(jì)算特征的動(dòng)作贫途,僅僅是讀原始資料結(jié)構(gòu)吧彪,轉(zhuǎn)換為輸入資料的結(jié)構(gòu)。
Training and Testing:資料集共包含25名病患的資料丢早,在訓(xùn)練一個(gè)模型的過程中姨裸,我們的訓(xùn)練資料為前24名病患的資料,測(cè)試資料為1名病患的資料怨酝。因此我們訓(xùn)練25個(gè)模型傀缩,最后取平均得到整體的模型準(zhǔn)確度。
主要參數(shù)設(shè)定:optimizer: Adma农猬,epochs:500赡艰,validation=0.2, class_weight=“ balanced”, loss=“categorical_crossentropy”斤葱。
Results Analysis
以下是實(shí)驗(yàn)結(jié)果慷垮,以 Confusion Matrix 的形式呈現(xiàn),有25個(gè)模型揍堕,因此有 25 張圖料身。由于篇幅關(guān)系僅選取其中 9 個(gè) Confusion Matrix 的結(jié)果。
Conclusion
從初步的結(jié)果上看衩茸,模型的平均準(zhǔn)確度只有0.541芹血,因此效能并不算好 (很不好)。
參數(shù)并未做調(diào)整,復(fù)原論文時(shí)沒有深究參數(shù)設(shè)定對(duì)模型效能的影響幔烛,也無(wú)法由此次結(jié)果探討模型之一般性啃擦。
復(fù)原的結(jié)果即便使用新的資料集,依舊與論文呈現(xiàn)的結(jié)果有所差異饿悬,這部分需要探究論文所使用資料集與本次作業(yè)使用的資料集的差異性令蛉。
Reference