喻 曦
(貴州財經(jīng)大學(xué),貴州 貴陽550000)
隨著世界范圍內(nèi)艦船規(guī)模的增大,各種跟艦船相關(guān)的技術(shù)也迅猛發(fā)展。艦船參數(shù)在很多應(yīng)用中都很重要,但艦船參數(shù)對總體綜合性能的靈敏度分析是一個非常復(fù)雜的問題,它不僅要考慮船體本身的因素,同時還受到各種武器裝備、生命力要求的影響[1]。由于艦船參數(shù)具有不確定性,無法量化表示等特性,因此傳統(tǒng)的解析方法根本無法確定參數(shù)靈敏度與艦船綜合性能間的具體對應(yīng)關(guān)系。而神經(jīng)網(wǎng)絡(luò)是一種并行的、復(fù)雜的、非線性的動力學(xué)系統(tǒng),它具有模擬復(fù)雜非線性系統(tǒng)的能力,對非確定規(guī)律性系統(tǒng)具有自適應(yīng)特征[2]。只要給定輸入?yún)?shù)和對應(yīng)的期望輸出,就可通過樣本的學(xué)習(xí)過程建立起兩者的映射關(guān)系。
本文利用4 層BP神經(jīng)網(wǎng)絡(luò)對艦船的抗沉性、最大航速、適航性[3]、載重量4個重要參數(shù)進(jìn)行靈敏度分析。在用BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練樣本的同時,利用Skeletonization 靈敏度剪枝法計算輸入節(jié)點、隱節(jié)點以及各連接權(quán)值的靈敏度,對于輸入節(jié)點,靈敏度高則表示該輸入節(jié)點對輸出的貢獻(xiàn)大,否則貢獻(xiàn)較小。對隱節(jié)點和連接權(quán)值而言,靈敏度大則表示該節(jié)點或權(quán)值比較重要,需予以保留,否則需予以刪除,以獲得最佳神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。通過結(jié)合BP神經(jīng)網(wǎng)絡(luò)和Skeletonization 靈敏度剪枝方法,不僅可建立起各參數(shù)靈敏度與艦船綜合性能間的對應(yīng)關(guān)系,而且學(xué)習(xí)過程收斂后,可獲得各輸入節(jié)點穩(wěn)定的靈敏度值。
艦船參數(shù)的靈敏度分析對評價艦船綜合性能、類別識別等至關(guān)重要,但不同的參數(shù)對艦船性能的貢獻(xiàn)不一樣,考慮到研究艦船性能的所有影響因素不太現(xiàn)實,本文選取了較常用的艦船抗沉性、最大航速、適航性及載重量4個反映艦船性能的參數(shù)。由于有些參數(shù)不具備明確的數(shù)值,因此在用神經(jīng)網(wǎng)絡(luò)對樣本進(jìn)行訓(xùn)練之前,可通過專家的先驗知識先對4個參數(shù)給出明確的量化值,并建立4個參數(shù)與艦船性能之間的數(shù)值對應(yīng)關(guān)系,以作為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練樣本。
BP 網(wǎng)是一種由線性閾值單元組成的多層感知器網(wǎng)絡(luò)結(jié)構(gòu),其結(jié)構(gòu)包括輸入層、多個隱含層、輸出層,各層之間實現(xiàn)全連接[4],由于BP神經(jīng)網(wǎng)絡(luò)各層隱含節(jié)點常使用Sigmoidal 函數(shù)作為激活函數(shù),因此BP 網(wǎng)也稱為隱含節(jié)點激活函數(shù)采用Sigmoidal 函數(shù)的多層感知器。根據(jù)實際應(yīng)用不同,輸出節(jié)點的激活函數(shù)有不同的選擇:如果利用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行分類,則輸出層節(jié)點的激活函數(shù)一般采用Sigmoidal 函數(shù)或硬極限函數(shù);而如果利用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行函數(shù)逼近,則應(yīng)使用線性函數(shù)作為激活函數(shù),圖1 給出了BP 網(wǎng)的網(wǎng)絡(luò)結(jié)構(gòu)。
圖1 BP 網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network structure of BP
對于BP 網(wǎng)中的各計算節(jié)點,有如下公式:
式中:f(·)為Sigmoidal 函數(shù);uj為每個節(jié)點的輸入;yj為每個節(jié)點的輸出。
以4 層BP神經(jīng)網(wǎng)絡(luò)為例,假設(shè)其有n個輸入節(jié)點,則其輸入向量為x ∈Rn,第1 隱層共n1個神經(jīng)元,各節(jié)點相應(yīng)的輸出為x′ ∈Rn1;第2 隱層共n2個神經(jīng)元,各節(jié)點對應(yīng)的輸出為x″ ∈Rn2;輸出層共m個神經(jīng)元,即輸出y ∈Rm。又設(shè)輸入層到第1隱層的權(quán)值為wij,各節(jié)點閾值為θj;第1 隱層到第2 隱層的權(quán)值為w′jk,節(jié)點閾值為θ′k;第2 隱層到輸出層的權(quán)值為w′kl,節(jié)點閾值為θ′l。于是各層神經(jīng)元輸出為:
顯然BP神經(jīng)網(wǎng)絡(luò)完成了n 維輸入空間到m 維輸出空間的映射。
BP 學(xué)習(xí)算法是一類有導(dǎo)學(xué)習(xí)算法,用于訓(xùn)練BP 網(wǎng)的連接權(quán)值和節(jié)點閾值。設(shè)共有P個訓(xùn)練樣本,d(1),d(2),…,d(p)為其對應(yīng)的期望輸出,訓(xùn)練過程就是通過訓(xùn)練誤差不斷校正連接權(quán)值和節(jié)點閾值,直到實際網(wǎng)絡(luò)輸出y(p)接近期望輸出d(p),學(xué)習(xí)規(guī)則基于最小均方誤差,當(dāng)?shù)趐個樣本輸入時,網(wǎng)絡(luò)訓(xùn)練誤差為:
當(dāng)所有樣本都輸入后,總誤差為:
根據(jù)梯度下降法可計算各層的反傳誤差為:
靈敏度剪枝法是一類非常重要的神經(jīng)網(wǎng)絡(luò)優(yōu)化方法。其基本做法是在網(wǎng)絡(luò)的訓(xùn)練過程中或在網(wǎng)絡(luò)訓(xùn)練結(jié)束后,判斷網(wǎng)絡(luò)輸入節(jié)點和隱節(jié)點對網(wǎng)絡(luò)總訓(xùn)練誤差的貢獻(xiàn),該貢獻(xiàn)又稱為靈敏度,刪除靈敏度較小的節(jié)點或權(quán)值,則可篩選出對網(wǎng)絡(luò)輸出貢獻(xiàn)相對較大的輸入。Skeletonization 方法屬于靈敏度剪枝方法的一種,該方法在去除冗余隱含節(jié)點的同時,還可估計出所有輸入節(jié)點的靈敏度。為使Skeletonization法在分類的同時計算出輸入節(jié)點的靈敏度,本文改進(jìn)了Skeletonization法傳統(tǒng)的靈敏度計算方法。首先對隱節(jié)點和輸入節(jié)點進(jìn)行剪枝的傳統(tǒng)做法為:固定網(wǎng)絡(luò)中的其余所有無關(guān)參數(shù),利用以下測度準(zhǔn)則來判斷當(dāng)某輸入節(jié)點或隱節(jié)點被刪除后,神經(jīng)網(wǎng)絡(luò)性能的變化情況:
其中E 為網(wǎng)絡(luò)的訓(xùn)練誤差。通常直接計算ρi難度很大,因此下面給出Mozer和Smolensky 采用的靈敏度ρi逼近方法。
圖2 輸入節(jié)點和隱節(jié)點的重視程度系數(shù)Fig.2 Importance of input and hidden nodes
首先為每個輸入節(jié)點和隱含節(jié)點引入重視程度系數(shù)αi(注意該系數(shù)只是表示了對第i個節(jié)點進(jìn)行懲罰,并不是神經(jīng)網(wǎng)絡(luò)的參數(shù)),則:
式中:oj和oi分別為第j和i個節(jié)點的輸出;wji 為連接權(quán)值;f(·)為sigmodal 函數(shù)。如果αi=0 ,則表示應(yīng)該刪除該隱節(jié)點;如果αi=1 ,則表示該節(jié)點應(yīng)該保留。由此隱節(jié)點i的靈敏度可表示為:
ρi可用誤差函數(shù)對αi的導(dǎo)數(shù)來逼近:
則ρi的逼近式為:
可在權(quán)值調(diào)整的同時進(jìn)行ρi的計算,但網(wǎng)絡(luò)權(quán)值的調(diào)整并不受αi和ρi計算的影響,因為它們并不是神經(jīng)網(wǎng)絡(luò)的參數(shù)。以3 層BP 網(wǎng)為例,可計算出輸入節(jié)點和隱節(jié)點的靈敏度估計公式,如果輸出節(jié)點采用線性激活函數(shù),而用于權(quán)值調(diào)整的目標(biāo)函數(shù)采用誤差絕對值之和,則各隱節(jié)點的靈敏度為:
為改善ρi直接計算波動較大的缺點,本文使用一階慣性濾波。圖3 給出了Skeletonization 靈敏度剪枝法的訓(xùn)練誤差曲線,采用的BP 網(wǎng)絡(luò)結(jié)構(gòu)為24-10-10-1,初始權(quán)值為[0-0.1]內(nèi)均勻分布的隨機(jī)值,最大訓(xùn)練次數(shù)為10 000,學(xué)習(xí)率η為0.000 5,設(shè)置訓(xùn)練誤差閾值E0=15,用于隱節(jié)點刪除的窗口大小設(shè)置L=50,靈敏度閾值設(shè)置β0=0.005,采用二進(jìn)制輸出。
圖3 訓(xùn)練誤差曲線Fig.3 Training error for skeletonization
表1 給出了Skeletonization法的剪枝效果。最大航速和適航性均有冗余節(jié)點,收斂后抗沉性的靈敏度達(dá)到最高。
表1 Skeletonization 剪枝結(jié)果Tab.1 Pruning result of Skeletonization
表2 給出了神經(jīng)網(wǎng)絡(luò)計算的艦船綜合性能和已有的理論值之間的對比。從表中可看出,神經(jīng)網(wǎng)絡(luò)給出的艦船綜合性能已非常接近給定的理論值。
表2 艦船綜合性能的理論值和計算值Tab.2 Theoretical and experimental values of ships
表3 給出了算法在收斂過程中的靈敏度變化過程,在網(wǎng)絡(luò)不斷學(xué)習(xí)的過程中,艦船的綜合性能也在逐漸增高,這說明學(xué)習(xí)過程有效。
表3 神經(jīng)網(wǎng)絡(luò)收斂過程Tab.3 Convergence of network
艦船參數(shù)的選擇對于評價艦船綜合性能至關(guān)重要,量化的艦船參數(shù)靈敏度分析是后續(xù)艦船性能評價、類型識別等的重要前提。本文利用4 層24-10-10-1的BP神經(jīng)網(wǎng)絡(luò)對艦船的抗沉性、最大航速、適航性、載重量4個參數(shù)進(jìn)行了靈敏度分析。在用BP神經(jīng)網(wǎng)絡(luò)對樣本訓(xùn)練的基礎(chǔ)上,利用Skeletonization 靈敏度剪枝法計算各輸入節(jié)點、隱節(jié)點和連接權(quán)值的靈敏度。實驗結(jié)果表明,Skeletonization法的剪枝過程在不影響神經(jīng)網(wǎng)絡(luò)訓(xùn)練的前提下,不僅優(yōu)化了網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計,而且在學(xué)習(xí)過程收斂后,可獲得各輸入節(jié)點穩(wěn)定的靈敏度值。
[1]唐文勇,周佳,朱榮成.基于人工神經(jīng)網(wǎng)絡(luò)方法的艦船參數(shù)靈敏度分析[J].艦船科學(xué)技術(shù),2007,28(6):111-114.TANG Wen-yong,ZHOU Jia,ZHU Rong-cheng.Ship parameter sensitivity analysis based on artificial neural network[J].Ship Science and Technology,2007,28(6):111-114.
[2]李聰.基于BP神經(jīng)網(wǎng)絡(luò)的股票指數(shù)期貨價格預(yù)測[D].青島:青島大學(xué),2012.LI Cong.Prediction of stock index futures price based on BP network[D].Qingdao:Qingdao University,2012.
[3]張恒,楊屹.水面艦船船型選型評估方法[J].艦船科學(xué)技術(shù),2013,34(12):40-45.ZHANG Hen,YANG Yi.Evaluation of ship type selectionmethods[J].Ship Science and Technology,2013,34(12):40-45.
[4]季云.BP算法及其應(yīng)用實例[J].中國新技術(shù)新產(chǎn)品,2010(9):29-29.JI Yun.BP network and its applications [J].New Technologies and Products,2010(9):29-29.