何明慧,徐 怡,2,王 冉,胡善忠
1.安徽大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,合肥 230601
2.安徽大學(xué)教育部智能計(jì)算與信號(hào)處理實(shí)驗(yàn)室,合肥 230039
酒類品質(zhì)通常影響著市場(chǎng)商品的供應(yīng)需求以及食品安全?,F(xiàn)實(shí)生活中,酒類品質(zhì)通常由內(nèi)部因素與外部因素共同影響[1]。通常酒類品質(zhì)均依靠人工檢驗(yàn)或經(jīng)驗(yàn)判定,當(dāng)樣本數(shù)目逐漸增大,人工方法則會(huì)變得效率極低。隨著人工智能技術(shù)的發(fā)展,神經(jīng)網(wǎng)絡(luò)具有模擬人腦高效處理信息的特點(diǎn),并且已經(jīng)廣泛應(yīng)用于預(yù)測(cè)估計(jì)、模式識(shí)別、圖像處理及函數(shù)優(yōu)化等領(lǐng)域[2]。目前BP神經(jīng)網(wǎng)絡(luò)的應(yīng)用最為廣泛,其具有結(jié)構(gòu)簡(jiǎn)單、訓(xùn)練快速及自學(xué)習(xí)等特點(diǎn)。BP神經(jīng)網(wǎng)絡(luò)的性能取決于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、連接權(quán)值及學(xué)習(xí)函數(shù)等。如果上述條件設(shè)置不合理,網(wǎng)絡(luò)則會(huì)出現(xiàn)收斂速度慢,易陷入局部極小值等問題。
神經(jīng)網(wǎng)絡(luò)中每?jī)蓚€(gè)神經(jīng)元節(jié)點(diǎn)之間包含一個(gè)連接權(quán)值,通常權(quán)值的初始化范圍在[-a,a]或[0,a]之間(其中0<a<1)。目前神經(jīng)網(wǎng)絡(luò)的權(quán)值初始化的方法共分為兩類,一類為區(qū)間分析法,另一類為迭代初始化法。區(qū)間分析法主要包括,Nguyen與Widrow提出隱含層的權(quán)值區(qū)間為(其中H為隱含層節(jié)點(diǎn)數(shù),N為隱含層節(jié)點(diǎn)的權(quán)值個(gè)數(shù))[3]。Boers與Kuiper提出權(quán)值的初始化區(qū)間為(其中din為輸入節(jié)點(diǎn)數(shù))[4]。Kim與Ra提出神經(jīng)網(wǎng)絡(luò)的最大權(quán)值為(其中η為網(wǎng)絡(luò)學(xué)習(xí)率,din為輸入節(jié)點(diǎn)數(shù))[5]。Sodhi與Chandra提出神經(jīng)網(wǎng)絡(luò)的權(quán)值區(qū)間為(其中H為隱含層節(jié)點(diǎn)數(shù))[6]。Drago與Ridella提出隱含層的權(quán)值區(qū)間為(其中dh為隱含層節(jié)點(diǎn)數(shù))[7]。迭代初始化法主要包括,Yang提出加速粒子群算法(ACPSO),并且此算法已經(jīng)運(yùn)用于多目標(biāo)優(yōu)化問題中[8]。Ren提出為了避免在訓(xùn)練中網(wǎng)絡(luò)陷入局部極小值,使用粒子群優(yōu)化算法動(dòng)態(tài)選取權(quán)值[9]。Chouikhi與Ammar提出采用粒子群優(yōu)化算法結(jié)合神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程中逐步修改參數(shù),動(dòng)態(tài)選取最優(yōu)權(quán)值[10]。Gaxiola與Melin在神經(jīng)網(wǎng)絡(luò)訓(xùn)練中使用粒子群優(yōu)化算法動(dòng)態(tài)選取神經(jīng)網(wǎng)絡(luò)權(quán)值[11]。
綜上所述,區(qū)間分析法是一類靜態(tài)設(shè)定權(quán)值的方法,并不能保證神經(jīng)網(wǎng)絡(luò)每次訓(xùn)練時(shí)設(shè)定的權(quán)值最佳,并且隨著網(wǎng)絡(luò)訓(xùn)練上述方法易導(dǎo)致網(wǎng)絡(luò)陷入局部極小值。迭代初始化法雖然采用粒子群優(yōu)化算法動(dòng)態(tài)選取權(quán)值,這樣避免了人工設(shè)定的盲目性,但是上述方法會(huì)出現(xiàn)粒子早熟或粒子陷入局部最優(yōu)的情況,導(dǎo)致選取權(quán)值不精確。
在本文中,針對(duì)神經(jīng)網(wǎng)絡(luò)權(quán)值選取不精確的問題,在粒子群優(yōu)化算法中提出動(dòng)態(tài)慣性權(quán)重與參數(shù)制約,同時(shí)粒子群優(yōu)化算法結(jié)合差分進(jìn)化(DE)算法,使粒子擁有變異與交叉操作,此為改進(jìn)的粒子群優(yōu)化算法(IPSO)。運(yùn)用此改進(jìn)的粒子群優(yōu)化算法結(jié)合BP神經(jīng)網(wǎng)絡(luò)動(dòng)態(tài)選取權(quán)值。綜上所述,基于IPSO算法與BP神經(jīng)網(wǎng)絡(luò),構(gòu)建IPSONN神經(jīng)網(wǎng)絡(luò)模型并運(yùn)用此模型進(jìn)行酒類品質(zhì)的預(yù)測(cè)。實(shí)驗(yàn)結(jié)果分別從訓(xùn)練精度、正確率及粒子多樣三方面驗(yàn)證了IPSONN模型的有效性。
BP神經(jīng)網(wǎng)絡(luò)是采用誤差逆向傳播算法訓(xùn)練的前饋神經(jīng)網(wǎng)絡(luò)。其學(xué)習(xí)規(guī)則是遵循梯度下降法,通過逆向傳播不斷調(diào)整網(wǎng)絡(luò)的權(quán)值與閾值,使網(wǎng)絡(luò)的誤差最小。在本文中,網(wǎng)絡(luò)采用單隱含層如圖1所示。隱含層的激勵(lì)函數(shù)為Sigmoid激勵(lì)函數(shù),輸出層的激勵(lì)函數(shù)為線性激勵(lì)函數(shù)。單隱含層BP神經(jīng)網(wǎng)絡(luò)的信息傳遞過程如下:
圖1 單隱含層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
(1)隱含層節(jié)點(diǎn) j的輸出
其中,n為輸入層節(jié)點(diǎn)數(shù),xi為輸入向量,wji為輸入層節(jié)點(diǎn)i與隱含層節(jié)點(diǎn) j之間的權(quán)值,bj為隱含層節(jié)點(diǎn) j的閾值,yj為隱含層節(jié)點(diǎn) j的輸出,fh為隱含層的激勵(lì)函數(shù),本文為Sigmoid激勵(lì)函數(shù)。
(2)輸出層的輸出
其中,H為隱含層節(jié)點(diǎn)數(shù),woj為輸出層節(jié)點(diǎn)o與隱含層節(jié)點(diǎn) j之間的權(quán)值,bo為輸出層節(jié)點(diǎn)o的閾值,fo為輸出層的激勵(lì)函數(shù),本文為線性激勵(lì)函數(shù),輸出層有且僅有一個(gè)輸出節(jié)點(diǎn)。
(3)計(jì)算誤差
其中,t為實(shí)際值,yo為網(wǎng)絡(luò)輸出,輸出層有且僅有一個(gè)輸出節(jié)點(diǎn)。
(4)反向修改
根據(jù)訓(xùn)練誤差E,BP神經(jīng)網(wǎng)絡(luò)通過梯度下降法調(diào)整網(wǎng)絡(luò)的權(quán)值與閾值,并逐步訓(xùn)練使網(wǎng)絡(luò)的誤差最小。
(5)評(píng)價(jià)標(biāo)準(zhǔn)
其中,N為樣本總數(shù),yn為預(yù)測(cè)值,tn為實(shí)際值。
粒子群優(yōu)化算法(PSO)由Eberhart與Kennedy于1995年提出的一種基于多目標(biāo)優(yōu)化的啟發(fā)式算法[12]。粒子群優(yōu)化算法模擬鳥群或魚群覓食,在覓食過程中群體之間存在著一種社會(huì)信息共享機(jī)制,不斷迭代得到最優(yōu)粒子。目前粒子群優(yōu)化算法已經(jīng)廣泛運(yùn)用于神經(jīng)網(wǎng)絡(luò)、函數(shù)優(yōu)化、信息處理及其他多目標(biāo)優(yōu)化等領(lǐng)域[13]。
粒子群優(yōu)化算法的每個(gè)粒子為解空間的一個(gè)解,所有粒子構(gòu)成群體并隨機(jī)分布在一個(gè)維度為D∈Rd的空間中。群體X由N個(gè)粒子構(gòu)成,即為X=(X1,X2,…,XN)。在搜索過程中,第i個(gè)粒子在空間D中的位置為Xi=(Xi1,Xi2,…,Xid),速度為 Vi=(Vi1,Vi2,…,Vid)。粒子速度和粒子位置由局部最優(yōu)Pi_best與全局最優(yōu)Gbest共同決定。局部最優(yōu)是當(dāng)前粒子在搜索過程中自身最佳的位置,即可表示為全局最優(yōu)是所有粒子在搜索過程中全局最佳的位置,即可表示為Gbest=(Gbest1,Gbest2,…,Gbestd)。粒子速度與粒子位置的更新公式如下:
其中,i=1,2,…,N,N為粒子總數(shù),d為優(yōu)化目標(biāo)變量個(gè)數(shù),Vi為粒子速度,Xi為粒子位置,c1為認(rèn)知系數(shù),c2為社會(huì)系數(shù),r1與r2均為[0,1]之間的隨機(jī)數(shù),t為當(dāng)前迭代次數(shù),tmax為迭代總數(shù)。
粒子群優(yōu)化算法中,隨著粒子不斷搜索與進(jìn)化,所有粒子均趨向于最佳粒子的位置,這樣易導(dǎo)致粒子早熟或陷入局部最優(yōu),甚至出現(xiàn)粒子多樣性缺失的嚴(yán)重問題[14]。粒子多樣性的定義如下:
其中,xij(t)為第t代,第i個(gè)粒子,第 j個(gè)部分的值;為第t代所有粒子的第 j個(gè)部分的均值。
差分進(jìn)化算法(DE)是由Storn與Price于1995年提出的一種基于種群隨機(jī)搜索的進(jìn)化算法[15]。差分進(jìn)化算法主要包括4個(gè)步驟,即初始化、變異、交叉與選擇。差分進(jìn)化算法的詳細(xì)過程如下。
個(gè)體采用十進(jìn)制編碼,進(jìn)化代數(shù)Nit,個(gè)體總數(shù)N,染色體長(zhǎng)度L,變異率F,交叉率CR,基因編碼值的范圍為[Umin,Umax]。
其中,i=1,2,…,N ;j=1,2,…,L,rand為[0,1]之間的隨機(jī)數(shù)。
隨機(jī)選取當(dāng)前迭代次數(shù)下三個(gè)不同的個(gè)體進(jìn)行變異,個(gè)體變異的公式如下:
其中,t為當(dāng)前進(jìn)化代數(shù),rd1、rd2、rd3為3個(gè)不同的隨機(jī)整數(shù),并且均小于tmax。
根據(jù)交叉率或隨機(jī)位置,在當(dāng)前進(jìn)化代數(shù)下使粒子進(jìn)行交叉操作,個(gè)體交叉的公式如下:
其中,rand為[0,1]之間的隨機(jī)數(shù),jrand為[1,L]的隨機(jī)整數(shù)。
計(jì)算個(gè)體適應(yīng)度值,若個(gè)體的適應(yīng)度值小于等于原始個(gè)體的適應(yīng)度值則選擇變異與交叉后的個(gè)體,否則個(gè)體保持不變。選擇公式如下:
其中,f為適應(yīng)度函數(shù)。
粒子在搜索過程中,若不能保持局部最優(yōu)與全局最優(yōu)的平衡,則粒子易產(chǎn)生早熟或陷入局部最優(yōu),甚至出現(xiàn)粒子多樣性降低的嚴(yán)重問題。在本文中,結(jié)合慣性權(quán)重線性遞減與慣性權(quán)重非線性遞減的方法[16],提出動(dòng)態(tài)慣性權(quán)重,即慣性權(quán)重根據(jù)迭代次數(shù)動(dòng)態(tài)減小,公式如下。
通常當(dāng)慣性權(quán)重較大時(shí)算法具有全局搜索性能,當(dāng)慣性權(quán)重較小時(shí)算法具有局部搜索性能,這有利于平衡算法的全局搜索與局部搜索。對(duì)于慣性權(quán)重線性遞減的方法,即使迭代前期粒子已接近全局最優(yōu)點(diǎn)由于其局部搜索能力較弱可能會(huì)被錯(cuò)過,迭代后期由于粒子全局搜索能力變?nèi)?,易陷入局部最?yōu),并且慣性權(quán)重線性遞減不能滿足實(shí)際搜索過程非線性復(fù)雜的特點(diǎn),從而影響算法性能。對(duì)于慣性權(quán)重非線性遞減的方法,雖然其慣性權(quán)重非線性遞減滿足實(shí)際搜索過程非線性復(fù)雜的特點(diǎn),但是隨迭代次數(shù)增加其慣性權(quán)重減小極其迅速,算法性能過早由全局搜索轉(zhuǎn)變?yōu)榫植克阉鳎⑶矣捎谶^度震蕩,算法在迭代早期不能有效確定次優(yōu)解,即使迭代后期慣性權(quán)重降低也難以找到最優(yōu)解。在本文中,動(dòng)態(tài)慣性權(quán)重采用泛化參數(shù)b,隨機(jī)參數(shù)rand與S形函數(shù)控制慣性權(quán)重減小的幅度,使慣性權(quán)重大小交替變化并且總體呈現(xiàn)下降的趨勢(shì)。如圖2,在搜索早期慣性權(quán)重取較大值的概率增加,粒子以較大的飛行速度搜尋整個(gè)空間確定全局最優(yōu)解的范圍,保證種群全局“搜索”能力,在搜索后期慣性權(quán)重取較小值的概率增加,粒子獲得較小飛行速度,進(jìn)而可以更加精確地搜索最優(yōu)解位置鄰域,保證種群局部“開發(fā)”能力,這可以平衡算法的全局搜索與局部搜索。同時(shí),在搜索過程中慣性權(quán)重隨迭代次數(shù)動(dòng)態(tài)調(diào)整,可以不斷變化迭代前后粒子的速度與位置,增強(qiáng)粒子間的交互,有利于粒子快速找到最優(yōu)解,避免慣性權(quán)重減小導(dǎo)致算法陷入局部最優(yōu),并且慣性權(quán)重動(dòng)態(tài)變化滿足實(shí)際搜索過程非線性復(fù)雜的特點(diǎn)。綜上所述,動(dòng)態(tài)慣性權(quán)重具備隨迭代次數(shù)增加而減小平衡算法性能,以及大小交替變化滿足實(shí)際搜索過程非線性復(fù)雜與尋優(yōu)快速的優(yōu)點(diǎn)。基于上述慣性權(quán)重調(diào)整方法,本文繪制粒子分布對(duì)比圖。如圖3,在慣性權(quán)重線性遞減與慣性權(quán)重非線性遞減的方法中,迭代結(jié)束時(shí)粒子分布松散,粒子距離全局最優(yōu)點(diǎn)較遠(yuǎn)。例如,非線性遞減方法中粒子分布區(qū)域第一維(-0.1,0.1),第二維(-0.7,0.1),線性遞減方法中粒子分布區(qū)域第一維(0,0.2),第二維(0,0.2),粒子遠(yuǎn)離全局最優(yōu)點(diǎn)則說明粒子陷入局部最優(yōu)的可能性增加。相比之下,在動(dòng)態(tài)慣性權(quán)重方法中,迭代結(jié)束時(shí)粒子分布區(qū)域第一維(0.2,0.3),第二維(0,0.2),粒子緊密分布于全局最優(yōu)點(diǎn)的周圍并且多數(shù)粒子已找到全局最優(yōu)解,說明算法收斂到全局最優(yōu)解的概率增加,具有較好的收斂性能,則體現(xiàn)出本文所提動(dòng)態(tài)慣性權(quán)重具有優(yōu)勢(shì)。其中,LIW為線性慣性權(quán)重,NLIW為非線性慣性權(quán)重,DIW為動(dòng)態(tài)慣性權(quán)重。
圖2 慣性權(quán)重對(duì)比圖
圖3 粒子分布對(duì)比圖
在粒子更新速度時(shí),其也受限于認(rèn)知參數(shù)與社會(huì)參數(shù)的取值。起初Eberhart指出認(rèn)知系數(shù)與社會(huì)系數(shù)的取值均為2.0,此后在實(shí)際問題中Eberhart再次優(yōu)化并設(shè)定上述兩個(gè)參數(shù)取值為1.494 45[17]。根據(jù)以上論述,本文提出認(rèn)知系數(shù)與社會(huì)系數(shù)在給定范圍中相互制約,并且兩個(gè)參數(shù)上界之和為定值,即c1+c2=4。若c1或c2超過上界,則按照限定區(qū)間1.494 45≤c1≤2.0,1.494 45≤c2≤2.0,設(shè)置c1=2.0或c2=2.0。其中,w為慣性權(quán)重,wmax為慣性權(quán)重最大值,wmin為慣性權(quán)重最小值,b為泛化參數(shù),tmax為最大迭代次數(shù),rand為[0,1]之間的隨機(jī)數(shù)。
同時(shí),粒子群優(yōu)化算法結(jié)合差分進(jìn)化算法,使粒子在搜索過程中擁有變異與交叉操作。粒子進(jìn)行自我變異及相互交叉可以避免粒子陷入局部最優(yōu),并且有助于提高粒子多樣性。粒子的變異與交叉操作貫穿整個(gè)粒子搜索過程,并優(yōu)化粒子的搜索性能。綜上所述,此改進(jìn)的粒子群優(yōu)化算法(IPSO)描述如下。
5.1.1 粒子初始化
粒子采用十進(jìn)制編碼,進(jìn)化代數(shù)Nit,粒子總數(shù)N,粒子搜索空間的維度D∈Rd,變異率F,交叉率CR,粒子初始位置范圍為[Umin,Umax],粒子初始速度為[0,1],粒子中封裝權(quán)值矩陣,粒子結(jié)構(gòu)如圖4所示。
圖4 粒子結(jié)構(gòu)圖
其中i=1,2,…,N,rand()為規(guī)模等同于權(quán)值矩陣的隨機(jī)數(shù)矩陣,取值均在[-1,1]之間,W1為輸入層與隱含層之間的權(quán)值矩陣,W2為隱含層與輸出層之間的權(quán)值矩陣,維度d為2。
5.1.2粒子變異
隨機(jī)選取當(dāng)前進(jìn)化代數(shù)下3個(gè)不同的粒子進(jìn)行變異,得到當(dāng)前迭代次數(shù)下變異后的粒子,變異公式如下:
其中,t為當(dāng)前進(jìn)化代數(shù),rd1、rd2、rd3為3個(gè)不同的隨機(jī)整數(shù),并且均小于tmax。
5.1.3粒子交叉
根據(jù)交叉率或隨機(jī)位置,在當(dāng)前進(jìn)化代數(shù)下使粒子進(jìn)行交叉操作,粒子交叉的公式如下。
其中,rand為[0,1]之間的隨機(jī)數(shù),j為第i個(gè)粒子的第j部分,jrand為[1,d]之間的隨機(jī)整數(shù)。
5.1.4粒子的位置與速度更新
本文采用動(dòng)態(tài)慣性權(quán)重,并且認(rèn)知系數(shù)與社會(huì)系數(shù)在限定區(qū)間內(nèi)存在制約關(guān)系。算法每次迭代時(shí),在上述限定區(qū)間內(nèi)分別隨機(jī)產(chǎn)生c1與c2的參數(shù)值。改進(jìn)后粒子的速度更新與位置更新公式如下。
其中,PXi(t+1)為第(t+1)代,第i個(gè)粒子。
5.1.5 粒子選擇
計(jì)算粒子的適應(yīng)度值,若粒子的適應(yīng)度值小于等于原始粒子的適應(yīng)度值則選擇變異與交叉后的粒子,否則粒子保持不變;并計(jì)算局部最優(yōu)值,更新局部最優(yōu)粒子
5.1.6更新全局最優(yōu)
當(dāng)所有粒子完成上述操作,計(jì)算全局最優(yōu)值,并更新全局最優(yōu)粒子Gbest。全局適應(yīng)度更新公式如下:
其中,f為適應(yīng)度函數(shù)。
算法1 IPSO算法
輸入:初始化IPSO算法的所有參數(shù)與適應(yīng)度函數(shù)。
輸出:全局最優(yōu)粒子。
步驟1初始化粒子速度與位置,根據(jù)公式(17)初始化粒子結(jié)構(gòu),初始化粒子總數(shù)N與迭代總數(shù)Nit,當(dāng)前迭代次數(shù)為t=1。
步驟2運(yùn)用BP神經(jīng)網(wǎng)絡(luò)的MSE函數(shù)作為適應(yīng)度函數(shù)計(jì)算粒子的初始化適應(yīng)度值,粒子的最小適應(yīng)度值作為初始化局部最優(yōu)值與初始化全局最優(yōu)值,并記錄局部最優(yōu)粒子與全局最優(yōu)粒子。
步驟3當(dāng)t<Nit,根據(jù)公式(18)粒子進(jìn)行變異操作;若t≥Nit,轉(zhuǎn)至步驟8。
步驟4根據(jù)公式(19)粒子進(jìn)行交叉操作。
步驟5 根據(jù)公式(20)、(21),更新粒子速度與位置。
步驟6根據(jù)公式(22)選取局部最優(yōu)粒子,并更新局部最優(yōu)值。
步驟7根據(jù)公式(23)選取全局最優(yōu)粒子,并更新全局最優(yōu)值,當(dāng)?shù)螖?shù)t=t+1。若t≥Nit,轉(zhuǎn)至步驟8;否則,轉(zhuǎn)至步驟3。
步驟8得到全局最優(yōu)粒子,其中封裝權(quán)值矩陣。
綜上所述,基于IPSO算法結(jié)合BP神經(jīng)網(wǎng)絡(luò)動(dòng)態(tài)選取權(quán)值,本文構(gòu)建IPSONN神經(jīng)網(wǎng)絡(luò)模型,該模型的訓(xùn)練過程如下:
步驟1加載數(shù)據(jù)集并歸一化其中的數(shù)據(jù)值在[-1,1]之間。
步驟2根據(jù)數(shù)據(jù)集屬性數(shù)目確定網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。
步驟3運(yùn)用算法1結(jié)合BP神經(jīng)網(wǎng)絡(luò)構(gòu)建IPSON神經(jīng)網(wǎng)絡(luò)模型。
步驟4訓(xùn)練IPSONN神經(jīng)網(wǎng)絡(luò)模型得到網(wǎng)絡(luò)的訓(xùn)練結(jié)果。
步驟5反歸一化訓(xùn)練結(jié)果,并記錄MSE、MAE、MAPE及網(wǎng)絡(luò)輸出。
步驟6 IPSONN模型訓(xùn)練結(jié)束。
在本文中,實(shí)驗(yàn)環(huán)境為MATLAB R2010b,實(shí)驗(yàn)數(shù)據(jù)集來源于UCI的wine-quality[18]。首先,根據(jù)數(shù)據(jù)集屬性數(shù)目,IPSONN模型的輸入節(jié)點(diǎn)數(shù)目為11,輸出節(jié)點(diǎn)數(shù)目為1。隨機(jī)選擇1 000個(gè)數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,在剩余數(shù)據(jù)中,隨機(jī)選擇100個(gè)數(shù)據(jù)作為測(cè)試數(shù)據(jù)集。訓(xùn)練數(shù)據(jù)集與測(cè)試數(shù)據(jù)集的所有數(shù)據(jù)均歸一化在[-1,1]之間。根據(jù)Master的理論設(shè)定隱含層節(jié)點(diǎn)數(shù)為6[19],根據(jù)拇指規(guī)則設(shè)定該模型的訓(xùn)練精度為0.05[20],學(xué)習(xí)率為0.05,動(dòng)量因子為0.8,隱含層的激勵(lì)函數(shù)為Sigmoid,輸出層的激勵(lì)函數(shù)為Purelin,學(xué)習(xí)函數(shù)為L(zhǎng)M。其次,設(shè)定種群迭代總數(shù)為100,粒子總數(shù)為20,粒子速度范圍為[-3,3],粒子位置范圍為[-1,1],交叉率 CR 為0.4,變異率F為0.6,最大慣性權(quán)重wmax為0.9,最小慣性權(quán)重wmin為0.4。最終IPSONN模型的平均訓(xùn)練結(jié)果如表1所示。作為對(duì)比實(shí)驗(yàn),運(yùn)用訓(xùn)練數(shù)據(jù)集分別訓(xùn)練BPNN、DENN、PSONN、APSONN、ACPSONN共5個(gè)神經(jīng)網(wǎng)絡(luò)模型,并且這5個(gè)模型的參數(shù)設(shè)置同上,平均訓(xùn)練結(jié)果如表2至表6所示。
如表1至表6,IPSONN模型相比其他模型訓(xùn)練結(jié)果的平均 MSE、MAE、MAPE較小,并且 MSE、MAE、MAPE的走向曲線如圖5至圖7所示。如圖,IPSONN的訓(xùn)練結(jié)果相比其他模型訓(xùn)練結(jié)果較好,并且隨著訓(xùn)練代數(shù)的增加IPSONN的 MSE、MAPE、MAE一直較小并趨向于穩(wěn)定。根據(jù)公式(9)、(10)計(jì)算PSONN、APSONN、ACPSONN、IPSONN模型粒子的多樣性,多樣性變化曲線,如圖8所示。
表1 IPSONN
表2 BPNN
表3 DENN
表4 PSONN
表5 APSONN
表6 ACPSONN
圖5 MSE對(duì)比圖
圖6 MAE對(duì)比圖
圖7 MAPE對(duì)比圖
圖8 粒子多樣性對(duì)比圖
如圖8,隨著迭代次數(shù)不斷增加,ACPSONN快速失去多樣性。加速粒子群優(yōu)化算法(ACPSO)在粒子更新速度與位置時(shí),僅采用全局最優(yōu)而省略局部最優(yōu),粒子在搜索過程中缺少全局最優(yōu)與局部最優(yōu)的交互,并且粒子的搜索過程較為單一,易造成粒子早熟從而導(dǎo)致粒子多樣性缺失嚴(yán)重[21]。APSONN與PSONN的多樣性跨度區(qū)間較小均為(4,5),(5,6)。IPSONN的多樣性跨度區(qū)間為(4,5),(5,6),(6,7),并且粒子多樣性平穩(wěn)增加。以上結(jié)果表明,IPSONN模型在訓(xùn)練過程中保持粒子多樣性。
運(yùn)用測(cè)試數(shù)據(jù)集驗(yàn)證上述模型的性能,不同模型的預(yù)測(cè)正確率如表7所示。IPSONN模型的預(yù)測(cè)結(jié)果如圖9所示。
表7 正確率%
圖9 IPSONN輸出對(duì)比圖
如表7與圖9,IPSONN神經(jīng)網(wǎng)絡(luò)模型的正確率均要高于其他神經(jīng)網(wǎng)絡(luò)模型,并且隨著訓(xùn)練次數(shù)的增加IPOSNN模型的正確率趨于平穩(wěn),平均正確率在82%至86%之間。在平均情況下,IPSONN神經(jīng)網(wǎng)絡(luò)模型最高正確率可達(dá)86%。綜上所述,通過比較訓(xùn)練精度、粒子多樣性及預(yù)測(cè)正確率,IPSONN神經(jīng)網(wǎng)絡(luò)模型展現(xiàn)出較好的性能。
針對(duì)神經(jīng)網(wǎng)絡(luò)權(quán)值選取不精確的問題,采用改進(jìn)的粒子群優(yōu)化算法結(jié)合BP神經(jīng)網(wǎng)絡(luò)動(dòng)態(tài)選取權(quán)值,避免人工設(shè)定權(quán)值的盲目性。在改進(jìn)的粒子群算法中,采用動(dòng)態(tài)慣性權(quán)重,并且認(rèn)知參數(shù)與社會(huì)參數(shù)相互制約。同時(shí),改進(jìn)的粒子群優(yōu)化算法結(jié)合差分進(jìn)化算法,使粒子擁有變異與交叉操作,這樣可以平衡局部最優(yōu)與全局最優(yōu),并保持粒子的多樣性?;贗PSO算法與BP神經(jīng)網(wǎng)絡(luò),構(gòu)建IPSONN神經(jīng)網(wǎng)絡(luò)模型并用于酒類品質(zhì)的預(yù)測(cè),避免人工檢驗(yàn)的低效率。實(shí)驗(yàn)分別從訓(xùn)練精度、粒子多樣性及測(cè)試正確率三方面,驗(yàn)證了該模型的有效性。在今后的研究中,IPSONN模型可以運(yùn)用于更多實(shí)際問題中,并且可以結(jié)合其他人工智能算法優(yōu)化IPSO算法,從而進(jìn)一步提升模型性能。