基于主成分分析和改进支持向量机的猪肉品质识别

2022-02-13 10:43张保霞
食品与机械 2022年1期
关键词:正确率光谱猪肉

张保霞

(内蒙古农业大学职业技术学院,内蒙古 呼和浩特 014100)

随着经济的发展和生活水平的不断提高,消费者和猪肉深加工商对猪肉的嫩度、颜色、pH值、坚实度和持水力等品质指标越来越重视,因此对猪肉品质进行分类识别具有重要的理论价值和实际意义[1]。受遗传因素、环境因素、体外因素和品种差异等的影响,猪肉有2种劣质肉:黑干肉和白肌肉。目前,正常肉、黑干肉和白肌肉的识别主要有屠宰后人工感官识别和化学分析,前者需要专业评价人员,具有很强的主观性,评价结果重复性差,大批量检测时存在劳动强度大的缺点。后者操作步骤复杂繁琐,破坏性大、对操作人员专业技术要求较高,不适合在线检测。贾渊等[2]提出了一种基于猪肉数字图像颜色特征和支持向量机的猪肉分级方法,分级准确率达96.5%。Juan等[3]提出了逐步回归法和典型判别分析法判别猪肉类别,红肉和白肉的判别正确率为85%,但是正常肉和红肉的判别精度较低。Qiao等[4]搭建了400~1 000 nm的生鲜猪肉高光谱图像采集系统,并分别运用聚类分析和前向神经网络进行分类,聚类分析正确率为75%~80%,前向神经网络的正确率为85%。Monroy等[5]运用逐步回归法选取猪肉光谱数据的有效波段,采用5倍交叉验证法和留一交叉验证法分别建立猪肉分类模型,2种方法的猪肉分类正确率分别为79%,80%。为了提高猪肉品质识别的精度,试验拟针对全波段近红外光谱数据的猪肉品质快速识别存在光谱数据量大、计算复杂度高的缺点,运用主成分分析法(PCA)对猪肉近红外光谱数据进行特征波长筛选;针对支持向量机(SVM)模型性能受惩罚参数C和核函数参数g的选择影响,运用樽海鞘算法(SSA)[6]对SVM模型参数进行优化选择,提出一种基于PCA和SSA-SVM模型的猪肉品质识别模型,以期为猪肉品质分类识别提供依据。

1 数据采集系统

试验样品为生鲜猪肉,取样为排酸24 h后的左胴体眼肌部位,每块猪肉样品的厚度为40 mm,去除结缔组织和周边脂肪,制成25 mm厚的样品用于采集猪肉样品的近红外光谱数据。近红外光谱数据采集系统(图1)由AvaSpec-USB近红外光谱仪、计算机、暗箱、光源、光纤及探头、光源固定架、光谱采集软件等组成。其中,光谱仪波长为350~1 150 nm,分辨率为0.6 nm,光谱采集软件版本为AvaSoft7.4。

1. 暗箱 2. 光源固定架 3. 卤素灯珠 4. 光纤及探头 5. 试验样品 6. 样品平板 7. 计算机 8. 光谱仪

2 试验方法

2.1 SSA算法

2.1.1 种群初始化 SSA算法的种群规模为N,优化变量维数为D,樽海鞘位置为X=[Xn1,Xn2,…,XnD]T,n=1,2,…,N,食物位置F=[F1,F2,…,FD]T,优化变量上限为ub=[ub1,ub2,…,ubD]T、下限为lb=[lb1,lb2,…,lbD]T,因此,SSA算法的种群初始化为[7]:

XN×D=Rand(N,D)×(ub-lb)+lb,

(1)

式中:

XN×D——樽海鞘位置向量;

Rand(N,D)——N×D维的随机向量。

2.1.2 更新领导者位置 算法中的领导者主要作用是引领整个樽海鞘群体的移动,主要目的是搜索食物。为了使得领导者位置更新具有更强的随机性,领导者按式(2)进行位置更新:

(2)

式中:

ubd,lbd——领导者个体在d维上的优化变量的上限和下限;

c1、c2——[0,1]的随机数;

c3——搜索平衡因子,可以有效增强领导者的随机性和多样性,主要用于平衡SSA算法的全局搜索和局部搜索能力。

收敛因子按式(3)进行计算:

c1=2e-(4t/Tmax)2,

(3)

式中:

c1——收敛因子;

t——当前迭代次数;

Tmax——最大迭代次数。

2.1.3 更新追随者位置 由文献[8]可知,在SSA算法中,追随者的位置与追随者的初始位置、速度以及加速度密切相关,追随者的位置按牛顿运动方程进行更新:

(4)

(5)

(6)

式中:

v0——追随者的初始速度,m/s;

a——追随者的加速度,m2/s;

ta——追随者的迭代步长;

R——追随者的运动距离,m;

2.2 SVM模型

对于训练向量(xi,yi),引入松弛变量的SVM模型为[9]:

(7)

式中:

C——惩罚参数;

w——权值向量;

ε——不敏感损失因子。

引入拉格朗日乘子可以将SVM转化为对偶问题的求解:

(8)

式中:

K(xi,xj) ——核函数;

文中选择RBF核函数,其数学公式为:

(9)

式中:

g——核函数参数。

求解式(8)可以得到SVM分类模型为:

(10)

式中:

b——超平面偏差。

2.3 主成分分析(PCA)

主成分分析可以提取数据的主要特征信息,剔除数据中的冗余信息,尽量用最少的信息反映原始数据的主要信息,提高数据挖掘效率[10-11]。文中选择PCA对猪肉近红外光谱数据进行特征波段选择。

对于m×n维数据样本XF:

(11)

(1) 数据标准化:如式(12)所示。

(12)

式中:

(2) 建立协方差矩阵E,计算特征值L和特征向量A。

(13)

EA=AL。

(14)

(3) 确定主元数,计算主成分贡献率和累计贡献率。

主成分贡献率:

(15)

累计贡献率:

(16)

2.4 猪肉品质识别模型

为提高SVM模型进行猪肉品质识别的精度,针对SVM模型性能受惩罚参数C和核函数参数g的选择影响,运用SSA算法对SVM模型参数进行优化选择,提出一种基于PCA和SSA-SVM模型的猪肉品质识别模型,其识别流程如图2所示。

图2 基于SSA-SVM的猪肉品质识别算法流程图

采集猪肉近红外光谱数据,进行预处理和光谱校正;运用PCA对近红外光谱数据进行特征波长选择;将近红外光谱数据划分为训练数据集和测试数据集,基于PCA筛选的特征波长光谱数据,针对训练数据集,运用SSA方法对SVM模型的参数组合(C,g)进行优化,建立SSA-SVM猪肉品质识别模型;最后,将SSA寻优获取的最佳参数组合(C,g)代入SVM模型进行测试。基于SSA-SVM模型的猪肉品质识别算法步骤为:

(1) 读取猪肉近红外光谱数据,进行光谱数据预处理和光谱校正并归一化处理,运用PCA对近红外光谱数据进行特征波长筛选,划分训练数据和测试数据[12-13]:

(17)

式中:

XF、XFnew——原始近红外光谱数据和归一化处理后的近红外光谱数据;

LB、UB——归一化处理后近红外光谱数据的最小值和最大值,文中取LB=-1,UB=1;

XFmax、XFmin——原始近红外光谱数据中的最大值和最小值。

(2) 种群初始化。设定最大迭代次数Tmax、种群规模N,按式(1)初始化樽海鞘种群。

(3) 计算适应度。针对训练数据,将训练数据代入SVM模型,按式(18)计算每个樽海鞘个体的适应度。

(18)

式中:

ACC——K折交叉验证的平均准确度;

acck——第k折计算的准确度。

(4) 选定领导者、追随者和食物。计算适应度大小,将适应度最优的樽海鞘位置设定为当前食物位置;剩下的N-1个樽海鞘,将排在前一半的樽海鞘作为领导者,剩下的作为追随者。

(5) 更新领导者位置和追随者位置。

(6) 计算更新后的樽海鞘个体适应度fs。比较fs与当前食物的适应度ffood,如果fs>ffood,则将fs所对应的樽海鞘位置作为新的食物位置。

(7) 重复步骤(3)~(6),如果t>Tmax,输出最优食物位置,最优食物位置所对应的结果即为SVM模型的最优参数组合(C*,g*)。将最优参数组合(C*,g*)代入SVM模型进行猪肉品质识别。

3 结果与分析

3.1 数据预处理

猪肉原始光谱曲线如图3所示,变量标准化和归一化预处理后的猪肉光谱曲线如图4所示,共129个样本,其中白肌肉、正常肉和黑干肉分别为39,39,51个。

图3 原始光谱曲线

图4 标准化和归一化后的光谱曲线

3.2 PCA筛选特征波长

运用PCA筛选猪肉光谱数据的特征波长,不同主成分数进行训练时,正确率和均方根误差与主成分数的关系如图5所示。由图5可知,当主成分数为13时,猪肉品质识别正确率最高,其特征波长选择结果如图6所示。PCA特征波长筛选结果为371,388,425,456,473,562,578,607,696,764,772,813,927 nm。

图5 主成分数与正确率和均方根误差之间的关系曲线

图6 PCA特征波长选择结果

3.3 不同模型对比

将SSA-SVM与基于灰狼算法(GWO)优化SVM(GWO-SVM)[14]、基于粒子群算法优化SVM(PSO-SVM)[15-16]、基于网格搜索方法[17-18]优化SVM(Grid-SVM)和SVM进行对比。将129个猪肉样本数据按2∶1划分为训练集和测试集。其中,训练集中白肌肉、正常肉和黑干肉分别为26,34,26个,测试集中白肌肉、正常肉和黑干肉分别为13,17,13个。训练集主要用于建立SVM猪肉品质识别模型;测试集主要用于验证SVM猪肉品质识别模型的效果。算法参数设置:① SSA算法:种群规模N=20、最大迭代次数Tmax=200;② PSO算法[19]:种群规模N=20、最大迭代次数Tmax=200、惯性权重w=0.2、学习因子c1=c2=2;③ GWO算法:种群规模N=20、最大迭代次数Tmax=200;④ SVM模型:惩罚参数C∈(0,100]、核函数参数g∈(0,100]。为了避免SVM模型陷入“过拟合”,采用10折交叉验证方法,得到SSA-SVM模型的最优惩罚参数C=4.939,核函数参数g=2.171 4,SSA-SVM的适应度曲线如图7所示。不同算法猪肉品质识别结果如表1所示。

图7 SSA-SVM的适应度曲线

由表1可知,在训练集和测试集上,SSA-SVM模型的猪肉品质识别正确率最高。训练集上,白肌肉、正常肉和黑干肉识别的正确率分别为96.15%,97.06%,96.15%;测试集上,白肌肉、正常肉和黑干肉识别的正确率分别为100.00%,94.11%,92.31%,优于GWO-SVM模型、PSO-SVM模型、Grid-SVM模型以及SVM模型。通过SSA、PSO和Grid优化SVM模型,猪肉品质识别的正确率均大幅度提高,主要是SVM模型的参数得到了优化配置。

表1 不同算法猪肉品质识别结果

4 结论

为了提高猪肉品质识别精度,提出了一种基于主成分分析和樽海鞘算法优化支持向量机的猪肉品质识别模型。结果表明,与基于灰狼算法优化支持向量机、基于粒子群算法优化支持向量机、基于网格搜索方法优化支持向量机和支持向量机相比,基于樽海鞘算法优化支持向量机可以有效提高猪肉品质识别正确率。由于标准的樽海鞘算法容易陷入“早熟”问题,因此支持向量机模型参数寻优时存在局部最优,影响猪肉品质识别精度。后续将研究改进的樽海鞘算法优化支持向量机的猪肉品质识别模型,提高猪肉品质识别模型的精度和适用性。

猜你喜欢
正确率光谱猪肉
基于三维Saab变换的高光谱图像压缩方法
个性化护理干预对提高住院患者留取痰标本正确率的影响
猪肉将降到白菜价
下半年猪肉进口速度或将放缓
猪肉价格“落地”后怎么走?
高光谱遥感成像技术的发展与展望
近期猪肉价格上涨动力减弱
门诊分诊服务态度与正确率对护患关系的影响
生意
生意