周夢, 呂志剛, 邸若海, 李葉
(西安工業大學電子信息工程學院, 西安 710021)
BP(back propagation)神經網絡技術作為現代人工智能領域的一個重要組成部分,具有非線性映射能力強和并行信息處理能力強的特點[1],在實際中得到了廣泛的應用,主要用來實現模式識別、數據分類、函數擬合等功能。Gallant等[2]經過研究表明若要使得網絡輸出結果與實際值無限接近,則需使用于訓練的樣本量無限大。但在實際生產中,采集到大量可以用于神經網絡建模的數據十分困難,數據量較少時所建模型精度往往不符合要求,甚至會出現與實際結果相反的情況。
小樣本BP神經網絡建模問題引發了中外學者的廣泛關注。針對小樣本問題,Joerding 等[3]提出將專家知識融入建模過程中,使得小樣本條件下神經網絡訓練結果達到與大量樣本訓練相似的效果,但該方法僅適用于模型輸入輸出均為一維的情況。宗宸生等[4]通過將改進粒子群算法與BP神經網絡相結合解決了小樣本條件下糧食產量預測問題,但該方法僅對初始權值與閾值進行優化,并未從根本上解決小樣本預測問題。王宏剛等[5]提出分別采用Bootstrap法和核密度拉丁超立方采樣法擴充訓練樣本,利用擴充后的樣本訓練BP神經網絡,在保障小樣本自身規律的情況下,解決了小樣本數據BP神經網絡建模問題,并驗證了Bootstrap方法具有更高的適用性,但該方法無法適用于大規模的實際系統中。趙文清等[6]通過設計殘差BP神經網絡,以一個殘差BP神經網絡作為一個模塊,通過將多個模塊進行堆疊提高小樣本BP神經網絡訓練精度,但該方法設計過程過于復雜。
目前解決小樣本條件下BP神經網絡建模問題的方法主要分為兩種,一種是擴充數據的方法,獲得與小樣本數據相同分布規律的擴充數據,利用擴充后的數據進行建模,但當所獲取的擴充數據不準確時,網絡訓練結果同樣不準確;另一種是將專家知識與神經網絡相結合的方法,但目前已有的方法對不同類型的專家知識的融合沒有統一的框架,且預測精度不高。增廣拉格朗日乘子法為不同類型的約束條件提供了統一的框架,因此現通過增廣拉格朗日乘子法將專家知識融入神經網絡的訓練過程中,提高小樣本條件下BP神經網絡預測精度。同時,通過遺傳算法獲取最優的初始權值與閾值。
BP神經網絡是一種多層前饋神經網絡,采用梯度下降法進行反向傳播[7],是目前應用最廣的神經網絡。如圖1所示為BP神經網絡結構。

圖1 BP神經網絡結構Fig.1 Structure of BP neural network
根據實際應用,確定好BP神經網絡各層神經元數目及所需使用的激活函數后,就可以開始進行訓練。BP神經網絡訓練過程如下。
神經網絡的輸入向量為
X=(x1,x2,…,xi,…,xn)T
(1)
隱含層各神經元輸入為
nj=ω1jx1+ω2jx2+…+ωnjxn
(2)
隱含層各神經元輸出為
Hj=f(nj-aj)
(3)
隱含層輸出向量為
H=(H1,H2,…,Hj,…,Hl)T
(4)
輸出層各神經元輸入為
lk=ω1kH1+ω2kH2+…+ωlkHl
(5)
輸出層各神經元輸出為
ok=g(lk-bk)
(6)
式中:wj為隱含層權值;wk為輸出層權值;f(·)為sigmoid函數;g(·)為Purelin函數;aj為隱含層閾值;bk為隱含層閾值。
懲罰函數法的作用是將約束優化問題轉變為為無約束優化問題[8]。懲罰函數法的主要任務是確定懲罰項及初始罰因子。根據懲罰項設計的形式不同,懲罰函數法分為靜態懲罰函數[9],動態懲罰函數[10]和自適應懲罰函數[11]。其中自適應懲罰函數法的懲罰因子可以根據優化過程不斷調整,并且自適應懲罰函數法可以根據優化過程中反饋信息及時對懲罰函數進行調節,與其他幾種懲罰函數相比,具有一定的優勢。假設有約束問題minf(x),需滿足限制ci(x)≤0,懲罰函數法的一般形式φ(x)為
(7)
(8)
式中:ci(x)為不同類型的約束條件;I為約束條件個數;f(x)為目標函數;懲罰函數φ(x)第二項為懲罰項;σ為懲罰因子。
專家知識指的是領域專家在對研究問題的機理有一定的了解。專家知識又被稱為先驗知識、機理信息、領域知識等。胡包鋼等[12]將先驗信息定義如下:先驗信息(prior information)是指在建模前就通過已有經驗得知的輸入與輸出間的關系。本文中主要研究單調性專家知識,其數學定義如下。
如果對于函數f(x)在定義域內任意兩點x1、x2都存在
(9)
則稱函數f(x)在此區間是單調遞增的。
如果對于函數f(x)在定義域內任意兩點x1、x2都存在
(10)
則稱函數f(x)在此區間是單調遞減的。

(11)
將單調性作為專家知識。對于具有單調關系的問題,可以對通過神經網絡模型訓練產生的輸出數據進行單調性判斷。如果實際數學關系是單調遞增(遞減)的,神經網絡訓練結果也是單調遞增(遞減)的,那么說明符合這次訓練過程專家知識,不加懲罰,如果判斷后結果與實際值相反,則給予懲罰處理。
罰函數的收斂速度較慢,且當懲罰因子過大時,容易引起轉化后的無約束問題的過擬合,當懲罰因子過小時,起不到懲罰作用。拉格朗日乘子法中只有當約束優化目標具有局部凸結構時,乘子λ的更新才是有意義的,并且拉格朗日函數的收斂比較費時。增廣拉格朗日乘子法可以有效克服兩者存在的缺點。
一般BP神經網絡通過輸出值與真實值之間的均方誤差判斷其是否滿足給定精度,來判斷是否停止訓練。若不滿足精度,則遵循梯度下降法反向更新BP神經網絡的權值與閾值,最終使得均方誤差最小。本文中以專家知識作為約束條件,通過將增廣拉格朗日函數作為BP神經網絡目標函數,使得BP神經網絡輸出結果既滿足均方誤差,又滿足專家知識。設單調性專家知識為輸入S與輸出G為單調遞增關系,以此作為約束條件,增廣拉格朗日乘子法對約束優化問題的一般處理方法為
(12)
式(12)中:P為輸入樣本的個數;X為BP神經網絡輸入;Y為BP神經網絡輸出;e為BP神經網絡輸出值與實際值間的誤差。
引入輔助變量z,將不等式約束優化問題替換為等式約束優化問題,即
(13)
根據以上約束優化問題,構建增廣拉格朗日函數為

(14)
式(14)中:λ為乘子;μ為懲罰因子。
通過求ψ關于z的一階導數,消除所引入的輔助變量z,即
(15)
(16)
由此可將增廣拉格朗日乘子法后半部分表達出來使
(17)
設a=μg(x)-λ,當a>0時,有
(18)
當a<0時,有
(19)
綜上得

(20)
通過判斷a的正負判斷BP神經網絡是否滿足約束。a>0時,BP神經網絡輸出值滿足約束。反之,不滿足約束。將增廣拉格朗日函數作為BP神經網絡目標函數,按照梯度下降法反向傳播對其權值閾值進行更新,其更新過程如下。
(1)當a>0時,BP神經網絡輸出滿足專家知識,BP神經網絡的目標函數為
(21)
當BP神經網絡輸出不滿足收斂條件時,其逆向傳播權值閾值更新公式為
(22)
(23)
(24)
(25)
(2)當a≤0時,BP神經網絡輸出不滿足專家知識,BP神經網絡的目標函數為
(26)
當BP神經網絡輸出不滿足收斂條件時,其逆向傳播權值和閾值更新公式為
(27)
(28)

a(1-Hi)Hiwk(wjxi-2Hiwjxi+1)
(29)

a(1-Hi)Hiwk(1-2Hi)wj
(30)
遺傳算法(genetic algorithm,GA)是優化方法中的一種,在搜索空間中尋找最優的種群[13]。通過遺傳算法防止BP神經網絡需隨機產生初始權值閾值的情況發生,可以有效避免因隨機產生的初始值導致BP神經網絡陷入局部極小。如下所示為用遺傳算法的具體實施步驟。
(1)數據歸一化。實際應用中所獲取的數據往往較大,且存在不同輸入數據之間量綱不一致的情況。為了防止因輸入數據導致預測結果不正確的情況,第一步要對輸入數據進行歸一化處理,其公式為
(31)
式(31)中:xmax、xmin分別為輸入數據的最大、最小值。
(2)染色體編碼。染色體編碼是指將輸入數據寫為二進制形式,以便后續遺傳、變異、交叉等操作。
(3)種群初始化。對輸入數據進行二進制編碼后,隨機產生一組數據,一組數據是一個單獨的個體,這些個體形成了一個群體。
(4)適應度函數的評價。個體遺傳的復雜程度通過適應度函數所求的值來確定。設一個適應度值為F,則其適應度函數公式為
(32)
式(32)中:k為有關系數。
(5)進行遺傳操作。對基因進行選擇、交叉和變異操作。遺傳選擇是對個體適應度而言的,文中采用輪盤賭法對個體進行選擇。經過這一階段的遺傳操作之后,個體會進行各種遺傳交叉和遺傳變異。
(6)判斷是否滿足終止條件,如果滿足,則輸出結果,否則回到步驟(3)重新進行操作,直到符合條件。
融合專家知識的GA-BP神經網絡算法流程如圖2所示。

圖2 算法流程圖Fig.2 Algorithm flow chart
本文中采用實際中的結晶動力學問題驗證融合專家知識的BP神經網絡建模方法,即
(33)


(2)設置BP神經網絡訓練集及測試集樣本個數,并確定各層激活函數。
(3)根據2.3節利用遺傳算法優化初始權值閾值。
(4)設置增廣拉格朗日乘子法的初始乘子及罰因子。乘子初始值c=0.1。
(5)根據式(1)~式(6)訓練神經網絡。
(6)根據式(21)~式(30)判斷神經網絡是否滿足專家知識,設置目標函數
(7)判斷目標函數是否滿足目標誤差,如果滿足停止迭代,如果不滿足,更新權值閾值,回到第四步。
根據上述算法流程,首先通過遺傳算法為BP神經網絡獲取最優的初始權值閾值,如圖3所示為經過遺傳算法優化的BP神經網絡(GA-BP)訓練結果。
從圖3可以看出遺傳算法對BP神經網絡訓練結果有一定的改進。

圖3 BP與GA-BP神經網絡訓練結果對比Fig.3 Comparison of BP and GA-BP neural network training results
其次通過分析結晶動力學模型公式,獲取專家知識。由上述模型分析可得,本文中所采用的模型3個輸入變量與輸出G均存在單調性關系。因此共有3條專家知識。根據式(11)對比加入1條專家知識與3條專家知識的GA-BP神經網絡的訓練結果,如圖4所示。
由圖4可以直觀地看出融合3條專家知識的GA-BP神經網絡訓練結果最好,有效解決了小樣本條件下BP神經網絡訓練精度不高的問題。

圖4 融合專家知識的GA-BP神經網絡Fig.4 GA-BP neural network integrating expert knowledge
選用均方誤差(mean squares error,MSE)作為評價指標,以直觀地看出本文所提出的建模方法的有效性,均方誤差計算公式為
(34)

如表1所示為不同模型預測結果的均方誤差,其中GA-BP-1是指融合1條專家知識,GA-BP-3是指融合3條專家知識。

表1 不同模型預測結果均方誤差Table 1 Mean square error of prediction results of different models
通過對比不同模型的均方誤差可知,融合專家知識的GA-BP神經網絡均方誤差最小,因此本文算法可以提高小樣本條件下BP神經網絡訓練精度。
交叉驗證(cross validation,CV)用來在離線過程中評估模型的泛化能力。用于本文算法驗證的結晶動力學模型數據共有100條,將這100組數據等分為5份進行五重交叉驗證,分別定義為Y1、Y2、 Y3、Y4和Y5,采用這5個數據集輪流作為訓練集來訓練不同的模型,這5個數據集輪流交替作為訓練集和驗證集。這個交叉驗證過程總共需要執行5次,那么 5個數據集中的每一個數據集都會保證做一次訓練集。最后,通過比較MSE對其進行評估,其結果如圖5所示。

圖5 五重交叉驗證Fig.5 Five-fold cross-validation
如表2為五重交叉驗證傳統BP神經網絡訓練結果與融合專家知識的BP神經網絡訓練結果的平均誤差。

表2 五重交叉驗證平均誤差Table 2 Average error of five-fold cross-validation
由表2及圖5可知,針對不同的訓練集樣本,對比其加約束與不加約束的BP神經網絡訓練結果,根據其平均誤差,可以得知本文所提的融合專家知識的BP神經網絡建模方法,在小樣本建模問題解決方面,具有較強的泛化能力。
通過融合專家知識解決小樣本條件下BP神經網絡建模問題,首先通過遺傳算法防止BP神經網絡訓練陷入局部最優,其次通過增廣拉格朗日乘子法將專家知識融入BP神經網絡訓練過程中。首先通過對比融合1條專家知識的神經網絡與融合三條專家知識的神經網絡,仿真結果表明,3條專家知識訓練結果較優;其次比較了粒子群算法和遺傳算法的優化效果。仿真結果表明,遺傳算法優化結果較穩定,且優化結果較優。通過遺傳算法與增廣拉格朗日乘子法相結合改進BP神經網絡,提高了BP神經網絡預測精度。