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