湯貴艷
(青島科技大學,山東青島 266061)
癲癇是大腦神經(jīng)元突發(fā)性異常放電,導致短暫的大腦功能障礙的一種慢性疾病。其發(fā)作具有頻繁、無預兆的特征,發(fā)作時不僅會導致短暫的注意力缺失或肌肉碰撞,嚴重時甚至會威脅到病人生命。近40 年來,神經(jīng)科學家一直認為癲癇發(fā)作是在臨床發(fā)作前幾秒鐘突然發(fā)生的,但現(xiàn)在有越來越多的證據(jù)表明,癲癇會在臨床發(fā)病前幾分鐘到幾小時出現(xiàn),這使得通過對病人腦電波的分析判斷癲癇發(fā)作,并及時給與藥物治療越發(fā)重要。
腦電波是診斷癲癇發(fā)作的重要檢查方法。由于腦電信息存在非線性、高度復雜性和不可預測性等特征,使得傳統(tǒng)方法不能快速準確的做出判斷。隨著機器學習和深度學習在各種應用場景的大放異彩,越來越多的模型例如支持向量機[1-2]、BP 神經(jīng)網(wǎng)絡[3]等被應用于預測判斷領域,并取得了良好的結(jié)果,生成對抗網(wǎng)絡(GAN)便是其中之一,網(wǎng)絡包含生成器與判別器兩個部分,兩部分通過對抗性過程同時訓練。在訓練過程中,生成器學會創(chuàng)造最符合真實分布的數(shù)據(jù),而判別器學會判斷真實數(shù)據(jù)和虛假數(shù)據(jù)。通過這種對抗性學習,不僅可以提高生成器的生成性能,還可以有效提高判別器的準確率。近年來,生成對抗網(wǎng)絡(GAN)模型已經(jīng)廣泛應用于自然語言處理[4-5]、圖片生成[6-8]和目標檢測[9-10]等領域,并且取得了顯著的進展。
本文以生成對抗網(wǎng)絡(GAN)模型為基礎,同時針對腦電信息存在高度復雜性的特性,在判別器的設計過程中采用多個神經(jīng)網(wǎng)絡組合的方法,有效提高了判別器的準確度。
前饋神經(jīng)網(wǎng)絡,也被稱為前饋網(wǎng)絡,是人工智能領域最出名的人工神經(jīng)網(wǎng)絡之一。前饋神經(jīng)網(wǎng)絡由輸入層、隱藏層和輸出層三部分組成,其中每一層都包含多個神經(jīng)元。與循環(huán)神經(jīng)網(wǎng)絡不同,遞歸神經(jīng)網(wǎng)絡中的神經(jīng)元只會輸入前一層的神經(jīng)元的輸出,并且將計算后的數(shù)據(jù)輸出到下一層神經(jīng)元。圖1 展示了一個基礎的前饋神經(jīng)網(wǎng)絡模型。
圖1 前饋神經(jīng)網(wǎng)絡示意圖
生成對抗網(wǎng)絡(GAN)模型是由Goodfellow 等人[11]于2014 年提出的,是無監(jiān)督學習和半監(jiān)督學習最具前景的方法之一。其構(gòu)建思想來源于博弈論中的零和游戲。GAN 模型由生成器和判別器組成,生成器和判別器通過對抗學習的方法來訓練。生成器的訓練目標是生成符合真實分布的數(shù)據(jù), 而判別器的訓練目的是判別輸入數(shù)據(jù)是來自真實數(shù)據(jù)還是由生成器生成的數(shù)據(jù),并提高判別準確率。在訓練的過程中, 判別器和生成器需要不斷交替優(yōu)化, 提高其生成能力和判別能力。GAN 模型的計算流程與結(jié)構(gòu)如圖2 所示。
圖2 GAN 模型示意圖
在訓練過程中,對于生成器而言就是盡可能地讓生成的數(shù)據(jù)更加真實,而判別器則盡可能地識別出數(shù)據(jù)的真假,生成器和判別器在不斷地進行對抗,最終達到納什均衡:生成器生成的數(shù)據(jù)接近于真實分布,而判別器識別不出真假數(shù)據(jù),對于給定數(shù)據(jù)的預測準確率基本接近0.5,相當于隨機猜測類別。
生成器是由一個兩層前饋神經(jīng)網(wǎng)絡構(gòu)成。生成器的輸入是一組隨機生成的向量,其取值從一個均勻分布[-1,1)中隨機采樣,且滿足高斯分布。生成器的輸出是一組與真實腦電波維度相同的向量。生成器的數(shù)學表達式如下:
其中,relu(·)為激活函數(shù),x1為輸入的一組隨機生成向量,y1為輸出向量。
其中,y2代表生成器的輸出,其維度與真實腦電波相同。
判別器的輸入為由生成器生成的虛假腦電波向量或者真實腦電波向量。判別器最終通過一個sigmoid 函數(shù)輸出一個取值范圍在[0,1]的數(shù),作為判別器識腦電波為真的概率,用來解決二分類問題。本文所提出的判別器如圖3 所示。
圖3 判別器構(gòu)造示意圖
針對腦電波具有高度復雜性的特征,本文將輸入向量切分成3 個片段,利用3 個前饋神經(jīng)網(wǎng)分別對片段進行特征提取。然后將提取的3 個特征進行拼接,最后利用一個全連接層和sigmoid 函數(shù)輸出判別器判別概率。具體步驟如下:
3.2.1 將輸入的腦電波向量,切分成三個向量,并且利用三個相互獨立的前饋神經(jīng)網(wǎng)絡對三個向量進行特征提取,即
3.2.3 通過一個單層的前饋神經(jīng)網(wǎng)絡,將由步驟3.2.2 得到的向量y4映射到一個值在0~1 的數(shù),作為判別器的輸出概率,即
其中,y5為判別器的輸出概率結(jié)果,W4,b4為未知參數(shù)。
GAN 模型由判別器和生成器兩部分組成,因此GAN 模型的損失函數(shù)也由判別器損失函數(shù)和生成器損失函數(shù)組成。判別器的損失函數(shù)與普通二分類的模型相同,都是通過交叉熵來計算損失函數(shù)。交叉熵損失度量的是分類模型的性能。交叉熵損失隨著預測概率偏離實際標簽而增加。判別器的損失函數(shù)由判別虛假腦波時的損失函數(shù)和判別器判別真實腦波時的損失函數(shù)構(gòu)成,優(yōu)化后的目標函數(shù)為:
其中,x 由真實腦電波數(shù)據(jù)分布Pdata(x)中獲得,z 由滿足高斯分布的隨機生成的噪聲Pz(z)中獲得。D(x)代表真實腦電波數(shù)據(jù)作為輸入時判別器輸出的概率。G(z)代表隨機生成的噪聲作為輸入時生成器生成的虛假腦電波數(shù)據(jù)。E(·)代表計算期望值。
生成器的優(yōu)化目標是使得判斷器將生成的虛假腦電波數(shù)據(jù)錯誤判斷成真實腦電波數(shù)據(jù),即使得D(G(z))的值越大越好,因此優(yōu)化的生成器目標函數(shù)可以寫為:
生成器與判別器作為兩個網(wǎng)絡需要分別優(yōu)化。當固定生成器時,對于判別器的優(yōu)化,可以這樣理解:輸入來自于真實數(shù)據(jù),判別器優(yōu)化網(wǎng)絡結(jié)構(gòu)使自己輸出1,輸入來自于生成數(shù)據(jù),優(yōu)化網(wǎng)絡結(jié)構(gòu)使自己輸出0;當固定判別器時,生成器優(yōu)化自己的網(wǎng)絡使自己輸出盡可能和真實數(shù)據(jù)一樣的樣本,并且使得生成的樣本經(jīng)過判別器的判別之后,判別器輸出高概率。優(yōu)化過程可以展示如下:
模型中所有可訓練參數(shù)的初始值設置為均勻分布的隨機值[-0.08,0.08]。模型的學習率設置為0.0002。為避免過擬合,在選擇批量大小時,需要同時考慮訓練時間和收斂速度。批處理規(guī)模越大,訓練時間越快,但會導致收斂速度變慢。為了平衡訓練時間和收斂速度,模型訓練過程中的batch size 設置為64。
本文所使用的數(shù)據(jù)集由115000 個標記樣本點組成,其中每個樣本點為時長1 秒的腦電波。圖4 展示了一個腦電波示意圖。樣本的標記值為1 或0 ,其中1 代表癲癇發(fā)作,0 代表無癲癇發(fā)作,其中,2300 個樣本點標記值為1,9200 個樣本點標記值為0。本文從標記值為1 的數(shù)據(jù)中隨機選取80%的數(shù)據(jù)作為訓練集,其余20%的數(shù)據(jù)和9200 個標記值為0(非癲癇發(fā)作)的數(shù)據(jù)共同組成測試集。
圖4 腦電波示意圖
數(shù)據(jù)集以csv 格式存儲在高性能計算集群上,搭建實驗環(huán)境。
硬件環(huán)境:AMD EPYC 7002, DDR4 32G, RTX2080TI。
軟件環(huán)境:Ubuntu 16.04,cuda 9.0,python 3.6,tensorflow 1.3[12]。
表1 預測準確率對比表
為了進一步說明改進后的GAN 模型的有效性,本文將改進后的GAN 模型和基礎GAN 模型進行對比性實驗?;AGAN 模型判別器與生成器相同,僅有一個兩層前饋神經(jīng)網(wǎng)絡構(gòu)成。對比性實驗中,改進后的GAN 模型和基礎GAN 模型使用相同的數(shù)據(jù)集,且訓練和測試配置完全相同。
本文將生成對抗網(wǎng)絡(GAN)模型應用于癲癇發(fā)病判斷,并且針對腦電波具有高度復雜性等特征,提出了一個基于生成對抗網(wǎng)絡的癲癇發(fā)病判別方法,通過對基礎GAN 模型的判別器的改進,將其單神經(jīng)網(wǎng)絡變?yōu)槎嗌窠?jīng)網(wǎng)絡的組合,以此增強判別器特征提取的能力,實驗結(jié)果表明,改進后的GAN 模型在提高癲癇發(fā)病判別準確率方面取得了更好的效果,對于臨床轉(zhuǎn)化具有重要意義。由于患者真實發(fā)病數(shù)據(jù)較少且出于保護病人隱私方面考慮,未來可在監(jiān)督學習的基礎上深入探索,逐漸向無監(jiān)督學習方向發(fā)展。