姜同強(qiáng),莫名垚,任釗,王美潔
(1.北京工商大學(xué)計(jì)算機(jī)與信息工程學(xué)院,北京 100048)
(2.農(nóng)產(chǎn)品質(zhì)量安全追溯技術(shù)及應(yīng)用國家工程實(shí)驗(yàn)室,北京 100048)
食品安全問題關(guān)系人們的生產(chǎn)生活和社會(huì)經(jīng)濟(jì)的發(fā)展,為了保證人們的飲食安全,提高政府監(jiān)管效率,食品安全預(yù)警尤為重要。常用的食品安全預(yù)警研究方法有2種:定性分析和定量預(yù)測。定性分析即借助相關(guān)理論分析得出預(yù)警結(jié)論,如風(fēng)險(xiǎn)矩陣[1]、案例推理[2]等。定量預(yù)測即采用方法、模型分析食品的檢測或監(jiān)測數(shù)據(jù),預(yù)測食品安全風(fēng)險(xiǎn)等級(jí),如統(tǒng)計(jì)分析方法中的時(shí)間序列[3]、數(shù)據(jù)挖掘算法中的神經(jīng)網(wǎng)絡(luò)[4]等。本文用的數(shù)據(jù)和方法屬定量預(yù)測法。
定量預(yù)測法存在以下問題:(1)統(tǒng)計(jì)分析方法需要已知系統(tǒng)結(jié)構(gòu)或明確變量之間的關(guān)系[5]。(2)神經(jīng)網(wǎng)絡(luò),作為食品安全預(yù)警研究的常用工具,存在網(wǎng)絡(luò)訓(xùn)練效率不穩(wěn)定的缺點(diǎn)[6]。(3)二者都是在風(fēng)險(xiǎn)達(dá)到臨界點(diǎn)或即將到臨界點(diǎn)時(shí)才進(jìn)行警示,不能在已知數(shù)據(jù)看似正常的臨界狀態(tài)預(yù)測未來知識(shí)[7]。
貝葉斯網(wǎng)絡(luò)(Bayesian Network,BN)既具有傳統(tǒng)統(tǒng)計(jì)分析的功能,又能有效結(jié)合先驗(yàn)知識(shí),在不完全信息下能穩(wěn)定、準(zhǔn)確地進(jìn)行數(shù)據(jù)分析與預(yù)測。因此,可利用貝葉斯網(wǎng)絡(luò)穩(wěn)定、高效的統(tǒng)計(jì)分析與預(yù)測的能力進(jìn)行食品安全預(yù)警,能有效解決現(xiàn)有研究中的問題。
同時(shí),貝葉斯網(wǎng)絡(luò)廣泛應(yīng)用于醫(yī)學(xué)、制造業(yè)、城市交通和災(zāi)害監(jiān)測等方面的預(yù)警研究,例如牟敬鋒(2015)等運(yùn)用貝葉斯網(wǎng)絡(luò)構(gòu)建了公共場所集中空調(diào)冷卻塔水嗜肺軍團(tuán)菌污染預(yù)警模型[8];張翠俠(2015)等提出一種基于貝葉斯網(wǎng)絡(luò)的機(jī)械加工車間碳足跡監(jiān)測與預(yù)警方法,實(shí)現(xiàn)了機(jī)械加工車間碳足跡實(shí)時(shí)監(jiān)測與動(dòng)態(tài)預(yù)警[9];張銘(2016)等運(yùn)用貝葉斯層次網(wǎng)絡(luò)推斷故障預(yù)警,對風(fēng)險(xiǎn)隱患快速定位[10]。金杉(2016)等利用貝葉斯網(wǎng)絡(luò)算法設(shè)計(jì)了一種能實(shí)現(xiàn)全網(wǎng)信息融合的算法[11]。但貝葉斯網(wǎng)絡(luò)在食品安全預(yù)警方面的研究還未引起廣泛關(guān)注。
為避免統(tǒng)計(jì)分析方法研究背景要求高,神經(jīng)網(wǎng)路訓(xùn)練不穩(wěn)定的問題,彌補(bǔ)貝葉斯網(wǎng)絡(luò)在食品安全領(lǐng)域的研究空白,本文以低度白酒作為研究對象,采用食藥監(jiān)局的監(jiān)測數(shù)據(jù),運(yùn)用貝葉斯網(wǎng)絡(luò)建立白酒安全預(yù)警模型,并與神經(jīng)網(wǎng)絡(luò)算法對比,驗(yàn)證模型的穩(wěn)定性,輔助政府監(jiān)管,豐富食品安全預(yù)警方法。
本文使用的數(shù)據(jù)來源于食藥監(jiān)局 2016年低度白酒的監(jiān)測數(shù)據(jù)。
白酒原始數(shù)據(jù)的預(yù)處理。簡化數(shù)據(jù)屬性,去除次要影響因索,如抽樣人員、抽樣單位等信息,如表 1所示。分析數(shù)據(jù)并選取14個(gè)檢測項(xiàng)目(有:鉻、鉛、氨基甲酸乙酯、環(huán)已基氨基硫酸鈉、紐甜、阿斯巴甜、糖精鈉、乙?;前匪徕?、酒精度、氰化物、總酸、總酯、大腸菌群和甲醇)作為評(píng)價(jià)指標(biāo),該評(píng)價(jià)指標(biāo)包含6類:金屬污染物、農(nóng)藥殘留、食品添加劑、品質(zhì)指標(biāo)、微生物污染、非食用物質(zhì)。
表1 低度白酒安全檢測原始數(shù)據(jù)Table 1 Raw data for safety detection of low-alcohol liquor
預(yù)處理數(shù)據(jù)的標(biāo)準(zhǔn)化。若結(jié)果判定為“合格項(xiàng)”,則將其標(biāo)記為 1;若結(jié)果判定為“不合格項(xiàng)”,統(tǒng)計(jì)每種危害因子不合格記錄的檢測值超出可取最大上限值(或低于可取最小下限值)的百分比(以下簡稱超標(biāo)百分比),再統(tǒng)計(jì)一定百分比范圍內(nèi)的頻次,按頻次劃分不合格等級(jí)。統(tǒng)計(jì)數(shù)據(jù)表明:每種風(fēng)險(xiǎn)因子的可取值域不同,不合格記錄的超標(biāo)百分比也不同,但通常不會(huì)到200%。
評(píng)價(jià)指標(biāo)中的危害因子的可取值域分為3類,即不得檢出、一定數(shù)值范圍內(nèi)和需超過某個(gè)值。對不得檢出項(xiàng),如環(huán)已基氨基硫酸鈉,設(shè)其超標(biāo)百分比最大值為100%,不合格記錄有46條,其中大于0 mg/kg且小于等于1 mg/kg的20條,輕度不合格項(xiàng),標(biāo)記為2,大于1 mg/kg且小于等于20 mg/kg的18條,中度不合格項(xiàng),標(biāo)記為3,大于20 mg/kg的8條,重度不合格項(xiàng),標(biāo)記為 4。對非不得檢出項(xiàng),如甲醇,超標(biāo)百分比平均值為180%,不合格記錄有9條,其中大于2 g/L小于等于4 g/L的7條,輕度不合格項(xiàng),標(biāo)記為2,大于4 g/L的2條,重度不合格項(xiàng),標(biāo)記為3。部分?jǐn)?shù)據(jù)的離散標(biāo)準(zhǔn)值如表2所示。
表2 部分?jǐn)?shù)據(jù)的離散標(biāo)準(zhǔn)值Table 2 Discrete standard values for partial data
白酒是非季節(jié)性食品,本文假定外界環(huán)境、政府政策、生產(chǎn)工藝對白酒影響保持穩(wěn)定,選取2016年的6458組數(shù)據(jù)組數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),1~11個(gè)月的5922組數(shù)據(jù)作為訓(xùn)練集,12月的536組數(shù)據(jù)作為測試集。
1.2.1 白酒食品安全狀況等級(jí)與預(yù)警指標(biāo)的建立
借鑒李克特量表[12]的思想,構(gòu)建白酒食品安全風(fēng)險(xiǎn)等級(jí)與預(yù)警指標(biāo),如表3所示,貝葉斯網(wǎng)絡(luò)中各關(guān)鍵危害因子的概率值已包含其對白酒食品安全狀況問題發(fā)生的貢獻(xiàn)大小,因此閾值指的是貝葉斯網(wǎng)絡(luò)模型得到的白酒食品安全狀況的概率值。
表3 白酒食品安全狀況等級(jí)與預(yù)警指標(biāo)Table 3 Food safety status and warning indicators of liquor
1.2.2 貝葉斯網(wǎng)絡(luò)工作原理
貝葉斯網(wǎng)絡(luò)是一種能將具體問題中的復(fù)雜變量關(guān)系在一個(gè)網(wǎng)絡(luò)結(jié)構(gòu)并反映變量的依賴關(guān)系的有向無環(huán)圖模型,適用于表達(dá)和推理不確定性知識(shí)[13]。貝葉斯網(wǎng)絡(luò)的組成有2部分:網(wǎng)絡(luò)結(jié)構(gòu)和條件概率表,因此貝葉斯網(wǎng)絡(luò)模型的構(gòu)建包含2個(gè)部分:結(jié)構(gòu)學(xué)習(xí)和參數(shù)學(xué)習(xí)。
將白酒食品安全預(yù)警體系用貝葉斯網(wǎng)絡(luò)表示為:B=(G,P),其中G=(V,E)表示有n個(gè)節(jié)點(diǎn)V={X1,X2,…,Xn}的有向無環(huán)圖,根據(jù)評(píng)價(jià)指標(biāo)體系可知,n為 21,V為評(píng)價(jià)指標(biāo)中的危害因子集合,E為危害因子間的直接依賴關(guān)系。每個(gè)節(jié)點(diǎn)Xi∈V都附有一個(gè)條件概率分布P(Xi|pa(Xi)),pa(Xi)為Xi的父節(jié)點(diǎn)的集合。結(jié)合節(jié)點(diǎn)間的獨(dú)立性和概率的鏈?zhǔn)揭?guī)則得聯(lián)合概率分布公式,如式(1)所示。
1.2.3 貝葉斯網(wǎng)絡(luò)模型網(wǎng)絡(luò)結(jié)構(gòu)的建立
圖1 白酒安全預(yù)警貝葉斯網(wǎng)絡(luò)模型的網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network structure of Bayesian Network model for liquor safety early warning
專家建模法是確定網(wǎng)絡(luò)結(jié)構(gòu)的方法中運(yùn)用較多的方法,它根據(jù)先驗(yàn)知識(shí),依據(jù)是否條件獨(dú)立把危害因子繪制在一個(gè)圖中而形成網(wǎng)絡(luò)結(jié)構(gòu),且網(wǎng)絡(luò)結(jié)構(gòu)不存在環(huán)路。運(yùn)用專家建模法,得到白酒安全預(yù)警貝葉斯網(wǎng)絡(luò)模型的網(wǎng)絡(luò)結(jié)構(gòu),如圖1所示。
1.2.4 貝葉斯網(wǎng)絡(luò)模型的參數(shù)學(xué)習(xí)
確定各節(jié)點(diǎn)概率的過程稱為參數(shù)學(xué)習(xí),適用的參數(shù)學(xué)習(xí)算法取決于網(wǎng)絡(luò)結(jié)構(gòu)是否已知和數(shù)據(jù)集合是否完整。極大似然估計(jì)算法是最常用的參數(shù)學(xué)習(xí)算法,適用于網(wǎng)絡(luò)結(jié)構(gòu)已知,數(shù)據(jù)集完整的情況。故本文采用最大似然算法對貝葉斯網(wǎng)絡(luò)專家模型進(jìn)行參數(shù)學(xué)習(xí)。貝葉斯網(wǎng)絡(luò)由N個(gè)節(jié)點(diǎn)V={X1,X2,…,Xn}組成,不失一般性,設(shè)節(jié)點(diǎn)Xi共有ri個(gè)取值,其父節(jié)點(diǎn)π(Xi)共有qi個(gè)組合的取值。數(shù)據(jù)D是由樣本{D1,D2,…,Dm}組成的完整數(shù)據(jù)集,即D={D1,D2,…,Dm},則網(wǎng)絡(luò)的參數(shù)為:
其中i,k,j的取值范圍分別為 1~n,1~ri,1~qi。
用θ記所有θijk組成的向量,則θ的對數(shù)似然函數(shù)為:
設(shè)樣本Dl的特征函數(shù)χ(i,j,k:Dl)為:
設(shè)mijk是數(shù)據(jù)中滿足Xi=k和π(Xi)=j的樣本數(shù)量,則有:
則θijk的最大似然估計(jì)θ*ijk為:
表4 環(huán)已基氨基硫酸鈉C1的概率分布Table 4 Probability distribution of cyclohexyl sodium sulfate C1
表5 甲醇F1的概率分布Table 5 Probability distribution of methanol F1
表6 非食用物質(zhì)F的概率分布Table 6 Probability distribution of non-edible substance F
在白酒安全預(yù)警的貝葉斯網(wǎng)絡(luò)模型中,共有 21個(gè)節(jié)點(diǎn),即 N=21;根據(jù)預(yù)處理結(jié)果,最頂層(即無父節(jié)點(diǎn))的節(jié)點(diǎn)有其對應(yīng)的離散化取值,“白酒食品安全狀況”節(jié)點(diǎn)共有4個(gè)取值。
為簡化模型復(fù)雜度,其余節(jié)點(diǎn)均共有2個(gè)取值,即1為合格,2為不合格。數(shù)據(jù)D由5922組數(shù)據(jù)組成,即D={D1,D2,…,D5922}。結(jié)合食藥監(jiān)局的歷史數(shù)據(jù),統(tǒng)計(jì)分析,可得各個(gè)節(jié)點(diǎn)的先驗(yàn)概率,部分危害因子的先驗(yàn)概率如表4~表7所示。
表7 白酒食品安全狀況H的概率分布Table 7 Probability distribution of food safety status H
因此各危害因子的合格概率為P(Xi=1),不合格的概率為:
“白酒食品安全狀況”的不合格概率,即評(píng)價(jià)指標(biāo)的 閥 值 為 P(X21≠1)=P(H≠1)=P(H=2)+P(H=3)+P(H=4)=0.05。
利用matlab軟件編程實(shí)現(xiàn)以上算法功能,建立網(wǎng)絡(luò)模型,將訓(xùn)練集代入模型進(jìn)行參數(shù)學(xué)習(xí),可得白酒前 11個(gè)月每月總體情況的訓(xùn)練值和各節(jié)點(diǎn)不合格的概率值分別如圖2、表8所示。
圖2 前11個(gè)月每月總體情況的訓(xùn)練結(jié)果Fig.2 Training results of monthly overall status in the first 11 months
絕對誤差越小,預(yù)測值越接近實(shí)際值,預(yù)測結(jié)果越精確。參數(shù)學(xué)習(xí)結(jié)果表明,貝葉斯網(wǎng)絡(luò)模型得到的白酒每月的總體情況與實(shí)際的概率統(tǒng)計(jì)值的誤差在0.0002~0.00263的范圍內(nèi),各個(gè)危害因子的風(fēng)險(xiǎn)值與統(tǒng)計(jì)規(guī)律得到的風(fēng)險(xiǎn)值誤差在 0.000011~0.000293的范圍內(nèi),均低于0.05,屬于合理的范圍,因此貝葉斯模型預(yù)測的白酒總體狀況接近實(shí)際值,危害因子的風(fēng)險(xiǎn)值是符合統(tǒng)計(jì)規(guī)律,精確度較高。
將2016年12月份的測試樣本集代入貝葉斯網(wǎng)絡(luò)模型進(jìn)行預(yù)測,可得12月白酒食品安全狀態(tài)值和各個(gè)樣本的不合格概率值。12月份白酒食品安全總體狀況的預(yù)測值為0.0252,實(shí)際的狀況值為0.02291,絕對誤差為 0.00229,精確度較高。根據(jù)預(yù)警指標(biāo)可知,12月份白酒食品安全總體狀況的預(yù)測值和實(shí)際值處于“無警”狀態(tài),預(yù)測有效。12月各個(gè)樣本不合格概率的實(shí)際值和預(yù)測值的絕對誤差最大值、最小值分別為0.0687、0.0067,當(dāng)誤差范圍為±0.05時(shí),準(zhǔn)確率為91.6%,準(zhǔn)確度較高。因此,貝葉斯網(wǎng)絡(luò)模型有效,能準(zhǔn)確實(shí)現(xiàn)白酒食品安全風(fēng)險(xiǎn)預(yù)警。
人工神經(jīng)網(wǎng)絡(luò)是食品安全預(yù)警研究常用的算法,但每次實(shí)驗(yàn),神經(jīng)網(wǎng)絡(luò)的初始權(quán)值都是隨機(jī)分配,以致運(yùn)行結(jié)果不穩(wěn)定。而貝葉斯網(wǎng)絡(luò)結(jié)構(gòu)和概率表一旦確定,每次運(yùn)行結(jié)果不變。將實(shí)驗(yàn)數(shù)據(jù)分別代入三層BP神經(jīng)網(wǎng)絡(luò)、貝葉斯網(wǎng)絡(luò),實(shí)驗(yàn)重復(fù) 10次,第 12個(gè)月的預(yù)測結(jié)果如表9所示。BP神經(jīng)網(wǎng)絡(luò)相關(guān)參數(shù)設(shè)置如下:輸入層、輸出層分別為14、1個(gè)神經(jīng)元;參照經(jīng)驗(yàn)公式,運(yùn)用試湊法得隱層節(jié)點(diǎn)神經(jīng)元個(gè)數(shù)為4;因輸出結(jié)果在0~1之間,則輸出層、隱層傳遞函數(shù)分別為logsig、tansig;網(wǎng)絡(luò)訓(xùn)練最小誤差為0.0005,學(xué)習(xí)效率為0.05,訓(xùn)練次數(shù)為10000。
從表9的結(jié)果分析,準(zhǔn)確率方面,神經(jīng)網(wǎng)絡(luò)和貝葉斯網(wǎng)絡(luò)分別為91.2%、91.6%,兩者相差僅0.4%,但是在10次重復(fù)實(shí)驗(yàn)中,神經(jīng)網(wǎng)絡(luò)的準(zhǔn)確率有較大的浮動(dòng),貝葉斯的準(zhǔn)確率保持不變。因此,相對于神經(jīng)網(wǎng)絡(luò)而言,貝葉斯網(wǎng)絡(luò)模型運(yùn)行結(jié)果更穩(wěn)定。
表9 神經(jīng)網(wǎng)絡(luò)和貝葉斯網(wǎng)絡(luò)的10次運(yùn)行結(jié)果Table 9 10 running results of Neural Network and Bayesian Network
結(jié)合白酒的檢測數(shù)據(jù),圍繞金屬污染物、農(nóng)藥殘留,食品添加劑、品質(zhì)指標(biāo)、微生物污染和非食用物質(zhì)6類危害因子,使用專家建模法構(gòu)建貝葉斯網(wǎng)絡(luò)模型的網(wǎng)絡(luò)結(jié)構(gòu),運(yùn)用最大似然估計(jì)算法進(jìn)行參數(shù)學(xué)習(xí),有機(jī)結(jié)合了先驗(yàn)知識(shí)和實(shí)驗(yàn)數(shù)據(jù),準(zhǔn)確、穩(wěn)定地預(yù)測白酒食品安全狀況,為白酒安全的防御和監(jiān)測工作提供幫助,有利于白酒行業(yè)的發(fā)展,有益于人們的社會(huì)生產(chǎn)生活,有助于完善食品安全預(yù)警的技術(shù)方法。進(jìn)一步的工作是結(jié)合改進(jìn)的、以數(shù)據(jù)驅(qū)動(dòng)的結(jié)構(gòu)學(xué)習(xí)算法,根據(jù)數(shù)據(jù)的變動(dòng),及時(shí)調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)影響,發(fā)展成動(dòng)態(tài)模型,更準(zhǔn)確進(jìn)行白酒食品安全預(yù)警,保障白酒食品安全。