摘? 要: 采用遺傳學(xué)習(xí)算法和誤差反向傳播(BP)算法相結(jié)合的混合算法來(lái)訓(xùn)練前饋人工神經(jīng)網(wǎng)絡(luò),從而提高神經(jīng)網(wǎng)絡(luò)的收斂質(zhì)量和收斂速度,并將此算法運(yùn)用到電子舌對(duì)黃酒的檢測(cè)上。與經(jīng)典BP網(wǎng)絡(luò)及附加動(dòng)量項(xiàng)BP網(wǎng)絡(luò)的訓(xùn)練與預(yù)測(cè)進(jìn)行了比較。結(jié)果顯示:遺傳優(yōu)化BP算法具有預(yù)測(cè)精度高、收斂速度快及運(yùn)行時(shí)間短的優(yōu)點(diǎn),是一種快速、可靠的方法。
關(guān)鍵詞: 黃酒; 電子舌; BP神經(jīng)網(wǎng)絡(luò); 遺傳算法
?
黃酒是中華民族傳統(tǒng)酒,也是華夏瑰寶和酒中奇葩[1]。從數(shù)據(jù)顯示,2000、2001和2002年全國(guó)黃酒產(chǎn)量均為140萬(wàn)噸,2003年為160萬(wàn)噸,2004年為180萬(wàn)噸,到2005年則上升為200萬(wàn)噸。隨著黃酒產(chǎn)量與消費(fèi)量的增加,問(wèn)題也隨之出現(xiàn):如目前許多黃酒企業(yè)均在生產(chǎn)3年以上的陳酒,但其中就存在以次充好的情況,以低酒齡酒冒充所謂“五年陳酒”、“十年陳酒”等高齡酒陳酒。新國(guó)標(biāo)GB/T13662-2000(黃酒)中對(duì)“標(biāo)注酒齡”下了明確定義[2]:“標(biāo)注酒齡”為銷售包裝標(biāo)簽上標(biāo)注的酒齡,以勾兌酒的酒齡加權(quán)平均計(jì)算。酒齡在3年(或3年以上)的黃酒,應(yīng)以優(yōu)級(jí)酒為基酒,其中所標(biāo)注酒齡的基酒不低于50 %。通過(guò)以上規(guī)定,對(duì)陳酒作出了明確的定義,從而一定程度上規(guī)范了陳年酒的生產(chǎn)。但要解決這些問(wèn)題,實(shí)現(xiàn)對(duì)黃酒品質(zhì)進(jìn)行準(zhǔn)確分析,維護(hù)消費(fèi)者利益,改造傳統(tǒng)黃酒和提高新工藝黃酒,迫切需要具有科學(xué)依據(jù)的簡(jiǎn)便、快速的現(xiàn)代檢測(cè)方法。
電子舌技術(shù)是上世紀(jì)末發(fā)展起來(lái)的一種分析、識(shí)別液體“味道”的新型檢測(cè)手段[3]。利用電子舌對(duì)黃酒品質(zhì)進(jìn)行檢測(cè),優(yōu)點(diǎn)很突出:首先,不需要對(duì)樣品進(jìn)行任何預(yù)處理,直接對(duì)樣品進(jìn)行檢測(cè);其次,檢測(cè)速度快,電子舌檢測(cè)一個(gè)樣品只需幾十秒到幾分鐘,相比其他儀器要快很多;最后,電子舌獲取的是對(duì)液體樣本的味覺特征的總體評(píng)價(jià),易于與其他方法或儀器(如電子鼻等)所得結(jié)果進(jìn)行相關(guān)分析。
綜合考慮了電子舌的以上優(yōu)點(diǎn),本文采用了法國(guó)阿爾法公司的Astree型電子舌對(duì)黃酒進(jìn)行檢測(cè)。在電子舌的模式識(shí)別數(shù)據(jù)處理方面,人工神經(jīng)網(wǎng)絡(luò)法特別是BP網(wǎng)絡(luò),用得比較多[4-5]。BP網(wǎng)絡(luò)的突出優(yōu)點(diǎn)就是具有很強(qiáng)的非線性映射能力和柔性的網(wǎng)絡(luò)結(jié)構(gòu),但同時(shí)存在已陷入局部極小、收斂速度慢和引起振蕩效應(yīng)等。由于遺傳算法具有很強(qiáng)的宏觀搜索能力,且能以較大的概率找到全局最優(yōu)解,所以本文將二者結(jié)合起來(lái),形成遺傳優(yōu)化BP算法,達(dá)到優(yōu)化網(wǎng)絡(luò)的目的。
1 實(shí)驗(yàn)材料、儀器和方法
1.1 實(shí)驗(yàn)樣品
分別從3個(gè)公司中獲取3種品牌黃酒:女兒紅、古越龍山、會(huì)稽山。女兒紅分一年陳、三年陳、五年陳等3種不同灑齡的黃酒,古越龍山也分一年陳、三年陳、五年陳等3種不同酒齡的黃酒,會(huì)稽山僅一年陳1種酒齡的黃酒。這樣共有7種不同組合的黃酒。
1.2 儀器
采用法國(guó)阿爾法公司的Astree型電子舌。該電子舌系統(tǒng)由以下幾部分組成:傳感器陣列、自動(dòng)進(jìn)樣器、數(shù)據(jù)采集系統(tǒng)及與電子舌配套的數(shù)據(jù)分析軟件。其中傳感器陣列獲取信號(hào),電子舌主機(jī)里包含數(shù)據(jù)采集系統(tǒng)及控制自動(dòng)進(jìn)樣器的系統(tǒng),軟件包可設(shè)置傳感器的一些工作參數(shù)、對(duì)數(shù)據(jù)進(jìn)行處理及模式識(shí)別。傳感器陣列由7個(gè)味覺傳感器加1個(gè)參比電極組成。這7個(gè)傳感器對(duì)5種味覺:酸、甜、苦、咸、鮮都有響應(yīng)。表1給出了這7個(gè)傳感器對(duì)5種味覺基本物質(zhì)的靈敏度。
?
1.3 實(shí)驗(yàn)方法
試驗(yàn)中,每種瓶裝黃酒開封后,馬上進(jìn)行實(shí)驗(yàn)。倒入容量為120 mL的燒杯內(nèi),每杯為80 mL,每種黃酒做12個(gè)重復(fù)樣品。用體積比為10 %的酒精做為電子舌傳感器的訓(xùn)練和清洗過(guò)程的溶劑。
2 實(shí)驗(yàn)結(jié)果與分析
圖1所示為電子舌7個(gè)傳感器對(duì)7個(gè)樣品(女兒紅一年陳、女兒紅三年陳、女兒紅五年陳、古越龍山一年陳、古越龍山三年陳、古越龍山五年陳、會(huì)稽山一年陳)的響應(yīng)曲線圖。從圖中可以看出這7種響應(yīng)曲線是不同的。對(duì)比傳感器對(duì)一年陳的3個(gè)不同品牌的黃酒樣品的響應(yīng)曲線可以看出:ZZ、BA、GA和HA這4個(gè)傳感器對(duì)古越龍山和女兒紅的響應(yīng)曲線比較接近,而與會(huì)稽山的響應(yīng)曲線區(qū)別較明顯;CA、BB和JB這3個(gè)傳感器對(duì)3種樣品的響應(yīng)曲線區(qū)別較大,造成它們差異的主要因素可能是3個(gè)不同品牌由3家不同公司生產(chǎn),在生產(chǎn)工藝、所用原料等方面存在差異。對(duì)比傳感器對(duì)同一品牌不同酒齡的黃酒樣品的響應(yīng)曲線可以看出:女兒紅和古越龍山的3個(gè)酒齡傳感器的響應(yīng)曲線在剛開始時(shí)差異明顯,在60~120 s的過(guò)程內(nèi),所有傳感器的響應(yīng)值逐漸趨于穩(wěn)定,電勢(shì)差變化很小,也即被測(cè)樣品中的離子逐漸進(jìn)入傳感器的膜,改變傳感器的膜電勢(shì),最后趨于平衡。本論文取120 s平穩(wěn)值用于模式識(shí)別與分析。
?
3 經(jīng)典BP算法及其改進(jìn)算法
典型的BP網(wǎng)絡(luò)是三層網(wǎng)絡(luò),包括輸入層、輸出層及隱含層,對(duì)于網(wǎng)絡(luò)的訓(xùn)練采用反向傳播BP(Back Propagation)算法[7]。這是一種有導(dǎo)師學(xué)習(xí)方法,其基本思想是最小二乘算法。它利用根均方誤差和梯度下降法來(lái)實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)連接權(quán)的修正,從而使網(wǎng)絡(luò)趨向收斂,也即使網(wǎng)絡(luò)的全局誤差趨向極小值。
BP改進(jìn)算法中應(yīng)用比較廣泛的是附加動(dòng)量項(xiàng)的BP算法。經(jīng)典BP算法實(shí)質(zhì)上是一種簡(jiǎn)單的最速下降靜態(tài)尋優(yōu)算法,在修正網(wǎng)絡(luò)權(quán)值時(shí),只是按該時(shí)刻的負(fù)梯度方式進(jìn)行修正,而沒(méi)有考慮以前積累的經(jīng)驗(yàn),從而常常使學(xué)習(xí)過(guò)程發(fā)生振蕩,收斂緩慢。附加動(dòng)量項(xiàng)的BP算法是網(wǎng)絡(luò)在修正權(quán)值時(shí),不僅考慮誤差在梯度上的作用,而且考慮在誤差曲面上的變化趨勢(shì)的影響。Rumelhart、Hinton和Williams建議在權(quán)值修正表達(dá)式中加上一項(xiàng)“動(dòng)量項(xiàng)”:
附加動(dòng)量法的實(shí)質(zhì)就是將最后一次權(quán)值變化的影響,通過(guò)一個(gè)動(dòng)量因子來(lái)傳遞,如此防止了Δωij=0的出現(xiàn),有助于使網(wǎng)絡(luò)從誤差曲面的局部極小值中跳出來(lái)。
4 基于遺傳算法的BP神經(jīng)網(wǎng)絡(luò)(GA-BP算法)
4.1 基本思想
??? 遺傳算法[6]GA(Genetic Algorithm)是一種非導(dǎo)數(shù)優(yōu)化的隨機(jī)優(yōu)化方法,可以對(duì)一復(fù)雜的、多峰的、非線性極不可微的函數(shù)實(shí)現(xiàn)全局搜索,而BP算法對(duì)局部搜索比較有效。因此為了使算法能很快地找到滿意解,可以先用遺傳算法對(duì)初始權(quán)值進(jìn)行優(yōu)化,在解空間中定位出較好的搜索空間,然后用BP算法在這些小的解空間中搜索出最優(yōu)解。
4.2 實(shí)現(xiàn)方法及步驟
4.2.1 編碼方案
對(duì)BP網(wǎng)絡(luò)中連接權(quán)值和閾值進(jìn)行編碼主要有2種方法:一種是采用二進(jìn)制編碼方案,另一種是采用實(shí)數(shù)編碼方案。這里采用實(shí)數(shù)編碼。
設(shè)有三層BP網(wǎng)絡(luò),其拓?fù)浣Y(jié)構(gòu)示意圖如圖2所示,輸入層×隱含層×輸出層為n×k×m的結(jié)構(gòu),其中wij為輸入層中第i個(gè)結(jié)點(diǎn)與隱含層第j個(gè)結(jié)點(diǎn)的連接權(quán)值;oij為隱含層中第j個(gè)結(jié)點(diǎn)與輸出層第i個(gè)結(jié)點(diǎn)的連接權(quán)值。對(duì)該BP網(wǎng)絡(luò)編碼為:w11w12...w1kw21w22…w2k…wmko11o12…o1no21…o2n…okn。
?
4.2.2 適應(yīng)度函數(shù)
衡量BP網(wǎng)絡(luò)性能的主要指標(biāo)是網(wǎng)絡(luò)的實(shí)際輸出值與期望輸出值之間的誤差平方和。該誤差平方和小則表示該網(wǎng)絡(luò)性能好。所以,本文中適應(yīng)度函數(shù)表示為:
式中,S為均方根誤差;n為輸出層神經(jīng)元個(gè)數(shù);l為訓(xùn)練樣本數(shù);?yi為對(duì)應(yīng)第i個(gè)訓(xùn)練樣本的網(wǎng)絡(luò)實(shí)際輸出值;Ti為對(duì)應(yīng)第i個(gè)訓(xùn)練樣本的網(wǎng)絡(luò)期望輸出值。
4.2.3 遺傳操作
初始種群的群體大小(POPSIZE)對(duì)計(jì)算的搜索空間有很大的影響,這里取POPSIZE=60。確定遺傳操作算子的步驟如下:
(1)選擇操作:淘汰個(gè)體的操作,常用的有輪盤賭選擇法和排序選擇法。本文采用穩(wěn)態(tài)輪盤賭選擇法。具體過(guò)程為:將當(dāng)代種群的個(gè)體適應(yīng)度由大到小進(jìn)行排序,按下式概率值選擇個(gè)體:,其中fi為個(gè)體i的適應(yīng)度值,N為染色體數(shù)。
(2)交叉操作:依照交叉概率,隨即選擇的2個(gè)父?jìng)€(gè)體按照一定的規(guī)則進(jìn)行某些位置上的字符交換,產(chǎn)生新個(gè)體。
(3)變異操作:模擬生物進(jìn)化過(guò)程中的基因突變,常用方法為按位變異。
4.2.4 BP訓(xùn)練
經(jīng)過(guò)以上的遺傳運(yùn)算,就得到了BP神經(jīng)網(wǎng)絡(luò)的誤差最小的初始權(quán)值。將以上得到的初始權(quán)值代入BP網(wǎng)絡(luò)進(jìn)行正常的前饋訓(xùn)練,得到計(jì)算樣本的實(shí)際輸出值和期望輸出的誤差平方和?著BP,若達(dá)到了指定的網(wǎng)絡(luò)訓(xùn)練精度,則結(jié)束,否則轉(zhuǎn)入遺傳算法繼續(xù)優(yōu)化。
5 在黃酒檢測(cè)中的應(yīng)用
在實(shí)驗(yàn)中,每類樣品做了12個(gè)重復(fù),從每類樣品中隨機(jī)取出7個(gè)共7×7=49個(gè)樣品組成訓(xùn)練集(每組黃酒中各取7個(gè)樣品),剩下的共5×7=35個(gè)樣品組成測(cè)試集(每組黃酒中各取5個(gè)樣品)。將從圖2中提取的特征參數(shù)作為神經(jīng)網(wǎng)絡(luò)的輸入向量。經(jīng)多次試驗(yàn)比較后,選擇BP網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)為7-5-3。
利用MatLab7.0編程實(shí)現(xiàn)訓(xùn)練與預(yù)測(cè)。參數(shù)的選擇如下:經(jīng)典BP算法學(xué)習(xí)率0.9;附加動(dòng)量項(xiàng)BP算法學(xué)習(xí)率0.9,動(dòng)態(tài)項(xiàng)因子0.7;遺傳算法初始種群60,交叉率0.8,變異率0.01;單個(gè)樣本的最大誤差0.003,最大循環(huán)次數(shù)為3 000。訓(xùn)練集的回判正確率和測(cè)試集的判斷正確率如表2所示。圖3所示為3種算法的訓(xùn)練誤差平方和隨訓(xùn)練步數(shù)的變化曲線。
?
?
從表2可以看出,雖然對(duì)訓(xùn)練集的回判正確率相差不大,但對(duì)測(cè)試集的判斷正確率,遺傳優(yōu)化BP為98.2 %,比經(jīng)典BP算法的89.3 %和附加動(dòng)量項(xiàng)BP算法的94.6 %都要好。從圖3的對(duì)比中可以看到:經(jīng)典BP算法和附加動(dòng)量項(xiàng)BP算法分別運(yùn)行到1 502步和1 008步收斂到指定精度,而遺傳優(yōu)化BP學(xué)習(xí)算法收斂到相同精度只用了403步。此時(shí)的程序運(yùn)行時(shí)間:前兩者分別為102.874s和87.644s ,后者為29.871s。
為更好地考察與比較3種算法訓(xùn)練的網(wǎng)絡(luò)優(yōu)劣性,再在每類的12次重復(fù)中隨機(jī)選取測(cè)試集與訓(xùn)練集,進(jìn)行交互驗(yàn)證,共重復(fù)了3次,分別選取的組成測(cè)試集樣本數(shù)為6、8、9,則對(duì)應(yīng)的組成訓(xùn)練集的樣本數(shù)分別為6、4、3。驗(yàn)證結(jié)果說(shuō)明:遺傳優(yōu)化BP算法比現(xiàn)有的經(jīng)典BP算法和附加動(dòng)量項(xiàng)BP算法在預(yù)測(cè)精度、收斂速度及運(yùn)行時(shí)間上都取得了較好的效果。
GA算法能以較快的速度減小搜索空間范圍,而且不易陷入局部極小點(diǎn);而BP算法則具有局部搜索效率高的特點(diǎn),將兩者結(jié)合可以得到比現(xiàn)有的學(xué)習(xí)算法更好的學(xué)習(xí)效果,是一種快速、可靠的方法。
GA-BP算法可以較好地運(yùn)用到電子舌的模式識(shí)別中。本方法對(duì)黃酒測(cè)試樣本集的判斷率為98.2%,要提高預(yù)測(cè)精度,有待從算法本身的改進(jìn)方面作進(jìn)一步的研究。
參考文獻(xiàn)
[1] ?鮑忠定, 許榮年. 黃酒香氣成分的分析. 釀酒科技,1999,95(5):66-68.
[2] ?李博斌. 黃酒新國(guó)標(biāo)介紹與分析. 釀酒科技, 2001,105(3):73-75.
[3] ?HABARA M, IKEZAKI H, TOKO K. Study of sweet taste ?evaluation using taste sensor with lipid/polymer membranes,Biosens. Bioelectron.2004,19(12):1559-1563.
[4] ?LVOVA L, LEGIN A, VLASOV Y. Electronic tongue and?its application.Seensors and Actuators B, 2003,95:391-399.
[5] ?滕炯華, 王磊, 袁朝輝. 基于電子舌技術(shù)的果汁飲料識(shí)別.測(cè)控技術(shù), 2004,23(11):4-5.
[6] ?GOLDBERG D E. Genetic algorithm in search, optimization?and Machine learning[M]. Reading, MA: Addison-Wesley, ?1989.
[7] ?飛思科技產(chǎn)品研發(fā)中心. MATLAB 6.5輔助神經(jīng)網(wǎng)絡(luò)分析與設(shè)計(jì). 北京: 電子工業(yè)出版社, 2003.