APP下载

基于改进HMM的食品安全风险评估方法

2021-12-04唐宏亮

食品与机械 2021年11期
关键词:马尔可夫搜索算法布谷鸟

熊 慧 唐宏亮 - 丁 永

(1. 武汉交通职业学院,湖北 武汉 430065;2. 湖北第二师范学院,湖北 武汉 430205;3. 江西理工大学,江西 赣州 341000)

目前的食品安全风险评估是食品检验检测部门对食品质量进行的抽样检测,仅评价食品是否合格,不能深入挖掘食品安全信息下更深层次的风险隐患。风险评估是用于估计风险概率和相关不确定性的过程,挖掘潜在危险和相关风险。由于食品安全问题不仅会对人体造成伤害,还会影响社会的稳定发展。因此有必要对食品安全风险评估方法进行研究。

王小艺等[1]将蒙特卡罗仿真用于食品风险评估方法,构建菌落动态生长模型,并对风险进行量化分析。结果表明,该风险评估方法可以为风险管理和决策部门提供较为直观的风险评估结果。高亚男等[2]提出了一种先验风险概率与模糊层次划分相结合的方法,计算不同类型属性的模糊综合风险值作为预测模型的标签值。结果表明,该方法可以较为准确地预测风险值,为决策者提供有价值的决策依据。张利锋等[3]根据国家相关标准程序,结合食物摄入量,对17种抗生素的残留量进行采集,并采用点评估法对鸡肉和鸡蛋饮食中接触抗生素的风险进行评估。结果显示,抗生素总体检出率为14.4%,不合格率为6.76%。虽然鸡肉和鸡蛋含有一定的抗生素残留,但暴漏的风险非常低,对人类健康的危害几乎为0。然而,上述研究中的食品安全风险评估方法精度低且不准确,需要人的主观判断,缺乏客观性,无法结合时间特征进行动态评估,适应能力有待进一步提高。

布谷鸟搜索算法具有良好的全局搜索功能和跳出局部优化的能力;隐马尔可夫模型应用在评估中,结合数据时间特征,使评估结果具有更好的实时性和针对性。文章拟提出一种通过布谷鸟搜索(Cuckoo Search,CS)算法优化隐马尔可夫模型(Hidden Markov Model,HMM)的食品风险评估方法,以期为食品评估技术的发展提供参考。

1 食品安全风险指标构建

由于检测指标多且食品数据复杂度高,采用灰色关联分析算法优化的解释结构模型进行多层次划分[4]。以灭菌乳检测指标为例。其中,所使用的灭菌乳数据有9个检测指标,分为4个层次。分层的结果如图1所示。第1层权重最高,第4层权重最低。表1各指标的权重值,然后将其与检测指标对应的相关系数平均值相乘,得到检测指标的权重结果。

文中通过与国家标准的检测差值评估食品安全风险,将对身体有益物质(蛋白质、脂肪和非脂乳固体)定为正指标,含量必须高于国家标准。将对身体有害物质(汞、铅、砷、镉和黄曲霉毒素)定为负指标,含量必须低于国家标准[5]。将酸度定为中性指标,介于国家标准范围内。根据5-标度法,安全风险数据分为5类(1~5)。值越高,质量安全风险越高。文中第1类计算结果为[-0.077 6,0.060 96],第2类计算结果为(0.060 96,0.199 52],第3类计算结果(0.199 52,0.338 08],第4类计算结果(0.338 08,0.476 64],第5类计算结果(0.476 64,0.615 20]。

图1 分层结果Figure 1 System structure

表1 权重结果Table 1 Optimal parameters

2 风险评估方法

2.1 隐马尔可夫模型

隐马尔可夫模型由Baum等提出,主要由两个过程组成,马尔可夫链和观测过程,分别描述了状态转移过程和观测概率矩阵[6]。隐马尔可夫模型可以被描述为一个五元素表达式λ=(Q,O,π,A,B),各元素如式(1)~式(5)所示[7]。

Q={q1,q2,…,qN},

(1)

O={o1,o2,…,oM},

(2)

π={[π(i)N]π(iq)=P(qi)},

(3)

A=π[aij]N*N,aij=P(qi|qj)},

(4)

B=π[bj(k)]N*M,bj(k)=P(ok|qj)},

(5)

式中:

Q、O——无模型的隐含和观测状态;

π——初始状态概率矩阵;

A、B——无状态转移和观测状态的转移概率矩阵;

N——模型中隐藏层状态的数量;

M——观察特征的数量;

q——隐含序列状态;

o——观测序列状态。

CHH主要解决基本问题:

学习问题:利用Baum-Welch算法对观测序列O进行训练,得到条件概率P(O,λ)最大的模型λ[8]。

评估问题:利用正反向算法计算观测序列O在模型λ中出现的概率P(O,λ)[9]。

预测问题:已知模型λ和观测序列O,使用Viterbi算法找到序列中发生概率最大的状态。

(1) 前后向算法:为了解决评估问题,采用前后向算法求解P(O,λ)的值,这是解决随机推理问题最常用的方法。由两部分组成:前向和后向。

前向概率:时刻t的隐含状态为qi,观测状态为o1,o2,…,ot的概率,如式(6)所示[8]。

at(i)=P(o1,o2,…,ot,it=qi|λ)。

(6)

计算最终结果如式(7)所示。

(7)

后向概率:时刻t的隐含状态qi,时刻t+1到时刻T观测状态为ot+1,ot+2,…,oT的概率,如式(8)所示[10]。

βt(i)=P(ot+1,ot+2,…,oT,it=qi|λ)。

(8)

计算最终结果如式(9)所示。

(9)

给定模型λ和观测序列O,在时刻t处于状态qi的概率表示如式(10)所示。

(10)

模型λ和观测序列O已知,在时刻t的状态qi,且时刻t+1处于状态qj的概率如式(11)所示[11]。

(11)

(2) Baum-Welch算法:Baum-Welch算法在解决学习问题中应用广泛,步骤为初始化、参数更新和终止[12]。随机初始化模型参数πi、aij、bj(k),并通过正向和反向算法计算γt(i)和ξt(i,j)。参数计算如式(12)~式(14)所示。

πi=γ1(i),

(12)

(13)

(14)

直到参数收敛,输出最终结果。

(3) Viterbi算法:在Viterbi算法中,求解最优状态序列的主要步骤类似于前后向算法[13]。解析过程是状态序列的初始化、递归、终止和获取状态序列。在初始化过程中,可以根据变量定义获得初始化条件。当时间达到最大值时,Viterbi算法终止,同时解得P*的最大值。

2.2 改进隐马尔可夫模型

HMM模型中Baum-Welch算法对初值有很强的依赖性,因为文中通过CS算法优化的HMM初始参数,在通过Baum-Welch算法进行局部校正,使其快速收敛到全局最优解[14]。CS算法是一种基于杜鹃寄生育雏行的自然启发式算法,具有良好的全局搜索功能和跳出局部优化的能力,满足全局收敛的要求。

布谷鸟搜索算法优化隐马尔可夫模型的过程:

步骤1:数据预处理。采用灰色关联分析算法和解释结构模型对数据进行预处理。

步骤2:通过CS算法优化的HMM初始参数。

步骤3:采用Baum-Welch算法进行局部校正,以提高风险评估算法的准确性[15]。

步骤4:使用Viterbi算法完成风险分类。

图2为CS算法优化HMM的流程图。

3 试验结果与分析

3.1 试验参数

为了对CS-HMM方法的优越性进行验证,将改进的HMM方法与未改进前的HMM方法进行了比较。利用2018年11月—2021年2月951条灭菌乳的检测数据进行实验验证。该设备是联想PC,操作系统是windows 10 64位旗舰,Intel i52450m CPU,频率2.5 GHz,8 GB内存[16]。

图2 改进隐马尔科夫模型流程图Figure 2 Flow chart of improved hidden markov mode

风险指数作为训练数据,布谷鸟搜索算法用于全局搜索,找出HMM模型的最优初始值。计算HMM风险评估模型的参数A、B、π,如式(15)~式(17)所示。

(15)

(16)

(17)

采用布谷鸟搜索算法计算的全局最优解作为Baum-Welch算法的初值进行精细搜索。以300个训练集数据为例,训练结果如式(18)~式(20)所示。

(18)

(19)

(20)

3.2 试验分析

基于食品安全风险评估模型的评估标准,通过误差矩阵分析模型的准确性,将样本分为正样本TP和TN。当判断准确度时,各类别单独为正,其余均为负,TPR为真正率,TNR为真负率。初始风险阈值设置为0,并在0.2与1.0之间逐步增加。图3为2个不同大小的训练集评估准确度结果。

从图3可以看出,不同训练集模型准确度随阈值增加逐渐降低,当阈值达到0.6时,下降率显著增加。为了保证评估的准确性,选择阈值为0.6时的TPR和TNR。

分了分析数据集对评估结果影响,在阈值0.6时分析不同数据集对测试准确度的影响,训练集从200~375,次增加25,测试集为全部数据。图4为准确度随训练集变化曲线。

从图4可以看出,模型准确度最高出现在训练集为300时,此时TPR和TNR分别达到97.79%和99.47%,所以300个数据足以满足模型训练。

为了比较该模型与传统HMM模型的性能,在阈值为0.6时分析不同模型随训练集的变化趋势,结果如图5所示。

由图5可知,文中模型TPR1和TNR1在训练集大小为300时达到峰值,TPR1和TNR1值分别为97.79%和99.47%。传统HMM模型在350时达到峰值,TPR2和TNR2值分别为81.49%和96.84%。文中模型的准确度峰值优于未改进前,需要的训练集也较少,证明了文中模型的优越性。

通过vitabi算法对训练后的模型进行风险评估,如图6所示模型改进前后评估结果比较。

TPR(250)和TNR(250)表示训练集大小为250时模型的真正率和真负率,TPR(300)和TNR(300)未训练集大小为300时模型的真正率和真负率

图4 不同训练集模型准确度Figure 4 Model accuracy of different training sets

TPR1和TNR1、TPR2和TNR2分别为文中模型和HMM训练时结果的真正率和真负率

图6 改进前后评估结果比较Figure 6 Comparison of evaluation results beforeand after improvement

从图6可以看出,与传统HMM模型相比,文中模型的评估结果更接近真实值。这是因为文中模型采用CS优化HMM模型,使参数快速收敛到全局最优解,且结合时间特征进行预测,可以有效提高企业的食品安全质量。

4 结论

文中提出了一种将隐马尔可夫模型和布谷鸟搜索算法结合用于食品风险评估方法。通过布谷鸟搜索算法搜索全局最优解作为隐马尔可夫模型初值,在通过Baum-Welch算法进行局部校正,使其快速收敛到全局最优解。结果表明,该风险评估方法比未改进前更准确、有效。在训练集为300时,测试数据真正值和真负值的准确度分别为97.79%和99.47%。该模型的食品安全风险评估尚处于试验阶段,布谷鸟搜索算法在搜索全局最优解过程中存在收敛速度慢的问题,后续工作中应该改进布谷鸟搜索算法的性能,如自适应布谷鸟搜索算法、合作协同进化布谷鸟搜索算法等,争取尽快实际应用,在实际应用中不断完善模型。

猜你喜欢

马尔可夫搜索算法布谷鸟
一种基于分层前探回溯搜索算法的合环回路拓扑分析方法
布谷鸟读信
布谷鸟读信
改进的非结构化对等网络动态搜索算法
改进的和声搜索算法求解凸二次规划及线性规划
面向电力系统的继电保护故障建模研究
基于马尔可夫链共享单车高校投放研究
基于马尔可夫链共享单车高校投放研究
基于马尔科夫算法对预测窗户状态模型的研究
基于莱维飞行的乌鸦搜索算法