常盼春 杨济民* 杨 娟 游 涛
1(山东师范大学物理与电子科学学院,济南 250014)2(江苏大学附属医院放射肿瘤科,江苏 镇江 212000)
在对肺、肝等部位的肿瘤进行放疗过程中,人体呼吸引起相关器官的非自主运动会使放疗靶区也随之偏移[1]。目前临床上一般采用扩大靶区[2]、屏气[3]、四维CT(4D-CT)[4]与呼吸门控[5]等方式来减小呼吸运动的影响。扩大靶区可以更加完整地针对整个肿瘤进行治疗,但会加大对周围正常组织器官的伤害,影响放射治疗的效果;屏气要求病人自主地控制呼吸,但临床上有些病人难以完全屏住呼吸;4D-CT采用几个周期内病人数据的平均值当作病人的真实呼吸数据,如果病人呼吸变化比较大,这个方式的误差会变大;呼吸门控的方法要求病人呼吸与射线周期同步,该方法会延长治疗时间。实时跟踪预测肿瘤位置(real-time position managementTMsystem, RPM)[6]是目前临床上使用的补偿呼吸运动影响的重要方式,它通过体表标记物与摄像机间的距离来实时估计病人的呼吸曲线,由此来实时跟踪肿瘤的位置。
然而,治疗设备针对人的操作有反应时间,会产生一个延迟。因此,必须要提前知道肿瘤下一段时间内的运动轨迹,提前调节治疗仪器才可以更加准确地进行治疗。针对呼吸波形的预测方法主要有自回归积分滑动平均模型(ARIMA)[7-8]、卡尔曼滤波[9-10]和神经网络[11]。然而,ARIMA更适合线性关系拟合,并不适合非线性关系的呼吸波形的预测;卡尔曼滤波很难确定刚开始两个方程的各个参数,并且也更适合线性关系函数的拟合;反向传播神经网络的方法由于其良好的非线性拟合能力,在呼吸预测方面的应用越来越大[12]。但是,反向传播神经网络容易陷入局部最优值[13]。针对这个问题,本研究提出应用PSO的方法来优化反向传播神经网络,以减少其陷入局部最优值的风险。实验证明,本研究方法可以提高反向传播神经网络的预测精度,减少预测误差。
本实验使用Varian公司的Real-time Position ManagementTMSystem (RPM)系统采集的11组肺癌病人的呼吸数据。将若干个外部标记物置于病人皮肤表面,由红外接收器的接收标记物到红外接收器的距离来计算标记物的位置。实验中,使用其中一个标记物的位置坐标作为病人的呼吸数据。
PSO-NN方法主要由两个过程组成:第一个过程是应用PSO算法,寻找神经网络的最佳初始权值与阈值;第二个过程是应用最优的初始权值与阈值建立神经网络,利用神经网络良好的非线性拟合能力来建立数个位置与其之后一段时间的位置之间的关系,拟合呼吸波形。
1.2.1BP神经网络算法
BP算法[14]的初始权值与阈值是随机获得的,所以不容易获得最优解,而利用PSO算法的全局搜索特性得到的初始权值与阈值更加接近全局最优解,可以克服BP神经网络获得局部最优解的弊端,从而提高预测的精度。
原始BP神经网络首先随机定义初始阈值与权值,之后通过训练数据输入与初始权值及阈值计算出结果,与训练数据输出作比较,之后根据误差,反复反向更新权值与阈值,直到达到最大迭代次数或者要求的精度截止。
BP神经网络预测呼吸波形的基本思想是预先应用分组的训练数据来建立当前数据与其对应的预测数据的关系,由此确定权值与阈值,当再有类似的输入之后,训练好的ANN就会有类似的输出。因此,训练数据的选取将直接影响最终的结果,太少的结果并不能很好地反映病人呼吸的规律,样本量至少要数个周期。对于呼吸不规律的病人,需要的数据会更多。
本实验采用3层神经网络,具体设置如下:学习率为0.01,迭代终止条件为最大迭代次数(200)或者损失函数的精度到达(0),训练数据分为训练数据输入与训练数据输出,5个时刻的数据(训练数据输入)作为一组向量来与1 s(30个位置点)之后1个时刻(训练数据输出)的数据建立拟合关系。
1.2.2PSO优化算法
神经网络进行反向更新权值与阈值时,需要通过迭代计算不断地降低均方误差(mean square error,MSE),PSO算法优化神经网络原理是先用PSO算法寻找到最优的初始阈值与权值,PSO算法[15]流程如图1所示,首先初始化一群粒子,每个粒子都代表一个可能的最优解,这里用速度、位置和适应度3个指标来表征该粒子,适应度由适应度函数获得,是评价粒子好坏的标准,本研究中的适应度函数是训练数据预测误差的MSE,即
(1)
图1 PSO算法流程Fig.1 PSO flow chart
式中,e表示误差的均方和,Y表示真实的位置,O表示预测值。
粒子运动中,通过计算个体极值P与群体极值G来更新个体位置,个体极值是指个体所经历位置中计算得到的适应度最优位置,群体极值是指种群中所有粒子搜索到的最优值,粒子每更新一次就会重新计算一次适应度值,通过比较新粒子的适应度与个体、群体极值的适应度值来更新个体、群体极值的位置。按照这个过程进行迭代,直到达到最大迭代次数(200)或者要求的精度(0)。
由m个粒子组成的种群P=(P1,P2,…,Pm)。其位置更新和自身粒子速度更新如下:
图2 总体流程Fig.2 Flow Chart
式中:a为惯性权值;i为当前迭代次数;V为粒子运动速度;Qf为群体极值;Qs为个体极值;c1与c2为预先设置的非负常数(加速度因子),本研究取常用数值1.5;r1与r2为[0,1]之间的随机数。
1.2.3总体流程
图2是整个实验的流程,首先对全部的由RPM系统获得的信号进行归一化处理。将所有的数据归一化到[-1,1]之间,之后将数据D(1,2,…,K+L)分为两部分,一部分D(1,2,…,K)作为训练数据来训练神经网络,另一部分D(K+1,K+2,…,K+L)作为测试数据来测试算法的优劣。之后,将训练好的神经网络的阈值以及权值传递给拟合函数,最后将测试数据的输入部分输入到训练好的拟合函数中,计算出预测结果,与测试的数据输出部分数据比较,测试算法的优劣性。
图3更直观地表示了本算法各个时间点之间的关系,训练神经网络时,同时H个位置点来建立与未来时间位置点(M个位置点的时间)的关系,与仅用单个点与单个点建立关系相比较,这样可以引入更多的特征,增加对呼吸波形的拟合效果。
1.2.4评价方法
本实验通过比较平均绝对误差(AE)与互相关系数(CC)来衡量两者的优劣。其中,平均绝对误差用来比较两者之间的误差大小,互相关系数用来比较两种方法预测后的波形与原始波形的相关性。
平均绝对误差(AE)和互相关系数(CC)的公式如下:
图3 算法时间点分布Fig.3 The distribution of algorithm time
(4)
(5)
式中,S(i)为真实病人呼吸数据,S'(i)为预测后的数据,m为数据数量。
本次实验使用开始60 s的临床病人呼吸数据作为训练数据,之后的30 s左右时间数据作为测试数据对两种算法分别进行测试。
图4显示用两种方法进行预测后的结果,从中可以更加直观地发现应用PSO方法对预测结果的提高。
图5、6分别为使用两种算法进行预测后得到的平均绝对误差与互相关系数。可以看出,对所有的测试病人PSO方法比未经优化的原始算法的平均绝对误差更低,互相关系数更高,效果更好。经计算,平均绝对误差由0.24减少到0.18(25%),互相关系数由0.82提高到0.86。除此之外,使用两种方法得到的结果的平均绝对误差以及互相关系数的P值分别0.016与0.002(t-test),说明PSO算法对呼吸预测效果的提高是有显著统计意义的。
不同的粒子数(种群规模)对预测结果的有一定的影响,计算所有病人的平均绝对误差以及互相关系数的平均值,结果如图7所示。可以看出,粒子数在一定范围内对预测结果的平均绝对误差影响较大,其中粒子数为30时平均绝对误差较小。图8体现了粒子数对互相关系数的影响,从中可以看出,粒子数在一定范围内对预测结果的互相关系数有一定的影响,其中粒子数为10和30的时候,互相关系数最接近1。由图7、8可以看出,当粒子数为30时,预测效果最好。
图4 使用两种方法的预测结果Fig.4 The prediction results of two methods
图5 两种方法预测结果的平均绝对误差Fig.5 The mean absolute error of the two methods
图6 两种方法预测结果的互相关系数Fig.6 The correlation coefficient of the two methods
图7 粒子数对平均绝对误差影响Fig.7 The effect of particle number on AE
图8 粒子数对互相关系数影响Fig.8 The effect of particle number on CC
传统的 BP-NN作为一种局部搜索的优化方法,它要解决的是一个复杂非线性化问题,网络的权值是通过沿局部改善的方向逐渐进行调整,这样会使算法陷入局部极值,权值收敛到局部极小点,从而导致网络训练失败。加上BP-NN对初始网络权重非常敏感,以不同的权重初始化网络,其往往会收敛于不同的局部极小,这也是很多学者每次训练得到不同结果的根本原因[16]。
本研究在传统BP-NN基础上引入PSO算法来确定初始值,有效地降低了陷入局部最优解的概率,大幅地提高了预测的精度。基于全局搜索策略的PSO算法来训练神经网络参数,可以避免上述BP-NN存在的缺陷,原因是其速度-位移模型操作简单,仅根据自己的速度来决定搜索方向。此外,由于粒子有记忆,在大多数情况下,PSO中所有的粒子能更快地收敛于最优解[17]。本研究实验证明,通过优化BP-NN初始值可以有效地提高呼吸预测的精度。从图4的对比可以看出,当原始方法在呼吸幅度没有陷入局部极值的范围内可以较为准确地预测呼吸波形,但是在陷入局部极值的区间内(5~10 s),便无法准确预测呼吸波形,其中误差甚至超过了实际数值的4倍。如果依据此呼吸信息对病人实施照射,不仅会对病人的正常组织器官造成不可逆的伤害,而且由于靶区没有覆盖全部的癌变细胞,将导致治疗效果大大降低。而PSO算法预测的呼吸信号与实时的呼吸信号有较高的吻合度,无论呼吸幅度有没有陷入局部极值,鲁棒性较好。因此,基于PSO的呼吸预测方法相比BP-NN的呼吸预测方法精确度得到了较大提高。
另外,本研究还进一步探索了粒子数对预测结果的平均绝对误差以及互相关系数的影响。实验证明,在一定范围内粒子数的多少对实验结果影响较大。这是由于群体规模越大,相互协同搜索粒子就越多, 信息就越充分, 能更好地发挥 PSO 的搜索能力。 然而,虽然群体规模增大,能使 PSO 算法的全局优化能力增强,但成本是搜索计算的时间增加以及收敛到全局最优点的速度的增长,而且过多的粒子会降低整体算法的泛化性,造成预测的不准确。但是,如果规模过小,PSO会容易陷入局部最优。 经过试验,当粒子数为30时,预测效果最好。
需要指出的是,本实验所使用的数据为RPM系统采集的病人体表标记物位置,并不是实际肿瘤运动的轨迹,因此,实际的预测效果有一定的差距。在以后的研究,准备同时采集标记物以及病人肿瘤实际运动轨迹,建立两者之间关系,令本算法更好地应用于临床之中。
本研究利用PSO较好的全局最优解搜索能力,对BP神经网络的初始权值和阈值进行了优化,克服了BP神经网络容易陷入局部最优解的缺陷,增加了预测的精度。