常盼春 楊濟民* 楊 娟 游 濤
1(山東師范大學(xué)物理與電子科學(xué)學(xué)院,濟南 250014)2(江蘇大學(xué)附屬醫(yī)院放射腫瘤科,江蘇 鎮(zhèn)江 212000)
在對肺、肝等部位的腫瘤進行放療過程中,人體呼吸引起相關(guān)器官的非自主運動會使放療靶區(qū)也隨之偏移[1]。目前臨床上一般采用擴大靶區(qū)[2]、屏氣[3]、四維CT(4D-CT)[4]與呼吸門控[5]等方式來減小呼吸運動的影響。擴大靶區(qū)可以更加完整地針對整個腫瘤進行治療,但會加大對周圍正常組織器官的傷害,影響放射治療的效果;屏氣要求病人自主地控制呼吸,但臨床上有些病人難以完全屏住呼吸;4D-CT采用幾個周期內(nèi)病人數(shù)據(jù)的平均值當作病人的真實呼吸數(shù)據(jù),如果病人呼吸變化比較大,這個方式的誤差會變大;呼吸門控的方法要求病人呼吸與射線周期同步,該方法會延長治療時間。實時跟蹤預(yù)測腫瘤位置(real-time position managementTMsystem, RPM)[6]是目前臨床上使用的補償呼吸運動影響的重要方式,它通過體表標記物與攝像機間的距離來實時估計病人的呼吸曲線,由此來實時跟蹤腫瘤的位置。
然而,治療設(shè)備針對人的操作有反應(yīng)時間,會產(chǎn)生一個延遲。因此,必須要提前知道腫瘤下一段時間內(nèi)的運動軌跡,提前調(diào)節(jié)治療儀器才可以更加準確地進行治療。針對呼吸波形的預(yù)測方法主要有自回歸積分滑動平均模型(ARIMA)[7-8]、卡爾曼濾波[9-10]和神經(jīng)網(wǎng)絡(luò)[11]。然而,ARIMA更適合線性關(guān)系擬合,并不適合非線性關(guān)系的呼吸波形的預(yù)測;卡爾曼濾波很難確定剛開始兩個方程的各個參數(shù),并且也更適合線性關(guān)系函數(shù)的擬合;反向傳播神經(jīng)網(wǎng)絡(luò)的方法由于其良好的非線性擬合能力,在呼吸預(yù)測方面的應(yīng)用越來越大[12]。但是,反向傳播神經(jīng)網(wǎng)絡(luò)容易陷入局部最優(yōu)值[13]。針對這個問題,本研究提出應(yīng)用PSO的方法來優(yōu)化反向傳播神經(jīng)網(wǎng)絡(luò),以減少其陷入局部最優(yōu)值的風險。實驗證明,本研究方法可以提高反向傳播神經(jīng)網(wǎng)絡(luò)的預(yù)測精度,減少預(yù)測誤差。
本實驗使用Varian公司的Real-time Position ManagementTMSystem (RPM)系統(tǒng)采集的11組肺癌病人的呼吸數(shù)據(jù)。將若干個外部標記物置于病人皮膚表面,由紅外接收器的接收標記物到紅外接收器的距離來計算標記物的位置。實驗中,使用其中一個標記物的位置坐標作為病人的呼吸數(shù)據(jù)。
PSO-NN方法主要由兩個過程組成:第一個過程是應(yīng)用PSO算法,尋找神經(jīng)網(wǎng)絡(luò)的最佳初始權(quán)值與閾值;第二個過程是應(yīng)用最優(yōu)的初始權(quán)值與閾值建立神經(jīng)網(wǎng)絡(luò),利用神經(jīng)網(wǎng)絡(luò)良好的非線性擬合能力來建立數(shù)個位置與其之后一段時間的位置之間的關(guān)系,擬合呼吸波形。
1.2.1BP神經(jīng)網(wǎng)絡(luò)算法
BP算法[14]的初始權(quán)值與閾值是隨機獲得的,所以不容易獲得最優(yōu)解,而利用PSO算法的全局搜索特性得到的初始權(quán)值與閾值更加接近全局最優(yōu)解,可以克服BP神經(jīng)網(wǎng)絡(luò)獲得局部最優(yōu)解的弊端,從而提高預(yù)測的精度。
原始BP神經(jīng)網(wǎng)絡(luò)首先隨機定義初始閾值與權(quán)值,之后通過訓(xùn)練數(shù)據(jù)輸入與初始權(quán)值及閾值計算出結(jié)果,與訓(xùn)練數(shù)據(jù)輸出作比較,之后根據(jù)誤差,反復(fù)反向更新權(quán)值與閾值,直到達到最大迭代次數(shù)或者要求的精度截止。
BP神經(jīng)網(wǎng)絡(luò)預(yù)測呼吸波形的基本思想是預(yù)先應(yīng)用分組的訓(xùn)練數(shù)據(jù)來建立當前數(shù)據(jù)與其對應(yīng)的預(yù)測數(shù)據(jù)的關(guān)系,由此確定權(quán)值與閾值,當再有類似的輸入之后,訓(xùn)練好的ANN就會有類似的輸出。因此,訓(xùn)練數(shù)據(jù)的選取將直接影響最終的結(jié)果,太少的結(jié)果并不能很好地反映病人呼吸的規(guī)律,樣本量至少要數(shù)個周期。對于呼吸不規(guī)律的病人,需要的數(shù)據(jù)會更多。
本實驗采用3層神經(jīng)網(wǎng)絡(luò),具體設(shè)置如下:學(xué)習(xí)率為0.01,迭代終止條件為最大迭代次數(shù)(200)或者損失函數(shù)的精度到達(0),訓(xùn)練數(shù)據(jù)分為訓(xùn)練數(shù)據(jù)輸入與訓(xùn)練數(shù)據(jù)輸出,5個時刻的數(shù)據(jù)(訓(xùn)練數(shù)據(jù)輸入)作為一組向量來與1 s(30個位置點)之后1個時刻(訓(xùn)練數(shù)據(jù)輸出)的數(shù)據(jù)建立擬合關(guān)系。
1.2.2PSO優(yōu)化算法
神經(jīng)網(wǎng)絡(luò)進行反向更新權(quán)值與閾值時,需要通過迭代計算不斷地降低均方誤差(mean square error,MSE),PSO算法優(yōu)化神經(jīng)網(wǎng)絡(luò)原理是先用PSO算法尋找到最優(yōu)的初始閾值與權(quán)值,PSO算法[15]流程如圖1所示,首先初始化一群粒子,每個粒子都代表一個可能的最優(yōu)解,這里用速度、位置和適應(yīng)度3個指標來表征該粒子,適應(yīng)度由適應(yīng)度函數(shù)獲得,是評價粒子好壞的標準,本研究中的適應(yīng)度函數(shù)是訓(xùn)練數(shù)據(jù)預(yù)測誤差的MSE,即
(1)
圖1 PSO算法流程Fig.1 PSO flow chart
式中,e表示誤差的均方和,Y表示真實的位置,O表示預(yù)測值。
粒子運動中,通過計算個體極值P與群體極值G來更新個體位置,個體極值是指個體所經(jīng)歷位置中計算得到的適應(yīng)度最優(yōu)位置,群體極值是指種群中所有粒子搜索到的最優(yōu)值,粒子每更新一次就會重新計算一次適應(yīng)度值,通過比較新粒子的適應(yīng)度與個體、群體極值的適應(yīng)度值來更新個體、群體極值的位置。按照這個過程進行迭代,直到達到最大迭代次數(shù)(200)或者要求的精度(0)。
由m個粒子組成的種群P=(P1,P2,…,Pm)。其位置更新和自身粒子速度更新如下:
圖2 總體流程Fig.2 Flow Chart
式中:a為慣性權(quán)值;i為當前迭代次數(shù);V為粒子運動速度;Qf為群體極值;Qs為個體極值;c1與c2為預(yù)先設(shè)置的非負常數(shù)(加速度因子),本研究取常用數(shù)值1.5;r1與r2為[0,1]之間的隨機數(shù)。
1.2.3總體流程
圖2是整個實驗的流程,首先對全部的由RPM系統(tǒng)獲得的信號進行歸一化處理。將所有的數(shù)據(jù)歸一化到[-1,1]之間,之后將數(shù)據(jù)D(1,2,…,K+L)分為兩部分,一部分D(1,2,…,K)作為訓(xùn)練數(shù)據(jù)來訓(xùn)練神經(jīng)網(wǎng)絡(luò),另一部分D(K+1,K+2,…,K+L)作為測試數(shù)據(jù)來測試算法的優(yōu)劣。之后,將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)的閾值以及權(quán)值傳遞給擬合函數(shù),最后將測試數(shù)據(jù)的輸入部分輸入到訓(xùn)練好的擬合函數(shù)中,計算出預(yù)測結(jié)果,與測試的數(shù)據(jù)輸出部分數(shù)據(jù)比較,測試算法的優(yōu)劣性。
圖3更直觀地表示了本算法各個時間點之間的關(guān)系,訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,同時H個位置點來建立與未來時間位置點(M個位置點的時間)的關(guān)系,與僅用單個點與單個點建立關(guān)系相比較,這樣可以引入更多的特征,增加對呼吸波形的擬合效果。
1.2.4評價方法
本實驗通過比較平均絕對誤差(AE)與互相關(guān)系數(shù)(CC)來衡量兩者的優(yōu)劣。其中,平均絕對誤差用來比較兩者之間的誤差大小,互相關(guān)系數(shù)用來比較兩種方法預(yù)測后的波形與原始波形的相關(guān)性。
平均絕對誤差(AE)和互相關(guān)系數(shù)(CC)的公式如下:
圖3 算法時間點分布Fig.3 The distribution of algorithm time
(4)
(5)
式中,S(i)為真實病人呼吸數(shù)據(jù),S'(i)為預(yù)測后的數(shù)據(jù),m為數(shù)據(jù)數(shù)量。
本次實驗使用開始60 s的臨床病人呼吸數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),之后的30 s左右時間數(shù)據(jù)作為測試數(shù)據(jù)對兩種算法分別進行測試。
圖4顯示用兩種方法進行預(yù)測后的結(jié)果,從中可以更加直觀地發(fā)現(xiàn)應(yīng)用PSO方法對預(yù)測結(jié)果的提高。
圖5、6分別為使用兩種算法進行預(yù)測后得到的平均絕對誤差與互相關(guān)系數(shù)。可以看出,對所有的測試病人PSO方法比未經(jīng)優(yōu)化的原始算法的平均絕對誤差更低,互相關(guān)系數(shù)更高,效果更好。經(jīng)計算,平均絕對誤差由0.24減少到0.18(25%),互相關(guān)系數(shù)由0.82提高到0.86。除此之外,使用兩種方法得到的結(jié)果的平均絕對誤差以及互相關(guān)系數(shù)的P值分別0.016與0.002(t-test),說明PSO算法對呼吸預(yù)測效果的提高是有顯著統(tǒng)計意義的。
不同的粒子數(shù)(種群規(guī)模)對預(yù)測結(jié)果的有一定的影響,計算所有病人的平均絕對誤差以及互相關(guān)系數(shù)的平均值,結(jié)果如圖7所示??梢钥闯觯W訑?shù)在一定范圍內(nèi)對預(yù)測結(jié)果的平均絕對誤差影響較大,其中粒子數(shù)為30時平均絕對誤差較小。圖8體現(xiàn)了粒子數(shù)對互相關(guān)系數(shù)的影響,從中可以看出,粒子數(shù)在一定范圍內(nèi)對預(yù)測結(jié)果的互相關(guān)系數(shù)有一定的影響,其中粒子數(shù)為10和30的時候,互相關(guān)系數(shù)最接近1。由圖7、8可以看出,當粒子數(shù)為30時,預(yù)測效果最好。
圖4 使用兩種方法的預(yù)測結(jié)果Fig.4 The prediction results of two methods
圖5 兩種方法預(yù)測結(jié)果的平均絕對誤差Fig.5 The mean absolute error of the two methods
圖6 兩種方法預(yù)測結(jié)果的互相關(guān)系數(shù)Fig.6 The correlation coefficient of the two methods
圖7 粒子數(shù)對平均絕對誤差影響Fig.7 The effect of particle number on AE
圖8 粒子數(shù)對互相關(guān)系數(shù)影響Fig.8 The effect of particle number on CC
傳統(tǒng)的 BP-NN作為一種局部搜索的優(yōu)化方法,它要解決的是一個復(fù)雜非線性化問題,網(wǎng)絡(luò)的權(quán)值是通過沿局部改善的方向逐漸進行調(diào)整,這樣會使算法陷入局部極值,權(quán)值收斂到局部極小點,從而導(dǎo)致網(wǎng)絡(luò)訓(xùn)練失敗。加上BP-NN對初始網(wǎng)絡(luò)權(quán)重非常敏感,以不同的權(quán)重初始化網(wǎng)絡(luò),其往往會收斂于不同的局部極小,這也是很多學(xué)者每次訓(xùn)練得到不同結(jié)果的根本原因[16]。
本研究在傳統(tǒng)BP-NN基礎(chǔ)上引入PSO算法來確定初始值,有效地降低了陷入局部最優(yōu)解的概率,大幅地提高了預(yù)測的精度?;谌炙阉鞑呗缘腜SO算法來訓(xùn)練神經(jīng)網(wǎng)絡(luò)參數(shù),可以避免上述BP-NN存在的缺陷,原因是其速度-位移模型操作簡單,僅根據(jù)自己的速度來決定搜索方向。此外,由于粒子有記憶,在大多數(shù)情況下,PSO中所有的粒子能更快地收斂于最優(yōu)解[17]。本研究實驗證明,通過優(yōu)化BP-NN初始值可以有效地提高呼吸預(yù)測的精度。從圖4的對比可以看出,當原始方法在呼吸幅度沒有陷入局部極值的范圍內(nèi)可以較為準確地預(yù)測呼吸波形,但是在陷入局部極值的區(qū)間內(nèi)(5~10 s),便無法準確預(yù)測呼吸波形,其中誤差甚至超過了實際數(shù)值的4倍。如果依據(jù)此呼吸信息對病人實施照射,不僅會對病人的正常組織器官造成不可逆的傷害,而且由于靶區(qū)沒有覆蓋全部的癌變細胞,將導(dǎo)致治療效果大大降低。而PSO算法預(yù)測的呼吸信號與實時的呼吸信號有較高的吻合度,無論呼吸幅度有沒有陷入局部極值,魯棒性較好。因此,基于PSO的呼吸預(yù)測方法相比BP-NN的呼吸預(yù)測方法精確度得到了較大提高。
另外,本研究還進一步探索了粒子數(shù)對預(yù)測結(jié)果的平均絕對誤差以及互相關(guān)系數(shù)的影響。實驗證明,在一定范圍內(nèi)粒子數(shù)的多少對實驗結(jié)果影響較大。這是由于群體規(guī)模越大,相互協(xié)同搜索粒子就越多, 信息就越充分, 能更好地發(fā)揮 PSO 的搜索能力。 然而,雖然群體規(guī)模增大,能使 PSO 算法的全局優(yōu)化能力增強,但成本是搜索計算的時間增加以及收斂到全局最優(yōu)點的速度的增長,而且過多的粒子會降低整體算法的泛化性,造成預(yù)測的不準確。但是,如果規(guī)模過小,PSO會容易陷入局部最優(yōu)。 經(jīng)過試驗,當粒子數(shù)為30時,預(yù)測效果最好。
需要指出的是,本實驗所使用的數(shù)據(jù)為RPM系統(tǒng)采集的病人體表標記物位置,并不是實際腫瘤運動的軌跡,因此,實際的預(yù)測效果有一定的差距。在以后的研究,準備同時采集標記物以及病人腫瘤實際運動軌跡,建立兩者之間關(guān)系,令本算法更好地應(yīng)用于臨床之中。
本研究利用PSO較好的全局最優(yōu)解搜索能力,對BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值進行了優(yōu)化,克服了BP神經(jīng)網(wǎng)絡(luò)容易陷入局部最優(yōu)解的缺陷,增加了預(yù)測的精度。