劉慧博 孟慶剛 任 彥
(內(nèi)蒙古科技大學(xué)信息工程學(xué)院 內(nèi)蒙古 包頭 014010)
血泵對(duì)治療心衰有著重要作用。心臟泵在人體內(nèi)容易受到各種各樣因素的影響,建立一種精度高的心臟泵轉(zhuǎn)速預(yù)測(cè)模型對(duì)心臟泵病人具有特別重要的意義。文獻(xiàn)[1]應(yīng)用BP神經(jīng)網(wǎng)絡(luò)和遺傳算法對(duì)血泵運(yùn)行溫度進(jìn)行預(yù)測(cè)。文獻(xiàn)[2]利用主動(dòng)脈和左心室平均壓差值,利用模糊PI控制器和動(dòng)態(tài)自適應(yīng)滑??刂破鲗?shí)現(xiàn)對(duì)血泵轉(zhuǎn)速的控制。文獻(xiàn)[3]將心臟的Frank-strarling定律使用在血泵控制器策略設(shè)計(jì)中。文獻(xiàn)[4]通過神經(jīng)網(wǎng)絡(luò)最小滑??刂频姆椒▽?duì)心臟泵的速度進(jìn)行控制。文獻(xiàn)[5]利用血泵得轉(zhuǎn)速與功率特性曲線來對(duì)流量壓力進(jìn)行控制。文獻(xiàn)[6]利用非參數(shù)模型自適應(yīng)控制策略理論將心率和血流輔助指數(shù)作為模型控制變量,轉(zhuǎn)速作為輸出的控制策略,可以讓心臟泵更好地適應(yīng)體內(nèi)的環(huán)境。文獻(xiàn)[7]利用人群搜索-SVM對(duì)心臟生理參數(shù)進(jìn)行預(yù)測(cè)研究。上述各類方法不能很好地適應(yīng)血泵在循環(huán)系統(tǒng)中運(yùn)行環(huán)境復(fù)雜性,難以應(yīng)對(duì)各種不同狀態(tài),因此,本文提出了基于主成分分析的改進(jìn)粒子群算法優(yōu)化支持向量機(jī)建立預(yù)測(cè)模型的方法。
在人體中血泵與循環(huán)系統(tǒng)構(gòu)成了一個(gè)復(fù)雜的控制系統(tǒng),血泵與循環(huán)系統(tǒng)構(gòu)成的控制框圖中,根據(jù)壓力反射系統(tǒng)反饋的動(dòng)脈血壓,可計(jì)算循環(huán)系統(tǒng)的心率[8]。通過循環(huán)系統(tǒng)血流動(dòng)力學(xué)特性得到主動(dòng)脈血壓、動(dòng)脈血壓、動(dòng)脈血流量、靜脈血流量、左心室壓力容積、心率;然后對(duì)循環(huán)系統(tǒng)血流動(dòng)力中心率、主動(dòng)脈血壓、動(dòng)脈血壓、動(dòng)脈血流量、靜脈血流量、左心室壓力容積等七個(gè)因素進(jìn)行主成分分析[9],將第一、第二、第三成分作為輸入,根據(jù)預(yù)測(cè)算法計(jì)算人工心臟泵的轉(zhuǎn)速期望值;心臟泵驅(qū)動(dòng)器將轉(zhuǎn)速期望值作為控制輸入,通過調(diào)整血泵驅(qū)動(dòng)電壓控制人工心臟泵轉(zhuǎn)速。人工心臟泵的控制框圖如圖1所示。
圖1 血泵與循環(huán)系統(tǒng)控制框圖
循環(huán)系統(tǒng)集中參數(shù)模型包含左心房、左心室、體循環(huán)等三部分。模型中利用電壓表示血壓;利用電流表示血流量;利用電阻代表血管阻力;利用電容表示血管順應(yīng)性;利用電感表示血流慣性。簡(jiǎn)化后的循環(huán)系統(tǒng)集中參數(shù)模型如圖2所示。圖中各元件代表意義如表1所示。
圖2 血泵與循環(huán)系統(tǒng)電路模型
表1 電路模型各元件代表意義
從系統(tǒng)電路模型中可以得到心率、左心室壓、主動(dòng)脈血壓、動(dòng)脈血壓、動(dòng)脈血流量、靜脈血流量。
在血泵控制策略中,心率作為初始信號(hào),直接反映心臟生理狀態(tài),利用心率與心輸出量的函數(shù)關(guān)系、以及心輸出量與人工心臟泵轉(zhuǎn)速的函數(shù)關(guān)系,得到血泵轉(zhuǎn)速期望值,根據(jù)人體具體需要進(jìn)行轉(zhuǎn)速調(diào)節(jié),心率與轉(zhuǎn)速的關(guān)系如圖3所示。因此,心率是影響血泵轉(zhuǎn)速的一個(gè)重要因素。
圖3 心率與轉(zhuǎn)速關(guān)系圖
由于循環(huán)系統(tǒng)中,影響血泵控制器轉(zhuǎn)速期望值的過程參數(shù)較多,如果對(duì)得到的數(shù)據(jù)不加處理,直接將這些參數(shù)作為預(yù)測(cè)模型的輸入變量,勢(shì)必使得模型的輸入變量過多,影響模型的預(yù)測(cè)精度。由此利用主成分對(duì)其中參數(shù)進(jìn)行降維處理,簡(jiǎn)化預(yù)測(cè)難度,提高預(yù)測(cè)精度。
在血泵轉(zhuǎn)速預(yù)測(cè)中,循環(huán)系統(tǒng)中的多個(gè)因素存在著很多的共性,因此循環(huán)系統(tǒng)中血流動(dòng)力學(xué)因素選取了心率、左心室壓、主動(dòng)脈血壓、動(dòng)脈血壓、動(dòng)脈血流量、靜脈血流量、左心室壓力容積等七個(gè)因素,由于存在的參數(shù)太多,因此利用主成分分析法,降低模型輸入維數(shù),分析出血流動(dòng)力特性的第一、二、三主成分[10]。
設(shè)觀測(cè)到m維的數(shù)據(jù)樣本矩陣為:
(1)
Step1求出矩陣的特征向量。
Step2獲取相似系數(shù)矩陣:
(2)
式中:COV(X,Y)表示協(xié)方差;ρ表示相關(guān)系數(shù)。
Step3計(jì)算相關(guān)系數(shù)矩陣的特征值λi,特征向量為ei。
(3)
Step4求出主成分Yi。
Yi=e1X1+e2X2+…+emXi
(4)
式中:Yi表示第i個(gè)主成分。
Step5利用累計(jì)貢獻(xiàn)率大于85%得出主成分?jǐn)?shù)量。
(5)
式中:L表示前m個(gè)主成分的累計(jì)貢獻(xiàn)率。
SVM預(yù)測(cè)建模過程可以描述為:給定訓(xùn)練數(shù)據(jù)樣本集{(xi,yj),i=1,2,…,l},xi∈Rn且yi∈R,利用非線性的映射關(guān)系f在維度比較高的特征空間中建立線性回歸關(guān)系:
f(x)=wT·φ(x)+b
(6)
式中:w表示權(quán)向量;φ表示非映射;b表示偏向量。
通過按照結(jié)構(gòu)風(fēng)險(xiǎn)化最小的原則,得出:
(7)
將問題轉(zhuǎn)化成解決凸問題的優(yōu)化,在此過程中,構(gòu)造拉格朗日函數(shù),求解為:
(8)
式中:K(xi,xj)表示核函數(shù)。
對(duì)上式加入高斯核函數(shù),防止出現(xiàn)的映射為非線性的。得到回歸函數(shù)關(guān)系式:
(9)
血泵在病人體內(nèi)運(yùn)行過程中,受到體內(nèi)復(fù)雜環(huán)境的影響,轉(zhuǎn)速也會(huì)受到變化,當(dāng)人的運(yùn)動(dòng)狀態(tài)發(fā)生改變時(shí),需要對(duì)血泵轉(zhuǎn)速控制得更為精確,才能確?;颊叩恼I砘顒?dòng),所以血泵轉(zhuǎn)速的控制系統(tǒng)具有實(shí)時(shí)動(dòng)態(tài)性,能在短時(shí)間內(nèi)根據(jù)數(shù)據(jù)的變化對(duì)模型進(jìn)行及時(shí)的更新。
原始支持向量機(jī)模型長(zhǎng)時(shí)間工作后,其實(shí)效性會(huì)慢慢降低。若利用以前所有的數(shù)據(jù)進(jìn)行建模,會(huì)大大增加模型的時(shí)間,對(duì)模型的實(shí)時(shí)控制達(dá)不到預(yù)期的效果。在此引入優(yōu)化算法對(duì)SVM進(jìn)行優(yōu)化,解決了上述問題。此方法主要是通過改進(jìn)粒子群算法對(duì)當(dāng)前模型的工作過程中的參數(shù)進(jìn)行優(yōu)化,與之前得到的數(shù)據(jù)進(jìn)行對(duì)比,得到比較相近的數(shù)據(jù),然后通過建模的方式,估算出系統(tǒng)的輸出。
2.4.1標(biāo)準(zhǔn)粒子群算法
粒子找到兩個(gè)極值后,通過下式不斷更新自身速度和位置[11]:
(10)
(11)
w=wmax-k(wmax-wmin)/Tmax
(12)
式中:wmax表示慣性權(quán)重最大值;wmin表示慣性權(quán)重最小值;k表示進(jìn)化代數(shù);Tmax表示設(shè)定的最大迭代次數(shù)。
2.4.2改進(jìn)PSO算法
雖然標(biāo)準(zhǔn)PSO是基于調(diào)整慣性權(quán)重ω的自適應(yīng)算法,能夠很快找出局部最優(yōu)解,但其尋找全局最優(yōu)解的能力較弱。為了改進(jìn)標(biāo)準(zhǔn)PSO算法的不足,本文利用動(dòng)態(tài)的加速常數(shù)作為PSO的一種新的參數(shù)自適應(yīng)策略。這種改進(jìn)是在基本算法的基礎(chǔ)上,實(shí)現(xiàn)c1和c2隨進(jìn)化代數(shù)線性的改變,即:
(13)
式中:R1、R2、R3、R4表示初始設(shè)定的定值;t表示當(dāng)前進(jìn)行代數(shù);Tmax表示最大進(jìn)化代數(shù)[12]。
2.4.3改進(jìn)PSO算法優(yōu)化SVM
將改進(jìn)PSO算法中的粒子維度空間與SVM連接權(quán)值建立映射關(guān)系。改進(jìn)PSO-SVM算法是采用改進(jìn)PSO算法優(yōu)化SVM的c和g等n個(gè)參數(shù),將訓(xùn)練樣本的個(gè)體對(duì)應(yīng)的SVM預(yù)測(cè)誤差作為個(gè)體的適應(yīng)值,預(yù)測(cè)誤差作為個(gè)體適應(yīng)度值函數(shù):
(14)
算法結(jié)束時(shí),能尋找到全局最優(yōu)點(diǎn)。在上述步驟基礎(chǔ)上以最優(yōu)點(diǎn)作為SVM初始值對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,進(jìn)而達(dá)到網(wǎng)絡(luò)的訓(xùn)練目的。
2.4.4算法融合
改進(jìn)PSO算法對(duì)SVM算法優(yōu)化步驟如下:
(1) 初始化粒子維度D。PSO的粒子維度分量與SVM的連接值一一對(duì)應(yīng)。
(2) 設(shè)置粒子的適應(yīng)度函數(shù),計(jì)算粒子的適應(yīng)值。
(3) 利用改進(jìn)的PSO算法優(yōu)化SVM的c、g時(shí)等n個(gè)參數(shù),并將優(yōu)化后最優(yōu)參數(shù)作為SVM的初始值,進(jìn)行網(wǎng)絡(luò)訓(xùn)練。
改進(jìn)PSO算法優(yōu)化SVM算法結(jié)構(gòu)如圖4所示。
圖4 改進(jìn)PSO算法優(yōu)化支持向量機(jī)流程圖
血泵在循環(huán)系統(tǒng)正常運(yùn)行時(shí),須滿足人體在不同環(huán)境中對(duì)血泵期望轉(zhuǎn)速值的需求。選取某醫(yī)院病人血泵實(shí)際正常運(yùn)行時(shí)的歷史數(shù)據(jù),四種狀態(tài)休息、靜坐、走路、輕微運(yùn)動(dòng)的實(shí)際轉(zhuǎn)速,并得到所對(duì)應(yīng)各個(gè)心室房壓、血壓、血流、心率等各個(gè)因素的60組歷史數(shù)據(jù)。
利用主成分分析對(duì)循環(huán)系統(tǒng)中血流動(dòng)力學(xué)因素選取的七個(gè)因素進(jìn)行降維處理,數(shù)據(jù)從循環(huán)系統(tǒng)所建立模型中獲取,數(shù)據(jù)處理后結(jié)果如表2所示。
表2 特征值的貢獻(xiàn)率和累計(jì)貢獻(xiàn)率
通過對(duì)表2中的數(shù)據(jù)進(jìn)行分析,得出前三個(gè)成分的累計(jì)貢獻(xiàn)率達(dá)到了85.33%,已超過85%,因此選取前三個(gè)成分,對(duì)之前七個(gè)因素進(jìn)行替換。前三個(gè)主成分的表達(dá)式如下:
Y1=0.39x1+0.35x2+0.37x3+0.37x4+
0.34x5+0.41x6+0.38x7
Y2=0.48x1+0.41x2-0.35x3+0.38x4-
0.43x5-0.20x6-0.28x7
Y3=-0.11x1-0.49x2-0.03x3+0.47x4-
0.50x5+0.07x6+0.50x7
式中:x1、x2、x3、x4、x5、x6、x7表示標(biāo)準(zhǔn)化后的心率、左心室壓、主動(dòng)脈血壓、動(dòng)脈血壓、動(dòng)脈血流量、靜脈血流量、左心室壓力容積。
根據(jù)上式可以得到不同轉(zhuǎn)速各個(gè)主成分分析值。為了驗(yàn)證不同轉(zhuǎn)速對(duì)應(yīng)的各個(gè)參數(shù)特性,將所采集到的狀態(tài)數(shù)據(jù)進(jìn)行驗(yàn)證,符合循環(huán)系統(tǒng)要求。部分?jǐn)?shù)據(jù)如表3所示。
表3 降維后部分樣本集
通過總成分分析和循環(huán)系統(tǒng)特性綜合分析,再結(jié)合表3的數(shù)據(jù)處理結(jié)果,將Y1、Y2、Y3三個(gè)因素作為預(yù)測(cè)模型的輸入。
通過血泵在循環(huán)系統(tǒng)中運(yùn)行期間,改進(jìn)PSO算法優(yōu)化支持向量機(jī)模型綜合考慮到了工作過程中參數(shù)變化引起血泵期望轉(zhuǎn)速的波動(dòng),因此預(yù)測(cè)模型精度有很大程度的提升。
通過選取血泵在體內(nèi)的四種不同的狀態(tài),以及此時(shí)四種不同狀態(tài)血泵控制器的轉(zhuǎn)速期望值,將四種狀態(tài)的期望轉(zhuǎn)速設(shè)定為3 500 r/min、4 000 r/min、5 000 r/min、5 500 r/min進(jìn)行仿真。
在模型預(yù)測(cè)中,將主成分分析的三個(gè)成分作為網(wǎng)絡(luò)的輸入,網(wǎng)絡(luò)的輸出量為血泵期望轉(zhuǎn)速,模型的網(wǎng)絡(luò)輸入為3維,輸出為1維,將前80%的數(shù)據(jù)作為預(yù)測(cè)模型的訓(xùn)練數(shù)據(jù),后20%的作為輸出數(shù)據(jù)。
在仿真中利用SVM模型類型s=4,核函數(shù)t=2,使用改進(jìn)PSO算法優(yōu)化支持向量機(jī)的懲罰參數(shù)c和核函數(shù)參數(shù)g時(shí),以SVM模型樣本均方誤差作為目標(biāo)函數(shù),粒子群大小取為20,迭代次數(shù)k=160,c1=c2=2,慣性權(quán)重wmax=0.9,wmin=0.4,粒子速度最大值vmax=1,粒子速度最小值vmin=0.1。
利用MATLAB 2016a進(jìn)行仿真,得到四種算法的收斂速度曲線如圖5所示。
圖5 算法的收斂曲線
從圖5可以看出,算法運(yùn)行初期,在初解解的精度方面,改進(jìn)PSO-SVM高于傳統(tǒng)SVM、PCA-SVM、PCA-PSO-SVM這三種預(yù)測(cè)模型。隨著算法迭代次數(shù)增加,改進(jìn)PSO算法選擇策略顯現(xiàn)出全局和局部搜索能力的優(yōu)勢(shì),其收斂曲線下降速度加快,并最終收斂在最優(yōu)解周圍,而SVM和傳統(tǒng)PSO-SVM算法收斂較慢,迭代次數(shù)完成時(shí),會(huì)得到比較差的值。
應(yīng)用改進(jìn)PSO對(duì)SVM模型進(jìn)行預(yù)測(cè),在MATLAB 2016a平臺(tái)下,預(yù)測(cè)模型的預(yù)測(cè)結(jié)果對(duì)比如圖6所示。
圖6 血泵轉(zhuǎn)速期望值預(yù)測(cè)圖
由圖6可以看出,本文提出PCA-IPSO-SVM算法比傳統(tǒng)SVM、PCA-SVM和未改進(jìn)的PSO-SVM預(yù)測(cè)值更接近血泵轉(zhuǎn)速期望值,擬合的程度更好,預(yù)測(cè)模型的精度更加準(zhǔn)確。
為了進(jìn)一步驗(yàn)證本文提出預(yù)測(cè)模型的有效性和準(zhǔn)確性,將本文改進(jìn)PSO-SVM預(yù)測(cè)模型的結(jié)果與前人提出的傳統(tǒng)SVM模型、未改進(jìn)PSO-SVM模型進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果如表4所示。
表4 三種模型部分實(shí)驗(yàn)結(jié)果對(duì)比
由表4可知,傳統(tǒng)SVM預(yù)測(cè)模型的估計(jì)差值在100以上,相對(duì)誤差較大;PCA-SVM與PCA-PSO-SVM模型的估計(jì)差值在100左右,相對(duì)誤差較傳統(tǒng)SVM模型有所降低,但仍在1%以上;PCA-IPSO-SVM模型的估計(jì)差值在50左右,相對(duì)誤差基本小于1%,其預(yù)測(cè)精度優(yōu)于前三種模型。
綜上,改進(jìn)PSO算法優(yōu)化的PCA-SVM預(yù)測(cè)模型在理論上是可行的,能滿足心臟泵運(yùn)行過程轉(zhuǎn)速精度要求。
本文提出了對(duì)血泵控制器期望轉(zhuǎn)速預(yù)測(cè)的新方法,首先利用主成分分析對(duì)數(shù)據(jù)進(jìn)行處理,然后利用改進(jìn)PSO算法優(yōu)化SVM模型,得到SVM模型最優(yōu)值,最后對(duì)其預(yù)測(cè)模型的有效性和準(zhǔn)確性進(jìn)行了驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,采用主成分分析的改進(jìn)PSO算法優(yōu)化的SVM預(yù)測(cè)提高了預(yù)測(cè)精度,說明了本文提出的PCA-IPSO-SVM預(yù)測(cè)模型是有效的。