李少偉,王勝正
(1.江漢大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院, 湖北 武漢 430056;2.上海海事大學(xué)商船學(xué)院,上海 201306)
隨著智能化控制算法的不斷涌現(xiàn),船舶自動(dòng)舵控制系統(tǒng)已經(jīng)由傳統(tǒng)的PID控制算法逐漸向人工智能控制領(lǐng)域不斷發(fā)展。特別是隨著人工神經(jīng)網(wǎng)絡(luò)(Neural Networks,NN)技術(shù)的不斷突破,為船舶自動(dòng)控制方法提供了堅(jiān)實(shí)的理論基礎(chǔ)。
來自大連海事大學(xué)的Xingxing Huo等人[1][2]在基于PID的自動(dòng)舵控制算法中加入BP神經(jīng)網(wǎng)絡(luò),在一定程度上實(shí)現(xiàn)了智能化參數(shù)調(diào)整,提高了自動(dòng)舵的環(huán)境適應(yīng)性;澳洲海事大學(xué)的Yuanyuan Wang等人[3][4]在Xingxing Huo等人的基礎(chǔ)上,提出了基于徑向基函數(shù)(Radial Basis Function,RBF)神經(jīng)網(wǎng)絡(luò)的PID控制算法,從而進(jìn)一步加快了算法的訓(xùn)練以及學(xué)習(xí)速度,同時(shí)可以高速處理接收到的并行數(shù)據(jù);Wang Minghui以及Yanxiang Wu等人[5][6]在其論文中提出了基于模糊神經(jīng)網(wǎng)絡(luò)(Fuzzy NN)的船舶自動(dòng)舵控制方法。該方法中可以融入人類已知的經(jīng)驗(yàn)和知識(shí),從而可以進(jìn)一步提高控制算法的智能水平。同時(shí)具備在線學(xué)習(xí)以及自動(dòng)參數(shù)調(diào)整等優(yōu)勢(shì),使得自動(dòng)舵實(shí)用性大為提高;此外,科研人員還針對(duì)船舶運(yùn)動(dòng)模型進(jìn)行過自動(dòng)舵的研究,但由于船舶運(yùn)動(dòng)受到環(huán)境因素影響較大,因此其實(shí)用性大大受限[7]。
現(xiàn)階段,雖然采用人工神經(jīng)網(wǎng)絡(luò)方法來實(shí)現(xiàn)船舶自動(dòng)舵控制系統(tǒng)已取得了一定的成效。但受限于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中存在的收斂于局部最小值、梯度擴(kuò)散以及不適合無標(biāo)簽數(shù)據(jù)的處理等問題,導(dǎo)致基于神經(jīng)網(wǎng)絡(luò)的自動(dòng)舵算法存在著控制精度不高、環(huán)境適應(yīng)性不強(qiáng)等問題。
深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN)模型是對(duì)于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型的一種很好的改進(jìn)與取代,該模型更接近人腦的工作過程,同時(shí)更適用于處理類似船舶自動(dòng)舵控制這樣的無標(biāo)簽大數(shù)據(jù)。2006年,Hinton[8]等人提出一種訓(xùn)練DNN的方法,稱為逐層貪婪算法,開啟了學(xué)術(shù)界和工業(yè)界對(duì)DNN研究新熱潮;文獻(xiàn)[9]對(duì)深度學(xué)習(xí)進(jìn)行了較為全面的綜述,提出了貪婪逐層預(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ò),用梯度下降進(jìn)行微調(diào)。至此,基于DNN的自動(dòng)舵控制模型理論基礎(chǔ)得以建立。
通過對(duì)相關(guān)文獻(xiàn)及專利查找可知,現(xiàn)階段尚未有國內(nèi)外相關(guān)學(xué)者進(jìn)行基于DNN的船舶自動(dòng)舵控制方法研究?;谝陨显颍疚倪x取ELAN神經(jīng)網(wǎng)絡(luò)以及深度置信網(wǎng)絡(luò)(Deep Belief Networks,DBN)作為傳統(tǒng)神經(jīng)網(wǎng)絡(luò)及深度神經(jīng)網(wǎng)絡(luò)的代表,分別實(shí)現(xiàn)了基于以上模型的船舶自動(dòng)舵控制算法自動(dòng)舵控制算法。通過實(shí)驗(yàn),分析比較了不同神經(jīng)網(wǎng)絡(luò)模型對(duì)自動(dòng)舵控制系統(tǒng)精度的影響。
如圖1所示的神經(jīng)元是組成人工神經(jīng)網(wǎng)絡(luò)的基本單元,這種單元一般具有多輸入單輸出的特性。其中,向量X為來自上一層的輸入wij表示連接兩層神經(jīng)元i,j之間的權(quán)重;bj為第j個(gè)神經(jīng)元的偏置量;yj則表示神經(jīng)元j的輸出。
圖 1 神經(jīng)元結(jié)構(gòu)
相應(yīng)地,輸入與輸出之間有如(1)式所示的關(guān)系。
其中f表示激勵(lì)函數(shù),通常選取sigmoid、tanh以及徑向基函數(shù)等。
上述神經(jīng)元可以按照一定的規(guī)則,組成如圖2所示的人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
圖 2 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
如圖3所示為ELAN神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),從圖中可以看出,相比普通前饋網(wǎng)絡(luò),ELAN神經(jīng)網(wǎng)絡(luò)在輸入層多出了承接層,并且其輸入與隱藏層神經(jīng)元的輸出相關(guān)。這種結(jié)構(gòu)起到了一步延時(shí)算子的作用,從而以達(dá)到記憶的目的,使系統(tǒng)具有適應(yīng)時(shí)變特性的能力,能直接反映動(dòng)態(tài)過程系統(tǒng)的特性[10]。
圖 3 ELAN神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
ELAN神經(jīng)網(wǎng)絡(luò)的運(yùn)算規(guī)則由以下四個(gè)等式組成。
其中X(k)為網(wǎng)絡(luò)的輸入為,Y(k)為網(wǎng)絡(luò)輸出,Wi,i+1為連接第i層與第i+1層神經(jīng)元的權(quán)值矩陣,Bi為第i層神經(jīng)元的偏置輸入為,C(k)為承接層的輸入,Hi(k)、Ho(k)分別為隱藏層的輸入輸出。等式(1)中的[C(k), X(k)]表示連接向量C(k)與向量X(k)。
DBN由若干結(jié)構(gòu)單元堆棧組成,如圖4所示,其結(jié)構(gòu)單元通常為RBM[11]。
圖 4 DBN結(jié)構(gòu)
對(duì)于圖4中的任何一個(gè)RBM,其結(jié)構(gòu)均是一個(gè)兩層結(jié)構(gòu)模型,底層是由可見節(jié)點(diǎn)v={v1,v2,v3,…vi}組成的可見層,頂層是由隱藏節(jié)點(diǎn)h={h1,h2,h3,…h(huán)j}組成的隱藏層,兩層之間的節(jié)點(diǎn)全連接,每一個(gè)連接都有一個(gè)權(quán)值wij,但處于同一層的節(jié)點(diǎn)之間互不連接。同時(shí),可見層與隱藏層均有自己的偏置量,記為a,b。每個(gè)神經(jīng)元的輸出有兩種,分別為0或者1。如圖5所示為RBM模型示意圖。
圖 5 RBM模型
基于神經(jīng)網(wǎng)絡(luò)的自動(dòng)舵控制系統(tǒng)包含輸入與輸出兩個(gè)部分,因此需要建立自動(dòng)舵輸入變量與神經(jīng)網(wǎng)絡(luò)輸入之間的關(guān)系。另外,還要考慮隱藏層數(shù)量與節(jié)點(diǎn)數(shù)量的相關(guān)因素,優(yōu)化網(wǎng)絡(luò)輸出。
影響船舶運(yùn)動(dòng)狀態(tài)的因素很多,在此,根據(jù)航海操舵模擬器的設(shè)計(jì)原理,我們選取如表1所示的、具有較大權(quán)重的影響因子,使其作為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練輸入。
表1 影響船舶航向的主要因素
影響船舶運(yùn)動(dòng)狀態(tài)的因素很多,在此,根據(jù)航海操舵模擬器的設(shè)計(jì)原理,選取具有較大權(quán)重的影響因子,使其作為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練輸入,例如風(fēng)向、風(fēng)力、流向、流速等。所以數(shù)據(jù)在輸入前全部轉(zhuǎn)換為二進(jìn)制數(shù)值,即取值為0、1。
自動(dòng)舵控制系統(tǒng)的功能和作用就是實(shí)現(xiàn)舵角的改變,使船舶盡可能穩(wěn)定地航行在目標(biāo)航線上,因此,神經(jīng)網(wǎng)絡(luò)的輸出參數(shù)僅有一個(gè),就是目標(biāo)舵角。對(duì)于普通商船而言,舵角的取值一般在-35°~+35°之間,因此,網(wǎng)絡(luò)的輸出取值定位0~71,采用7位二進(jìn)制表示。
如前文所述,本系統(tǒng)所需的所有樣本數(shù)據(jù)均來源于上海海事大學(xué)高級(jí)船員考試培訓(xùn)系統(tǒng),具體的數(shù)據(jù)記錄設(shè)備為SMU V型航海操縱模擬器。如圖6所示為操縱模擬器數(shù)據(jù)傳輸框架示意圖。
圖 6 模擬器數(shù)據(jù)傳輸框架
從圖6可知,ship主機(jī)程序通過RS232接口接收船舶操縱人員的指令,并記錄操舵信息;通過網(wǎng)絡(luò)接收來自電子海圖的航線信息以及偏航誤差;通過網(wǎng)絡(luò)接口接收來自教練員程序的航行環(huán)境數(shù)據(jù)(風(fēng)速、流速等)。上述信息根據(jù)表1中的方式,轉(zhuǎn)換為NN能夠識(shí)別的形式。
本文所涉及到的ELAN神經(jīng)網(wǎng)絡(luò)為淺層網(wǎng)絡(luò),在MATLAB中已有現(xiàn)成的實(shí)現(xiàn);而DBN為深度神經(jīng)網(wǎng)絡(luò),因此,本文引入DeepLearnToolbox實(shí)現(xiàn)其模型[16]。
以Matlab作為模型仿真平臺(tái),引入了開源庫函數(shù)Deep-LearnToolbox,根據(jù)不同的模型參數(shù),建立了適用于自動(dòng)舵控制的DBN模型,節(jié)省了開發(fā)時(shí)間。表2所述為DeepLearnToolbox中關(guān)于建立DBN模型所涉及到的相關(guān)方法與參數(shù)。
表2 函數(shù)說明
仿真實(shí)驗(yàn)中的船舶編號(hào)為3號(hào),長度179.7米,船寬27.6米,最大吃水9.5米,船型為集裝箱船。操船場(chǎng)景為長江口外錨地進(jìn)港,數(shù)據(jù)記錄時(shí)間為500s,船艏向初值為0。如圖7所示,本船位于錨地。
圖 7 實(shí)驗(yàn)場(chǎng)景
其中人工操舵與自動(dòng)舵操舵已經(jīng)分別予以記錄,如圖8、9所示。
圖 8 船艏向曲線
圖 9 舵角曲線(左為人工操舵/右為DBN控制系統(tǒng)操舵)
圖8中,(1)圖表示人工操舵曲線;(2)圖表示DBN操舵曲線;(3)圖表示ELAN操舵曲線。我們選取圖8中精度較高的DBN操舵曲線,生成圖9所示的舵角曲線。從圖8及圖9可知,基于ELAN神經(jīng)網(wǎng)絡(luò)模型的控制算法與人工操船相比,誤差較大。而深度神經(jīng)網(wǎng)絡(luò)模型在操船精度上已經(jīng)非常接近人工操船。為了進(jìn)一步對(duì)誤差進(jìn)行分析,我們選擇每秒進(jìn)行一次誤差記錄,記為ei,單位米,并采用下式(6)(7)得到誤差指標(biāo)。
其中E表示誤差均值,D表示誤差的方差。經(jīng)過計(jì)算可得到如表3所示誤差數(shù)據(jù)。
表3 模型誤差
由表3可知,人工操船的誤差為22.5,方差為4.6;DBN模型控制系統(tǒng)的操船誤差為23.7,方差為5.3。以上數(shù)據(jù)也進(jìn)一步說明了,基于DNN模型的自動(dòng)舵具有較高的精度。
反觀現(xiàn)有的相關(guān)控制算法,大部分文章的作者僅僅提出了相關(guān)的理論,并沒有針對(duì)相關(guān)理論進(jìn)行驗(yàn)證或仿真驗(yàn)證。例如參考文獻(xiàn)[3][4]所涉及的內(nèi)容;有的文章雖然進(jìn)行了仿真實(shí)驗(yàn),但實(shí)驗(yàn)環(huán)境采用固定參數(shù)的形式,并且沒有相關(guān)船舶運(yùn)動(dòng)模型作為支撐,例如參考文獻(xiàn)[5-8]中的內(nèi)容,因此其結(jié)果并不具備一定的實(shí)用價(jià)值。
本文實(shí)現(xiàn)了基于淺層和深度神經(jīng)網(wǎng)絡(luò)的自動(dòng)舵控制系統(tǒng),其代表模型分別為ELAN神經(jīng)網(wǎng)絡(luò)和DBN模型,同時(shí)以上海海事大學(xué)高級(jí)船員培訓(xùn)系統(tǒng)所記錄的考試培訓(xùn)數(shù)據(jù)作為訓(xùn)練樣本,引入MATLAB以及DeepLearnToolbox開發(fā)工具,實(shí)現(xiàn)了對(duì)模型的仿真驗(yàn)證。
通過實(shí)驗(yàn)數(shù)據(jù)可知,雖然淺層神經(jīng)網(wǎng)絡(luò)在自動(dòng)舵控制算法中有一定的使用價(jià)值,但是深度神經(jīng)網(wǎng)絡(luò)具有更好的控制精度,在最理想的情況下,其平均誤差僅有5.2%,已具備了實(shí)船測(cè)驗(yàn)的基本條件。
另外,本算法同時(shí)也具有一定的不足之處,例如對(duì)于下圖10所示的會(huì)遇場(chǎng)景,本算法暫無法處理,留待后續(xù)研究。
圖 10 會(huì)遇避讓