周萍芳 張思明 張中武 簡著名
(湖北中煙工業(yè)有限責任公司武漢卷煙廠,湖北 武漢 430032)
煙草作為一種經(jīng)濟農(nóng)作物對于國家財政有著舉足輕重的作用,而自身的煙葉品質(zhì)也直接決定了成品香煙的品質(zhì)。煙葉在經(jīng)過復烤之后還需要在倉庫中存放很長時間,這是為了后續(xù)的自然醇化[1,2]。不經(jīng)過醇化過程的煙葉就是“新煙”,往往存在很多缺陷,而經(jīng)過醇化的煙葉無論是品質(zhì)還是口感,都得到大幅提升。所以,從新鮮煙葉的采摘到成品香煙的出廠往往需要經(jīng)歷很長時間[3]。霉變煙葉的生物結(jié)構(gòu)會被大幅破壞,并迅速分解自身營養(yǎng)物質(zhì),不僅香味消失,還會出現(xiàn)發(fā)黑和腐爛的情況,其價值完全喪失[4]。
目前我國較為常見的霉變檢測方法存在很大局限性,往往需要經(jīng)過復雜的流程,還會產(chǎn)生較大誤差,因此儲存煙葉時往往會造成很大損失[5]。同時,煙葉在倉庫中大量存放,發(fā)生霉變的位置復雜隱蔽,經(jīng)常無法檢測并流入生產(chǎn)線,造成了嚴重損失。
為了能夠提高煙葉霉變檢測的精度,本文采用了BP 神經(jīng)網(wǎng)絡(luò)和數(shù)據(jù)預處理的方法,在煙葉儲存空間設(shè)置多處傳感器數(shù)據(jù)采集點,以此實現(xiàn)煙葉霉變的在線檢測、識別和預警。本文構(gòu)建了BP 神經(jīng)網(wǎng)絡(luò)監(jiān)測煙葉儲存空間,并通過大量環(huán)境數(shù)據(jù)和監(jiān)測數(shù)據(jù)對煙葉狀態(tài)進行監(jiān)控,一旦出現(xiàn)霉變迅速處理。該研究對于提高煙葉醇化效率降低因霉變造成的經(jīng)濟損失有著極大的意義。
本文構(gòu)建BP 神經(jīng)網(wǎng)絡(luò)識別算法模型的流程是首先確定神經(jīng)網(wǎng)絡(luò)的層數(shù),包括不同層內(nèi)的神經(jīng)元節(jié)點,然后選定激活函數(shù)和訓練函數(shù),最后搭建整個BP 神經(jīng)網(wǎng)絡(luò)。整個網(wǎng)絡(luò)構(gòu)成可以分為三部分:構(gòu)建算法、算法訓練和算法測試,如圖1 所示。
圖1 在線煙葉霉變狀態(tài)識別流程
算法中的輸入層主要包含四種參數(shù):環(huán)境溫度、環(huán)境濕度、CO2濃度和乙醇濃度,因此將輸入層節(jié)點數(shù)設(shè)置為4。將狀態(tài)分別定義為0(正常)、1(輕微霉變)、2(中度霉變),如表1,所以輸出層節(jié)點數(shù)設(shè)置為1。
表1 煙葉狀態(tài)對照表
從上文可知,基于視覺的BP 神經(jīng)網(wǎng)絡(luò)的在線煙葉霉變檢測模型結(jié)構(gòu)為4-X-1,X 代表隱含層節(jié)點數(shù)尚未確定,在線煙葉霉變檢測模型結(jié)構(gòu)如圖2 所示。
圖2 基于BP 神經(jīng)網(wǎng)絡(luò)的煙葉狀態(tài)識別模型
如果隱含層中的神經(jīng)元節(jié)點設(shè)置過少,結(jié)果可能造成神經(jīng)網(wǎng)絡(luò)的訓練過程收斂變慢或者不收斂。如果隱層中節(jié)點過多,模型的預測精度會提高,但同時網(wǎng)絡(luò)拓撲結(jié)構(gòu)過大,收斂速度慢,普遍性會減弱。如果BP 神經(jīng)網(wǎng)絡(luò)中輸入層節(jié)點數(shù)為m個,輸出層節(jié)點是為n 個,則由下式式可推出隱藏層節(jié)點數(shù)為s 個。
其中b 一般為1-9 的整數(shù)。在線煙葉霉變檢測模型中m=4,n=1,因此確定隱含倉節(jié)點數(shù)s 的范圍為3~10 之間的整數(shù)。根據(jù)以往的經(jīng)驗,將隱藏層節(jié)點數(shù)范圍設(shè)置為5-8 的范圍,根據(jù)仿真結(jié)果擇優(yōu)確定。
本系統(tǒng)中選取trainlm 函數(shù)為訓練函數(shù)。激活函數(shù)通常為非線性函數(shù),并需要連續(xù)可微,一般為非線性的logsig()函數(shù)、tansig()函數(shù)等。在多數(shù)情況下,神經(jīng)網(wǎng)絡(luò)需要表示非線映射關(guān)系時,最常使用的是非線性激活函數(shù)logsig()函數(shù),logsig()是對數(shù)S形函數(shù),其表達式如下式所示,其曲線圖如圖3 所示。
圖3 對數(shù)S 形函數(shù)曲線圖
該函數(shù)具有如下的特性:當x 趨近于負無窮時,f(x)趨近于0;當x趨近于正無窮時,f(x)趨近于1;當x=0 時,f(x)=0.5。
如果儲存的煙葉出現(xiàn)霉變,第一時間要對其進行霉情評定,確定了危害等級之后要采取相應(yīng)措施。根據(jù)《GB_T23220-2008- 煙葉存儲保管方法》,將煙葉霉變狀態(tài)分為3 級,如表2 所示。Ⅰ級霉變是指煙葉有輕微霉味,霉變煙葉質(zhì)量小于0.5%,危害程度輕微。Ⅱ級霉變是指煙葉有較大霉味,霉變煙葉質(zhì)量大于等于0.5%而小于5%,危害程度中等。Ⅲ級霉變是指煙葉有強烈的嗆人的霉味,霉變煙葉量大于等于5%危害程度嚴重。由于需要在煙葉霉變尚可控制的階段時發(fā)現(xiàn)并提示管理人員處理,所以Ⅲ級霉變沒有實際意義。本文去掉Ⅲ級霉變的定義,將倉儲煙葉狀態(tài)分為三級:正常、輕微霉變、中等霉變。
表2 霉變分級表
煙葉分級圖如圖4、圖5、圖6 所示。
圖4 正常煙葉
圖5 輕微霉變煙葉
圖6 中等霉變煙葉
本文利用數(shù)據(jù)采集設(shè)備收集模擬煙葉儲存環(huán)境的數(shù)據(jù)。實驗過程中,在實驗箱中放入相同批次的煙葉,并連同數(shù)據(jù)采集設(shè)備封箱3 小時,在收集到的數(shù)據(jù)穩(wěn)定之后將數(shù)據(jù)上傳至云端數(shù)據(jù)庫,并進行分析。模擬煙葉儲存環(huán)境如圖7 所示。
圖7 模擬煙葉倉儲環(huán)境
數(shù)據(jù)采集頻率為30s/次,持續(xù)時間約為2~3 個月,共收集到3 萬余條數(shù)據(jù),并隨機選取4000 條數(shù)據(jù)進行算法模型的訓練和測試,其中3000 條數(shù)據(jù)作為訓練數(shù)據(jù)集,1000 條數(shù)據(jù)作為測試數(shù)據(jù)集。為了便于實驗,本文只對環(huán)境參數(shù)相差較大的數(shù)據(jù)進行分析,如表3。
表3 模擬煙葉倉儲環(huán)境監(jiān)測數(shù)據(jù)
數(shù)據(jù)預處理的流程在圖8 中展示。首先通過數(shù)據(jù)終端進行數(shù)據(jù)收集,判斷數(shù)據(jù)是否出現(xiàn)空缺,如果空缺存在,則對數(shù)據(jù)進行補缺;在數(shù)據(jù)空缺判斷之后進行異常數(shù)據(jù)檢驗,如果檢測到異常數(shù)據(jù),則對數(shù)據(jù)進行異常處理;對所得數(shù)據(jù)集進行數(shù)據(jù)歸一化處理,最終獲得完整的數(shù)據(jù)樣本。
圖8 數(shù)據(jù)預處理流程
如果算法模型的設(shè)計過程中存在輸入?yún)?shù)與閾值數(shù)據(jù)偏差過大的情況,那么模型輸出值就會出現(xiàn)跨度較大。因此,為了能夠避免出現(xiàn)數(shù)據(jù)過擬合的情況,提高模型監(jiān)測速度和提高網(wǎng)絡(luò)收斂速度,本文對煙葉存儲的環(huán)境數(shù)據(jù)進行歸一化處理,將網(wǎng)絡(luò)模型的訓練輸出數(shù)據(jù)限制在[0-1]之間,數(shù)據(jù)歸一化公式如下:
其中,xi為樣本數(shù)據(jù)中的第i 個值,xmin表示樣本數(shù)據(jù)中的最小值,xmax代表樣本數(shù)據(jù)中的最大值。歸一化后的部分數(shù)據(jù)如表4 所示。
表4 部分歸一化數(shù)據(jù)
利用MATLAB 軟件中BP 神經(jīng)網(wǎng)絡(luò)工具箱的相關(guān)函數(shù)進行仿真實現(xiàn),最后可視化輸出結(jié)果等,仿真主要包括以下步驟:(1)依托newff函數(shù)搭建一個BP 神經(jīng)網(wǎng)絡(luò)框架;(2)依托trainlm函數(shù)訓練訓練BP 神經(jīng)網(wǎng)絡(luò);(3)依托sim函使將BP 神經(jīng)網(wǎng)絡(luò)訓練過程圖形化。
本文對所設(shè)計的算法模型進行測試。測試開始前將網(wǎng)絡(luò)收斂誤差調(diào)整為0.001,最大訓練次數(shù)為6000 次,隱含層節(jié)點數(shù)為5~8,如圖9 所示。為了找到最合適的隱藏層節(jié)點數(shù),對不同節(jié)點數(shù)的隱藏層進行仿真結(jié)果分析,訓練誤差如圖10 所示。
圖9 BP 神經(jīng)網(wǎng)絡(luò)訓練參數(shù)
圖10 不同隱含層節(jié)點數(shù)的模型所對應(yīng)的訓練誤差
通過對圖10 的訓練誤差分析得知,算法模型訓練效果最理想、誤差最小的隱含層節(jié)點數(shù)為6,并且無論訓練次數(shù)是1000、1500 還是2000,訓練誤差均為最低。隱含層節(jié)點數(shù)為6時其訓練結(jié)果如圖11 所示。從圖中可以看出,當BP 神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)模型結(jié)構(gòu)設(shè)置為“4-6-1”時,訓練2000 次網(wǎng)絡(luò)后的精度達到了0.001,因此本文的網(wǎng)絡(luò)模型結(jié)構(gòu)已經(jīng)確定。
圖11 倉儲煙葉狀態(tài)識別模型訓練誤差曲線
完成了算法模型的訓練之后,需要使用測試集數(shù)據(jù)驗證該算法的可行性。通過分析算法模型的測試結(jié)果,從3 種狀態(tài)的煙葉數(shù)據(jù)中隨機分成1000 組,并預處理數(shù)據(jù)之后驗證本文所設(shè)計的算法模型。當輸出值為0 時,認為煙葉為正常狀態(tài);當輸出值為1 時,煙葉發(fā)生輕微霉變;當輸出值為2 時,認為煙葉發(fā)生中度霉變。隨機選取其中3 組驗證結(jié)果如表5 所示,模型的識別率達到98.736%,由此判斷本文所設(shè)計的基于視覺和BP神經(jīng)網(wǎng)絡(luò)的在線煙葉霉變檢測算法模型性能良好。
表5 部分測試結(jié)果
傳統(tǒng)的在線煙葉檢測模型往往需要人工參與,具有較大主觀性,并且過程繁瑣,時間成本較高,很難準確檢測出霉變煙葉。因此,本文采用了BP 神經(jīng)網(wǎng)絡(luò)和數(shù)據(jù)預處理的方法,實現(xiàn)了煙葉霉變的在線檢測、識別和預警。本文構(gòu)建了BP 神經(jīng)網(wǎng)絡(luò)監(jiān)測煙葉儲存空間,并通過大量環(huán)境數(shù)據(jù)和監(jiān)測數(shù)據(jù)對煙葉狀態(tài)進行監(jiān)控,一旦出現(xiàn)霉變迅速處理。對整個識別模型在Matlab 中進行了仿真和測試,并最終擇優(yōu)確定BP 神經(jīng)網(wǎng)絡(luò)隱含層節(jié)點數(shù),確立了網(wǎng)絡(luò)模型。最終仿真結(jié)果表明,本文所設(shè)計的基于視覺和BP 神經(jīng)網(wǎng)絡(luò)的在線煙葉霉變檢測算法模型性能良好,模型的識別率達到98.736%。