蔣華偉, 郭 陶, 楊 震
(1.糧食信息處理與控制教育部重點試驗室(河南工業(yè)大學(xué)),鄭州 450001;2.河南工業(yè)大學(xué)信息科學(xué)與工程學(xué)院,鄭州 450001)
小麥在儲藏過程中,其品質(zhì)會隨著環(huán)境的變化和儲存時間的延長逐漸產(chǎn)生質(zhì)變甚至劣變,降低了小麥的食用品質(zhì)和加工價值,造成大量的經(jīng)濟(jì)損失,因此可通過研究預(yù)測儲藏小麥的品質(zhì)變化來降低其損失,對國民經(jīng)濟(jì)具有重要意義?,F(xiàn)有的文獻(xiàn)資料顯示小麥在發(fā)生質(zhì)變的同時其自身的生理生化指標(biāo)也相應(yīng)產(chǎn)生一定變化[1],利用這一特點可以對其品質(zhì)進(jìn)行預(yù)測。目前,對儲藏小麥品質(zhì)的判別方法主要有外觀特性分析[2]、食用品質(zhì)分析[3]以及通過儀器設(shè)備對其各項指標(biāo)進(jìn)行檢測來判斷其品質(zhì)的變化等,如邵小龍等[4]將LDA模型用于軟X射線圖像數(shù)據(jù)處理時,對小麥品質(zhì)判別的準(zhǔn)確率達(dá)到了95%以上,但是對有幼蟲侵蝕小麥的品質(zhì)判別效果不理想;張紅濤等[5]通過顯微電子計算機(jī)斷層掃描(computed tomography,CT)圖像對不同蟲期的小麥樣本進(jìn)行研究,可及時發(fā)現(xiàn)麥粒的早期浸染,但該方法掃描時間長,從而使得小麥品質(zhì)評價效率較低。這些方法人工和時間成本較高,且主觀性強(qiáng),評價體系煩瑣,忽略了小麥自身各生理生化指標(biāo)之間的相互作用及外部環(huán)境產(chǎn)生的影響,因此研究一種新的技術(shù)來判別小麥品質(zhì)至關(guān)重要。近年來,隨著人工智能和計算機(jī)技術(shù)的快速發(fā)展,為研究小麥儲藏品質(zhì)預(yù)測提供了新的思路。
反向傳播神經(jīng)網(wǎng)絡(luò)(back propagation neural network,BPNN)具有良好的自學(xué)習(xí)和自適應(yīng)能力,目前大量的實驗測試和理論研究表明BPNN算法是一種有效的學(xué)習(xí)算法[6]。但其在實際應(yīng)用中會出現(xiàn)收斂速度慢、泛化性能低等缺點[7]。為了提高其預(yù)測的準(zhǔn)確性,已有學(xué)者提出了一些優(yōu)化算法,如王振東等[8]采用改進(jìn)天牛群算法優(yōu)化BPNN的權(quán)值和閾值,并采用可變的感知因子及導(dǎo)向性學(xué)習(xí)策略,來增強(qiáng)算法跳出局部極值的能力;Yan等[9]為提高保險欺詐識別的準(zhǔn)確率,采用改進(jìn)自適應(yīng)遺傳算法來優(yōu)化BPNN的初始權(quán)值,以克服網(wǎng)絡(luò)易陷入局部極值、收斂速度慢和樣本依賴等缺點;另外,梁曉萍等[10]使用改進(jìn)頭腦風(fēng)暴智能算法對BPNN進(jìn)行優(yōu)化,自動搜索網(wǎng)絡(luò)的初始權(quán)值和閾值,避免網(wǎng)絡(luò)陷入局部最優(yōu),增加網(wǎng)絡(luò)的收斂速度,從而提高圖像還原質(zhì)量;此外,段秀娟[11]基于混沌粒子群對BPNN進(jìn)行優(yōu)化,用于網(wǎng)絡(luò)安全的風(fēng)險評估,減小了相對誤差,提高了評估的準(zhǔn)確率;Xiao等[12]利用粒子群算法的全局搜索能力對BPNN的權(quán)值和閾值進(jìn)行優(yōu)化,用于齒輪箱的故障診斷。這些方法在一定程度上能夠優(yōu)化BPNN的性能,但搜索速度較慢,為得到精確的解需要花費較多時間,特別是采用粒子群優(yōu)化算法(particle swarm optimization,PSO)優(yōu)化BPNN,不僅穩(wěn)定性較差,且由于PSO算法中粒子習(xí)慣聚集于自身歷史極值或群體歷史極值,容易陷入局部極值,并出現(xiàn)早熟收斂、停滯等現(xiàn)象[13-14]。
為了克服上述PSO算法優(yōu)化BPNN存在的缺點,現(xiàn)通過動態(tài)調(diào)整PSO算法中的慣性權(quán)重和學(xué)習(xí)因子,使慣性權(quán)重和學(xué)習(xí)因子隨著迭代次數(shù)的增加而相應(yīng)變化,使用改進(jìn)后的PSO算法優(yōu)化BPNN中的權(quán)值參數(shù),建立一種改進(jìn)PSO算法優(yōu)化的BPNN預(yù)測模型(improved PSO-BPNN,IPSO-BP),以實現(xiàn)高效準(zhǔn)確預(yù)測小麥儲藏品質(zhì)的目的。
BPNN通過對樣本數(shù)據(jù)反復(fù)訓(xùn)練,不斷更新網(wǎng)絡(luò)的權(quán)值和閾值,減小其訓(xùn)練誤差,從而逼近期望值。其基本結(jié)構(gòu)如圖1所示。
x1,x2,…,xi,…,xn為BPNN的輸入;wji為輸入層節(jié)點i和隱含層節(jié)點j之間的權(quán)值;hj為隱含層節(jié)點的輸入值;wkj為隱含層節(jié)點j和輸出層節(jié)點k之間的權(quán)值;y1,y2,…,yk,…,ym為BPNN的輸出
將訓(xùn)練樣本輸入模型,依次經(jīng)過輸入層、隱含層和輸出層進(jìn)行處理,得到模型的輸出。其中隱含層的輸出hj和輸出層的輸出yk的表達(dá)式分別為
(1)
(2)
式中:b1、b2分別為輸入層和隱含層的閾值;f()為激活函數(shù)。
(3)
根據(jù)目標(biāo)函數(shù)計算BPNN模型的誤差,當(dāng)誤差不小于指定值時,將誤差從輸出層向隱含層、輸入層逐層傳遞,并按照隨機(jī)梯度下降算法更新其權(quán)值和閾值,如式(4)和式(5)所示,目標(biāo)函數(shù)如式(6)所示,即
(4)
(5)
(6)
在PSO算法中,對分布在d維空間中的n個粒子,第i個粒子的位置為Xi=(xi1,xi2,…,xid),飛行速度為Vi=(vi1,vi2,…,vid),其中xid、vid為粒子i在第d維的分量;Pi=(pi1,pi2,…,pid)為粒子i到目前為止搜索到的最優(yōu)位置,即個體極值Pbest;gi=(gi1,gi2,…,gid)為粒子群目前搜索到的最優(yōu)位置,即全局極值gbest。
粒子在迭代過程中,通過個體極值和全局極值更新其自身的飛行速度和位置,表達(dá)式為
(7)
(8)
PSO算法中使用慣性權(quán)重來平衡粒子的局部和全局搜索能力。當(dāng)其取較大值時,不易陷入局部極值,可增強(qiáng)算法的全局搜索能力;反之能加快算法的收斂速度,提高算法的局部搜索能力。
為了保證粒子在迭代前期擁有良好的局部搜索能力,同時在后期又可以快速收斂,可以對慣性權(quán)重ω進(jìn)行動態(tài)調(diào)整,常采用線性遞減策略調(diào)整慣性權(quán)重,即
ω(t)=ωmax-(ωmax-ωmin)t/tmax
(9)
式(9)中:ωmax為慣性權(quán)重的最大值;ωmin為慣性權(quán)重的最小值;t為當(dāng)前的迭代次數(shù);tmax為最大迭代次數(shù)。由于PSO算法中粒子的搜索過程是非線性且復(fù)雜的,為更好反映出粒子的實際搜索過程,采用非線性函數(shù)動態(tài)調(diào)整慣性權(quán)重,表達(dá)式為
ω(t)=ωmax-(ωmax-ωmin)×
[2/(1+e-2t/tmax)-1]
(10)
通過學(xué)習(xí)因子調(diào)節(jié)自我認(rèn)知和群體認(rèn)知兩者之間的比例,以獲得全局最優(yōu)解。在式(7)中,當(dāng)c1=0時,粒子失去自我認(rèn)知能力,此時粒子具有擴(kuò)展搜索空間的能力,并具有較快的收斂速度,但由于缺少局部搜索,對于復(fù)雜的問題,比基本的PSO算法更易陷入局部最優(yōu)。當(dāng)c2=0時,由于粒子失去了群體認(rèn)知能力,粒子之間沒有信息交流,群體中的粒子個體盲目的進(jìn)行隨機(jī)搜索,進(jìn)而收斂速度慢,得到最優(yōu)解的可能性小。
因此合理調(diào)節(jié)c1和c2的大小,可以調(diào)整粒子的自我認(rèn)知和群體認(rèn)知能力在速度更新中所占的比重。在迭代早期,主要考慮粒子的自我認(rèn)知能力,在迭代后期,群體認(rèn)知部分占主導(dǎo)地位,從而使整個過程有利于全局最優(yōu)解的收斂和精度的提高。因而在算法初期使用較大的c1和較小的c2,然后逐漸減小c1并增大c2,可以實現(xiàn)在初期粒子能夠在局部范圍內(nèi)進(jìn)行比較細(xì)致的搜索,同時隨著c1的減小使其不易陷入局部極值,而在算法后期則可以提高算法的收斂速度。采用改進(jìn)后的式(11)和式(12)來調(diào)整,表達(dá)式為
c1(t)=(c1e-c1s)(t/tmax)2+c1s
(11)
c2(t)=(c2e-c2s)(t/tmax)2+c2s
(12)
式中:c1s和c1e分別為c1的初始值和終止值;c2s和c2e分別為c2的初始值和終止值;t為當(dāng)前的迭代次數(shù);tmax為最大迭代次數(shù)。
基于上述動態(tài)慣性權(quán)重和學(xué)習(xí)因子,采用式(13)來改進(jìn)PSO算法中的粒子飛行速度,表達(dá)式為
(13)
使用IPSO-BPNN模型,使其在訓(xùn)練前期不易陷入局部極值并在后期快速收斂。該模型的具體訓(xùn)練過程如下。
步驟一初始化IPSO-BP模型的結(jié)構(gòu),隨機(jī)生成一群粒子。
步驟二計算各粒子的適應(yīng)度值fitness。
步驟三更新粒子的個體極值和全局極值。
步驟四如果未達(dá)到終止條件則進(jìn)行下一步,否則結(jié)束。
步驟五使用式(13)和式(8)更新粒子的速度和位置。
步驟六輸入一組數(shù)據(jù),根據(jù)式(2)計算模型的輸出,根據(jù)式(6)計算誤差值。
步驟七如果達(dá)到訓(xùn)練次數(shù)則進(jìn)行步驟三,否則進(jìn)行步驟六。
IPSO-BPNN模型流程如圖2所示。
圖2 IPSO-BPNN模型訓(xùn)練過程
選用河南省農(nóng)科院培育的周麥22和鄭麥9023進(jìn)行實驗,并將小麥分為優(yōu)良、中等和劣質(zhì)3類,在進(jìn)行實驗時分別對應(yīng)1、0、-1。同時選取降落數(shù)值、脂肪酸值、電導(dǎo)率、發(fā)芽率、過氧化氫酶、還原糖和丙二醛7個生理生化指標(biāo)對小麥儲藏品質(zhì)進(jìn)行分析。
小麥7個生理生化指標(biāo)之間存在復(fù)雜的相互關(guān)系,所表達(dá)的信息也具有很大的差異,因此在對小麥儲藏品質(zhì)進(jìn)行預(yù)測之前需要對各指標(biāo)數(shù)據(jù)進(jìn)行相關(guān)的預(yù)處理以選取最佳指標(biāo)。
由于小麥各指標(biāo)在數(shù)量級上具有差別,同時為了簡化計算過程,在對小麥進(jìn)行相關(guān)性分析之前需要對各指標(biāo)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理。使用min-max標(biāo)準(zhǔn)化方法對各指標(biāo)原始數(shù)據(jù)進(jìn)行歸一化處理,表達(dá)式為
(14)
對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理后,使用式(15)的曼哈頓距離計算分析各指標(biāo)間的相似性,計算結(jié)果如表1、表2所示,曼哈頓距離越小說明兩個指標(biāo)越相似,公式為
(15)
由表1、表2可知,在周麥22和鄭麥9023中降落數(shù)值、脂肪酸值、電導(dǎo)率、還原糖和丙二醛之間的距離較小,表明它們之間相似性更強(qiáng),在反映小麥儲藏品質(zhì)方面具有一致性;而發(fā)芽率和過氧化氫酶之間距離較小,表明它們兩者在反映小麥儲藏品質(zhì)方面具有一致性。因此在后續(xù)進(jìn)行實驗時,可以根據(jù)指標(biāo)之間的相似性選取合適的指標(biāo)對預(yù)測模型進(jìn)行訓(xùn)練,以保證小麥品質(zhì)預(yù)測的準(zhǔn)確性和可靠性。
表1 周麥22各指標(biāo)之間的曼哈頓距離
表2 鄭麥9023各指標(biāo)之間的曼哈頓距離
BPNN的結(jié)構(gòu)[15-16]和PSO算法中粒子的個數(shù)會對實驗的結(jié)果產(chǎn)生一定影響,因此需要分析不同隱含層神經(jīng)元個數(shù)和粒子個數(shù)對IPSO-BPNN模型產(chǎn)生的誤差。采用式(16)的均方誤差來評價模型的預(yù)測效果。預(yù)測結(jié)果的均方誤差越小,表明模型的預(yù)測效果越好。
(16)
為了分析不同隱含層神經(jīng)元的個數(shù)和粒子的個數(shù)對IPSO-BPNN模型所帶來的影響,分別分析了采用7個指標(biāo)和5個指標(biāo)作為輸入數(shù)據(jù)時的情況,其中輸出層的神經(jīng)元個數(shù)為1,隱含層的層數(shù)為1,慣性權(quán)重的最大值為0.9,最小值為0.4,學(xué)習(xí)因子c1的初始值為2.75,終止值為1.25,學(xué)習(xí)因子c2的初始值為0.5,終止值為2.25,最大迭代次數(shù)為1 400次;激活函數(shù)使用式(3),目標(biāo)函數(shù)即粒子適應(yīng)度函數(shù)使用式(6);實驗數(shù)據(jù)采用周麥22。分別計算隱含層神經(jīng)元個數(shù)為6、8、10、12、14,粒子個數(shù)為20、30、40時IPSO-BPNN模型所產(chǎn)生的均方誤差,其結(jié)果如表3和表4所示。
表3 采用7個指標(biāo)均方誤差對比
表4 采用5個指標(biāo)均方誤差對比
由表3和表4可知,當(dāng)采用7個指標(biāo)對本文模型進(jìn)行訓(xùn)練時,其均方誤差與采用5個指標(biāo)進(jìn)行訓(xùn)練時相比較大,結(jié)合表1和表2可知,這是由于發(fā)芽率和過氧化氫酶與其他5個指標(biāo)之間的相似性較低,它們之間可能存在較強(qiáng)的相互作用,用來表達(dá)小麥品質(zhì)時穩(wěn)定性差,因而具有較大的均方誤差。
由表4可知,當(dāng)隱含層神經(jīng)元個數(shù)為10、粒子數(shù)為30時,采用5個指標(biāo)對本文模型進(jìn)行訓(xùn)練得到的均方誤差最小。當(dāng)隱含層的神經(jīng)元個數(shù)過少時,IPSO-BPNN模型無法充分學(xué)習(xí)獲得各指標(biāo)對小麥儲藏品質(zhì)變化的經(jīng)驗表達(dá),從而導(dǎo)致訓(xùn)練的均方誤差較大;反之會產(chǎn)生過擬合現(xiàn)象。當(dāng)粒子數(shù)過少時,由于種群的多樣性差,易引起過早收斂,從而不易找到全局最優(yōu)解;反之會使該模型的尋優(yōu)效率降低。
為驗證本文模型在預(yù)測小麥儲藏品質(zhì)上的準(zhǔn)確性和可靠性,使用隱含層神經(jīng)元個數(shù)為10、粒子數(shù)為30的IPSO-BPNN模型,并采用降落數(shù)值、脂肪酸值、電導(dǎo)率、還原糖和丙二醛5個指標(biāo)作為輸入數(shù)據(jù),分別在不同迭代次數(shù)下對周麥22進(jìn)行品質(zhì)預(yù)測,將其與BPNN模型和PSO-BPNN模型的預(yù)測結(jié)果進(jìn)行比較,結(jié)果如圖3所示。
圖3 不同迭代次數(shù)下3種模型對周麥22預(yù)測的均方誤差
由圖3可知,在不同迭代次數(shù)下對3種模型分別進(jìn)行訓(xùn)練,當(dāng)?shù)螖?shù)為1 400次時,相對于其他迭代次數(shù),IPSO-BPNN模型和PSO-BPNN模型預(yù)測的均方誤差最小,BPNN模型預(yù)測的均方誤差也相對較小。因此分別采用BPNN模型、PSO-BPNN模型和IPSO-BPNN模型對周麥22和鄭麥9023的小麥品質(zhì)進(jìn)行預(yù)測,其中模型的迭代次數(shù)設(shè)置為1 400。結(jié)果如表5和表6所示。
表5 周麥22在3種模型下的預(yù)測結(jié)果
由表5可知,使用BPNN、PSO-BPNN和IPSO-BPNN對周麥22小麥品質(zhì)進(jìn)行預(yù)測的均方誤差分別為0.176、0.122和0.066;由表6可知,3種模型對鄭麥9023小麥品質(zhì)預(yù)測的均方誤差分別為0.179、0.089和0.019。由此可以看出與BPNN和PSO-BPNN相比,IPSO-BPNN降低了預(yù)測值與實際值之間的均方誤差,提高了預(yù)測的精度,表明IPSO-BPNN模型在由小麥指標(biāo)數(shù)據(jù)預(yù)測其品質(zhì)時,具有更高的精確度和良好的可靠性。
提出了一種IPSO-BPNN模型,該模型采用非線性函數(shù)對PSO算法中的慣性權(quán)重和學(xué)習(xí)因子進(jìn)行動態(tài)調(diào)整,使PSO算法可以避免陷入局部極值,利用改進(jìn)后的PSO算法更新BPNN中的權(quán)值參數(shù),加快了BPNN的收斂速度。
將IPSO-BPNN模型應(yīng)用于周麥22和鄭麥9023的小麥儲藏品質(zhì)預(yù)測,并與BPNN模型和PSO-BPNN模型相比較,其預(yù)測值與實際值之間的均方誤差顯著降低,表明改進(jìn)后的模型在預(yù)測小麥儲藏品質(zhì)時具有良好效果,可用于相關(guān)的小麥儲藏品質(zhì)預(yù)測。