蔡 磊
(江蘇科技大學(xué)電子信息學(xué)院 鎮(zhèn)江 212003)
疏浚作業(yè)在人類的社會生產(chǎn)過程中起到了很重要的作用,無論是保持京杭大運(yùn)河的水道暢通,還是清除沉積的泥沙積石,這都離不開疏浚[1~2]。在耙吸挖泥船的疏浚作業(yè)過程中,裝艙階段是非常重要的一個階段,對于裝艙階段的建模有其必要性[3~4]。
構(gòu)建此裝艙模型的主要作用是當(dāng)遇到風(fēng)浪較大的工作環(huán)境,水位顛簸較大難以正確讀取吃水?dāng)?shù)據(jù)時(shí),通過神經(jīng)網(wǎng)絡(luò)模型得到的輸出值可以起到輔助參考作用,所以構(gòu)建耙吸挖泥船裝艙模型對施工作業(yè)有重要的意義。
構(gòu)建裝艙模型的本質(zhì)作用,是通過已知的進(jìn)艙流量、進(jìn)艙密度這兩個狀態(tài)輸入值,船速、耙頭對地角度、溢流桶高度這三個控制輸入值,得到裝艙體積、裝艙質(zhì)量這兩個輸出值。
Elman神經(jīng)網(wǎng)絡(luò)具有很好的非線性擬合能力,可映射復(fù)雜的非線性關(guān)系[5]。將訓(xùn)練集的輸入、輸出數(shù)據(jù)進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練。訓(xùn)練完成之后,輸入測試集的輸入數(shù)據(jù)得到輸出數(shù)據(jù),并與真實(shí)值進(jìn)行對比[6],從而證明用Elman神經(jīng)網(wǎng)絡(luò)能夠?qū)Π椅谀啻难b艙過程進(jìn)行建模。但是,Elman神經(jīng)網(wǎng)絡(luò)在使用梯度下降法修正權(quán)值閾值時(shí)容易陷入局部極小值[7]??梢允褂昧W尤核惴ǎ≒SO)的全局搜索尋優(yōu)能力優(yōu)化Elman神經(jīng)網(wǎng)絡(luò)的權(quán)值閾值,從而避免陷入局部極小值[8]。將優(yōu)化得到的最優(yōu)權(quán)值閾值作為Elman神經(jīng)網(wǎng)絡(luò)的初始值進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練。將PSO-Elman的神經(jīng)網(wǎng)絡(luò)輸出結(jié)果與沒有優(yōu)化的Elman神經(jīng)網(wǎng)絡(luò)輸出的結(jié)果進(jìn)行對比,PSO-Elman能讓建模的結(jié)果更加精確[9]。
Elman神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)共分4層,其中分別為輸入層、輸出層、隱含層和承接層。
承接層的作用是存儲上一時(shí)刻的隱含層的輸出值。隱含層有激勵函數(shù),通常采用Sigmoid非線性函數(shù)。對于輸入層而言,其作用是信號的傳輸。輸出層的作用是線性加權(quán)。如圖1結(jié)構(gòu)所示,隱含層的輸出通過承接層的延遲與存儲,承接層的輸出連接到隱含層的輸入,即隱含層的輸出自聯(lián)到輸入。這樣對歷史數(shù)據(jù)有敏感性,加強(qiáng)了處理動態(tài)信息的能力[10]。
Elman神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 Elman神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
Elman神經(jīng)網(wǎng)絡(luò)的表達(dá)式為
式中:k為當(dāng)前時(shí)刻;x(k)為m維中間層節(jié)點(diǎn)單元向量;y(k)為n維神經(jīng)網(wǎng)絡(luò)的輸出節(jié)點(diǎn)向量;u(k-1)為r維神經(jīng)網(wǎng)絡(luò)的輸入向量;xc(k)為m維反饋狀態(tài)向量;w1為神經(jīng)網(wǎng)絡(luò)輸入層到中間層的權(quán)值;w2為承接層到中間層的權(quán)值;w3為中間層到輸出層的權(quán)值;b1為神經(jīng)網(wǎng)絡(luò)中間層的閾值;b2為輸出層的閾值;g為中間層傳遞函數(shù),常采用Sigmoid函數(shù);f為輸出層的傳遞函數(shù),是中間層的輸出的線性組合。
Elman神經(jīng)網(wǎng)絡(luò)采用梯度下降法進(jìn)行權(quán)值和閾值修正,而學(xué)習(xí)的指標(biāo)為[11]
式中:y(k)為預(yù)測輸出值;z(k)為真實(shí)輸出值。
神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程是根據(jù)預(yù)測值與真實(shí)值之間的差值來不斷地修正權(quán)值、閾值,從而使誤差減小。
運(yùn)用粒子群算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的本質(zhì)在于,將優(yōu)化得到的權(quán)值、閾值作為神經(jīng)網(wǎng)絡(luò)的初始權(quán)值與閾值,從而提高精確程度。
PSO-Elman神經(jīng)網(wǎng)絡(luò)流程圖見圖2。
圖2 PSO-Elman神經(jīng)網(wǎng)絡(luò)流程圖
粒子群算法是有n個粒子在d維的空間中,擁有初始的速度與位置。通過計(jì)算適應(yīng)度值來尋找并更新粒子的個體極值與全體極值,根據(jù)個體極值與全體極值更新速度和位置。在空間中不斷迭代搜索,最終搜索到全局最優(yōu)解[12~13]。
粒子群優(yōu)化算法(PSO)的速度與位置更新公式如下[14]:
式中:與為第i個粒子在第k+1次的迭
id代中的第d維的速度與位置;為第i個粒子對于第d維的個體極值;為全體粒子中在第d維的全體極值;c1與c2為學(xué)習(xí)因子,表示粒子向優(yōu)秀個體學(xué)習(xí)的能力;r1與r2為在0到1之間的隨機(jī)數(shù);W為慣性權(quán)重,即上一迭代的粒子飛行速度慣性在當(dāng)代粒子飛行速度的體現(xiàn)。
本文所用的W取值為[15]
wmax為慣性權(quán)重的最大值,取值為0.9;wmin為慣性權(quán)重的最小值,取值為0.4;k為當(dāng)前迭代次數(shù);kmax為最大迭代次數(shù)。
首先,確定神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),根據(jù)輸入、輸出、隱含層的節(jié)點(diǎn)數(shù)與閾值數(shù),確定粒子長度;
第二步,將神經(jīng)網(wǎng)絡(luò)中的權(quán)值、閾值編碼成實(shí)數(shù)碼所表示的個體;
第三步,計(jì)算適應(yīng)度值,在此處適應(yīng)度的定義為:預(yù)測誤差值的絕對值和。當(dāng)?shù)玫竭m應(yīng)度值后,據(jù)此得到個體極值與群體極值;
第四步,根據(jù)極值來更新粒子的速度與位置。之后再一次計(jì)算適應(yīng)度值,根據(jù)新的適應(yīng)度值更新個體極值與群體極值。再根據(jù)新的個體極值與群體極值來計(jì)算粒子新的速度與位置。以此方式不斷循環(huán),直到滿足所設(shè)定的迭代次數(shù)為止;
第五步,將滿足結(jié)束循環(huán)條件的最優(yōu)權(quán)值,閾值作為神經(jīng)網(wǎng)絡(luò)權(quán)值,閾值的初始值,進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練。
從性能上考慮,相比于BP神經(jīng)網(wǎng)絡(luò),在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中增加了承接層結(jié)構(gòu),儲存了上一時(shí)刻隱含層的輸出,加強(qiáng)了對于動態(tài)信息的處理能力。粒子群優(yōu)化Elman神經(jīng)網(wǎng)絡(luò),通過粒子群的全局尋優(yōu),從而緩解了神經(jīng)網(wǎng)絡(luò)容易陷入局部極小值的問題[16]。
首先,需要考慮的是針對挖泥船種類繁多的工況數(shù)據(jù),選擇哪些作為控制輸入、狀態(tài)輸入與輸出。這里選擇的是將進(jìn)艙密度、進(jìn)艙流量作為狀態(tài)輸入值,而將船速、耙頭對地角度、溢流桶高度這三個值作為控制輸入值,將裝艙體積與裝艙質(zhì)量作為輸出值,從而構(gòu)建了神經(jīng)網(wǎng)絡(luò)所需要的輸入、輸出值。
其次,確定網(wǎng)絡(luò)的結(jié)構(gòu)與所需的參數(shù)。對于本文所指的耙吸挖泥船裝艙模型,輸入節(jié)點(diǎn)有5個,輸出節(jié)點(diǎn)有2個。隱含層節(jié)點(diǎn)數(shù)為11個。那么權(quán)值總共有11*5+11*2=77個,隱含層閾值11個,輸出層閾值有2個,所以粒子長度是90。種群規(guī)模設(shè)置為60,算法迭代次數(shù)設(shè)置為100,學(xué)習(xí)因子都設(shè)為1.5。Vmax設(shè)為1,Vmin設(shè)為-1。Wmax設(shè)為0.9,Wmin設(shè)為0.4。神經(jīng)網(wǎng)絡(luò)最大訓(xùn)練次數(shù)設(shè)置為1000。
根據(jù)長江口的一份耙吸挖泥船的工作數(shù)據(jù),其中包含了進(jìn)艙流量、進(jìn)艙密度、溢流桶高度、耙頭對地角度、船速、裝艙質(zhì)量、裝艙體積等工況數(shù)據(jù)。這里有4組數(shù)據(jù),選取3組進(jìn)行神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,選取一組進(jìn)行數(shù)據(jù)的預(yù)測比較。本文的目的在于證明PSO優(yōu)化的Elman神經(jīng)網(wǎng)絡(luò),相比于沒優(yōu)化的El?man神經(jīng)網(wǎng)絡(luò),對于裝艙模型的構(gòu)建要更精確。所以將PSO優(yōu)化的Elman神經(jīng)網(wǎng)絡(luò)輸出的裝艙質(zhì)量、裝艙體積,與未優(yōu)化的Elman神經(jīng)網(wǎng)絡(luò)的裝艙質(zhì)量、裝艙體積,和工況數(shù)據(jù)中的真實(shí)裝艙質(zhì)量,裝艙體積進(jìn)行比較。
圖3是PSO優(yōu)化的適應(yīng)度曲線,可以看出,隨著迭代次數(shù)的增加,適應(yīng)度值不斷降低,并趨于穩(wěn)定。
圖3 適應(yīng)度曲線
圖4 、圖5分別是PSO優(yōu)化的Elman神經(jīng)網(wǎng)絡(luò)輸出的裝艙質(zhì)量、裝艙體積,與未優(yōu)化的Elman神經(jīng)網(wǎng)絡(luò)的裝艙質(zhì)量、裝艙體積,和真實(shí)裝艙質(zhì)量、裝艙體積進(jìn)行的比較曲線??梢钥闯?,運(yùn)用PSO優(yōu)化的Elman神經(jīng)網(wǎng)絡(luò)相比于未優(yōu)化的Elman神經(jīng)網(wǎng)絡(luò),其輸出的裝艙質(zhì)量、裝艙體積更加接近于真實(shí)值。
圖4 裝艙質(zhì)量比較(采樣間隔30s)
圖5 裝艙體積比較(采樣間隔30s)
圖6 、圖7則是PSO優(yōu)化的Elman神經(jīng)網(wǎng)絡(luò)輸出的裝艙質(zhì)量、裝艙體積,與未優(yōu)化的Elman神經(jīng)網(wǎng)絡(luò)的裝艙質(zhì)量、裝艙體積,相對于真實(shí)值的每一時(shí)刻的誤差絕對值曲線??梢钥闯觯\(yùn)用PSO優(yōu)化的Elman神經(jīng)網(wǎng)絡(luò)相比于未優(yōu)化的Elman神經(jīng)網(wǎng)絡(luò),預(yù)測的性能更加優(yōu)秀。
圖6 裝艙質(zhì)量誤差比較(采樣間隔30s)
圖7 裝艙體積誤差比較(采樣間隔30s)
也可以通過比較兩種預(yù)測方法的誤差絕對值之和與真實(shí)值之和的比值,來判斷哪種方法更加優(yōu)秀。
式中,sim(i)為i時(shí)刻的預(yù)測值;true(i)為i時(shí)刻的真實(shí)值;abs為求其絕對值。
表1 2種算法的Error1數(shù)值對比
表1通過數(shù)值比較,可以看出,經(jīng)過PSO優(yōu)化的Elman神經(jīng)網(wǎng)絡(luò)輸出的裝艙質(zhì)量、裝艙體積的誤差要更小,精確程度更好。
運(yùn)用Elman神經(jīng)網(wǎng)絡(luò)模型構(gòu)建了耙吸挖泥船裝艙模型,實(shí)現(xiàn)對于裝艙質(zhì)量、裝艙體積的預(yù)測。通過粒子群算法(PSO)對Elman神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,減少了預(yù)測誤差,提高了精確程度,更好地構(gòu)建了耙吸挖泥船的裝艙模型。