黃金明,蘇佰麗,武玉強
(曲阜師范大學(xué)電氣信息與自動化學(xué)院,山東日照 276826)
人工神經(jīng)網(wǎng)絡(luò)在解決各種輸入因子具有復(fù)雜性、非線性和相關(guān)性的問題上擁有很大的優(yōu)勢。我們在“人工神經(jīng)網(wǎng)絡(luò)”課程的教學(xué)過程中,通過對各種神經(jīng)網(wǎng)絡(luò)模型的學(xué)習(xí)和計算機仿真,可以闡述清楚課程的主要思想;但尚需將該思想應(yīng)用于實踐去解決實際問題。
隨著食品安全問題的敏感度逐漸增加,海產(chǎn)食品的出口安全問題也受到越來越多的關(guān)注。由于不同的進口國對食品的指標要求存在差異,傳統(tǒng)的合格或不合格等定性結(jié)論不能體現(xiàn)這一差異,而采用量化的風(fēng)險度指數(shù)來衡量出口食品的質(zhì)量水平是一個比較理想的解決方案。BP神經(jīng)網(wǎng)絡(luò)具有很強的魯棒性、容錯性和自學(xué)習(xí)能力,本文利用BP神經(jīng)網(wǎng)絡(luò)建立了出口海產(chǎn)食品的風(fēng)險分析模型,采用改進的誤差反向傳播算法,通過多次反饋對輸入數(shù)據(jù)進行模型仿真,給出風(fēng)險分析結(jié)論。
海產(chǎn)食品的質(zhì)量水平取決于食品加工和運輸?shù)母鱾€環(huán)節(jié)中的影響因素,具體包括原材料的儲存和預(yù)處理、食品加工工序、食品加工環(huán)境溫度、衛(wèi)生狀況以及運輸?shù)拳h(huán)節(jié)。其中,部分環(huán)節(jié)屬于關(guān)鍵環(huán)節(jié),對海產(chǎn)食品的最終質(zhì)量有著決定性的影響,比如:細菌數(shù)量和金屬物含量等,不同的海產(chǎn)食品的影響要素也有所不同。
以凍模擬蟹肉與凍鱈魚片兩種海產(chǎn)品為例,其潛在的危害因素有很多,如金屬碎片、生物的致病菌、化學(xué)的添加劑、產(chǎn)品的基因成分、檢驗檢疫部門的檢查結(jié)果以及運輸時間等等。在這些因素中,有些因素是通過主觀預(yù)測來分析的,是定性的,必須將這些因素應(yīng)用模糊綜合評價方法,使之定量化,最終建立權(quán)重集來實現(xiàn)。
海產(chǎn)食品風(fēng)險分析項目主要解決的問題是依據(jù)食品的危害分析與關(guān)鍵控制點HACCP(Hazard Analysis Critical Control Point)理論將影響產(chǎn)品質(zhì)量的因素分為普通因子和CCP因子,然后對影響因子進行分析得出風(fēng)險度估計[1]。整個系統(tǒng)將采集的各種影響因子作為神經(jīng)網(wǎng)絡(luò)模型的輸入,經(jīng)過訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)模型運算后產(chǎn)生的輸出作為風(fēng)險度結(jié)果,以此作為最終的評判標準。整個系統(tǒng)共包括四個層次,分別為接口層、預(yù)處理層、決策層和輸出層,如圖1所示。
圖1 出口海產(chǎn)食品風(fēng)險分析系統(tǒng)體系結(jié)構(gòu)
產(chǎn)品的輸入?yún)?shù)通過實時采集的方式在接口層進行獲取,并送入預(yù)處理層進行數(shù)據(jù)的修正和模糊綜合評價等預(yù)處理操作,數(shù)據(jù)經(jīng)預(yù)處理后,在進入神經(jīng)網(wǎng)絡(luò)模型進行風(fēng)險分析之前,還需要對這些數(shù)據(jù)統(tǒng)一進行歸一化處理。得到的結(jié)果作為神經(jīng)網(wǎng)絡(luò)模型的輸入值,經(jīng)過決策層的神經(jīng)網(wǎng)絡(luò)模型分析完成后,將本次的數(shù)據(jù)存入中心數(shù)據(jù)庫并將風(fēng)險分析結(jié)果送輸出層進行人機交互操作。用戶可以看到產(chǎn)品生產(chǎn)過程中的全部風(fēng)險指標,也可以通過現(xiàn)場控制系統(tǒng)對生產(chǎn)環(huán)節(jié)進行遠程控制。
人工神經(jīng)網(wǎng)絡(luò)由神經(jīng)元互聯(lián)組成,通過模擬人腦對信息的處理方式,進行信息的并行處理和非線性轉(zhuǎn)換,具有良好的自學(xué)習(xí)、自適應(yīng)和非線性轉(zhuǎn)換能力。它通過樣本的訓(xùn)練和學(xué)習(xí)將信息隱含在連接權(quán)值上,達到穩(wěn)定后,便可以對新的數(shù)據(jù)輸入進行預(yù)測。神經(jīng)網(wǎng)絡(luò)的輸入信息來自生產(chǎn)現(xiàn)場的多個傳感器,這些信息是單一傳感器和傳統(tǒng)算法所不具備的。多個傳感器的設(shè)置沒有統(tǒng)一的方法,需要針對不同產(chǎn)品和不同的生產(chǎn)環(huán)境采取不同處理,來選擇合適的模型參數(shù)。在這里,選擇了一種比較成熟的單向傳播的多層前向網(wǎng)絡(luò)—BP神經(jīng)網(wǎng)絡(luò)作為模型能很好地實現(xiàn)對輸入數(shù)據(jù)進行風(fēng)險預(yù)測[2],其組成如圖2所示。
圖2 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
利用人工神經(jīng)網(wǎng)絡(luò)建立海產(chǎn)食品的風(fēng)險分析模型有很大的優(yōu)越性,首先,這種方法是開放的,輸入輸出的調(diào)整比較靈活,比較適合目前海產(chǎn)食品種類繁多的行業(yè)現(xiàn)狀。神經(jīng)網(wǎng)絡(luò)模型的調(diào)整具有很大的靈活性。模型的建立依賴于訓(xùn)練的樣本,樣本的代表性和廣泛性會影響最終模型算法的精度,用戶也可以根據(jù)新形勢下的新情況,調(diào)整學(xué)習(xí)樣本,讓模型算法重新適應(yīng)新的情況,因此,神經(jīng)網(wǎng)絡(luò)模型相對于傳統(tǒng)的數(shù)理統(tǒng)計模型具有更大的靈活性和易用性。
BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)主要由輸入層、隱藏層和輸出層組成,各層節(jié)點數(shù)的選取具有一定的規(guī)律。由于出口海產(chǎn)食品種類繁多,每種食品的網(wǎng)絡(luò)模型結(jié)構(gòu)也不盡相同,以出口凍鱈魚片為例,其主要風(fēng)險分析指標包括儲藏溫度、金屬物、CCP執(zhí)行情況、細菌總數(shù)和運輸時間。因此,BP網(wǎng)絡(luò)的輸入層確定為5 個節(jié)點,設(shè)輸入向量為 xi=(x1,x3,x3,x4,x5),輸出結(jié)果即為單節(jié)點風(fēng)險值yo=(yo1),隱藏層設(shè)定為單層,其節(jié)點數(shù)目與輸入輸出節(jié)點數(shù)、訓(xùn)練樣本數(shù)及復(fù)雜程度有關(guān),根據(jù)Kolmogorov定理以及隱藏層節(jié)點數(shù)的經(jīng)驗公式(黃金分割法)[3]:
其中,N為隱藏層節(jié)點數(shù),n和t為輸入和輸出層節(jié)點數(shù)。經(jīng)過計算并綜合考慮隱藏層的功能,將本文中的隱藏層的節(jié)點數(shù)定為10個,既能滿足精度需求,又能盡量減少網(wǎng)絡(luò)的訓(xùn)練時間,同時還兼顧了收斂速度、泛化能力和穩(wěn)定性。
根據(jù)BP神經(jīng)網(wǎng)絡(luò)的特點以及出口凍鱈魚片產(chǎn)品的需求,所建立的網(wǎng)絡(luò)模型算法的流程如圖3所示。
圖3 凍鱈魚片產(chǎn)品神經(jīng)網(wǎng)絡(luò)算法流程
神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值均取(0,1)之間的隨機值,激活函數(shù)采用 S 型函數(shù)[4]:f(x)=1/(1+ex),神經(jīng)網(wǎng)絡(luò)前向計算的隱藏層輸出過程為
式中,hih(k)是隱藏層輸入,wih為輸入層到隱藏層的連接權(quán)值,θh為隱藏層神經(jīng)元閾值。輸出層各節(jié)點的輸出值為
式中,yio(k)為輸出層各節(jié)點的輸入激活值,who為隱藏層到輸出層的連接權(quán)值。
在反饋調(diào)整權(quán)值的計算過程中,采用改進的BP算法,加入動量因子,將上一次權(quán)值調(diào)整量的一部分迭加到按此次誤差計算所得的權(quán)值調(diào)整量上,作為此次的實際權(quán)值調(diào)整量,即
式中,η、α和δ0(k)分別為學(xué)習(xí)率、動量因子和誤差函數(shù)對輸出層各神經(jīng)元的偏導(dǎo)數(shù)。這種方法所加的動量因子實際上相當(dāng)于阻尼系數(shù),它減小了學(xué)習(xí)過程的振蕩趨勢,從而改善收斂性。文中取α=0.5。
在隱藏層和輸出層的連接權(quán)值調(diào)整過程中,全局總誤差的計算公式為
式中,m為樣本個數(shù),do(k)與yo(k)分別為期望輸出與實際輸出值。
由于出口凍鱈魚片產(chǎn)品的五個參數(shù)對風(fēng)險值的影響程度不同,各個參數(shù)的取值單位也有很大差異,因此,需要對輸入樣本中的參數(shù)值進行修正。常用的修正方法為加權(quán)修正法和模糊綜合評價法。典型的輸入樣本和輸出風(fēng)險度數(shù)值如表1所示。
表1 凍鱈魚片產(chǎn)品的輸入?yún)?shù)值與期望風(fēng)險值
從表1可以看出,伴隨著儲存溫度的升高及細菌數(shù)量的增加,風(fēng)險度呈上升趨勢,而金屬物含量(CCP)對于風(fēng)險度的影響是具有決定性的。但是它的單位值和其他參數(shù)相比,在神經(jīng)網(wǎng)絡(luò)中占有的權(quán)重值卻很難體現(xiàn)這一結(jié)果,本文對該參數(shù)進行加權(quán)修正處理,以增加該參數(shù)在各種相關(guān)因素中的影響力。
根據(jù)出口凍鱈魚片產(chǎn)品的檢驗需求及對基于BP神經(jīng)網(wǎng)絡(luò)風(fēng)險分析模型特點的分析,本文選擇了300組典型輸入值作為訓(xùn)練樣本集合,對神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練。系統(tǒng)實現(xiàn)采用Matlab作為后臺運算引擎[5],對300組樣本輸入進行最多2萬次迭代運算,預(yù)設(shè)精度為0.01。圖4為樣本訓(xùn)練誤差曲線圖。
圖4 樣本訓(xùn)練過程誤差曲線圖
從曲線可以看出,所選擇網(wǎng)絡(luò)模型算法的收斂性還是比較好的。
待神經(jīng)網(wǎng)絡(luò)訓(xùn)練完畢后,用新的待測試值進行輸入,輸出的風(fēng)險度平均值能夠滿足精度要求,這說明該模型能夠很好的解決風(fēng)險預(yù)測類非線性問題,部分實際輸入對應(yīng)的風(fēng)險值數(shù)據(jù)如表2所示。
表2 部分實際輸入?yún)?shù)的風(fēng)險值
本文對人“工神經(jīng)網(wǎng)絡(luò)”課程教學(xué)方法和手段進行了探討,并成功地將教學(xué)過程與項目開發(fā)實踐過程進行了結(jié)合,將教學(xué)過程中復(fù)雜的抽象理論問題用具體的建模實例來實現(xiàn),理論結(jié)合實際,取得了良好的教學(xué)效果。設(shè)計的風(fēng)險分析系統(tǒng)由VS2008和 Matlab混合編程實現(xiàn)[6]。數(shù)據(jù)測試表明,該系統(tǒng)能很好的解決出口海產(chǎn)食品的風(fēng)險預(yù)測問題,達到了預(yù)期目標。
[1] Hazard Analysis& Critical Control Points(HACCP).http://www.fda.gov/food/foodsafety/hazardanalysiscriticalcontrolpointshaccp/
[2] 徐麗娜 編著.神經(jīng)網(wǎng)絡(luò)控制[M].北京:電子工業(yè)出版社,2003
[3] 陳明,朱文婷,周汝雁何等.BP神經(jīng)網(wǎng)絡(luò)信息融合技術(shù)在水質(zhì)監(jiān)控中的應(yīng)用[J].北京:微計算機信息,2010 26(4-1):15-17
[4] 高雋 編著.人工神經(jīng)網(wǎng)絡(luò)原理及仿真實例(第2版)[M].北京:機械工業(yè)出版社,2007
[5] 謝濤,何怡剛,姚建剛等.VB調(diào)用Matlab的模擬電路故障診斷神經(jīng)網(wǎng)絡(luò)方法[J].北京:計算機工程與應(yīng)用,2010 46(10):213-215
[6] Matalb C++Library User's Guide[M].The Math Works,Inc,2002