王书涛,刘诗瑜,王志芳,张靖昆,孔德明,王玉田
燕山大学电气工程学院河北省测试计量技术及仪器重点实验室,河北 秦皇岛 066004
防腐剂的使用屡见不鲜。山梨酸钾作为防腐剂的一种,在生活的各类产品中更是被广泛使用。经常食用添加过量山梨酸钾的食品会对人造成伤害,轻则引起食物中毒,严重的还可能影响身体器官的健康[1-2]。目前检测山梨酸钾含量的方法有很多,常用方式有层析法、超高效液相色谱法、气相色谱-质谱法和液相色谱质谱法等[3-5],但是这些方法相对而言都操作比较繁琐,而且成本又高成效又较低。三维荧光光谱法[6-7]的检测精度高,操作更方便,还能够实现痕量级别的检测。本文利用三维荧光光谱实现在水溶液以及橙汁混合溶液中山梨酸钾浓度的检测,实现超低检出限0.007 g·L-1, 远低于国标规定0.5 g·L-1。并在橙汁背景的干扰下建立数学模型,准确的检测出山梨酸钾的浓度。
SVM既可以通过构造一个最优超平面使所有的训练集样本距离该最优面最小的距离越大越好,来解决分类识别的问题,又可以通过构造最优分类面使得所有训练样本距离该面的误差越小越好,来解决回归分析的问题。它是一种比神经网络更简化高效的算法,将其与现代智能优化算法结合起来能够使预测更加精准,所以近年来一直被广泛应用[8]。用CSO优化SVM的惩罚因子C和核参数g,算法容易实现,而且收敛精度比较高。杨旌等[9]证明CSO优化回归型支持向量机在煤炭成本预测上比GA和PSO算法更有效精准,张莹杰等[10]证明ICSO算法优化神经网络的分类识别模型比鸡群算法准确率更好,收敛速度更快,全局搜索能力更强。用鸡群算法和改进鸡群算法寻优支持向量机的参数,并训练和预测山梨酸钾浓度,在物质浓度定量分析上建立了新的方法。
SVM两个重要的参数分别为核参数g和惩罚因子C。在线性支持向量机中引入核函数,就可以将非线性不可分的低维空间映射到高维空间,实现线性可分,提高了预测的准确性; 在高维空间的内积计算又相当复杂,转换到低维空间做计算,在高维空间输出计算结果,能够简化计算,提高运行速度[11]。常用的核函数包括线性核函数、多项式核函数、拉普拉斯核函数、径向基函数等。由于径向基核函数可以解决不可分割的问题, 可以处理小特征和一般样本数量的情况[12],所以本文选择径向基核函数,公式为
K(xi,xj)=exp(-γ‖xi-xj‖2)
(1)
其中,Xi和Xj为两个特征向量,σ是径向基的宽度,γ是一种等价但简单的定义,g称为内核参数。
支持向量机的惩罚因子C的主要作用是控制可信度的容忍限度,即C越大,对异常样本的重视程度越高,精度越高; 反之,C越小,越容易忽略异常样本,对经验误差的惩罚越小。参数C和g的大小影响着支持向量机回归预测的准确性,找到最佳的C和g可以使最终山梨酸钾浓度回归精度最佳。
由于不同的山梨酸钾浓度所对应的荧光强度值差别大,在训练网络之前,首先应将相对荧光强度数据进行归一化处理,再输入SVM中,将数据映射到[0, 1]区间内,具体公式为
(2)
其中x为实验所测得的数据,y为归一化后的有效数据。
使用回收率r和均方误差mse作为评价的指标,两个公式分别为
(3)
(4)
鸡群算法是模拟鸡群等级制度和社会行为的一种仿生群优化算法[13],首先把大群体划分为若干个子群,每个子群体分别包含一只公鸡、若干母鸡和若干小鸡[14]。下面分别是公鸡、母鸡以及小鸡的位置更新公式[15]。
子群体中公鸡粒子的适应度函数值最佳,它们搜索食物的位置更新公式为
xi,j(t+1)=xi,j(t)[1+Randn(0,σ2)]
(5)
(6)
其中Randn(0,σ2)为均值是0,标准差是σ2且满足高斯分布的随机数;fir和fkr分别是第i和k只公鸡的适应度值,i和k不相等;ε是常数,数值很小;xi,j(t+1)和xi,j(t)分别代表第t+1和第t时刻第i只鸡在第j维空间的位置;
群体的母鸡会随公鸡粒子进行搜索,位置更新公式为
xi,j(t+1)=xi,j(t)+C1rand[xr1,j(t)-xi,j(t)]+
C2rand[xr2,j(t)-xi,j(t)]
(7)
C1=exp{(fih-f)/[abs(fi+ε)]}
(8)
C2=exp[(fr2-fi)]
(9)
其中,C1和C2分别是母鸡位于所处的搜索群以及其他的搜索群体中所占的比例;xr1,j(t)和xr2,j(t)分别代表母鸡粒子所处群体的公鸡与其他群体的公鸡的位置。
小鸡粒子只跟着所处子群中的母亲母鸡粒子来搜索,其位置更新公式为
xi,j(t+1)=xi,j(t)+F[xm,j(t)-xi,j(t)]
(10)
式中,F为小鸡跟随母鸡来搜索食物的跟随系数,它取[0,2]区间的一个随机整值;xm,j(t)代表小鸡粒子所跟随的母亲母鸡粒子的位置。
改进的鸡群算法[16]针对于小鸡粒子只跟随子群中母亲母鸡寻找食物而造成搜索能力差的特点对CSO进行改进,引入学习因子C3和C4,让小鸡除了跟随母亲母鸡外,还能跟随所处群中公鸡和其他群中公鸡来搜索食物,所以当发生母亲母鸡粒子陷入局部最优的情况时,可以避免小鸡仅仅因母亲母鸡陷入局部最优造成同样陷入局部最优的情况,而且也可以提高小鸡的学习效率,让算法的收敛速度也得以提高。改进后小鸡粒子的位置按如式(11)进行更新
xi,j(t+1)=xi,j(t)+F[xm,j(t)-xi,j(t)]+
C3[xr3,j(t)-xi,j(t)]+C4[xr4,j(t)-xi,j(t)]
(11)
式中,C3和C4分别代表小鸡向所处子群的公鸡粒子和其他群的公鸡粒子学习的学习因子;xr3,j和xr4,j分别代表小鸡所处子群体公鸡的位置和其他群公鸡的位置。
(1)设置鸡群种群的大小pop,迭代次数M,种群的更新频率G,设定公鸡粒子、母鸡粒子、母亲母鸡粒子以及小鸡粒子各占的百分比,设置学习因子C3和C4的值; 设置SVM的惩罚参数C核参数g的范围,设定交叉验证折数值。
(2)把式(6)中mse当作适应度函数,确定每个鸡群个体的适应度值及最佳的位置。
(3)当迭代次数t/G=1时,对适应度值进行排序,确定个体之间的等级制度,分别建立母鸡粒子与小鸡粒子和与公鸡粒子之间的关系。
(4)按照式(5),式(7)和式(11)对群体中各粒子所处位置进行更新,并计算更新之后相应粒子适应度函数值。
(5)找到当前所处的个体最佳位置、全局最佳位置以及个体最佳适应度值、全局最佳适应度值。再进行约束条件判断,达到条件则输出最佳参数,未达到条件则返回(3)继续执行。
选用FS920荧光光谱仪,检测波长范围为200~900 nm,设置它的激发波长在250~550 nm,隔5 nm扫描一次; 发射波长在300~610 nm,隔2 nm扫描一次,狭缝设置在2.5 mm。
从市场采购相同品种的橙子,剥皮,榨取橙汁,取上层液体作为本次实验所用的背景溶液。山梨酸钾则采用从某生物公司购买的分析纯固体。首先用实验室的JPT-1型架盘天平准确称量定量的山梨酸钾固体粉末,将其充分溶解于纯净水中,配置好一定浓度的山梨酸钾的水溶液。然后将配制好的山梨酸钾单体溶液和定量的橙汁溶液充分混合,配得山梨酸钾橙汁溶液。重复以上操作,共配制22个混合样本,山梨酸钾的含量在0.007 0~0.100 0 g·L-1之间,其中0.007 0~0.010 0 g·L-1的样本间隔为0.001 0和0.010 0~0.100 0 g·L-1的样本间隔为0.0050 g·L-1。
图1是山梨酸钾水溶液三维荧光光谱图和等高线图,可以看出,在λex/λem=375/480 nm存在一个荧光峰,所以山梨酸钾水溶液的最佳激发波长在375 nm,最佳发射波长在480 nm。
图2是山梨酸钾在橙汁溶液中荧光光谱图和等高线图。可以看出,混合溶液中的山梨酸钾的图与其水溶液相比有一个明显的荧光侧峰出现,它位于激发波长460~480 nm,发射波长510~560 nm的区域,荧光强度也增强了,说明可能是橙汁溶液带来了干扰,这干扰很有可能影响最终的预测结果。
图1 山梨酸钾在水溶液中的荧光光谱(a): 三维荧光光谱; (b): 等高线光谱图Fig.1 The fluorescence spectra of potassium sorbate in aqueous solution(a): The three dimensional fluorescence spectra; (b): The contour map of fluorescence spectra
图2 山梨酸钾在橙汁中的荧光光谱(a): 三维荧光光谱; (b): 等高线光谱图Fig.2 The fluorescence spectra of potassium sorbate in orange juice(a): The three dimensional fluorescence spectra; (b): The contour map of fluorescence spectra
进一步分析,提取对背景橙汁样品扫描的光谱数据,并从测得的数据中选取浓度分别为0.009 0,0.025 0,0.055 0,0.075 0和0.090 0 g·L-1的5组山梨酸钾的混合溶液的数据,在最佳激发波长处于375 nm前提下,分别绘制每组溶液的发射光谱图,并绘制最大荧光强度随山梨酸钾橙汁溶液浓度变化的曲线如图3和图4所示。结合两图可以确定混合溶液的浓度与荧光强度之间并不是简单的线性关系,混合溶液的浓度增大,荧光峰的位置随之变化,即有红移的趋势。且橙汁溶液在发射波长460~560 nm有显著的荧光出现。从相关文献[17]上看,橙汁的激发波长位于470 nm时,会有发射波长530 nm左右的荧光峰,会对山梨酸钾的荧光光谱有一定的干扰,所以准确检测山梨酸钾浓度是比较复杂的。
图3 不同浓度山梨酸钾溶液发射光谱Fig.3 Emission spectra of potassium sorbatesolutions with different concentrations
图4 不同浓度山梨酸钾溶液最大荧光强度Fig.4 Maximum fluorescence intensity of potassiumsorbate solutions with different concentrations
首先取不同浓度的山梨酸钾橙汁样本22个,取各个样本在激发波长375 nm,发射波长450~520 nm的相对荧光强度数据组成22×36的矩阵作为输入,22个样本的浓度作为数据输出。选取其中浓度为0.009 0,0.030 0,0.080 0和0.095 0 g·L-1的4个样本作为测试集,其余18个样本作为训练集。设置鸡群大小pop=100,迭代次数M=100,种群更新频率G=10,公鸡、母鸡、小鸡粒子所占比例分别为15%,70%和15%,其中母亲母鸡粒子为50%,设置学习因子C3=C4=0.1; SVM的惩罚参数C∈[0.1,100],核参数g∈[0.01,1 000],交叉验证折数设置为v=3,然后迭代寻优这些数据,寻找最佳适应度值以及最佳参数C和g。
CSO,ICSO,PSO和GA四种优化方法的适应度曲线变化情况如图5所示。CSO的最佳适应度值在第8代附近达到最小值,其平均适应度曲线在12代左右以后保持最小值。ICSO的最佳适应度曲线在第1代即收敛到最小值并且以后保持不变,其平均适应度曲线12代左右后保持最小值,并且ICSO最佳适应度与平均适应度曲线间的距离比CSO的更小,说明ICSO适应度曲线的拟合度比CSO的更好,并且ICSO的收敛速度也优于CSO。PSO虽然最佳适应度一直保持稳定,但平均适应度与最佳适应度之间的差值过大。GA的最佳适应度值在67代以后才能达到稳定。综合四幅图,ICSO在收敛速度和拟合效果上,都是最优的。
图5 ICSO,CSO,PSO和GA适应度变化曲线Fig.5 Fitness curve of ICSO,CSO,PSO and GA
将最佳参数输入SVM,对训练集进行预测,得到山梨酸钾的预测值。表1是四种算法回收率与均方误差对比,ICSO-SVM模型得到的4组预测浓度值分别为0.011 5,0.026 0,0.077 0和0.092 0 g·L-1,预测结果最接近真值,均方误差为1.02×10-5,平均回收率为101.88%,预测精度比CSO-SVM,GA-SVM和PSO-SVM模型都高,ICSO-SVM在检测山梨酸钾浓度上是四种方法中最佳的。
表1 四种优化算法的回收率及均方误差比较Table 1 Comparison of the recovery rate and mean square error of four optimal algorithms
分析了山梨酸钾橙汁溶液的荧光特性,在橙汁背景的干扰下,分别利用ICSO,CSO,PSO,GA四种寻优方法优化SVM的参数来进行山梨酸钾浓度的预测,结果表明ICSO-SVM最容易找到全局最优值,均方误差和平均回收率最好,收敛速度更快,所以ICSO-SVM是四种方法中最佳的一种检测山梨酸钾橙汁溶液浓度的方法。实验下一步任务将该方法用于其它浓度范围乃至其他物质上,并且寻找更加优化的鸡群算法的改进算法。