,,,
(華南理工大學(xué) 交通學(xué)院,廣州 510640)
為了減少船舶在風(fēng)浪中的搖擺和升沉運(yùn)動(dòng)對(duì)某些海上作業(yè)和設(shè)備的影響,需在其上構(gòu)建一個(gè)具有波浪運(yùn)動(dòng)補(bǔ)償功能的穩(wěn)定平臺(tái)系統(tǒng)。該系統(tǒng)中采用預(yù)報(bào)控制的策略,即先對(duì)波浪運(yùn)動(dòng)補(bǔ)償穩(wěn)定平臺(tái)控制點(diǎn)的垂向位移進(jìn)行短時(shí)預(yù)報(bào),然后將預(yù)報(bào)值轉(zhuǎn)化為控制信號(hào)輸入到補(bǔ)償執(zhí)行機(jī)構(gòu),對(duì)平臺(tái)的波浪運(yùn)動(dòng)進(jìn)行補(bǔ)償。
時(shí)間序列分析與預(yù)報(bào)理論中,線性自回歸(AR)模型和線性自回歸滑動(dòng)平均(ARMA)模型應(yīng)用在非線性系統(tǒng)預(yù)測(cè)中取得的效果不是很理想。動(dòng)態(tài)回歸神經(jīng)網(wǎng)絡(luò)提供了一種極具潛力的選擇,它能夠更生動(dòng)、更直接地反映系統(tǒng)的動(dòng)態(tài)特性,代表了神經(jīng)網(wǎng)絡(luò)建模、辨識(shí)與控制的發(fā)展方向[1-2]。Elman網(wǎng)絡(luò)是一種典型的動(dòng)態(tài)神經(jīng)元網(wǎng)絡(luò),它是在前饋網(wǎng)絡(luò)基本結(jié)構(gòu)的基礎(chǔ)上,通過存儲(chǔ)內(nèi)部狀態(tài)使其具備映射動(dòng)態(tài)特征的功能,從而使系統(tǒng)具有適應(yīng)時(shí)變特性的能力。波浪補(bǔ)償平臺(tái)垂向位移預(yù)測(cè)模型一般為非線性函數(shù),并且具有動(dòng)態(tài)特性,因此采用Elman神經(jīng)網(wǎng)絡(luò)對(duì)波浪補(bǔ)償平臺(tái)垂直位移預(yù)報(bào)進(jìn)行建模和分析。
Elman網(wǎng)絡(luò)由四層組成,分別為輸入層、隱層、承接層和輸出層,見圖1。承接層神經(jīng)元的數(shù)目與隱層神經(jīng)元數(shù)目相同。網(wǎng)絡(luò)的主要特點(diǎn)是隱層輸出通過承接層單元延遲、存儲(chǔ)、自聯(lián)到隱層輸入,從而使網(wǎng)絡(luò)對(duì)歷史狀態(tài)數(shù)據(jù)具有敏感性。同時(shí),由于網(wǎng)絡(luò)內(nèi)部增加了反饋連接,使網(wǎng)絡(luò)具有處理動(dòng)態(tài)信息的能力,有利于動(dòng)態(tài)過程建模。
圖1 Elman神經(jīng)網(wǎng)絡(luò)的結(jié)
結(jié)合圖1,Elman神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)模型可描述為:
Hj(t)=g(Vj(t))
式中:p、q、r——輸入層、隱層和輸出層神經(jīng)元的個(gè)數(shù),承接層神經(jīng)元的數(shù)目與隱層神經(jīng)元數(shù)目相同;
Ii(t)——Elman網(wǎng)絡(luò)的第i個(gè)輸入;
Vj(t)——第j個(gè)隱層神經(jīng)元的輸入和;
Hj(t)——第j個(gè)隱層神經(jīng)元的輸出;
Ok(t)——輸出層第k個(gè)神經(jīng)元的輸出;
wkj——隱層與輸出層神經(jīng)元的連接權(quán);
wja——承接層到隱層神經(jīng)元反饋連接權(quán);
wji——輸入層與隱層神經(jīng)元之間的連接權(quán);
Hja(t-1)——隱層神經(jīng)元的一步延遲輸出;
經(jīng)典反向傳播算法在實(shí)際應(yīng)用中存在兩個(gè)主要問題:收斂速度慢和目標(biāo)函數(shù)存在局部極小點(diǎn)。因此采用學(xué)習(xí)訓(xùn)練算法即自適應(yīng)學(xué)習(xí)速率動(dòng)量梯度下降反向傳播算法對(duì)反向傳播算法進(jìn)行改進(jìn)[3],來克服上述缺點(diǎn)。該算法結(jié)合了動(dòng)量梯度下降算法和自適應(yīng)學(xué)習(xí)速率梯度下降算法,可以提高Elman網(wǎng)絡(luò)的訓(xùn)練速度和穩(wěn)定性,并且可以有效地避免出現(xiàn)局部極小點(diǎn)。
1.3.1 動(dòng)量梯度下降法
動(dòng)量梯度下降法可以降低網(wǎng)絡(luò)對(duì)誤差曲面局部細(xì)節(jié)的敏感性,有效地抑制出現(xiàn)局部極小的問題。此外,對(duì)權(quán)值更新時(shí),由于考慮相繼時(shí)刻的梯度方向,提高了學(xué)習(xí)穩(wěn)定性和收斂速度。其網(wǎng)絡(luò)學(xué)習(xí)算法為:
η——學(xué)習(xí)率,η>0;
α——?jiǎng)恿恳蜃?0≤α≤1。
所加入的動(dòng)量項(xiàng)實(shí)質(zhì)上相當(dāng)于阻尼項(xiàng),減小了學(xué)習(xí)過程的振蕩趨勢(shì),改善了收斂性。
1.3.2 自適應(yīng)學(xué)習(xí)率梯度下降法
學(xué)習(xí)率對(duì)整個(gè)訓(xùn)練過程有很大的影響。學(xué)習(xí)率選得太小,則收斂太慢;而如果學(xué)習(xí)率選得太大,則有可能修正過頭,導(dǎo)致振蕩甚至發(fā)散。如果在訓(xùn)練過程中合理地改變學(xué)習(xí)率,就會(huì)避免以上缺陷。
自適應(yīng)調(diào)整學(xué)習(xí)率的改進(jìn)算法有利于縮短學(xué)習(xí)時(shí)間,其學(xué)習(xí)算法為:
η(t)=2λη(t-1)
如果連續(xù)兩次迭代梯度方向相同,表明下降太慢,這時(shí)學(xué)習(xí)率加倍;如果連續(xù)兩次迭代梯度方向相反,表明下降過頭,這時(shí)學(xué)習(xí)率減半。
從上述分析歸納出,自適應(yīng)學(xué)習(xí)速率動(dòng)量梯度下降學(xué)習(xí)算法為:
模型試驗(yàn)在華南理工大學(xué)交通學(xué)院港口與航道實(shí)驗(yàn)室中進(jìn)行,港池長(zhǎng)32 m,寬18 m,高1 m,蓄水深度為0.8 m。港池一端裝有造波機(jī),另一端鋪有1∶7的消浪斜坡,可消除90%的反射波。試驗(yàn)采用規(guī)則波進(jìn)行模擬,取波浪周期為1.4 s,波高0.06 m,數(shù)據(jù)采集間隔時(shí)間為50 ms。試驗(yàn)中穩(wěn)定平臺(tái)模型的運(yùn)動(dòng)(橫搖,縱搖和垂蕩)是通過測(cè)量布置在模型的不同位置的4個(gè)傳感器的垂直位移,經(jīng)A/D變換及計(jì)算機(jī)采集,進(jìn)一步轉(zhuǎn)換計(jì)算得到。
數(shù)據(jù)的預(yù)處理主要是指對(duì)時(shí)間序列數(shù)據(jù)進(jìn)行相應(yīng)處理得到合乎平穩(wěn)性,正態(tài)性,零均值要求的時(shí)序性數(shù)據(jù)。同時(shí),數(shù)據(jù)預(yù)處理還包括野點(diǎn)的剔除和數(shù)據(jù)平滑問題[4]。
剔除野點(diǎn)。由于實(shí)驗(yàn)環(huán)境、測(cè)量設(shè)備以及傳輸設(shè)備精度的影響,所采集的數(shù)據(jù)可靠性難以得到保證,存在遺漏數(shù)據(jù)和數(shù)據(jù)錯(cuò)誤的可能性,應(yīng)想辦法除去這些數(shù)據(jù)野點(diǎn)。通過粗略建立AR模型,求出殘差,殘差太大的數(shù)據(jù)點(diǎn)為野點(diǎn)。然后用AR算法得到的值代替野點(diǎn)處的值,重新建模直至數(shù)據(jù)平滑。另外還可通過加入信號(hào)低通的方法除去數(shù)據(jù)突變的點(diǎn)。
為了有效地利用Sigmiod函數(shù)的特性,以保證網(wǎng)絡(luò)神經(jīng)元的非線性作用,實(shí)驗(yàn)數(shù)據(jù)在輸入Elman網(wǎng)絡(luò)之前需要進(jìn)行歸一化處理,相應(yīng)地,也需要對(duì)訓(xùn)練后的數(shù)據(jù)輸出進(jìn)行反歸一化處理。
數(shù)據(jù)經(jīng)處理后,利用Matlab中的神經(jīng)網(wǎng)絡(luò)工具箱建立Elman網(wǎng)絡(luò)模型,并編制相應(yīng)的語言程序。隱含層神經(jīng)元采用tansig函數(shù)作為傳遞函數(shù),輸出層神經(jīng)元傳遞函數(shù)為純線性函數(shù)purelin。網(wǎng)絡(luò)學(xué)習(xí)算法為改進(jìn)的BP算法即自適應(yīng)學(xué)習(xí)速率動(dòng)量梯度下降反向傳播算法其對(duì)應(yīng)的訓(xùn)練函數(shù)為traingdx函數(shù)。Elman網(wǎng)絡(luò)作為波浪補(bǔ)償平臺(tái)控制點(diǎn)垂直運(yùn)動(dòng)時(shí)間序列模型,輸入和輸出神經(jīng)元分別為5個(gè)和1個(gè)。經(jīng)過試算,當(dāng)選擇隱層神經(jīng)元為15個(gè)時(shí),所建立的網(wǎng)絡(luò)模型具有較好的預(yù)報(bào)精度和較快的收斂速度。
網(wǎng)絡(luò)訓(xùn)練主要參數(shù)設(shè)置如下:訓(xùn)練次數(shù)為10 000;學(xué)習(xí)速率為0.01;學(xué)習(xí)速率增長(zhǎng)和下降比例因子分別為1.05和0.70;動(dòng)量常數(shù)為0.9;網(wǎng)絡(luò)性能目標(biāo)為0.006;網(wǎng)絡(luò)性能函數(shù)的最小梯度為1×10-10;當(dāng)訓(xùn)練次數(shù)或性能目標(biāo)或性能函數(shù)的最小梯度達(dá)到設(shè)置要求時(shí),網(wǎng)絡(luò)訓(xùn)練停止[5]。
1) 圖2和圖3給出了Elman網(wǎng)絡(luò)模型訓(xùn)練誤差曲線。從圖中可以看出采用BP算法的Elman網(wǎng)絡(luò)在訓(xùn)練到6 554次時(shí),達(dá)到網(wǎng)絡(luò)性能目標(biāo)0.006。而改進(jìn)反向傳播算法的Elman網(wǎng)絡(luò)訓(xùn)練只需訓(xùn)練187即可達(dá)到性能目標(biāo),具有更快的收斂速度。
圖2 采用反向傳播算法網(wǎng)絡(luò)訓(xùn)練誤差曲
圖3 采用改進(jìn)反向傳播算法網(wǎng)絡(luò)訓(xùn)練誤差曲
2) 以自適應(yīng)學(xué)習(xí)率動(dòng)量梯度下降反向傳播算法進(jìn)行學(xué)習(xí)訓(xùn)練的前饋網(wǎng)絡(luò)預(yù)測(cè)模型和Elman網(wǎng)絡(luò)預(yù)測(cè)模型對(duì)波浪補(bǔ)償平臺(tái)控制點(diǎn)垂向位移的預(yù)報(bào)結(jié)果見圖4、5。
圖4 前饋網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果
圖5 Elamn網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果
從圖中可以看出以Elman網(wǎng)絡(luò)和前饋網(wǎng)絡(luò)作為波浪補(bǔ)償平臺(tái)控制點(diǎn)未來0.2 s(波浪補(bǔ)償平臺(tái)控制點(diǎn)垂直位移短時(shí)預(yù)報(bào)要求)垂向位移預(yù)報(bào)模型都具有較好的效果。但是相對(duì)前饋型網(wǎng)絡(luò)預(yù)報(bào)模型而言,Elman網(wǎng)絡(luò)預(yù)報(bào)模型的位移預(yù)報(bào)曲線和實(shí)際位移曲線更加貼近,即預(yù)報(bào)誤差比前饋網(wǎng)絡(luò)預(yù)報(bào)模型的預(yù)報(bào)誤差更小。因此,采用Elman網(wǎng)絡(luò)模型進(jìn)行預(yù)報(bào)具有一定的可行性。
[1] Elman.J L.Finding structure in time[J].Cognitive Science, 1990, 14: 179-211.
[2] Masumi.Prediction of time series by a structure learning of neural network [J].Fuzzy Sets and System, 1996, 82:167-176.
[3] 韓萬林,張幼蒂.用改進(jìn)算法估算礦石品位[J].系統(tǒng)工程,2000,9(3):80-82.
[4] 沈 艷.神經(jīng)網(wǎng)絡(luò)理論研究及在艦船運(yùn)動(dòng)預(yù)報(bào)中的應(yīng)用[D].哈爾濱:哈爾濱工程大學(xué),2005.
[5] 董長(zhǎng)虹.Matlab神經(jīng)網(wǎng)絡(luò)與應(yīng)用[M].北京:國(guó)防工業(yè)出版社,2005.