李 欣, 刘江平, 2*, 黄 清, 胡鹏伟, 2
1. 内蒙古农业大学计算机与信息工程学院, 内蒙古 呼和浩特 010018
2. 内蒙古自治区农牧业大数据研究与应用重点实验室, 内蒙古 呼和浩特 010030
牛奶含有丰富的营养物质, 被誉为“白色血液”。 实时、 快速、 准确地检测牛奶脂肪含量对提高乳制品质量具有重要意义[1]。 传统的牛奶脂肪含量检测方法多为化学分析方法, 检测结果准确, 但过程繁琐, 成本昂贵[2]。 随着高光谱成像技术的不断发展, 由于其成本低、 速度快、 无损检测等特点, 被广泛应用于牛奶中营养物质检测。 赵紫竹[3]等利用高光谱成像技术结合偏最小二乘(partial least squares, PLS)、 多维偏最小二乘(multidimensional partial least squares, N-PLS)预测模型对牛奶中的脂肪含量进行预测, 结果表明, 两种建模方法均可以很好的预测牛奶中的脂肪含量, 预测集的相关系数分别为0.991和0.997。 胡鹏伟[4]等基于高光谱成像技术, 利用竞争性自适应重加权算法(competitive adapative reweighted sampling, CARS)和连续投影算法(successive projections algorithm, SPA)结合多层前馈神经网络(back propagation, BP)的预测建模方法建立牛奶蛋白质含量的预测模型, 结果表明, 预测集的决定系数和均方根误差分别为0.968和0.034, 预测效果较好。 上述研究证实了高光谱检测牛奶中营养物质的可行性及高效性。
支持向量回归机[5](support vector regression, SVR)是一种有监督的机器学习方法, 主要用来解决回归问题。 支持向量回归机(SVR)有两个重要的参数—核系数和正则化参数。 提高支持向量回归机预测模型准确率的前提是选取合适的参数值。 传统的优化SVR预测模型的方法有灰狼优化算法、 粒子群算法、 萤火虫优化算法等。 潘海珠[6]等发现用灰狼优化算法优化SVR预测模型易陷入局部最优解, 搜索能力差, 故提出了改进的灰狼优化算法来对SVR预测模型进行优化; 王立文[7]等发现用粒子群算法对SVR预测模型的参数进行优化时, 易陷入局部最优值、 后期收敛速度缓慢, 故提出了改进的粒子群算法来对SVR预测模型进行优化; 李萍[8]等发现用萤火虫优化算法对SVR预测模型进行优化时, 种群分布不均匀、 易陷人局部最优值, 故提出了改进的萤火虫优化算法来对SVR预测模型进行优化。 鲸鱼优化算法[9](whale optimization algorithm, WOA)是由Mirjalili等提出的一种新型的算法, 与其他的群智能算法相比较而言, 鲸鱼优化算法最大的特点就是用随机个体或最优个体来模拟座头鲸的捕猎行为, 并用螺旋线来模拟座头鲸的泡泡网攻击机制。 目前该算法已成功应用到电力负荷调度[10]、 车间调度[11]、 路径规划[12]等领域。 由于传统的鲸鱼优化算法存在易陷入局部最优解、 收敛速度慢等缺点, 故以牛奶脂肪含量作为分析指标, 基于高光谱技术, 利用混合策略改进的鲸鱼优化算法结合SVR建模方法建立牛奶脂肪含量预测模型, 实验结果验证了经混合策略改进的鲸鱼优化算法优化后的SVR模型具有更好的预测效果。
实验用牛奶样品为市面购买的蒙牛高钙牛奶、 特仑苏牛奶、 伊利脱脂牛奶、 伊利臻浓牛奶、 伊利QQ星, 脂肪含量分别为3.7、 4.4、 0、 4.6和3.7 g·(100 mL)-1。 取适量的样品, 放置于直径85 mm的培养皿中, 液面高度为8 mm, 用于高光谱系统生成图像。 表1为牛奶脂肪含量的数据。
表1 牛奶脂肪含量
利用高光谱成像采集系统进行图像采集[13], 光谱采集的波长范围为400~1 000 nm、 分别对每个样品采集5组图像。 采集前, 打开图像采集软件, 设置采集参数: 曝光时间、 间距、 扫描方向、 移动速度等。 采集时将牛奶样品置于采集台上, 点击开始采集按钮, 获取牛奶样品的光谱图像。
由于在数据采集过程中, 照明光强分布不均匀和相机暗电流对图像的采集结果影响较大, 故需要对采集到的原始光谱图像进行黑白校正。 校正图像的获取公式如式(1)
(1)
式(1)中, I为采集的原始光谱图像, B为黑校正图像, W为白校正图像, R为经过黑白校正后的图像。 校正后的图像如图1所示。
图1 校正后的光谱图像
用ENVI软件从高光谱图像中提取感兴趣区域(region of interest, ROI), 最终得到250×125光谱数据集。
为了消除噪声和光散射的影响, 需要对数据进行预处理操作。 采用的预处理方法[4]包括标准正态变换(standard normal variate transform, SNV)、 多元散射校正(multiplicative scatter correction, MSC)、 一阶导数(first derivative, FD)、 二阶导数(second derivative, SD)。 通过比较不同的预处理方法所建立PLSR模型(其中核系数和正则化参数都采用默认的值)的预测效果, 选取最佳的预处理方法进行后续的数据处理。
光谱数据包含的信息量巨大, 其中也含有不少的冗余信息。 为了消除冗余信息对实验的干扰, 同时减少后期的计算量, 需要对预处理后的数据进行特征提取。 常用的特征提取方法为主成分分析[14](principal component analysis, PCA)。 主成分分析方法使线性相关的一组变量经过正交变换变为线性不相关的一组变量, 变换后的变量称为主成分(principal component, PC)。 通过比较不同的主成分个数所建立SVR模型的均方根误差(root mean square error, RMSE)的值, 选取最佳的主成分个数进行后续的数据处理。
建立支持向量回归机(support vector regression, SVR)模型预测牛奶脂肪含量。 提出一种基于精英反向学习和黄金正弦算法混合改进的鲸鱼优化算法来对SVR预测模型进行优化。
鲸鱼优化算法[15](WOA)是2016年由Mirjalili等首次提出来的一种新颖的群智能优化算法, 与一般的受自然界中生物特征、 生活习惯的启发设计出的智能算法一致。 鲸鱼优化算法是一种基于群智能的启发式全局优化算法, 它是模拟海洋中座头鲸围捕猎物时的社会行为并引入了气泡网狩猎策略而提出的算法, 通常被用来寻求最优解。 本文利用鲸鱼算法的特性为SVR模型寻求一个最优的参数, 使得模型的预测效果达到人们的预期。 鲸鱼优化算法主要包括三个部分: 包围猎物、 气泡攻击、 寻找猎物。
精英反向学习[16](elite opposition-based learning, EOBL)策略旨在增加初始种群的多样性, 传统的鲸鱼优化算法采用随机生成的方式生成初始种群, 导致初始种群的适应度不高, 直接影响后边迭代的效果。 精英反向学习策略在随机生成种群的基础上, 产生一个反向种群, 分别计算初始种群及反向种群的适应度函数值, 选取适应度函数值最优的种群作为初始种群进行接下来的迭代运算。 产生反向种群的数学公式为
(2)
(3)
黄金正弦算法[17](golden sine algorithm, Gold-SA)是优化位置更新方式的一种算法, 由Tanyildizi等于2017年提出。 该算法利用数学中的正弦函数进行计算迭代寻优, 算法的最大优点是收敛速度快、 鲁棒性好、 易于实现、 调节的参数和运算符少, 因此广泛应用于算法优化的各个领域。
Gold-SA的核心过程是其解的更新过程, Gold-SA根据正弦函数与单位圆的关系, 引入黄金分割数使得搜索和开发达到良好的平衡。 其位置更新的数学公式如式(4)
X(t+1)=X(t)|sin(r1)|+r2sin(r1)M
(4)
其中下一次迭代中个体的移动距离和更新方向分别由r1和r2决定,r1是[0, 2π]之间的随机数,r2是[0, π]之间的随机数。
M=|x1X(t)-x2X(t)|
(5)
为了保证其收敛性, 引入系数x1和x2的计算公式如式(6)
x1=a1t+b1(1-t)
(6)
x2=a1(1-t)+b1t
(7)
针对传统的鲸鱼优化算法存在的收敛速度慢、 易陷入局部最优解等不足, 提出了基于精英反向学习策略及黄金正弦算法混合策略改进的鲸鱼优化算法[17](elite opposition-based golden-sine whale opti-mization algorithm, EGolden-SWOA)。 使用精英反向学习策略对初始种群的多样性进行了提升, 将初始种群及反向种群的适应度函数值进行比较, 选取适应度好的个体进行下一次的迭代, 选取的个体数量和设定的种群规模一致。 精英反向学习策略提高了初始种群的质量, 增强了算法的寻优能力。
此外, 本文提出的混合策略改进的鲸鱼优化算法保留了传统鲸鱼算法的包围捕食方式和随机寻找猎物的方式, 利用黄金正弦算法对鲸鱼的螺旋上升式捕食的方式进行了改进, 改进后的位置更新方式如式(4); 引入了黄金分割数, 在每次迭代中, 通过和猎物(当前最优解)交流位置信息, 通过参数r1和r2来控制个体的移动的方向和距离, 使得鲸鱼个体更快的趋近于猎物(当前最优解)方向, 加快了算法的收敛速度及寻优的精度。
EGolden-SWOA优化SVR预测模型的具体执行步骤如下:
步骤1: 读取数据, 划分测试集和训练集, 计算初始的适应度函数值;
步骤2: 设置参数, 其中包括参数的上限U、 下限L, 维度dim(和优化的参数个数有关), 种群规模SearchAgents及最大的迭代次数Max_iter;
步骤3: 种群初始化, 根据种群规模和维度来设定;
步骤4: 根据精英反向学习生成反向解, 并计算初始种群和反向种群的适应度函数值;
步骤5: 从初始种群和反向种群中选取适应度函数值好的个体作为最终的初始种群进行迭代, 选取的数量和设定的种群规模SearchAgents一致, 并将最优适应度的个体位置记Leader_position, 最优的适应度记为Leader_fitness;
步骤6: 更新参数;
步骤7: 对鲸鱼的位置进行更新, 当|A|≥1时, 采用随机寻找猎物的方式进行更新; 当|A|<1时且p<0.5时, 采用包围捕食的方式进行更新, 否则, 采用式(4)进行更新;
步骤8: 重复步骤4—步骤7, 直到达到最大的迭代次数Max_iter时终止操作。
SVR模型的评价指标包括均方根误差的倒数(1/RMSE)、 决定系数(R2)、 平均绝对误差的倒数(1/MAE), 其中1/RMSE值越大,R2值越大, 1/MAE值越大, 表明模型的预测能力越好。 各个评价指标的计算公式如下:
均方根误差的倒数(1/RMSE)计算公式如式(8)
(8)
决定系数(R2)计算公式如式(9)
(9)
平均绝对误差的倒数(1/MAE)计算公式如式(10)
(10)
本研究的宗旨是用改进的鲸鱼优化算法优化SVR预测模型, 故在开始设置参数变化范围时, 核系数和正则化参数的变化范围都设置成了[0.01, 100], 鲸鱼的初始种群规模SearchAgents设置成了50。 由于想要优化的参数为两个, 所以鲸鱼优化算法的维度设置成了2, 迭代次数统一设置成50。 以牛奶的脂肪含量作为分析指标。
首先对光谱数据进行划分, 光谱数据的7/10划分为训练集, 3/10划分为测试集。 然后将以上数据的划分结果作为模型的输入建立偏最小二乘回归(partial least squares regression, PLSR)牛奶脂肪含量预测模型。 模型的预测结果如表2所示。
表2 四种预处理方法的比较
由表1可知, 经预处理方法SNV处理得到的预测模型的评价参数的值总体上要优于其他三种预处理方法, 故在接下来的结果分析中, 统一采用SNV预处理方法对原始数据进行预处理操作。
光谱数据信息量大且有冗余信息, 需要进行特征提取以减小计算量, 提高模型的优化精度。 采用PCA方法对数据进行特征提取操作。 在2.1节中指出最佳牛奶脂肪含量预测模型的预处理方法为SNV方法, 故对光谱数据进行SNV处理后进行特征提取操作。 预测模型的RMSE值随主成分个数的变化如图2所示。
图2 RMSE值随主成分个数的变化
由图2可知, 当主成分个数为6时, 模型的RMSE的值最小, 故在接下来的结果分析中, 将主成分个数设置为6, 然后对预处理后的数据进行特征提取操作。 每个主成分在原始信息上所占的信息比如表3所示。
表3 每个主成分所占信息比
为了研究改进的鲸鱼优化算法对SVR预测模型的优化效果, 故对特征提取后的数据进行了建模操作, 建立的模型包括: 传统的SVR模型A(SVR)、 鲸鱼优化算法优化的SVR模型B(SWOA-SVR)、 遗传算法优化的SVR模型(GA-SVR)、 精英反向学习策略改进的鲸鱼优化算法优化的SVR模型F(EOBL-SWOA-SVR)及混合策略改进的鲸鱼优化算法优化的SVR模型G(EGolden-SWOA-SVR), GA-SVR模型中, 交叉率为0.6, 变异率为0.1的预测模型简称为模型C; 交叉率为0.7, 变异率为0.1的预测模型简称为模型D; 交叉率为0.7, 变异率为0.2的预测模型简称为模型E, 结果如表4所示。
表4 七种模型的性能评价指标
由表4可以看出, SVR模型预测集参数R2的值为0.985, 1/RMSE的值为2.533, 1/MAE的值为6.902, 1/RMSE和1/MAE的值较小, 说明SVR模型的预测效果不是很好, 达不到人们对于预测模型的基本要求; 对于传统的鲸鱼优化算法优化后的SVR模型相较于单纯的SVR模型性能有了很大的提升; 经混合策略改进的SVR预测模型评价参数值总体上优于传统鲸鱼优化算法改进的SVR模型及单策略改进的SVR模型的评价参数值, 其中混合策略改进的SVR模型预测集的评价参数R2的值达到了0.995; 为使得结果更有说服性, 将改进后的鲸鱼优化算法和遗传算法的优化结果进行了比较, 由于遗传算法的交叉概率及变异概率是人工设定的固定值, 共采用了[0.7, 0.2]、 [0.7, 0.1]、 [0.6, 0.1]3组值来分别进行测试, 由结果可以得出, 遗传算法优化SVR模型的效果和变异率、 交叉率的选取有很大的关系, 而交叉率、 变异率是一个固定值, 需要反复进行实验才可以得出一个较好的值, 所以遗传算法的实验步骤复杂, 算法的稳定性不高。
综上, 混合策略改进的鲸鱼优化算法优化SVR预测模型是可行的, 优化过后的SVR模型具有更好的预测效果。
利用高光谱成像技术对牛奶脂肪含量进行了检测研究。 首先采用不同的预处理方法对光谱数据建立PLSR模型并比较得出最佳的预处理方法, 然后采用不同的主成分数对预处理后的数据进行特征提取并建立SVR模型, 通过比较得出最佳的主成分个数; 最后对特征提取后的数据建立SVR模型并对建立后的模型进行优化。 为了验证混合策略改进的鲸鱼优化算法优化模型的可行性及优越性, 将其优化后的模型与精英反向学习单策略改进 WOA 算法优化的模型、 传统的鲸鱼优化算法优化的模型、 遗传算法优化的模型进行比较, 结果表明EGolden-SWOA算法优化的SVR模型对牛奶中的脂肪含量具有更好的预测效果。