周孟然,周悅塵,閆鵬程,胡 鋒
(安徽理工大學 電氣與信息工程學院,安徽 淮南 232001)
有數(shù)據(jù)顯示[1],目前我國的心臟病患者超過六千萬人,預(yù)計未來的發(fā)病率仍將持續(xù)走高,心臟病的及早發(fā)現(xiàn)和診斷,對于心臟病的治療有重要意義。但是,部分心臟病檢查手段會給患者帶來創(chuàng)傷[2],診斷階段嚴重依賴主治醫(yī)師的臨床經(jīng)驗,具有一定的隨意性。隨著計算機技術(shù)和機器學習理論的不斷發(fā)展,計算機輔助診斷技術(shù)相比于傳統(tǒng)診斷方法的優(yōu)勢日趨明顯,在心臟病計算機輔助診斷領(lǐng)域,很多學者的研究較深且成果顯著[3,4]。
極限學習機(extreme learning machine,ELM)由Huang等[5]提出,由于沒有梯度下降等迭代過程,收斂速度更快。但是,ELM的隱層輸入權(quán)值和偏置是隨機確定的,容易出現(xiàn)分類預(yù)測精度較低的情況。為了解決該問題,不少學者采用群智能算法對ELM的隱層輸入權(quán)值和偏置進行尋優(yōu)的策略[6,7],ELM的分類預(yù)測性能均得到了較大改善。
人工蜂群算法(ABC)是一種新型群智能算法[8],相比于其它群算法,ABC在全局性上表現(xiàn)更好,但也存在局部搜索能力弱、搜索后期收斂速度慢等缺陷。針對這些缺陷,本文將最優(yōu)解和次優(yōu)解引入搜索機制中并且采用自適應(yīng)算子μ對二者的權(quán)值進行動態(tài)調(diào)整,改進了跟隨蜂概率選擇機制,得到自適應(yīng)人工蜂群算法(AABC),構(gòu)建了基于AABC算法優(yōu)化ELM參數(shù)的分類模型并結(jié)合自適應(yīng)遺傳算法的特征選擇應(yīng)用于心臟病的輔助診斷研究。
遺傳算法(GA)作為一種群智能算法,其種群一般由二進制編碼的個體組成,可直接代表一組特征子集的選定,相比于PSO等尋優(yōu)算法需要對特征設(shè)定閾值或者權(quán)值來說,更加直接和簡單。但是,由于其交叉概率Pc和變異概率Pm是預(yù)設(shè)常量,在種群進化后期優(yōu)秀個體往往容易被破壞,有較高的“早熟”風險。針對這一問題,本文采用自適應(yīng)進化機制[9]對Pc和Pm進行調(diào)整,使之能夠適應(yīng)每一代種群不同的進化情況,改進后的Pc和Pm如下所示
(1)
(2)
式中:Pc1和Pc2分別為最大交叉率和最小交叉率;Pm1和Pm2分別為最大變異率和最小變異率;Fmax為當前種群的最大適應(yīng)度值;Favg為當前種群的平均適應(yīng)度值;Fbetter為參與交叉操作的兩個個體的較大適應(yīng)度值;F為參與變異操作的個體的適應(yīng)度值。
利用AGA進行特征選擇的步驟如下:
(1)輸入訓(xùn)練樣本的特征集合和類別標簽集合;
(2)種群初始化,個體維數(shù)等于特征數(shù),每個個體由二進制編碼隨機產(chǎn)生,代表一組特征子集;
(3)計算適應(yīng)度值,適應(yīng)度函數(shù)采用基于類內(nèi)類間距離的可分性判據(jù),適應(yīng)度公式如下
(3)
其中,F(xiàn)t為當前種群第t個個體的適應(yīng)度值;tr(Sb) 和tr(Sw) 分別為類間散度矩陣的跡和類內(nèi)散度矩陣的跡。
(4)進行選擇、交叉、變異操作并將當前種群中適應(yīng)度最大的個體帶入得到新種群,判斷是否達到終止條件,達到條件則輸出最優(yōu)特征子集,否則,返回步驟(3)繼續(xù)循環(huán)。
ELM一般由單隱層前饋神經(jīng)網(wǎng)絡(luò)構(gòu)成,也可拓展至深度網(wǎng)絡(luò)。ELM算法的數(shù)學描述如下:
給定樣本集
D={(xi,ti)|xi∈Rd,ti∈Rm,i=1,2,…,N}
(4)
對于含有L個隱層節(jié)點的單隱層神經(jīng)網(wǎng)絡(luò)輸出可以表示為
(5)
其中,g(x) 為激活函數(shù),Xj為樣本的輸入,Wi為隱層輸入權(quán)重,βi為隱層輸出權(quán)重,bi為第i個隱層節(jié)點的偏置。
ELM的目標是使輸出誤差最小,即存在βi,Wi和bi,使得
(6)
可以矩陣表示為
Hβ=T
(7)
其中,H是隱層節(jié)點的輸出,β為隱層輸出權(quán)重,T為期望輸出
(8)
(9)
(10)
其中,H+是矩陣H的Moore-Penrose廣義逆。且可證明求得的解的范數(shù)是最小并且唯一。
在ABC中,蜂群包含3種不同分工的蜜蜂:雇傭蜂(employed bees),跟隨蜂(onlookers)和偵查蜂(scouts)。雇傭蜂發(fā)現(xiàn)食物源并記錄食物源信息。跟隨蜂根據(jù)雇傭蜂攜帶的食物源信息選擇是否跟隨。當一個食物源被放棄時,雇傭蜂轉(zhuǎn)變?yōu)閭刹榉洌S機尋找下一個食物源。
2.3.1 次優(yōu)解與自適應(yīng)算子μ的引入
在基本的ABC算法中,雇傭蜂和跟隨蜂的搜索依賴于隨機個體對每個個體的引導(dǎo)作用,導(dǎo)致算法的局部開發(fā)能力較弱。針對這一問題,本文對于雇傭蜂和跟隨蜂分別采用了不同的搜索機制,在雇傭蜂階段引入次優(yōu)解得到新的雇傭蜂搜索公式
vi,j=xe,j+φi,j·(xe,j-xk,j)
(11)
式中:xe,j為次優(yōu)解,即從種群中適應(yīng)度最好的前10%個解中取一個隨機解。φi,j為(-1,1)上的隨機數(shù)。新的跟隨蜂搜索公式如下所示
vi,j=μ·xe,j+(1-μ)·xbest,j+ψi,j·(xbest,j-xk,j)
(12)
其中,ψi,j為(-1,1)上的隨機數(shù),μ為自適應(yīng)算子,能夠根據(jù)迭代次數(shù)調(diào)整最優(yōu)解和次優(yōu)解的權(quán)值,本文提出了一種較為簡單的線性表達式
(13)
式中:t為當前迭代次數(shù),T為最大迭代次數(shù),a和b為權(quán)值系數(shù),經(jīng)過多次實驗得到a和b分別取0.4和0.1為最優(yōu)。
2.3.2 概率選擇機制的改進
在基本的ABC中,跟隨蜂會根據(jù)雇傭蜂提供的食物源質(zhì)量選擇是否跟隨,第i個食物源被選擇的概率
(14)
其中,fit(i) 為第i個食物源的適應(yīng)度值,SN為種群規(guī)模。
AABC算法的跟隨蜂選擇概率的表達式如下
(15)
其中,fitmax為當前代最大適應(yīng)度值。通過對比不難發(fā)現(xiàn),AABC算法的跟隨蜂對于最大適應(yīng)度值的食物源是一定跟隨的,并且劃定了跟隨概率的下限,避免了在適應(yīng)度值差距較小時,優(yōu)秀個體不能被選擇的情況發(fā)生。
2.3.3 AABC算法的有效性測試
為驗證AABC算法的有效性,本文使用以下3個典型的無約束極小化問題進行測試,具體見表1。
表1 3個無約束極小化問題
本文選擇了標準ABC算法、全局最優(yōu)人工蜂群算法(GABC)[10]與AABC算法在給定迭代次數(shù)下進行多次獨立測試。具體參數(shù)配置如下:最大迭代次數(shù)為3000代,種群規(guī)模NP取30,個體維數(shù)D為30,獨立實驗30次,個體的迭代限制limit取300。對實驗所得目標函數(shù)值的最優(yōu)精度,平均精度和精度標準差進行對比分析,測試結(jié)果見表2。
表2 目標函數(shù)測試結(jié)果
從表2可以看出,AABC算法與GABC和ABC相比,無論是在算法的收斂穩(wěn)定性還是在收斂精度上,都有較大程度提升。對于Rastrigin函數(shù),只有AABC得到了理論最優(yōu)值0。對于Sphere和Rosenblock函數(shù),雖然都未能找到理論最優(yōu)值0,但AABC的收斂精度是GABC和ABC算法無法比擬的。
本文采用AABC算法對ELM的隱層輸入權(quán)值和偏置進行尋優(yōu),尋優(yōu)流程如圖1所示。AABC-ELM算法的實現(xiàn)步驟如下所示:①初始化AABC-ELM網(wǎng)絡(luò)的參數(shù),包括:最大迭代次數(shù),種群規(guī)模,隱層節(jié)點數(shù),個體維度,個體迭代限制等;②以ELM隱層輸入權(quán)值和偏置作為種群個體,隨機產(chǎn)生初始種群;③導(dǎo)入訓(xùn)練集數(shù)據(jù)并計算目標函數(shù)值和適應(yīng)度值,其中目標函數(shù)值為樣本標簽與網(wǎng)絡(luò)輸出標簽的均方差,ELM隱層節(jié)點的激活函數(shù)采用sigmod函數(shù);④執(zhí)行AABC算法的雇傭蜂搜索、跟隨蜂概率選擇以及跟隨蜂搜索;⑤判斷是否滿足循環(huán)終止條件。若滿足則輸出最優(yōu)ELM隱層輸入權(quán)值和偏置,否則返回步驟④。
圖1 AABC算法優(yōu)化ELM的基本流程
仿真數(shù)據(jù)采用克利夫蘭醫(yī)學中心捐贈給UCI數(shù)據(jù)庫的Heart Disease數(shù)據(jù)集,該數(shù)據(jù)集共有303組數(shù)據(jù),因存在數(shù)據(jù)缺失,本文只選用其中297組完整數(shù)據(jù)。此原始數(shù)據(jù)集包含了心臟病病例的76個特征,但其中存在一些明顯屬于無關(guān)特征的數(shù)據(jù),例如患者編號、社會安全號碼、姓名等;以及一些未使用的特征,在數(shù)據(jù)集中以-9表示,包括胸痛位置、是否吸煙、吸煙年數(shù)等,共計26個無關(guān)和未使用特征,挑選剩余50組特征作為可用數(shù)據(jù)。數(shù)據(jù)標簽按照有無心臟病(>0,0)劃分為137組和160組,其中有心臟病類按照患病程度又被分為4類(1-4),Ⅰ類54組,Ⅱ類35組,Ⅲ類35組,Ⅳ類13組??紤]到數(shù)據(jù)特征之間量綱的差別,對數(shù)據(jù)進行歸一化處理,得到的數(shù)據(jù)取值范圍為[0,1]。
按照2∶1的比例將預(yù)處理后的心臟病數(shù)據(jù)隨機劃分成訓(xùn)練集和測試集,采用順序劃分法,得到訓(xùn)練集198組,測試集99組。
仿真實驗平臺硬件條件為英特爾奔騰G4560處理器,16 GB內(nèi)存,win10專業(yè)版操作系統(tǒng),在軟件Matlab R2016b環(huán)境下利用算法對數(shù)據(jù)進行仿真測試。
本文對AGA的參數(shù)配置如下:最大交叉率Pc1=0.9,最小交叉率Pc2=0.3;最大變異率Pm1=0.1,最小變異率Pm2=0.01;種群規(guī)模SN=50,最大迭代次數(shù)取1000代,最優(yōu)個體適應(yīng)度值隨迭代次數(shù)的變化曲線如圖2所示。
圖2 最優(yōu)適應(yīng)度值隨迭代次數(shù)進化曲線
從圖2可以看出AGA在算法演化初期的收斂速度較快,適應(yīng)度值在50代以內(nèi)就已經(jīng)達到了0.4左右,之后適應(yīng)度值逐步增大并在500代左右收斂,得到的最優(yōu)適應(yīng)度值為0.607,最優(yōu)特征13個,特征序列為{6 16 18 21 27 32 34 38 40 41 42 43 45},對應(yīng)的特征依次為年齡,性別,胸痛型, 靜息血壓,血清膽固醇,空腹血糖,靜息心電圖結(jié)果,達到最大心率,運動誘發(fā)心絞痛,運動引起ST段壓降相對于休息,高峰運動ST段的斜率,通過熒光檢查著色的主要血管(0-3)的數(shù)量,地中海貧血癥。
針對ELM和AABC算法的特點,本文主要從以下兩個參數(shù)的選取對心臟病診斷結(jié)果的影響進行分析,按照原始數(shù)據(jù)標簽進行5分類。
4.3.1 隱層節(jié)點數(shù)對診斷結(jié)果的影響
對于存在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的算法來說,隱層節(jié)點的個數(shù)對網(wǎng)絡(luò)的輸出影響巨大,也直接影響了心臟病診斷結(jié)果。本文將AABC-ELM與PSO-ELM以及ELM算法進行比較,總體分類準確率隨隱層節(jié)點數(shù)的變化曲線如圖3所示。
圖3 總體分類準確率隨隱層節(jié)點數(shù)變化曲線
從圖3可以看出,兩種改進后的ELM算法相比原始ELM算法在總體分類準確率上有顯著提升,表明對于ELM參數(shù)采用尋優(yōu)策略進行優(yōu)化是十分有效的。在相同隱層節(jié)點范圍內(nèi),相比于PSO-ELM算法,AABC-ELM算法的收斂速度更快,即在相同分類準確率的情況下所需要的隱層節(jié)點數(shù)更少,降低了網(wǎng)絡(luò)的復(fù)雜程度。
AABC-ELM算法在70個隱層節(jié)點時已經(jīng)達到100%的分類準確率而PSO-ELM算法在80個隱層節(jié)點時才能達到,本文優(yōu)先考慮分類準確率,同時盡量降低網(wǎng)絡(luò)的復(fù)雜程度,突出不同算法的對比效果,最后確定隱層節(jié)點數(shù)為70。
4.3.2 算法迭代次數(shù)對診斷結(jié)果的影響
因為原始的ELM算法沒有迭代尋優(yōu)過程,所以本文采用AABC-ELM、PSO-ELM以及ABC-ELM這3種改進ELM算法進行仿真對比,總體分類準確率隨迭代次數(shù)的變化曲線如圖4所示。
圖4 總體分類準確率隨迭代次數(shù)變化曲線
從圖4可以看出,AABC-ELM算法的收斂精度明顯高于其它兩種算法,雖然PSO-ELM算法要更早收斂。ABC-ELM算法的收斂曲線波動要更大一些,但收斂精度卻略高于PSO-ELM算法,可見ABC-ELM算法全局性能更優(yōu)。
為了測試AABC-ELM算法對Heart Disease數(shù)據(jù)的分類識別效果,本文采用AABC-ELM、IAFSA-ELM、ABC-ELM、PSO-ELM、ELM以及BP神經(jīng)網(wǎng)絡(luò)對心臟病診斷的198個訓(xùn)練樣本和99個測試樣本分別進行學習和分類。按照原始數(shù)據(jù)標簽(0-4)進行5分類以及按照有無心臟病(0,大于等于1的值為1)進行2分類。測試集各標簽樣本個數(shù)見表3。
表3 測試集各標簽的樣本數(shù)
對于心臟病診斷的仿真參數(shù)配置如下:最大迭代次數(shù)為100,個體迭代次數(shù)限制為20,種群規(guī)模NP取50,獨立實驗20次。各算法對于五分類和二分類平均心臟病分類結(jié)果見表4、表5。
表4 幾種算法的五分類平均心臟病分類結(jié)果
表5 幾種算法的二分類平均心臟病分類結(jié)果
結(jié)合表3~表5不難看出,無論是五分類還是二分類,幾種改進ELM算法的分類結(jié)果要明顯好于ELM和BP。值得注意的是,在樣本分布不均勻的五分類中,ELM和BP對于小樣本數(shù)據(jù)分類的表現(xiàn)很差,ELM算法對于樣本數(shù)最少的心臟?、纛悗缀鯚o法識別。然而對于樣本數(shù)量相近的二分類(無心臟病52組,有心臟病47組),總體分類準確率相比于五分類要高出20%左右。在五分類中,AABC-ELM對于各標簽的分類準確率均為最高,其中心臟?、箢惡廷纛惖姆诸悳蚀_率達到了100%;在二分類中,AABC-ELM對于無心臟病類的分類準確率要略小于IAFSA-ELM,對于有心臟病類的分類準確率達到了100%,相比于ELM算法,五分類和二分類的總體分類準確率分別高出44.09%和24.45%。
對于心臟病診斷耗時的研究,由于不同算法達到不同的分類準確率的耗時各不相同,所以本文以97%的五分類準確率為標準,而ELM和BP無法達到這個標準,所以只采用AABC-ELM、IAFSA-ELM、ABC-ELM以及PSO-ELM進行對比,4種算法的平均耗時見表6。
從表6可知,AABC-ELM相比于IAFSA-ELM、ABC-ELM以及PSO-ELM算法,網(wǎng)絡(luò)的訓(xùn)練以及測試耗時大大縮短,表明在保證一定的分類準確率下,AABC-ELM算法的學習速度更快,能更好滿足心臟病診斷的時間要求。
泛化性能,即對新鮮數(shù)據(jù)的適應(yīng)能力是衡量一種算法是否可靠的關(guān)鍵因素之一,如果說本文算法對于不同的心臟病數(shù)據(jù)都能取得良好的分類效果,則可以說本算法具有較強的泛化性能。為對本文算法的泛化性能進行測試,現(xiàn)采用UCI數(shù)據(jù)庫中的SPECT心臟病數(shù)據(jù)集進行仿真實驗,單光子發(fā)射計算機斷層成像術(shù)(single-photon emission computed tomography,SPECT)是一種核醫(yī)學CT技術(shù),可以對心臟灌注斷層進行顯像。該數(shù)據(jù)集共有267組樣本,樣本特征為心臟SPECT-CT圖像的感興趣區(qū)域,共有44組特征,樣本標簽分為正常(0)和異常(1);原始數(shù)據(jù)集已將樣本劃分為187組測試集(正常15組,異常172組)和80組訓(xùn)練集(正常40組,異常40組),首先采用AGA對數(shù)據(jù)特征進行選擇,得到12個最優(yōu)特征,再進行AABC-ELM建模,與ELM的仿真結(jié)果對比見表7。雖然本文算法對正常樣本的分類準確率僅為73.33%,但較ELM仍提高了40%,對于異常樣本則全部分類正確,總體分類準確率提高了34.12%。
表6 4種算法對心臟病診斷的平均耗時
表7 兩種算法在SPECT數(shù)據(jù)集上的分類結(jié)果
本文利用AGA對心臟病數(shù)據(jù)集進行特征選擇,結(jié)合AABC算法優(yōu)化的ELM建立了心臟病輔助診斷模型。仿真結(jié)果表明:①本文算法有效的彌補了ELM對于不均衡心臟病樣本識別精度不足的缺陷,具有較高的分類準確率、較短的訓(xùn)練時間,降低了算法欠擬合風險;②本文算法對新鮮數(shù)據(jù)具有較好的適應(yīng)能力,泛化性能較強,不僅適用于心臟病患病程度的識別,還適用于心肌缺血的識別。
在本文基礎(chǔ)上,可以考慮將ELM與深度學習相結(jié)合,對心臟病圖像的識別分類進行深入研究。