李少偉 王勝正
關(guān)鍵詞: 自動舵; 深度置信網(wǎng)絡(luò); 對比散度算法; 受限波爾茲曼機; 深度神經(jīng)網(wǎng)絡(luò); 反向傳播算法
中圖分類號: TN830.1?34; U665 ? ? ? ? ? ? ? ? ?文獻標(biāo)識碼: A ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2018)24?0039?04
Application of deep neural networks in ship autopilot rudder
LI Shaowei1, WANG Shengzheng2
(1. School of Mathematics and Computer Science, Jianghan University, Wuhan 430056, China;
2. Merchant Marine College, Shanghai Maritime University, Shanghai 201306, China)
Abstract: An autopilot rudder control algorithm based on deep belief networks (DBNs) is proposed to improve the control accuracy and self?adaptability of the existing ship autopilot rudder. Each layer of the restricted Boltzmann machine (RBM) model that constitutes the DBN is pre?trained by using the comparative divergence algorithm and combining with the data recorded in the advanced crew examination system of Shanghai Maritime University. The results are taken as initial weight values of deep neural networks. On this basis, the back propagation algorithm is used to conduct fine?tuning training of the multi?layer depth structure. The results of the simulation experiment show that the error between the proposed method and the ship operation simulation of a senior captain is only 5.2%.
Keywords: autopilot rudder; deep belief network; comparative divergence algorithm; restricted Boltzmann machine; deep neural network; back propagation algorithm
隨著人工智能的發(fā)展,神經(jīng)網(wǎng)絡(luò)、模糊算法等方法也在不斷地應(yīng)用于自動舵控制系統(tǒng)中。喬富強利用DSP強大的數(shù)字信號處理能力,提出一種基于傳統(tǒng)PID算法的自動舵控制方法[1]。由于作者在算法中加入了濾波函數(shù),因此與傳統(tǒng)方法相比,其控制精度有了一定的提高。文獻[2]建立完整的船舶航向保持控制模型,并引入神經(jīng)網(wǎng)絡(luò)方法獲取模型參數(shù),以應(yīng)對船舶在不同風(fēng)、流條件下的運動。文獻[3?4]為了改進傳統(tǒng)PID算法中參數(shù)調(diào)整的難題,提出基于BP神經(jīng)網(wǎng)絡(luò)和PID控制算法的自動舵控制方法。該方法根據(jù)船舶當(dāng)前水域的風(fēng)、流、浪等情況,利用神經(jīng)網(wǎng)絡(luò)實時計算得到PID控制參數(shù),提高了自動舵的環(huán)境適應(yīng)能力。為了克服BP神經(jīng)網(wǎng)絡(luò)在應(yīng)用中的缺陷,文獻[5?6]提出采用RBF神經(jīng)網(wǎng)絡(luò)來代替BP神經(jīng)網(wǎng)絡(luò),進行PID參數(shù)的計算。與傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)相比,這種控制方法具有更快的訓(xùn)練和學(xué)習(xí)速度,同時可以對并行數(shù)據(jù)進行高速處理;為了進一步提高自動舵的智能化程度,文獻[7?8]均提出了基于模糊神經(jīng)網(wǎng)絡(luò)的船舶自動舵控制算法。這種算法可以利用人類的知識和經(jīng)驗,將自動舵控制算法中的參數(shù)以模糊算法進行表示,同時具有在線學(xué)習(xí)以及自動調(diào)整參數(shù)等優(yōu)勢,進一步提高了自動舵的實用性;除此以外,科研人員還針對船舶運動模型進行過自動舵的研究,但由于船舶運動受到環(huán)境因素影響較大,因此其實用性大大受限[9]。
綜上可知,采用人工神經(jīng)網(wǎng)絡(luò)來實現(xiàn)自動舵控制算法已經(jīng)成為此領(lǐng)域的發(fā)展趨勢與研究熱點。但是由于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)并不能很好地模仿人腦的工作原理,同時存在梯度擴散、收斂于局部最小值以及不適合無標(biāo)簽數(shù)據(jù)的處理等問題,使得基于神經(jīng)網(wǎng)絡(luò)的自動舵算法存在著控制精度不高、環(huán)境適應(yīng)性不強等問題。DNN模型是對于神經(jīng)網(wǎng)絡(luò)模型的一種很好的改進與取代。這種模型可以更為精確地模擬人腦的工作過程,并且更適用于處理類似船舶自動舵控制這樣的無標(biāo)簽大數(shù)據(jù)。文獻[10]提出一種訓(xùn)練DNN的方法,稱為逐層貪婪算法,開啟了學(xué)術(shù)界和工業(yè)界對DNN研究新熱潮;文獻[11]對深度學(xué)習(xí)進行了較為全面的綜述,提出了貪婪逐層預(yù)訓(xùn)練學(xué)習(xí)過程用于初始化深度學(xué)習(xí)模型的參數(shù),從底層開始訓(xùn)練每層神經(jīng)網(wǎng)絡(luò)形成輸入的表示。在此之后,堆棧各層神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換為深度監(jiān)督前饋神經(jīng)網(wǎng)絡(luò),用梯度下降進行微調(diào)。由于深度學(xué)習(xí)在我國發(fā)展較晚,國內(nèi)相關(guān)學(xué)者在引進相關(guān)算法的同時,對算法進行了更詳細(xì)的分析與解釋。當(dāng)前,DNN方法已經(jīng)成功應(yīng)用于圖像識別、語音識別、語種識別等領(lǐng)域,并且已經(jīng)取得了良好的效果。
至此,將DNN應(yīng)用于自動舵控制算法的研究已經(jīng)有了較為堅實的理論基礎(chǔ),但至今為止,在國內(nèi)外相關(guān)文獻中尚未發(fā)現(xiàn)基于DNN的船舶自動舵控制研究。本文選取DBN作為自動舵控制算法,希望能用此方法改進現(xiàn)有自動舵控制算法中存在的控制精度不高、環(huán)境適應(yīng)性以及穩(wěn)定性差等問題,是一種創(chuàng)新也可以說是一種挑戰(zhàn)。
DBN由若干結(jié)構(gòu)單元堆棧組成,如圖1所示,其結(jié)構(gòu)單元通常為RBM[12]。
對于圖1中的任何一個RBM,其結(jié)構(gòu)均是一個兩層結(jié)構(gòu)模型,底層是由可見節(jié)點[v=v1,v2,…,vi]組成的可見層,頂層是由隱藏節(jié)點[h=h1,h2,…,hj]組成的隱藏層,兩層之間的節(jié)點全連接,每一個連接都有一個權(quán)值[wij],但處于同一層的節(jié)點之間互不連接。同時,可見層與隱藏層均有自己的偏置量,記為a,b。每個神經(jīng)元的輸出有兩種,分別為0或者1。圖2為RBM模型示意圖。
DBN模型由多層無監(jiān)督的RBM和一層有監(jiān)督的BP網(wǎng)絡(luò)組成,結(jié)合了無監(jiān)督學(xué)習(xí)和有監(jiān)督學(xué)習(xí)各自的優(yōu)點。DBN的訓(xùn)練過程分為預(yù)訓(xùn)練和微調(diào)兩個階段[13]。
為了方便后述實驗部分的進行,在此列出基于對比散度算法的RBM模型訓(xùn)練過程。對于模型訓(xùn)練的詳細(xì)理論基礎(chǔ)及推導(dǎo),可詳見文獻[13]。
1) 給定訓(xùn)練周期J,學(xué)習(xí)率η、對比散度算法中的參數(shù)K(K=1)以及樣本數(shù)量[ns]。
2) 初始化權(quán)值向量[W]以及偏置量[a,b],初始化ΔW=Δa=Δb。
3) 采用對比散度算法,通過對樣本進行循環(huán),更新ΔW,Δa,Δb。
① 利用式(1)計算隱藏層第k個神經(jīng)元為1的條件概率,即:
[P(hk=1|v)=sigmoidbk+i=1nvi*wik] (1)
[sigmoidbk+i=1nvi*wik]將式(1)中的計算結(jié)果與[0,1]之間的隨機數(shù)r進行比較,若[r<P(hk=1|v)],則[hk]=1,否則取0。最終得到更新后的隱藏層[h0]。
② 利用式(2)計算可視層第k個神經(jīng)元為1的條件概率,即:
[P(vk=1|h)=sigmoidak+i=1nhi*wik] (2)
將式(2)中的計算結(jié)果與[0,1]之間的隨機數(shù)[r]進行比較,若[r<Pvk=1|h],則[vk]=1,否則取0。最終得到更新后的可視層[v1]。
③ 利用式(3)~式(5)更新[ΔW,Δa,Δb]。
[Δwij=Δwij+[P(hj=1v0)v0i-P(hjv1)v1i]] (3)
[Δai=Δai+(v0i-v1i)] (4)
[Δbj=Δbj+[P(hj=1v0)-P(hjv1)]] (5)
④ 利用算法第①~③步完成對RBM模型的逐層訓(xùn)練。
4) 利用式(6)~式(8)更新網(wǎng)絡(luò)參數(shù)W,a,b。
[W=η1nsΔW] (6)
[a=η1nsΔa] (7)
[b=η1nsΔb] (8)
5) 進入算法步驟2),直到滿足訓(xùn)練周期的要求,則算法停止。
按以上方法訓(xùn)練出的參數(shù)需要進行反向微調(diào)才能達(dá)到DBN整體最優(yōu)效果。反向微調(diào)時,DBN利用BP網(wǎng)絡(luò)有監(jiān)督地訓(xùn)練最頂層的BP網(wǎng)絡(luò),對RBM網(wǎng)絡(luò)學(xué)習(xí)到的特征進行分類,將DBN的實際輸出與預(yù)期輸出之間的誤差逐層反向傳遞至所有RBM網(wǎng)絡(luò),微調(diào)RBM網(wǎng)絡(luò)層間的參數(shù),得到最優(yōu)的DBN。
2.1 ?網(wǎng)絡(luò)輸入?yún)?shù)
影響船舶運動狀態(tài)的因素很多,在此,根據(jù)航海操舵模擬器的設(shè)計原理,選取具有較大權(quán)重的影響因子,使其作為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練輸入,例如風(fēng)向、風(fēng)力、流向、流速等。由于DBN模型僅能識別0,1兩種數(shù)據(jù),因此,影響船舶運動的因素全部轉(zhuǎn)換為二進制數(shù)值化的形式。
2.2 ?網(wǎng)絡(luò)輸出參數(shù)
DBN的功能和作用就是實現(xiàn)舵角的改變,使船舶盡可能穩(wěn)定地航行在目標(biāo)航線上,因此,神經(jīng)網(wǎng)絡(luò)的輸出參數(shù)僅有一個,就是目標(biāo)舵角。對于普通商船而言,舵角的取值一般在-35°~35°之間,因此,網(wǎng)絡(luò)的輸出取值定位0~71,采用7位二進制表示。
3.1 ?模型結(jié)構(gòu)
圖3展示了使用最為廣泛的5層DBN模型。將圖3所示的DBN模型為核心,在此基礎(chǔ)上,引入DeepLearnToolbox[14]作為開發(fā)工具,適當(dāng)微調(diào)隱藏層神經(jīng)元的數(shù)量,以驗證不同數(shù)量的神經(jīng)元對DBN模型的影響。
3.2 ?仿真數(shù)據(jù)分析與比較
仿真實驗中的船舶編號為3號,長度179.7 m,船寬27.6 m,最大吃水9.5 m,船型為集裝箱船。操船場景為長江口外錨地進港,數(shù)據(jù)記錄時間為500 s,船艏向初值為0,不涉及避碰與超船。其中人工操舵與自動舵操舵已經(jīng)分別予以記錄,如圖4、圖5所示。
由圖4及圖5可知,機器操船與人工操船在精度上已經(jīng)非常接近。為了進一步對誤差進行分析,選擇每秒進行一次誤差記錄,記為ei,單位為m,并采用式(9)、式(10)得到誤差指標(biāo)。
[E=i=0nein] (9)
[D=i=0n(ei-E)2n] (10)
式中:E表示誤差均值;D表示誤差的方差。經(jīng)過計算可知,人工操船的誤差為22.5,方差為4.6;機器操船的誤差為23.7,方差為5.3。以上數(shù)據(jù)也進一步說明基于DBN模型的自動舵具有較高的精度。
反觀現(xiàn)有的相關(guān)控制算法,大部分文章的作者僅僅提出了相關(guān)的理論,并沒有針對相關(guān)理論進行驗證或仿真驗證,例如參考文獻[3?4]所涉及的內(nèi)容;有的文章雖然進行了仿真實驗,但實驗環(huán)境采用固定參數(shù)的形式,并且沒有相關(guān)船舶運動模型作為支撐,例如參考文獻[5?8]中的內(nèi)容,因此其結(jié)果并不具備一定的實用價值。
通過仿真實驗可知,本算法在自動舵中的控制精度與人工操舵精度差距已經(jīng)非常微小,平均誤差僅為5.2%,已具備了實船測驗的基本條件。本算法同時也存在一定的不足之處,例如對于圖6所示的會遇場景,本算法暫無法處理,留待后續(xù)研究。
本文針對船舶自動舵控制系統(tǒng),提出一種基于DBN的船舶自動舵控制模型。該模型隱藏層確定為5層,同時以上海海事大學(xué)高級船員培訓(xùn)系統(tǒng)所記錄的考試培訓(xùn)數(shù)據(jù)作為訓(xùn)練樣本,結(jié)合對比散度算法,對組成DBN模型的每一層RBM依次進行訓(xùn)練,以獲得DBN的初值;然后提取出訓(xùn)練樣本中實操精度較高的數(shù)據(jù)作為有標(biāo)簽的數(shù)據(jù),采用BP算法實現(xiàn)對DBN的微調(diào)。為提高開發(fā)效率,將DeepLearnToolbox工具引入本文,實現(xiàn)對DBN模型的快速訓(xùn)練。
參考文獻
[1] 喬富強.基于DSP的艦船PID自動舵監(jiān)控系統(tǒng)的研究[J].艦船科學(xué)技術(shù),2017,39(14):127?129.
QIAO Fuqiang. Research on PID automatic rudder monitoring system based on DSP technology [J]. Ship science and technology, 2017, 39(14): 127?129.
[2] KULA K S. Model?based controller for ship track?keeping using neural network [C]// Proceedings of 2nd International Conference on Cybernetics. Gdynia: IEEE, 2015: 178?183.
[3] HUO Xingxing, HU Jiangqiang, YU Ting. Fuzzy PID autopilot for ship steering based on stratification and sub fuzzy controller [J]. Journal of Dalian Maritime University, 2013, 39(4): 71?74.
[4] 常靜.基于BP神經(jīng)網(wǎng)絡(luò)的PID在船舶自動舵中的應(yīng)用與研究[J].艦船科學(xué)技術(shù),2017,39(6):105?107.
CHANG Jing. Application and research of the fuzzy PID autopilot based on BP neural network [J]. Ship science and technology, 2017, 39(6): 105?107.
[5] WANG Renqiang, ZHAO Yuelin, SUN Jianming. Application of optimized RBF neural network in ship′s autopilot design [C]// Proceedings of IEEE Advanced Information Management, Communicates, Electronic and Automation Control Conference. Xian: IEEE, 2017: 1642?1646.
[6] WANG Y Y, NGUYEN H D, CHAI S, et al. Radial basis function neural network based rudder roll stabilization for ship sailing in waves [C]// Proceedings of 5th Australian Control Conference. Gold Coast: IEEE, 2015: 158?163.
[7] WANG M H, YU Y Q, ZENG B. Study of intelligent control system for ship autopilot design [C]// Proceedings of 8th IEEE/ACIS International Conference on Computer and Information Science. Shanghai: IEEE, 2009: 701?705.
[8] WU Y X, XUE M J, WU P J. Study on fuzzy neural network?based ship autopilot [C] // Proceedings of 6th International Conference on Natural Computation. Yantai: IEEE, 2010: 1393?1396.
[9] KAPITANYUK Y A, PROSKURNIKOV A V, CAO M. Optimal controllers for rudder roll damping with an autopilot in the loop [J]. IFAC?papersonline, 2016, 49(23): 562?567.
[10] HINTON G E,OSINDERO S,TEH Y W. A fast learning algorithm for deep belief nets [J]. Neural computation, 2006, 18(7): 1527?1554.
[11] BENGIO Y. Learning deep architectures for AI [J]. Foundations & trends in machine learning, 2009, 2(1): 1?127.
[12] 劉建偉,劉媛,羅雄麟.深度學(xué)習(xí)研究進展[J].計算機應(yīng)用研究,2014,31(7):1921?1930.
LIU Jianwei, LIU Yuan, LUO Xionglin. Research and development on deep learning [J]. Application research of computers, 2014, 31(7): 1921?1930.
[13] LAROCHELLE H, BENGIO Y, LOURADOUR J, et al. Exploring strategies for training deep neural networks [J]. Journal of machine learning research, 2009, 10: 1?40.
[14] PALM R B. Deep learn toolbox [EB/OL]. [2018?01?04]. http://www.pudn.com/Download/item/id/3341483.html.