耿銀鳳,張雪英,李鳳蓮,胡風云,賈文輝,王 超
1.太原理工大學 信息與計算機學院,太原 030024
2.山西省人民醫(yī)院 神經(jīng)內(nèi)科,太原 030012
腦卒中是現(xiàn)代社會中的一種高發(fā)性腦血管病,嚴重危害人類健康和影響人們生產(chǎn)生活,其中缺血性卒中占腦卒中總數(shù)的半數(shù)以上[1]。因此,在發(fā)病早期或者潛伏期,能準確預測缺血性腦卒中疾病發(fā)病狀況,從而采取適當?shù)拇胧┻M行積極的干預治療顯得極為重要。
顱內(nèi)動脈狹窄已被醫(yī)學研究證明是缺血性腦卒中的重要誘因之一[2],經(jīng)顱多普勒(Transcranial Doppler,TCD)作為一種無創(chuàng)傷的顱內(nèi)動脈狹窄的篩查檢測工具,因其操作方便、價格低廉的特點,在臨床上廣泛應用于腦卒中疾病的診斷[3-4]。腦卒中的診斷實際上可看作是一個分類問題,隨著人工智能技術的發(fā)展,許多研究人員希望通過人工智能技術輔助醫(yī)生進行診斷,避免醫(yī)生因經(jīng)驗不足產(chǎn)生的錯誤,提高診斷效率。目前用于TCD 數(shù)據(jù)分類研究的方法主要有支持向量機(Support Vector Machine,SVM)[5]和人工神經(jīng)網(wǎng)絡(Artificial Neural Network,ANN)[6-8]等。SVM 雖然具有較強的非線性擬合能力,但其分類性能易受輸入?yún)?shù)影響[9];ANN 一般采用梯度下降法(如反向傳播算法)對大量樣本進行訓練,不斷迭代調(diào)整網(wǎng)絡的權值,因而具有很強的學習能力,但其存在收斂速度慢,容易陷入局部極值,對網(wǎng)絡初始權值依賴度高等缺點。針對現(xiàn)有TCD分類診斷模型存在的訓練速度慢、準確率低等缺點,本文選擇極限學習機(Extreme Learning Machine,ELM)作為TCD 數(shù)據(jù)分類模型,這有利于提高模型訓練速度,并增強模型的泛化能力[10]。
ELM 學習算法自產(chǎn)生以來得到了飛快的發(fā)展,針對不同的應用場景,分別衍生出了核極限學習機(Extreme Learning Machine with Kernel,KELM)、在線序貫極限學習機及加權極限學習機(Weighted Extreme Learning Machine,W-ELM)[11]等相關算法,并廣泛應用于人臉識別[12]、交通信號燈檢測[13]、電力負荷預測[14]、遙感影像分類[15]等領域。隨著ELM的發(fā)展,研究人員逐漸意識到,由于隱含層的輸入權值和閾值等參數(shù)在ELM學習過程中是隨機選擇產(chǎn)生的,可能存在部分參數(shù)為0 的情況,導致部分隱含層神經(jīng)元失效。與傳統(tǒng)的ANN 算法相比,ELM往往需要更多的隱含層神經(jīng)元數(shù)目,使得網(wǎng)絡的復雜度增加;并且ELM 的分類性能易受隨機產(chǎn)生的隱含層參數(shù)影響。為克服這些缺點,通過應用群智能算法對ELM的隱含層參數(shù)進行優(yōu)化,可以提升泛化性能,提高分類精度,降低網(wǎng)絡復雜度[16]。作為一種群智能算法,蝙蝠算法(Bat Algorithm,BA)具有尋優(yōu)速度快、全局尋優(yōu)能力強的優(yōu)點,可避免陷入局部最優(yōu)。為此,本文提出了一種BA優(yōu)化ELM的缺血性腦卒中TCD數(shù)據(jù)分類診斷模型BA-ELM,該模型可以對腦卒中病人的TCD數(shù)據(jù)進行快速的分類,并達到較高的分類預測精度。
ELM 是由Huang 提出的一種單隱層前饋神經(jīng)網(wǎng)絡(Single Hidden Layer Feedforward Neural Network,SLFN)訓練算法。SLFN作為一種常見的ANN,其用于連接輸入層和輸出層的隱含層只有一層。與傳統(tǒng)ANN不同的是,ELM 的隱含層輸入權值和閾值是隨機產(chǎn)生而不是通過迭代生成的,并且不需人為設置初始權值和初始閾值等參數(shù),因而大大提高了網(wǎng)絡的訓練速度,同時克服了ANN易出現(xiàn)的過擬合問題。圖1為ELM的網(wǎng)絡結構圖。
圖1 ELM網(wǎng)絡結構
對于N個訓練樣本(xi,ti),xi=[xi1,xi2,…,xin]∈Rn為輸入樣本,ti=[ti1,ti2,…,tim]T∈Rm表示樣本標簽,即網(wǎng)絡的期望輸出。輸入層神經(jīng)元數(shù)目為n,隱含層神經(jīng)元數(shù)目為L,輸出層神經(jīng)元數(shù)目為m,SLFN 的輸入輸出關系為:
式中,wi=[wi1,wi2,…,win]T是輸入層和第i個隱含層神經(jīng)元之間連接權值,即隱含層輸入權值,bi是第i個隱含層神經(jīng)元的閾值,βi=[βi1,βi2,…,βim]T是第i個隱含層神經(jīng)元和輸出層之間的連接權值,即輸出權值,yj=[yj1,yj2,…,yjm] 表示網(wǎng)絡的實際輸出,g(·) 是隱含層神經(jīng)元的激勵函數(shù),一般可以從“Sigmoid”“RBF”“Hardlim”等函數(shù)中選擇。訓練ELM 使得樣本實際輸出零誤差逼近期望輸出,即:
也就是說,存在βi、wi和bi使得
上式進一步寫成矩陣形式:
其中,H、β和T分別為:
式(4)和(5)中的H是隱含層輸出矩陣,Hij表示對應于輸入xi的第j個隱含層神經(jīng)元的輸出。由于wi和bi都是隨機產(chǎn)生而不是通過訓練產(chǎn)生的,其值一經(jīng)產(chǎn)生隱含層輸出矩陣H的各元素值都為確定值,即H為一個確定的矩陣,又因為T是已知值,需要訓練的參數(shù)只有隱含層輸出權值β。極限學習機的學習過程就是根據(jù)線性系統(tǒng)Hβ=T求解β的最小范數(shù)最小二乘解:
BA算法是一種群智能算法,2010年由Yang Xinshe受啟發(fā)于蝙蝠覓食過程中的回聲定位而提出[17]。與其他群智能算法相比,BA算法具有尋優(yōu)速度快、全局搜索能力強等顯著優(yōu)點。該算法的基本原理為:將數(shù)目為n的蝙蝠種群映射到D維搜索空間中,n個蝙蝠個體所處的位置即為所求優(yōu)化問題的n個可行解,將種群中蝙蝠個體搜尋食物時位置更新的過程類比為參數(shù)優(yōu)化過程。該算法的目標是尋找出迭代后種群中最優(yōu)的蝙蝠個體位置,也即n個可行解中的最優(yōu)解。
虛擬蝙蝠個體的位置、速度和脈沖頻率分別按式(8)~(10)進行更新:
在算法的局部搜索階段,先產(chǎn)生一個隨機數(shù),若該隨機數(shù)大于脈沖發(fā)射速率,則蝙蝠種群按式(11)所示規(guī)則在當前全局最優(yōu)解附近隨機擾動產(chǎn)生局部最優(yōu)解:
式中,ε為[-1,1]間的隨機數(shù),At表示n個蝙蝠個體的平均響度。
蝙蝠在飛行過程中會根據(jù)與食物距離的遠近來調(diào)整其脈沖響度和脈沖發(fā)射速率,具體表現(xiàn)為:在剛開始覓食時脈沖發(fā)射速率較小且脈沖響度大,隨著搜尋過程的進行,與食物的距離越來越近,蝙蝠不斷降低脈沖響度并增大其脈沖發(fā)射速率。脈沖響度和脈沖發(fā)射速率的更新規(guī)則分別為式(12)和(13):
其中,α、γ均為常量且滿足 0<α <1,γ >0 。
本文給出的BA-ELM 算法基本機理主要是采用蝙蝠算法優(yōu)化ELM 算法的隱含層輸入權值和隱含層閾值,其基本思想為:將ELM的隱含層輸入權值和閾值映射為蝙蝠優(yōu)化算法中各個蝙蝠個體D維空間中的位置矩陣,并設計出BA-ELM網(wǎng)絡模型的適應度函數(shù)。BAELM 網(wǎng)絡模型的最優(yōu)化問題可以轉(zhuǎn)化為:求解適應度函數(shù)值全局最小時所對應的蝙蝠個體,該蝙蝠個體位置即為全局最優(yōu)解,根據(jù)蝙蝠個體位置與ELM 的隱含層輸入權值和隱含層閾值的映射關系,即可得到最優(yōu)的ELM 隱含層參數(shù),按式(4)和(7)很容易求出ELM 的隱含層輸出矩陣和輸出權值矩陣,從而得到最優(yōu)的ELM網(wǎng)絡模型?;谠撍惴ń⒌腡CD數(shù)據(jù)分類模型原理框圖如圖2所示。
圖2 基于BA-ELM的TCD數(shù)據(jù)分類模型
蝙蝠算法優(yōu)化ELM的算法流程如下:
訓練階段
輸入:具有N個實例的訓練集ti∈Rm,xi為具有n維特征的輸入樣本,ti為第i個實例的類別標簽;具有N′ 個實例的驗證集。
(1)產(chǎn)生一個蝙蝠個體數(shù)為n的初始種群,初始化其脈沖響度Ai,脈沖發(fā)射速率ri,并設置最大迭代次數(shù)iter_max,搜索脈沖頻率范圍[fmin,fmax],響度衰減系數(shù)α,脈沖發(fā)射速率的增強因子γ等參數(shù)(α、γ均為常量且 0<α <1,γ >0)。
(2)隨機初始化D維空間中蝙蝠種群的位置、速度、頻率等參數(shù),其參數(shù)產(chǎn)生的隨機性正好對應ELM參數(shù)中隱含層輸入權值和閾值矩陣元素產(chǎn)生的隨機性。采用合適的映射方法將ELM的隱含層輸入權值矩陣和隱含層閾值矩陣映射成蝙蝠種群的位置矩陣。用訓練集來訓練得到ELM 的隱含層輸入權值、隱含層閾值和輸出權值等網(wǎng)絡模型參數(shù),利用構建的ELM 網(wǎng)絡模型對驗證集數(shù)據(jù)進行分類,以驗證集的誤分率為適應度函數(shù),找到適應度函數(shù)值最小的蝙蝠個體,其位置為當前全局最優(yōu)。
(3)根據(jù)式(8)~(10)所示的更新規(guī)則對種群每個蝙蝠個體的位置、速度和脈沖頻率進行迭代更新。
(4)產(chǎn)生一個隨機數(shù),當該隨機數(shù)大于ri,則按式(11)所示規(guī)則在當前全局最優(yōu)解附近進行隨機擾動產(chǎn)生新解。
(5)再產(chǎn)生一個隨機數(shù),當該隨機數(shù)小于Ai且,則蝙蝠個體i移往步驟(4)中新解所在位置。
(6)比較所有蝙蝠個體的適應度值,適應度值最小的蝙蝠個體位置即為當前最優(yōu)解。
(7)重復步驟(3)~(6),直到滿足最大迭代次數(shù),得出最優(yōu)蝙蝠個體位置,并根據(jù)映射關系得到最優(yōu)的ELM隱含層輸入權值矩陣和隱含層閾值矩陣。
輸出:由步驟(7)中求得的最優(yōu)的隱含層參數(shù)及步驟(2)中訓練得到的輸出權值構成的ELM網(wǎng)絡模型。
測試階段
輸入:具有N″個實例的測試集。
(1)將訓練階段得到的隱含層輸入權值和隱含層閾值代入式(5)求出測試集的隱含層輸出矩陣H′。
(2)根據(jù)式(14)計算測試集的測試輸出:
輸出:測試集的分類結果。
為了測試蝙蝠算法優(yōu)化極限學習機對TCD數(shù)據(jù)的分類性能,從山西省人民醫(yī)院2017 年12 月的經(jīng)顱多普勒超聲報告中隨機選取256例顱內(nèi)動脈狹窄病人和512例正常人的TCD數(shù)據(jù),每例數(shù)據(jù)包含左側(cè)頸內(nèi)動脈、右側(cè)頸內(nèi)動脈、左側(cè)椎動脈和右側(cè)椎動脈4個部位的收縮期最大流速(PSV)、舒張末期流速(EDV)、阻力指數(shù)(RI)和血管直徑(R)等特征,特征數(shù)為16,數(shù)據(jù)標簽來自山西省人民醫(yī)院放射科醫(yī)師的標注。
首先對腦卒中TCD 特征數(shù)據(jù)進行歸一化處理,然后將其中288 例作為訓練集,288 例作為驗證集,192 例作為測試集,訓練BA-ELM 網(wǎng)絡模型,測試模型對顱內(nèi)動脈狹窄和正常人的分類準確率。其中訓練集的作用是訓練得到ELM的輸出權值,驗證集用來訓練超參數(shù),即ELM 網(wǎng)絡模型中的隱含層輸入權值和隱含層閾值。為了驗證基于BA優(yōu)化的ELM模型的優(yōu)越性,設置了以下模型對比實驗:BA 優(yōu)化ELM、差分進化算法(Differential Evolution,DE)優(yōu)化ELM、粒子群算法(Partical Swarm Optimization,PSO)優(yōu)化ELM 和基本ELM。實驗執(zhí)行環(huán)境為Matlab R2016a,運行環(huán)境為Windows7家庭普通版。
經(jīng)多次仿真實驗,參數(shù)設置如下:蝙蝠種群大小取20,初始脈沖響度取1.6,初始脈沖發(fā)射速率取0.000 1,搜索脈沖頻率范圍取[0,2],脈沖響度衰減系數(shù)設為0.9,脈沖發(fā)射速率的增強因子設為0.99,蝙蝠種群最大迭代次數(shù)為20。激活函數(shù)均取sigmoid 函數(shù)每種方法的實驗結果都是20次獨立運行的平均值。
表1 所示為各分類模型對TCD 數(shù)據(jù)的分類結果及其相應的隱含層神經(jīng)元數(shù)和訓練時間??梢钥闯?,BA-ELM、DE-ELM 和PSO-ELM 的分類準確率比ELM分別提高了22.77 個百分點、20.84 個百分點和21.52 個百分點,所需隱含層神經(jīng)元數(shù)卻比ELM少,說明群智能算法不僅可以有效降低ELM 網(wǎng)絡復雜度,同時可以有效提高ELM 的分類性能。另外,BA-ELM 算法的分類準確率最高,但所需隱含層神經(jīng)元數(shù)最少,訓練時間也比DE-ELM和PSO-ELM分類模型分別降低了7.90 s 和4.20 s。實驗結果表明了BA-ELM 用于TCD 數(shù)據(jù)分類時的有效性。
而從原理上分析,DE 算法的全局搜索能力受種群多樣性的影響,隨著種群的進化,各個個體逐漸向最優(yōu)個體靠近,個體間差異減小,種群多樣性逐漸喪失,算法容易陷入局部最優(yōu)[18];PSO 算法前期收斂快,但由于所有粒子都飛往最優(yōu)解方向,失去多樣性,后期收斂速度降低,同時收斂精度到達一定程度后無法繼續(xù)提高[19];BA 算法的速度更新和位置更新公式與PSO 類似,但由于其采用了頻率調(diào)整和參數(shù)控制策略,可以控制蝙蝠移動的速度和范圍,使全局搜索更加高效,可以達到較高的收斂速度與收斂精度。因而在訓練時間和分類準確率方面,BA-ELM均優(yōu)于DE-ELM和PSO-ELM。
由表1 可知,ELM 的訓練時間最短,這是因為群智能算法尋優(yōu)的過程也占用一定的訓練時間,而BA-ELM也僅需要1.56 s,但分類準確率從ELM的75.57%提高到98.34%,提高了22.77個百分點,表明了BA算法優(yōu)化后的ELM的分類性能較經(jīng)典的ELM有了顯著提高,但訓練時間的增加并不明顯。
表1 TCD數(shù)據(jù)的分類結果及各算法隱含層神經(jīng)元數(shù)和訓練時間對比
為降低實驗結果的偶然性,各算法均獨立運行10次,以運行次數(shù)為橫坐標,分類準確率為縱坐標畫折線圖,對BA-ELM、DE-ELM、PSO-ELM 和ELM 算法的穩(wěn)定性進行了比較,實驗結果如圖3所示。與其他幾種算法相比,BA-ELM 算法不僅可以取得最高的分類準確率,而且各次運行實驗結果之間的波動最小,算法的穩(wěn)定性最好。
圖3 算法穩(wěn)定性比較
綜上,與其他群智能算法相比,BA-ELM 網(wǎng)絡模型用于腦卒中TCD數(shù)據(jù)分類不但可以獲得較好的分類效果,還可以降低訓練模型所需的時間和網(wǎng)絡結構的復雜度,且該算法具有較高的穩(wěn)定性,與其他算法相比具有一定的優(yōu)勢。
本文針對ELM用于TCD數(shù)據(jù)分類時對隱含層輸入權值和閾值參數(shù)選擇敏感的缺點,提出一種基于BAELM 的腦卒中TCD 數(shù)據(jù)分類模型。實驗結果表明,與其他智能算法優(yōu)化ELM 的結果相比,BA-ELM 在分類準確率、計算效率及算法穩(wěn)定性上,均優(yōu)于其他群智能算法,從而驗證了該算法的優(yōu)越性。因此BA-ELM模型可以高效準確地分類TCD 數(shù)據(jù),在腦卒中預測中具有重要的實際應用價值。實際的腦卒中TCD數(shù)據(jù)經(jīng)常是不平衡的,本文算法以總體準確率為評價指標,其對不平衡率較高的數(shù)據(jù)集是否適用還需進一步的研究。下一步工作是研究不平衡率對分類器性能的影響,并改進算法使其適用于分類實際中的不平衡TCD數(shù)據(jù)集。