曹文琪,張 聰
(武漢輕工大學 數(shù)學與計算機學院,湖北 武漢 430023)
我國目前的土壤重金屬污染情況十分嚴峻[1],對未知區(qū)域的土壤重金屬含量進行預測是土壤重金屬污染治理過程中重要的一環(huán)。隨著人們對神經(jīng)網(wǎng)絡的研究逐漸深入,徑向基神經(jīng)網(wǎng)絡(RBFNN)在數(shù)據(jù)預測方面的應用越來越多,它相較于常見的BP神經(jīng)網(wǎng)絡具有更好的泛化能力,同時其本身具有收斂速度較快、全局逼近能力強等特點[2]。但由于RBFNN隱含層基函數(shù)的中心與寬度向量難以確定,以及其輸出層參數(shù)的初始化方式通常為隨機生成且使用梯度下降法進行訓練,往往導致網(wǎng)絡的性能不穩(wěn)定,訓練結(jié)果易陷入局部極小值[3,4]。將遺傳算法與RBFNN進行結(jié)合后可以有效避免由變量的初始隨機化生成導致的性能不穩(wěn)定問題,但易陷入局部極小值及遺傳算法本身存在的易過早收斂等問題仍未得到較好的解決[5]。本文提出一種深度復合模型(DCM),該模型將加入了基于雙曲正切函數(shù)變換的概率調(diào)整和容忍準則的遺傳算法與RBFNN結(jié)合以獲得更好的初始輸出層參數(shù),同時構造隨梯度正負值變化的學習率調(diào)整公式并引入到均方根反向傳播算法(RMSProp)中,用于對RBFNN中的參數(shù)進行訓練,以此克服遺傳算法與RBFNN的傳統(tǒng)缺陷,使模型在進行土壤重金屬含量預測時具有較高的穩(wěn)定性與準確性。
GA-RBFNN是將遺傳算法與徑向基神經(jīng)網(wǎng)絡結(jié)合起來的一種網(wǎng)絡[6,7],該網(wǎng)絡首先以徑向基神經(jīng)網(wǎng)絡中的參數(shù)作為遺傳算法中種群的個體,然后使用遺傳算法對種群中個體進行迭代尋優(yōu),尋優(yōu)過程結(jié)束后將種群中適應度最好的個體賦值給RBFNN作為其參數(shù)的初始值然后進行訓練,通過此方式避免由傳統(tǒng)參數(shù)初始化的隨機性帶來的網(wǎng)絡性能不穩(wěn)定的問題,使得參數(shù)初始值更符合網(wǎng)絡需求以達到較好的訓練結(jié)果。
GA是一種借鑒生物進化理論,仿照生物的多代遺傳過程的隨機搜索算法,它以目標問題的不同解作為不同的個體生成種群,然后對種群進行選擇、交配、變異操作來尋求最優(yōu)個體以實現(xiàn)對目標問題的求解[8],其主要算法步驟如下:①編碼生成種群個體,編碼方式一般為實數(shù)編碼或二進制編碼;②計算種群個體適應度值;③選擇操作,選出種群中適應度較高的個體,一般使用輪盤賭方法進行選擇;④交叉操作,根據(jù)交叉概率對經(jīng)過選擇后的種群個體進行個體間基因片段的交換,交叉概率一般為固定值;⑤變異操作,根據(jù)變異概率對經(jīng)過選擇后的種群個體進行基因片段的改變,變異概率一般為固定值;⑥重復步驟③到步驟⑤,當達到最大迭代次數(shù)或滿足停止條件后停止迭代,然后輸出種群中的最優(yōu)個體。
RBFNN是一種具有較強映射功能的三層前向網(wǎng)絡[9,10],其隱含層通過徑向基函數(shù)對輸入數(shù)據(jù)進行非線性映射,然后將隱含層的輸出數(shù)據(jù)通過線性計算傳遞至輸出層進行輸出,該網(wǎng)絡已被驗證是具有最優(yōu)映射的前向網(wǎng)絡。徑向基神經(jīng)網(wǎng)絡的結(jié)構如圖1所示。
圖1 RBFNN結(jié)構
RBFNN對數(shù)據(jù)的訓練過程主要分為兩個部分,一個部分是無監(jiān)督學習,即使用K-means算法對輸入網(wǎng)絡的數(shù)據(jù)進行聚類,通過此方式生成隱含層徑向基函數(shù)的中心點與寬度向量,且徑向基函數(shù)一般選擇高斯函數(shù),寬度向量的計算公式如下
其中,cmax為中心點之間的最大距離,h為節(jié)點數(shù)。
之后輸入數(shù)據(jù)分別經(jīng)過隱含層、輸出層進行相關計算,輸入樣本xi在隱含層的第j個節(jié)點的輸出由以下公式計算得出
其中,cj與σj分別為隱含層第j個節(jié)點的中心點與寬度向量。
輸入樣本xi在輸出層的第m個節(jié)點的輸出由以下公式計算得出
ym=φ(φ(xi,j)*ωm)
其中,ωm為該節(jié)點的權值,φ為激活函數(shù)。
另一個部分是監(jiān)督學習,即通過誤差函數(shù)計算出每個參數(shù)的梯度值,然后使用傳統(tǒng)梯度下降法如隨即梯度下降法(SGD)對權值進行不斷修正的過程,具體的更新公式如下
其中,E為誤差函數(shù),μ為學習率。
除上述方法外,還可直接隨機生成隱含層的中心點與寬度向量,之后按照監(jiān)督學習過程的梯度修正公式對其進行更新。
2.1.1 種群個體生成
傳統(tǒng)GA中,種群個體由實數(shù)編碼生成之后,通常以一維向量形式對個體進行保存并以此種方式進行遺傳操作,由于一維向量形式的個體在操作過程中基因片段的被選擇性較高,因此容易導致進化過程中重要基因片段的改變,另外由于數(shù)值的生成在一定范圍內(nèi),導致搜索范圍過小,也難以尋得全局最優(yōu)值[11]。
針對上述問題,在進行個體生成過程中進行以下改進:
首先對個體的保存形式進行改進,將個體的保存形式與所求目標的形式相匹配,有效降低重要基因片段的被選擇性。例如將本算法用于生成RBFNN的權值、閾值時,它們在RBFNN中的形式為實數(shù)數(shù)組,形狀分別為8*1與1*1,因此遺傳算法種群個體應為實數(shù)數(shù)組形式,且是由形狀分別為8*1和1*1的兩個小數(shù)組并列組合的大數(shù)組,相關遺傳操作將以小數(shù)組為基本單位進行。通過此方式以避免進化過程中重要基因片段的丟失,同時簡化計算過程。
另外初始化生成種群個體時,在每個種群個體的周圍生成一定數(shù)量的小種群,然后計算出小種群中適應度值最高的個體,并將此個體作為種群的新個體,所有小種群中適應度值最高的個體組合而成的種群將替代初始化生成的種群并進行之后的遺傳操作。上述操作可以避免種群個體之間的分布過于密集,同時盡可能多地在可行域內(nèi)進行搜索,增加個體的多樣性。
2.1.2 自適應概率調(diào)整
在種群的交叉與變異過程中,交叉概率與變異概率一般設為固定值,并由此固定值決定選擇的個體是否進行交叉與變異操作,但此方式未對個體本身的適應度值大小進行充分考慮,若個體本身適應度值較高而進行了交叉與變異操作時,容易導致操作后的個體適應度值反而較操作前有所降低[12]。針對這一情況,本方法提出一種自適應概率調(diào)整方式來決定交叉與變異概率的大小,具體點調(diào)整公式如下
其中,f為當前個體的適應度值,fmax與fmin分別為當前種群個體中的最大適應度值與最小適應度值,pm為一固定值,范圍處在0.5到1之間。在上述公式中,φ(x)為雙曲正切(tanh)函數(shù),當x取值在0到1之間時,φ(x)為值域約在0到0.76之間的單調(diào)遞增函數(shù),能夠保持較好的平滑性。
由于此算法的目標是搜索范圍內(nèi)適應度值最高的個體,因此在對自適應概率進行確定時,個體適應度值的比較目標為當前種群個體中最大適應度值的一半,在此稱其為一般適應度值。當個體適應度值低于一般適應度值時,交叉與變異概率將取一個較大值,通過更多的交叉與變異機會來提高個體的適應度值,而當個體適應度值高于一般適應度值時,交叉與變異概率隨著適應度值的增大而不斷減小,當個體適應度為種群中最高適應度值時,個體不進行交叉與變異操作,以此來避免進化前后個體適應度值有所降低的情況發(fā)生。
2.1.3 容忍準則
由于遺傳算法在迭代過程中,目標是保證適應度較優(yōu)的個體基因被遺傳至下一代,因此容易朝著單一的極值點方向進化,從而陷入局部最優(yōu)狀態(tài)。為避免陷入局部最優(yōu),本方法在種群個體進化后增加新舊個體的適應度比較環(huán)節(jié)中,提出容忍準則來判定個體是否接受此次進化過程,該準則中以概率p作為是否接受進化過程的標準,具體的計算公式如下
其中,fnew為新個體適應度,fold為舊個體適應度,T為迭代后適應度下降連續(xù)出現(xiàn)的次數(shù),T的初始值為0。當出現(xiàn)迭代前后適應度值連續(xù)降低的情況,則使用以下公式對T進行更新
T=T+1
p隨T值變化的曲線如圖2所示。
圖2 概率p變化曲線
當連續(xù)幾次迭代下適應度值均出現(xiàn)降低或不變的情況時,T值將不斷增加,在連續(xù)次數(shù)較少時,并不能代表已經(jīng)陷入了局部最優(yōu),因此此時仍有較大概率接受進化結(jié)果,而隨著連續(xù)次數(shù)的增多,陷入局部最優(yōu)的可能性也隨之增大,因此接受進化的可能性也隨之降低直至為0。當個體未接受進化時,個體將恢復到上一次的狀態(tài)重新進行遺傳算法的相關操作,直至迭代前后適應度值增加的情況出現(xiàn),此時個體將直接接受進化之后的狀態(tài),T值也將再次初始化為0。
2.2.1 變量修正方式調(diào)整
在傳統(tǒng)RBFNN中,隱藏層的中心點與寬度向量由K-means聚類生成,通常生成后不再通過監(jiān)督學習進行調(diào)整,但由于聚類的過程具有一定的隨機性,因此生成的中心點不一定為最優(yōu)值[13],考慮到這一情況,在RBFNN的監(jiān)督學習過程中加入對中心點與寬度向量的調(diào)整,調(diào)整方式與權值、閾值相同。
而在遺傳算法中,由于初始生成值具有一定的隨機性,若使用其對中心點與寬度向量進行生成,則會增加算法的計算復雜度,容易導致訓練結(jié)果的誤差增大。
因此將在本方法中對所有變量的修正方式調(diào)整如下:在RBFNN的無監(jiān)督學習過程中,使用K-means算法生成RBFNN隱含層的中心點與寬度向量,使用遺傳算法生成RBFNN輸出層的權值和閾值,而在之后的監(jiān)督學習過程中,對隱藏層的中心點、寬度向量、輸出層的權值、閾值4種變量同時進行更新。
2.2.2 自適應均方根反向傳播算法(SRMSProp)
在傳統(tǒng)RBFNN的監(jiān)督學習過程中,通常采用梯度下降中的隨機梯度下降法(SGD)來對變量進行更新,即以學習率乘以梯度值作為更新值,這一方法容易導致梯度值陷入局部極小值,在目前的優(yōu)化算法中均方根反向傳播算法(RMSProp)可以有效加快算法收斂速度,避免陷入局部極值,但該算法并未考慮到迭代過程中梯度值發(fā)生正負變化這一情況,通常使用固定的學習率作為學習步長[14],容易導致每次迭代優(yōu)化結(jié)果的波動性較大,收斂速度較慢。
本文提出的自適應均方根反向傳播算法(SRMSProp)考慮到迭代過程中梯度發(fā)生正負值變化時,已經(jīng)跳過了梯度值為0的點,因此在下一次調(diào)整過程中,不僅需要對學習方向進行調(diào)整,同時學習步長也應有所降低,而當前后兩次迭代梯度的正負值未發(fā)生變化時,說明距離極值點較遠,因此學習步長需要有所增長。
具體的算法步驟如下,以第t次迭代中權值w的更新為例:
(1)對w進行臨時更新,并計算更新后的梯度gt,更新公式為
w′=wt+α*vt-1
其中,α為動量系數(shù),vt-1為上一次迭代更新值,初始值為0。
(2)計算累計梯度平方r,計算公式如下
rt=ρ*rt-1+(1-ρ)*gt
(3)計算學習率,公式如下
其中,st為累積梯度值,初值為0,μ0為固定值,即若迭代前后梯度正負值發(fā)生變化,則學習率減小,反之則學習率增大,另外隨著迭代次數(shù)的增大,st不斷增大,則學習率的變化不斷減小。
(4)對w進行更新,公式如下
wt+1=wt+vt
在上述方法的基礎上,建立深度復合模型,建模步驟如下:①初始化小種群,生成小種群最優(yōu);②小種群賦值大種群,計算適應度;③選擇、交叉、變異操作;④使用容忍準則判斷是否接受更新;⑤重復過程③和④,滿足停止迭代條件或達到最大迭代次數(shù)時輸出最優(yōu)個體;⑥最優(yōu)個體賦值RBFNN的權值、閾值;⑦K-means聚類生成RBFNN的中心點與寬度向量;⑧前向計算;⑨使用SRMSProp算法進行監(jiān)督學習;⑩重復過程⑨和⑩,滿足停止迭代條件或達到最大迭代次數(shù)時訓練結(jié)束。
具體的流程如圖3所示。
圖3 DCM流程
實驗數(shù)據(jù)選用武漢市6個新城區(qū)的農(nóng)田土壤重金屬含量數(shù)據(jù),該數(shù)據(jù)由武漢市農(nóng)業(yè)科學院嚴格依照《土壤環(huán)境監(jiān)測技術規(guī)范》,根據(jù)作物分布、土壤類型等信息定點采樣獲得。整理后選用500組數(shù)據(jù)作為訓練數(shù)據(jù),20組數(shù)據(jù)作為測試數(shù)據(jù),其中經(jīng)度、緯度、海拔、作物類型4項指標作為網(wǎng)絡的輸入值,重金屬As含量作為目標值。
對數(shù)據(jù)進行歸一化處理的公式如下
PN=(P-Pmin)/(Pmax-Pmin)
其中,P為原始數(shù)據(jù),Pmax與Pmin分別為原始數(shù)據(jù)中的最大值與最小值。
在傳統(tǒng)RBFNN中,除K-means生成中心點與寬度向量外,還可隨機生成中心點與寬度向量后再對其進行調(diào)整,為了比較兩種方法的優(yōu)劣性并判斷變量修正方式中對隱含層與輸出層的全部變量進行更新是否能取得更好的優(yōu)化效果,將隨機生成中心點與寬度向量并對全部變量進行更新的RBFNN(簡稱RBFNN1),由K-means生成中心點與寬度向量,但僅更新輸出層的權值、閾值的RBFNN(簡稱RBFNN2)以及由K-means生成中心點與寬度向量并且對全部變量進行更新的RBFNN(簡稱RBFNN3)進行對比實驗。
實驗中訓練方法采用SGD方法,學習率設置為0.01,激活函數(shù)選用tanh函數(shù),隱含層節(jié)點數(shù)設置為8,迭代500次后,3種變量修正方式下的網(wǎng)絡損失值的變化情況如圖4所示。
圖4 損失值比較
如圖4所示,代表RBFNN1與RBFNN3的曲線在前期就快速降到一個較低水平,說明它們的損失值在迭代次數(shù)少于50次時能夠快速收斂到一個較低值,而代表RBFNN2的線的前期變化較另外兩個更為平緩一些,但在迭代70次左右之后,損失值的大小基本不變,由此可見這3種方法的梯度值都能快速下降。將RBFNN1的損失值變化情況與RBFNN3相比,RBFNN1在最初幾次迭代時較RBFNN3表現(xiàn)更好,但此情況的發(fā)生可能是因為RBFNN1中初始化的參數(shù)值較好,它的出現(xiàn)具有不穩(wěn)定性,而在迭代約10次之后,RBFNN3的收斂速度與收斂精度較RBFNN1表現(xiàn)更好,說明RBFNN3的實際性能優(yōu)于RBFNN1。比較迭代后期3種不同的方法下?lián)p失值的變化情況可以發(fā)現(xiàn),代表RBFNN3的曲線最早到達較低點,其位置明顯低于另外兩條曲線,直至迭代500次時,RBFNN3的損失值依舊低于另外兩種方法。因此可以得出結(jié)論,采用由K-means生成中心點與寬度向量并且對全部變量進行更新這一變量修正方式對RBFNN進行訓練,訓練結(jié)果更優(yōu)。
為驗證深度復合模型(DCM)的有效性,將其分別與遺傳徑向基神經(jīng)網(wǎng)絡(GA-RBFNN)、徑向基神經(jīng)網(wǎng)絡(RBFNN)、BP神經(jīng)網(wǎng)絡(BPNN)、多元線性回歸(MLR)4種方法建立的模型進行土壤重金屬As含量的預測對比實驗。
實驗二的參數(shù)設置中,除實驗一出現(xiàn)的參數(shù)外,將大種群數(shù)設為60,小種群數(shù)設為10,最大自適應交叉概率設為0.7,最大自適應變異概率設為0.07,衰減速率設為0.9,動量系數(shù)設為0.1。不同模型的As含量預測值與真實值對比圖分別如下。
首先將圖5與圖6進行對比觀察,可以看出圖6中實線代表的真實值與虛線代表的預測值的走勢較圖5更為接近,且圖6中實線的走勢與虛線基本一致,部分線出現(xiàn)了重合,說明使用BPNN模型進行預測的結(jié)果比MLR模型更好。然后對比圖7與圖6可以看出,圖7中實線與虛線重合的預測點較圖6有所增加,說明RBFNN模型預測效果較BPNN模型有所提高,但部分預測值與真實值之間仍存在較大差距,預測效果依舊有待提高。
圖5 MLR模型As含量預測對比
圖6 BPNN模型As含量預測對比
圖7 RBFNN模型As含量預測對比
將圖8與圖7進行對比觀察,整體上兩張圖中代表預測值的虛線與代表真實值的實線之間差距的區(qū)別不夠明顯,只有少數(shù)幾個點的差距更小,說明在使用GA-RBFNN進行預測時,預測點的預測值與真實值之間的差值要略小于RBFNN,而將圖9與圖8、圖7相比時,可以看到圖9中實線與虛線之間的重合度明顯提高,并且大部分預測點的預測值與真實值基本重合,說明圖9代表的DCM預測模型較另外幾種對比實驗模型的預測值更為接近真實值。
圖8 GA-RBFNN模型As含量預測對比
圖9 DCM模型As含量預測對比
為了更加清楚地了解5種模型的預測結(jié)果中預測值與真實值之間的差距,將分別計算出使用5種預測模型進行預測時,每個預測點的預測值與真實值之間的差值,然后求出該差值與對應采樣點真實值的比值大小,最后統(tǒng)計在不同的比值區(qū)間內(nèi)5種預測模型的20組預測點分布的數(shù)量并繪制直方圖。繪制完成的直方圖如圖10所示。
圖10 不同模型中預測點的差值分布
如圖10所示,MLR、BPNN、RBFNN這3種模型中預測差值與真實值比值小于20%的點約占預測點總數(shù)量的一半,MLR與BPNN中預測差值與真實值比值小于20%的點的數(shù)量相同,RBFNN中該區(qū)間的點的數(shù)量與這兩種模型相比有所增加,但增加數(shù)量較少,結(jié)合圖5、圖6和圖7可以說明,使用這3種預測模型進行預測時,它們預測值與真實值之間的差距較為接近,它們的預測效果為RBFNN優(yōu)于BPNN,BPNN優(yōu)于MLR。GA-RBFNN與DCM中預測差值與真實值比值小于20%的點較另外3個模型均有所增加,說明這兩種模型的預測效果優(yōu)于前面3種模型,而觀察DCM的點的分布可以看出,該模型中預測差值與真實值比值小于10%的點占總數(shù)量的一半,小于20%的點的數(shù)量占總數(shù)量的75%,明顯高于其它幾組模型,結(jié)合前面的預測對比圖可以看出,DCM模型的預測值與真實值之間的差距較另外4種模型更低,預測效果更好。
除上述將預測值與真實值進行對比以及統(tǒng)計樣本點的預測差值與真實值的比值的分布外,還使用平均絕對誤差(MAE)、均方誤差(MSE)、平均絕對百分比誤差(MAPE)3項指標對5種模型的預測效果進行評估,這3項誤差指標的計算公式分別如下
如表1所示,5種模型的20組數(shù)據(jù)的預測結(jié)果誤差對比中,5種模型的3項誤差指標值依次遞減,其中MLR、BPNN、RBFNN這3種模型的平均絕對誤差與均方誤差均在2與6以上,GA-RBFNN模型與DCM模型的平均絕對誤差與均方誤差均分別2與6以下,但GA-RBFNN的誤差指標值與RBFNN較為接近,而DCM模型的3項誤差指標與前4種模型的誤差指標相比,下降幅度最為明顯,3項誤差指標較MLR的降低值分別約為0.8、3.7、7%,表明5種預測模型中,DCM的預測結(jié)果誤差最低。
表1 預測結(jié)果誤差對比
綜合以上圖表分析可以得出結(jié)論,在MLR、BPNN、RBFNN這3種模型中,使用RBFNN模型進行土壤重金屬含量預測時,預測準確性最高,在使用遺傳算法對RBFNN進行優(yōu)化后,GA-RBFNN的預測效果較RBFNN有較小提升,而與其它4種預測模型相比,使用本文提出的DCM模型進行土壤重金屬含量預測時預測效果最好。
本文提出一種深度復合模型(DCM)用于土壤重金屬含量預測,該模型采用基于自我學習的遺傳算法(ALGA)來生成RBFNN輸出層的參數(shù),然后使用自適應均方根反向傳播優(yōu)化算法(SRMSProp)對RBFNN的所有參數(shù)進行優(yōu)化修正,通過這兩種算法來加快RBFNN的收斂速度,獲得更高的預測精度。將本模型與MLR、BPNN、RBFNN、GA-RBFNN模型進行預測對比實驗,本模型的預測值與真實值更為接近,預測效果更好,可以為土壤重金屬含量預測提供一種新的方法。對本方法進行更多理論學習,將其應用到更多實際問題上,是接下來需要進一步考慮的問題。