郝 燕
(山西汾西礦業(yè)集團煤質處,山西 介休 032000)
本文采用三層單輸出BP網絡建立煤炭水分模型,包括輸入層、一個隱含層和輸出層,輸出層的節(jié)點數(shù)為1,前后層之間采用全連接,而每一層之間無連接,如圖1。
圖1 三層單輸出的BP網絡
BP網絡的權值和閥值采用誤差反向傳播算法即BP算法來進行調節(jié),對于三層單輸出的BP網絡的學習步驟如下:
(1)初始化BP網絡的權值和閥值。
(2)依次輸入N個學習樣本,假設當前輸入第P個樣本。
(3)輸入樣本,計算BP網絡中隱層和輸出層的各個神經元的輸出值:
式中:
uj-隱層第j個神經元基函數(shù)的輸出值;
wij-輸入層第i個神經元與隱層第j個神經元的連接權值:
f1-隱層各個神經元的激活函數(shù)。
式中:
u'-輸出層的神經元基函數(shù)的輸出值;
wj-隱層第j個神經元與輸出層神經元的連接權值;
f2-輸出層神經元的激活函數(shù)。
(4)計算各層的反向傳播誤差和權值修正量:
對于輸出層
式中:
d(p)-第P個學習樣本的期望值;
η-學習率。
對于隱層
(5)判斷是否學習完N個樣本,如果沒有,轉到步驟(2)繼續(xù)學習;如果己學習完,轉到步驟(6)。
(6)批量修正各層的權值:
式中:
n-迭代次數(shù)。
(7)所有樣本按新的權值計算輸出層的輸出值,若總誤差
或達到設定的最大次數(shù),則終止學習,否則轉至步驟(2)繼續(xù)新一輪的學習。
為了實現(xiàn)神經網絡能夠對測量數(shù)據的準確預測,所選的樣本數(shù)據應盡可能準確,且樣本應覆蓋所研究問題的全部范圍。在建立微波衰減法測量煤炭水分BP網絡模型中,將上節(jié)的1920組數(shù)據作為訓練樣本,60組作為檢驗樣本,下面的相移法和雙參量法模型的訓練樣本和檢驗樣本與之相同。
在MATLAB中,采用newff()函數(shù)創(chuàng)建一個前向BP神經網絡模型,函數(shù)的調用格式為:
式中:
PR-由R組輸入的最小值和最大值組成的R×2維矩陣;
Si-第i層的節(jié)點數(shù);
TFi-第i層的傳遞函數(shù),默認為tansig;
BTF-BP網絡的訓練函數(shù),默認為trainlm;
BLF-權值和閥值的學習函數(shù),默認為learngdm;
PF-網絡的性能函數(shù),默認為mse。
調用該函數(shù)創(chuàng)建了一個網絡對象,調用函數(shù)時自動初始化網絡的權值和閥值。在訓練網絡前,需要對網絡的結構、網絡的輸入層等內容進行設計。
(1)輸入層、隱含層和輸出層的設計
BP網絡的輸入層和輸出層的節(jié)點數(shù)根據求解的問題直接確定。在微波衰減法測量煤炭水分的模型中,輸入變量為透射波衰減、煤層厚度、堆密度和環(huán)境溫度,所以網絡的輸入層的節(jié)點數(shù)為4個,輸出變量為水分值,輸出層為1個節(jié)點。
如何確定隱含層的節(jié)點數(shù)是一個復雜的問題,通常根據多次試驗和經驗來確定,對于三層BP網絡,隱含層的節(jié)點數(shù)可參考下面的計算公式:
式中:
h-隱含層節(jié)點數(shù);
m-輸入層節(jié)點數(shù);
n-輸出層節(jié)點數(shù);
α-0~10之間的常數(shù)。
本文選取隱節(jié)點數(shù)在參考經驗公式確定大致范圍的基礎上,采用試湊法確定最佳節(jié)點數(shù),預先選擇隱節(jié)點數(shù)在3~12之間,分別對網絡訓練,比較網絡的預測精度,最終選擇隱節(jié)點數(shù)為10個。
(2)傳遞函數(shù)的選擇
傳遞函數(shù)也稱激活函數(shù),BP神經網絡隱節(jié)點的激活函數(shù)都采用是Sigmoidal函數(shù),輸出節(jié)點的激活函數(shù)根據應用不同而異,如果用于函數(shù)擬合,輸出節(jié)點應采用線性函數(shù)。因此,網絡的傳遞函數(shù)采用logsig-purelin形式。
(3)訓練函數(shù)的選擇
MATLAB神經網絡工具箱提供了一系列訓練函數(shù)可供選擇,在設計衰減法測量煤炭水分的BP網絡中,為了選擇收斂速度最快的訓練函數(shù),由于trainlm訓練函數(shù)的收斂速度最快,因此,選擇采用trainlm函數(shù)作為網絡的訓練函數(shù)。
BP網絡訓練通常采用train函數(shù)來完成,在網絡訓練前,還需要確定初始權值并設定學習率、訓練目標、訓練次數(shù)和動量因子等訓練參數(shù)。
(1)初始權值的選取
通常,初始權值選取為[0,1]間的隨機數(shù),本網絡采用默認的初始權值。
(2)學習率
為了保證系統(tǒng)的穩(wěn)定收斂,選取較小的學習率,選取范圍通常在0.01~0.8之間。本網絡設定學習率為0.05。
(3)訓練次數(shù)
訓練次數(shù)對網絡的泛化能力有很大影響,網絡的訓練次數(shù)存在一最佳點。本網絡經過多次試驗,最終選取訓練次數(shù)為400。
(4)訓練目標
本網絡通過多次訓練對比后確定最終訓練目標為0.00002。
(5)動量因子
動量因子一般取值在0.1~0.8之間,本網絡設定動量因子為0.5。
設定完以上參數(shù),網絡訓練前對實驗數(shù)據進行歸一化處理,使所有的數(shù)據轉化到[0,1]范圍內,避免因數(shù)據數(shù)量級差別大而造成網絡的預測能力下降,調用train函數(shù)對網絡進行訓練,train函數(shù)的調用格式為:
式中:
P-網絡輸入;
T-網絡目標;
Tr-訓練記錄;
net-訓練前的網絡;
NET-訓練后的網絡。
神經網絡用于建立微波衰減法測量煤炭水分模型的學習曲線如圖2所示,經過173次訓練后均方誤差小于目標值,于是停止學習。
在微波相移法測量煤炭水分的模型中,輸入變量分別為透射波相移、煤層厚度、堆密度和環(huán)境溫度,所以網絡的輸入層的節(jié)點數(shù)為4個,輸出變量為水分值,輸出層為1個節(jié)點。網絡隱節(jié)點的傳遞函數(shù)采用單極性sigmodal函數(shù)即logsig函數(shù),輸出節(jié)點的傳遞函數(shù)采用線性函數(shù)purelin。通過多次訓練比較確定隱節(jié)點數(shù)為10個,訓練函數(shù)采用trainlm函數(shù),學習函數(shù)采用leamgdm函數(shù)。
圖2 BP網絡的學習過程
利用構建的BP網絡學習訓練樣本,網絡訓練前先對所有的實驗數(shù)據進行歸一化處理,設定學習率為0.05,訓練次數(shù)為400,訓練目標為0.00002,動量因子為0.5,其余參數(shù)采用默認值,經過86次訓練后均方誤差達到要求,于是停止學習。
為了檢驗模型的正確性,利用訓練好的模型預測檢驗樣本,其中煤炭水分預測值經過了反歸一化處理,預測結果與真實水分的比較圖如圖3所示,經計算,預測水分與真實水分的相關系數(shù)等于0.9950,絕對誤差不大于0.96%。與利用逐步回歸分析建立的微波相移法測量煤炭水分的模型相比,BP網絡建立的煤炭水分模型的預測精度明顯高于逐步回歸分析模型。
圖3 BP網絡的預測結果
在微波雙參量法測量煤炭水分的模型中,輸入變量為微波衰減、微波相移、煤層厚度、堆密度、溫度,輸出變量為煤炭水分,所以網絡的輸入節(jié)點數(shù)為5個,輸出節(jié)點數(shù)為1個,網絡隱節(jié)點的傳遞函數(shù)采用單極性sigmodal函數(shù)即logsig函數(shù),輸出節(jié)點的傳遞函數(shù)采用線性函數(shù)purdm。通過多次訓練比較確定隱節(jié)點數(shù)為12個。
利用構建的BP網絡學習訓練樣本,訓練前對實驗數(shù)據進行歸一化處理,使所有數(shù)據轉化到[0,l]范圍內,設定學習率為0.05,訓練次數(shù)為400,訓練目標為0.00002,動量因子為0.5,其余參數(shù)采用默認值,經過93次訓練后均方誤差達到要求,于是停止學習。
利用訓練好的網絡預測檢驗樣本,其中預測結果進行了反歸一化處理,比較煤炭水分的預測值與真實值的差異,以驗證模型的正確性。預測結果與真實水分的比較圖如圖4所示,經計算,預測水分與真實水分的相關系數(shù)等于0.9942,絕對誤差不大于1.15%,與利用逐步回歸分析建立的微波雙參量法測量煤炭水分的模型相比,BP網絡建立的煤炭水分模型的預測精度較高。
本文利用BP神經網絡具有通過學習逼近任意非線性映射的能力,分別建立衰減法、相移法和雙參量法的煤炭水分BP網絡測量模型,并分別與逐步回歸模型的預測結果進行了比較,結果表明神經網絡預測更加準確,具有更好的實際應用性。
圖4 BP網絡的預測結果