李少偉 王勝正
關(guān)鍵詞: 自動舵; 深度置信網(wǎng)絡; 對比散度算法; 受限波爾茲曼機; 深度神經(jīng)網(wǎng)絡; 反向傳播算法
中圖分類號: TN830.1?34; U665 ? ? ? ? ? ? ? ? ?文獻標識碼: 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)絡、模糊算法等方法也在不斷地應用于自動舵控制系統(tǒng)中。喬富強利用DSP強大的數(shù)字信號處理能力,提出一種基于傳統(tǒng)PID算法的自動舵控制方法[1]。由于作者在算法中加入了濾波函數(shù),因此與傳統(tǒng)方法相比,其控制精度有了一定的提高。文獻[2]建立完整的船舶航向保持控制模型,并引入神經(jīng)網(wǎng)絡方法獲取模型參數(shù),以應對船舶在不同風、流條件下的運動。文獻[3?4]為了改進傳統(tǒng)PID算法中參數(shù)調(diào)整的難題,提出基于BP神經(jīng)網(wǎng)絡和PID控制算法的自動舵控制方法。該方法根據(jù)船舶當前水域的風、流、浪等情況,利用神經(jīng)網(wǎng)絡實時計算得到PID控制參數(shù),提高了自動舵的環(huán)境適應能力。為了克服BP神經(jīng)網(wǎng)絡在應用中的缺陷,文獻[5?6]提出采用RBF神經(jīng)網(wǎng)絡來代替BP神經(jīng)網(wǎng)絡,進行PID參數(shù)的計算。與傳統(tǒng)BP神經(jīng)網(wǎng)絡相比,這種控制方法具有更快的訓練和學習速度,同時可以對并行數(shù)據(jù)進行高速處理;為了進一步提高自動舵的智能化程度,文獻[7?8]均提出了基于模糊神經(jīng)網(wǎng)絡的船舶自動舵控制算法。這種算法可以利用人類的知識和經(jīng)驗,將自動舵控制算法中的參數(shù)以模糊算法進行表示,同時具有在線學習以及自動調(diào)整參數(shù)等優(yōu)勢,進一步提高了自動舵的實用性;除此以外,科研人員還針對船舶運動模型進行過自動舵的研究,但由于船舶運動受到環(huán)境因素影響較大,因此其實用性大大受限[9]。
綜上可知,采用人工神經(jīng)網(wǎng)絡來實現(xiàn)自動舵控制算法已經(jīng)成為此領(lǐng)域的發(fā)展趨勢與研究熱點。但是由于傳統(tǒng)的神經(jīng)網(wǎng)絡并不能很好地模仿人腦的工作原理,同時存在梯度擴散、收斂于局部最小值以及不適合無標簽數(shù)據(jù)的處理等問題,使得基于神經(jīng)網(wǎng)絡的自動舵算法存在著控制精度不高、環(huán)境適應性不強等問題。DNN模型是對于神經(jīng)網(wǎng)絡模型的一種很好的改進與取代。這種模型可以更為精確地模擬人腦的工作過程,并且更適用于處理類似船舶自動舵控制這樣的無標簽大數(shù)據(jù)。文獻[10]提出一種訓練DNN的方法,稱為逐層貪婪算法,開啟了學術(shù)界和工業(yè)界對DNN研究新熱潮;文獻[11]對深度學習進行了較為全面的綜述,提出了貪婪逐層預訓練學習過程用于初始化深度學習模型的參數(shù),從底層開始訓練每層神經(jīng)網(wǎng)絡形成輸入的表示。在此之后,堆棧各層神經(jīng)網(wǎng)絡轉(zhuǎn)換為深度監(jiān)督前饋神經(jīng)網(wǎng)絡,用梯度下降進行微調(diào)。由于深度學習在我國發(fā)展較晚,國內(nèi)相關(guān)學者在引進相關(guān)算法的同時,對算法進行了更詳細的分析與解釋。當前,DNN方法已經(jīng)成功應用于圖像識別、語音識別、語種識別等領(lǐng)域,并且已經(jīng)取得了良好的效果。
至此,將DNN應用于自動舵控制算法的研究已經(jīng)有了較為堅實的理論基礎(chǔ),但至今為止,在國內(nèi)外相關(guān)文獻中尚未發(fā)現(xiàn)基于DNN的船舶自動舵控制研究。本文選取DBN作為自動舵控制算法,希望能用此方法改進現(xiàn)有自動舵控制算法中存在的控制精度不高、環(huán)境適應性以及穩(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)絡組成,結(jié)合了無監(jiān)督學習和有監(jiān)督學習各自的優(yōu)點。DBN的訓練過程分為預訓練和微調(diào)兩個階段[13]。
為了方便后述實驗部分的進行,在此列出基于對比散度算法的RBM模型訓練過程。對于模型訓練的詳細理論基礎(chǔ)及推導,可詳見文獻[13]。
1) 給定訓練周期J,學習率η、對比散度算法中的參數(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模型的逐層訓練。
4) 利用式(6)~式(8)更新網(wǎng)絡參數(shù)W,a,b。
[W=η1nsΔW] (6)
[a=η1nsΔa] (7)
[b=η1nsΔb] (8)
5) 進入算法步驟2),直到滿足訓練周期的要求,則算法停止。
按以上方法訓練出的參數(shù)需要進行反向微調(diào)才能達到DBN整體最優(yōu)效果。反向微調(diào)時,DBN利用BP網(wǎng)絡有監(jiān)督地訓練最頂層的BP網(wǎng)絡,對RBM網(wǎng)絡學習到的特征進行分類,將DBN的實際輸出與預期輸出之間的誤差逐層反向傳遞至所有RBM網(wǎng)絡,微調(diào)RBM網(wǎng)絡層間的參數(shù),得到最優(yōu)的DBN。
2.1 ?網(wǎng)絡輸入?yún)?shù)
影響船舶運動狀態(tài)的因素很多,在此,根據(jù)航海操舵模擬器的設(shè)計原理,選取具有較大權(quán)重的影響因子,使其作為神經(jīng)網(wǎng)絡的訓練輸入,例如風向、風力、流向、流速等。由于DBN模型僅能識別0,1兩種數(shù)據(jù),因此,影響船舶運動的因素全部轉(zhuǎn)換為二進制數(shù)值化的形式。
2.2 ?網(wǎng)絡輸出參數(shù)
DBN的功能和作用就是實現(xiàn)舵角的改變,使船舶盡可能穩(wěn)定地航行在目標航線上,因此,神經(jīng)網(wǎng)絡的輸出參數(shù)僅有一個,就是目標舵角。對于普通商船而言,舵角的取值一般在-35°~35°之間,因此,網(wǎng)絡的輸出取值定位0~71,采用7位二進制表示。
3.1 ?模型結(jié)構(gòu)
圖3展示了使用最為廣泛的5層DBN模型。將圖3所示的DBN模型為核心,在此基礎(chǔ)上,引入DeepLearnToolbox[14]作為開發(fā)工具,適當微調(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)得到誤差指標。
[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層,同時以上海海事大學高級船員培訓系統(tǒng)所記錄的考試培訓數(shù)據(jù)作為訓練樣本,結(jié)合對比散度算法,對組成DBN模型的每一層RBM依次進行訓練,以獲得DBN的初值;然后提取出訓練樣本中實操精度較高的數(shù)據(jù)作為有標簽的數(shù)據(jù),采用BP算法實現(xiàn)對DBN的微調(diào)。為提高開發(fā)效率,將DeepLearnToolbox工具引入本文,實現(xiàn)對DBN模型的快速訓練。
參考文獻
[1] 喬富強.基于DSP的艦船PID自動舵監(jiān)控系統(tǒng)的研究[J].艦船科學技術(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)絡的PID在船舶自動舵中的應用與研究[J].艦船科學技術(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] 劉建偉,劉媛,羅雄麟.深度學習研究進展[J].計算機應用研究,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.