劉鑫容,朱耀琴,曲慧楊,周軍華
(1.南京理工大學計算機科學與工程學院,江蘇 南京 210094; 2.復雜產品智能制造系統(tǒng)技術國家重點實驗室,北京電子工程總體研究所,北京 100854)
近幾年來,隨著導彈研制技術和社會經濟的發(fā)展,導彈的研制費用也逐漸增加,如何平衡導彈研制的需求和研制過程產生的費用之間的關系,成為了一個至關重要的研究熱點.要解決這個關鍵問題,需要一個可靠且穩(wěn)定的估算方法進行費用估算,為研制出符合精度和費用要求的導彈提供參考.
近幾十年來,我國不斷在費用估算方面進行研究與探索,經歷了一系列的方法革新.傳統(tǒng)的費用估算方法包括工程估算法、參數(shù)估算法、類比估算法,這幾種方法在早期有較多的應用,例如文獻[1]利用了工程估算法,對裝備再制造費用進行分解,提出了再制造費用的估算方案;文獻[2]則類比Burns模型對建立了一種三代戰(zhàn)斗機改進型的出廠費用估算模型,改善了計算精度.
上述方法多為線性方法,擁有一定的預測能力,但是無法模擬出更加復雜的產品參數(shù)關系.而此后涌現(xiàn)的灰色系統(tǒng)理論側重于分析一些不完全確定的系統(tǒng),能夠應用于費用估算.在文獻[3]中采用了灰色系統(tǒng)理論對裝備費用進行估算,構建GM(1,1)模型和GM(1,1)預測模型,以實際樣本證明該方法的估算效果;而神經網絡通過學習樣本屬性和費用之間的關系估算費用,根據(jù)RBF神經網絡理論建立了一種分析模型[4],用于分析大型客機的制造成本,證明了該模型能夠得到較精確的結果.
然而,灰色系統(tǒng)理論和神經網絡也存在局限性,二者較依賴數(shù)學模型,無法結合實際樣本對模型參數(shù)進行大幅度調整.而卷積神經網絡(Convolutional Neural Network,CNN)可學習樣本特征并提取其中的內在聯(lián)系,可以根據(jù)損失調整模型結構,具有較強的適用性,能夠應用于估算領域,提高預測精度.
卷積神經網絡早在2006年之前就已被提出,直至2012年,在ImageNet大規(guī)模視覺識別挑戰(zhàn)競賽(ImageNet Large Scale Visual Recognition Challenge,LSVRC)中,利用深度的卷積神經網絡取得了當時最佳的分類效果[5],鼓勵了學者投入卷積神經網絡的研究.
而在估算預測領域也早有學者構建卷積神經網絡對各種參數(shù)進行學習預測,例如文獻[6]利用卷積神經網絡預測滬鋅期貨的價格,利用對比實驗證明該模型具有良好的預測效果;文獻[7]構建卷積神經網絡模型,預測搜索廣告的點擊率,驗證了該模型的預測精度較高.
由于導彈結構復雜,導彈研制過程存在特殊性,導彈的特征屬性和研制費用往往難以獲取,公開的樣本十分有限,且各個導彈樣本之間存在型號和性能上的聯(lián)系,不同的樣本對待預測樣本的參考意義不同.故在該條件下,本文采用了雙三次插值法與反距離加權插值法結合,對樣本進行擴充.結合卷積神經網絡構建導彈研制費用的卷積神經網絡估算模型,驗證了該模型的估算能力.
在小樣本條件下,本文采用雙三次插值法以解決導彈的原始樣本集數(shù)量有限的問題,采用反距離加權插值法以解決樣本貢獻值問題,利用兩種插值算法擴充導彈研制費用原始樣本后,輸入卷積神經網絡模型中預測估算.小樣本下基于卷積神經網絡的導彈研制費用估算流程見圖1.

圖1 小樣本下基于卷積神經網絡的導彈研制費用估算流程
步驟1 導彈研制費用樣本集的建立.
導彈研制費用樣本集是從原始的導彈數(shù)據(jù)庫中獲取導彈的特征屬性和研制費用樣本,參照已有的研究成果,選取了對導彈研制費用具有關聯(lián)影響的導彈特征屬性,例如導彈的最大射程決定了導彈殺傷目標的最大距離[8],故射程增大,對導彈的性能要求增大,則必然導致研制費用的增加.通過選取影響導彈研制費用的性能及相關屬性,能夠增強模型的泛化能力和學習的魯棒性,有助于模型對樣本集的學習和估算.
步驟2 數(shù)據(jù)預處理.
(1) 研制費用價值轉換.建立樣本集后,需要對導彈研制費用樣本集的特征進行一定的分析,處理各屬性之間關系.考慮到通貨膨脹的情況,不同的時期下,相同價格的研制費用在價值上也不盡相同.為了平等地對比各個導彈樣本的研制費用,應當將各個樣本的研制費用轉換成相同時期下的同等幣制.利用居民消費價格指數(shù)(consumer price index,CPI),根據(jù)文獻[9]中費用轉化公式可將導彈研制費用轉換到同一財年.
(2) 導彈特征屬性歸一化.由于導彈的各個結構屬性決定導彈的研制費用,數(shù)值差異較大,若未處理,容易被數(shù)值大的導彈屬性所主導.為了更好地體現(xiàn)各個導彈特征屬性之間的關系,減少訓練過程中的計算量,將采用文獻[10]中提到的歸一化方法對導彈特征屬性進行歸一化處理,使其取值在[0,1]之間,縮小導彈特征屬性差異,避免模型參數(shù)波動大.
步驟3 基于雙三次插值和反距離加權插值的樣本擴充.
由于導彈的公開樣本數(shù)目有限且各個樣本對于待預測樣本的貢獻值不同,如何解決上述問題成為本文研究的關鍵,是原始樣本集處理的重要環(huán)節(jié).本文對原始導彈研制費用樣本進行雙三次插值,對與待預測樣本型號性能相似的若干原始樣本通過反距離加權插值法進行插值.
步驟4 訓練調整導彈研制費用卷積神經網絡估算模型.
(1) 訓練樣本與梯度下降.以導彈研制費用的擴充樣本作為輸入,建立導彈研制費用的卷積神經網絡估算模型.訓練卷積神經網絡模型,通過均方誤差計算訓練集和測試集的損失,觀察二者關系及是否收斂,判斷模型是否欠擬合或者過擬合.通過不斷對模型的卷積層層數(shù)、訓練次數(shù)、dropout值或學習率進行調整修改,以達到損失收斂且較低的狀態(tài).
(2) 檢驗費用估算結果精度.計算測試集樣本的評價指標以檢驗該模型的估算精度.若計算結果符合精度要求,則該卷積神經網絡模型可用于導彈研制費用的估算,否則,則回到上一步重新進行訓練.
為了取得導彈研制費用的良好估算效果,原始導彈研制費用樣本集存在以下兩個問題:(1)獲取導彈的特征屬性和研制費用存在一定困難,可用的公開樣本數(shù)目少;(2)各個導彈樣本之間存在型號和性能上的聯(lián)系,不同的樣本對待預測樣本的參考意義不同.本文為解決上述問題,從小樣本和樣本貢獻值兩個角度出發(fā),采用雙三次插值和反距離加權插值兩種插值方法對樣本進行擴充.
在小樣本條件下,目前有兩種研究方法:一是利用先驗條件建立預測模型,但此方法對先驗條件的要求較高,因此應用場景較少[11];二是樣本擴充法,本文利用當下應用廣泛的解決方案處理小樣本問題.
針對導彈型號屬性相近的樣本,對研制費用的估算也更具有參考意義的特點,反距離加權插值采用了相似相近的原則,型號相近的樣本對插值具有更高的權重,可用于處理樣本貢獻率問題.
本文結合雙三次插值和反距離加權插值,針對原始導彈研制費用樣本進行雙三次插值,通過反距離加權插值法對與待預測樣本型號性能相似的若干原始樣本進行插值.這種方法既使得能夠有效擴充樣本容量,使樣本分布于導彈研制費用原始樣本集中,具有一定的規(guī)律性和廣泛性,又能在待預測樣本附近擬合出更多樣本,達到對相似樣本加權的目的.
1.2.1 雙三次插值法擴充樣本
雙三次插值法用于將原始導彈研制費用樣本擴充成若干有序樣本,插值樣本分布于各原始樣本之間.導彈研制費用屬性Y和導彈特征屬性為X=(x1,x2,x3)的3條原始樣本在k=2時的插值流程見圖2,樣本在經歷兩次插值得到新的導彈研制費用和特征屬性插值點后,篩選出包含(Y,x1,x2,x3)的插值樣本,得到最終的擴充樣本.
針對單一導彈插值點,如圖2的局部放大圖所示,雙三次插值法利用了插值點附近的4個方向上的16個原始導彈樣本點進行加權插值,既考慮了4個相鄰點的數(shù)值影響,也考慮了各相鄰點數(shù)值變化率的影響[12].

圖2 雙三次插值法擴充樣本圖示(k=2)
具體的操作流程:
步驟1 設置插值的優(yōu)化因子k;
步驟2 在每一個維度上的間隔之間對網格數(shù)組形式的原始導彈研制費用樣本都進行切割,形成優(yōu)化的網格數(shù)組;
步驟3 在網格之間插入數(shù)值,反復切割k次,生成2k-1個插入點;
步驟4 保留插值網格的縱列中包含原始屬性(Y,x1,x2,x3)的列,得到導彈研制費用樣本的擴充樣本集.

圖3 雙三次插值法擴充樣本流程
雙三次插值法擴充樣本流程見圖3.
1.2.2 反距離加權插值法擴充樣本
考慮到不同型號和性能的樣本對待預測樣本估算的貢獻率不同,本文采用反距離加權插值法對相似樣本(即與待預測樣本型號性能相似的若干原始樣本)進行插值,以達到增加其數(shù)量及加權的目的.
由于反距離加權插值利用相似相近原理進行插值,通過相似函數(shù)計算得到的相似樣本的距離也會越近,與插值點越相似,使得擬合得到的估算值也會越貼近相似樣本.
具體的插值流程:
步驟1 導彈特征屬性為(ai,bi,…,ni)的原始導彈樣本的相似函數(shù)為
其中hi是當前導彈研制費用樣本到插值點的距離,(ai,bi,…,ni)為導彈樣本的各個特征屬性,個數(shù)由導彈特征屬性個數(shù)決定.
步驟2 根據(jù)隨機抽取正態(tài)分布規(guī)律中概率在(μ-2σ,μ+2σ)范圍內的一組概率α.
步驟3 根據(jù)正態(tài)分布規(guī)律在相似樣本的屬性值附近建立正態(tài)分布模型,其中均值和標準差由當前相似樣本的導彈特征屬性值決定.
步驟4 根據(jù)概率α求出導彈特征屬性插值點(a,b,…,n),插值點的每個屬性xα服從P{X≥xα}=α,同一組插值點概率α相同.
步驟5 根據(jù)反距離插值法的公式,輸入導彈特征屬性隨機插值點(a,b,…,n)擬合得出對應的導彈研制費用為
步驟6 將擬合結果和導彈特征屬性整合,得到若干相似樣本附近的插值樣本.
反距離加權插值法擴充樣本流程見圖4.

圖4 反距離加權插值法擴充樣本流程
由于卷積神經網絡具有更深度地學習能力,可以根據(jù)導彈研制費用原始樣本提取各個屬性之間的關聯(lián),參考損失值和費用估算的結果及時調整模型的結構和參數(shù),應用于導彈研制費用的估算.圖5是導彈研制費用的卷積神經網絡估算模型.

圖5 導彈研制費用的卷積神經網絡估算模型
模型主要的功能層及實現(xiàn)策略:
(1) 輸入層.經過擴充后的導彈研制費用樣本集通過讀取文件的模式讀入,對導彈特征屬性進行歸一化處理,便于之后的卷積計算.根據(jù)讀入的樣本構建導彈特征屬性方形矩陣,作為二維卷積的輸入.
(2) 卷積層.由于本文中輸入的數(shù)據(jù)較小,故僅使用卷積操作對導彈研制費用樣本集進行特征提取,卷積操作能夠增強原樣本的特征屬性.
由于卷積核的尺寸越大,能夠得到更多參數(shù),但模型的學習速度也會減緩;卷積核的數(shù)目越多,能夠得到更多的描述特征,但計算量也會相應增加,所以應當選擇合適的卷積核大小及數(shù)目,以得到良好的學習估算效果.
本文根據(jù)模型輸入數(shù)據(jù)的大小,選擇卷積核大小為2×2,步長為1的卷積核,經過4次卷積作用及激活函數(shù)Relu函數(shù)的激勵,得到卷積后的特征.
(3) 全連接層.搭建在整個網絡的尾部,能夠將經過卷積后的特征與輸出層相連,減少特征信息的損失.全連接層組合的特征加以Relu函數(shù)的激活,送入dropout層.
(4) dropout層.使得每一層的神經元都部分失活,防止模型產生過擬合,避免模型由于過度學習大數(shù)據(jù)的冗余信息,導致訓練速度慢,缺少泛化能力.
(5) 輸出層.將均方誤差作為損失函數(shù),計算后用Adam優(yōu)化器進行優(yōu)化,經過數(shù)次梯度下降,得到導彈研制費用估算結果.
由于導彈研制費用的卷積神經網絡模型可以得到唯一輸出的研制費用估算值,故采用回歸模型的評價指標對模型進行評估并改進:采用均方誤差(Mean Square Error,MSE)作為模型的損失函數(shù);針對費用預測估算的結果,采用平均絕對誤差(Mean Absolute Error,MAE)和相對誤差(Relative Error),評估模型對樣本整體和個體的估算準確度.
實驗在Win10操作系統(tǒng)下,利用MatlabR2016a編程實現(xiàn)導彈研制費用原始樣本集的擴充,在Pycharm下利用Tensorflow框架對導彈研制費用的卷積神經網絡估算模型進行訓練,開發(fā)語言為Python3.6.
實驗利用Matlab實現(xiàn)對原始樣本集的擴充,原始樣本集為8組導彈研制費用樣本集,包括導彈特征屬性及其研制費用.將8組樣本分為7組訓練樣本和1組待預測樣本,分別根據(jù)雙三次插值及反距離加權插值算法對原始導彈研制費用訓練樣本擴充到300組數(shù)據(jù).
擴充樣本經過數(shù)據(jù)預處理,采用1.3節(jié)提出的導彈研制費用的卷積神經網絡估算模型,根據(jù)參數(shù)調節(jié)結果,選擇卷積層層數(shù)為4,學習率0.01,反復迭代訓練5 000次.為了驗證研制費用估算結果的優(yōu)略,采用均方誤差作為損失函數(shù)進行梯度下降,平均絕對誤差和相對誤差分別判斷測試樣本的整體和個體的估算準確度,根據(jù)評價指標不斷優(yōu)化模型,得到最優(yōu)模型.
在實際模型訓練的過程中,估算效果好的模型需要在訓練的過程中不斷調節(jié)參數(shù)、調整模型的結構,參考模型評價的指標才能最終得到.本文選取卷積層層數(shù)、dropout值、學習率3個參數(shù)對卷積神經網絡模型的估算精度進行評估分析.
在實驗操作中,設置卷積層層數(shù)為4,學習率為0.01,dropout值為0.5,訓練次數(shù)為5 000次,使用控制變量方法,單次實驗只改變卷積層層數(shù)、dropout值、學習率三者之一,得到待調整參數(shù)與測試集的MAE的關系見圖6—8.

圖6 卷積層層數(shù)與MAE的關系

圖7 dropout值與MAE的關系

圖8 學習率與MAE的關系
從圖6—8中平均絕對誤差與卷積層層數(shù)、dropout值、學習率的關系圖可以看出,在卷積層層數(shù)為4時,MAE達到最低值,整體的估算效果較好,可以得到較為準確的估算值.當dropout值等于0.6時,平均絕對誤差達到最低值,此時dropout發(fā)揮出最佳的抑制過擬合效果,使模型具有泛化能力且能保證估算精度.當學習率為0.01和0.005時,模型的擬合效果明顯,能得到較低的平均相對誤差.由于學習率為0.005時,需要更久訓練的次數(shù)才能取得最佳的估算結果,故選擇學習率為0.01較為合適.
實驗驗證的樣本集為8組導彈研制費用樣本[8],采用卷積神經網絡模型對研制費用進行估算.實驗中的導彈特征屬性包括最大射程、最大射高、最大射速、導彈質量等,具體的數(shù)值見表1,將8組樣本分為7組訓練樣本和1組待預測樣本(導彈研制費用均換算到1992年的價格).

表1 研制費用原始樣本
本文模型估算出的費用結果與線性回歸、神經網絡、支持向量機、WPCA&WSVR幾種實驗方法進行了對比[9],結果見表2.

表2 本文模型與其他實驗方法估算結果對比
從表2可以看出,本文模型在整體和待預測樣本的估算結果都比線性回歸、神經網絡好.本文模型結合樣本擴充,既能解決小樣本和樣本貢獻率的問題,又能較好地學習各參數(shù)之間的復雜關系,對新樣本的適應性較強,能夠得到合理的估算結果,本文模型解決了線性形式無法表現(xiàn)復雜參數(shù)關系和在小樣本條件下無法體現(xiàn)的泛化能力;與支持向量機和WPCA&WSVR費用兩種方法相比,本文模型也在整體估算效果上優(yōu)于二者,在待預測樣本上的估算也明顯優(yōu)于支持向量機.
本文針對小樣本條件下的導彈研制費用估算問題,利用雙三次插值和反距離加權插值進行樣本擴充,解決了原始導彈研制費用樣本數(shù)目稀少和各個樣本對待預測樣本的貢獻值不同的問題.利用卷積神經網絡可經過多次學習提取樣本數(shù)據(jù)關聯(lián),調整模型結構的特點,采用導彈研制費用的卷積神經網絡估算模型對擴充樣本進行學習,對比驗證了該模型的估算能力.然而,實驗過程也存在一定不足,例如,調參過程繁瑣且耗時長,需要花費較多的時間和人力,以后在這方面將進行探究.
致謝:對南京理工大學計算機學院提供的良好實驗環(huán)境,教研組江濤同學、雷陽同學在實驗模型構建和數(shù)據(jù)集收集的建議和幫助致以衷心的感謝!