摘要:BP學(xué)習(xí)算法是一種單向傳播的多層前向網(wǎng)絡(luò),Matlab中的神經(jīng)網(wǎng)絡(luò)工具箱是以人工神經(jīng)網(wǎng)絡(luò)理論為基礎(chǔ),基于Matlab的工具箱,結(jié)合西瓜仁重的預(yù)測(cè),驗(yàn)證了BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)西瓜仁重的可行性,且BP算法收斂速度快,誤差小,值得在預(yù)測(cè)作物生長(zhǎng)中推廣。
關(guān)鍵詞:Matlab;BP神經(jīng)網(wǎng)絡(luò);預(yù)測(cè)
中圖分類號(hào):TP183文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)19-30124-02
Based on Matlab BP Neural Network Application
YANG Bao-hua
(Institute of Information and Computer, Anhui Agricultural University, Hefei 230036, China)
Abstract: BP learning algorithm is a one-way transmission of multi-layer to the network, Matlab toolbox is based on the theory of artificial neural network, based on Matlab toolbox, with watermelon-heavy forecasts, BP neural network forecast the feasibility of re-watermelon is verified, and fast convergence, small error, should be promoted in the forecast crop growth.
Key words: Matlab; BP Neural Networks; Forecast
1 引言
人工神經(jīng)網(wǎng)絡(luò)是人工構(gòu)造的模擬人腦功能而構(gòu)建的一種網(wǎng)絡(luò),BP神經(jīng)網(wǎng)絡(luò)是結(jié)構(gòu)較簡(jiǎn)單、應(yīng)用最廣泛的一種模型,BP神經(jīng)網(wǎng)絡(luò)是Rumelhart等在1986年提出的。它是一種單向傳播的多層前向網(wǎng)絡(luò),一般具有三層或三層以上的神經(jīng)網(wǎng)絡(luò),包括輸入層、中間層(隱層)和輸出層[1],其模型見(jiàn)圖1所示。
■
圖1 BP網(wǎng)絡(luò)模型
Matlab中的神經(jīng)網(wǎng)絡(luò)工具箱是以人工神經(jīng)網(wǎng)絡(luò)理論為基礎(chǔ),利用Matlab語(yǔ)言構(gòu)造出許多典型神經(jīng)網(wǎng)絡(luò)的傳遞函數(shù)、網(wǎng)絡(luò)權(quán)值修正規(guī)則和網(wǎng)絡(luò)訓(xùn)練方法。網(wǎng)絡(luò)的設(shè)計(jì)者可根據(jù)自己的需要調(diào)用工具箱中有關(guān)神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)與訓(xùn)練的程序,免去了繁瑣的編程過(guò)程。
紅籽瓜(Red-seed Watermelon)種子即瓜子富含有蛋白質(zhì)、脂肪、鈣、磷及多種維生素,含油率達(dá)55%左右,營(yíng)養(yǎng)頗為豐富,經(jīng)過(guò)精細(xì)加工,味道鮮美,市場(chǎng)十分暢銷[4]。為了提高瓜子的產(chǎn)量,需要關(guān)注很多因素,這些因素的改變會(huì)影響瓜子的產(chǎn)量,所以確定哪些因素能預(yù)測(cè)產(chǎn)量,如何預(yù)測(cè)是本文研究的內(nèi)容。本文利用紅籽西瓜的測(cè)量數(shù)據(jù),以單果重,種子數(shù),千粒重,種子重作為輸入因子,仁重為輸出因子,選擇合適的隱層,構(gòu)建影響紅籽西瓜種仁重量的BP網(wǎng)絡(luò)模型,運(yùn)用Matlab軟件進(jìn)行預(yù)測(cè)。
2 BP神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)的基本方法
Matlab的NNbox提供了建立神經(jīng)網(wǎng)絡(luò)的專用函數(shù)newff()[5]。用newff函數(shù)來(lái)確定網(wǎng)絡(luò)層數(shù)、每層中的神經(jīng)元數(shù)和傳遞函數(shù),其語(yǔ)法為:
net=newff(PR,[S1,S2,…,SN],{TF1,TF2,…,TFN},BTF,BLF,PF)
式中:PR表示由每個(gè)輸入向量的最大最小值構(gòu)成的R×2矩陣;Si表示第i層網(wǎng)絡(luò)的神經(jīng)元個(gè)數(shù);TF表示第i層網(wǎng)絡(luò)的傳遞函數(shù),缺省為tansig,可選用的傳遞函數(shù)有tansig,logsig或purelin;BTF表示字符串變量,為網(wǎng)絡(luò)的訓(xùn)練函數(shù)名,可在如下函數(shù)中選擇:traingd、traingdm、traingdx、trainbfg、trainlm等,缺省為trainlm;BLF表示字符串變量,為網(wǎng)絡(luò)的學(xué)習(xí)函數(shù)名,缺省為learngdm;BF表示字符串變量,為網(wǎng)絡(luò)的性能函數(shù),缺省為均方差“mse”。
2.1 網(wǎng)絡(luò)層數(shù)
BP網(wǎng)絡(luò)可以包含不同的隱層,但理論上已經(jīng)證明,在不限制隱層節(jié)點(diǎn)數(shù)的情況下,兩層(只有一個(gè)隱層)的BP網(wǎng)絡(luò)可以實(shí)現(xiàn)任意非線性映射。
2.2 輸入層節(jié)點(diǎn)數(shù)
輸入層起緩沖存儲(chǔ)器的作用,它接受外部的輸入數(shù)據(jù),因此其節(jié)點(diǎn)數(shù)取決于輸入矢量的維數(shù)。
2.3 輸出層節(jié)點(diǎn)數(shù)
輸出層節(jié)點(diǎn)數(shù)取決于兩個(gè)方面,輸出數(shù)據(jù)類型和表示該類型所需的數(shù)據(jù)大小。在設(shè)計(jì)輸人層和輸出層時(shí),應(yīng)該盡可能的減小系統(tǒng)規(guī)模,使系統(tǒng)的學(xué)習(xí)時(shí)間和復(fù)雜性減小。
2.4 隱層節(jié)點(diǎn)數(shù)
一個(gè)具有無(wú)限隱層節(jié)點(diǎn)的兩層BP網(wǎng)絡(luò)可以實(shí)現(xiàn)任意從輸入到輸出的非線性映射。但對(duì)于有限個(gè)輸入模式到輸出模式的映射,并不需要無(wú)限個(gè)隱層節(jié)點(diǎn),這就涉及到如何選擇隱層節(jié)點(diǎn)數(shù)的問(wèn)題,至今為止,尚未找到一個(gè)很好的解析式,隱層節(jié)點(diǎn)數(shù)往往根據(jù)前人設(shè)計(jì)所得的經(jīng)驗(yàn)和自己進(jìn)行試驗(yàn)來(lái)確定。一般認(rèn)為,隱層節(jié)點(diǎn)數(shù)與求解問(wèn)題的要求、輸入輸出單元數(shù)多少都有直接的關(guān)系。另外,隱層節(jié)點(diǎn)數(shù)太多會(huì)導(dǎo)致學(xué)習(xí)時(shí)間過(guò)長(zhǎng);而隱層節(jié)點(diǎn)數(shù)太少,容錯(cuò)性差,識(shí)別未經(jīng)學(xué)習(xí)的樣本能力低,所以必須綜合多方面的因素進(jìn)行設(shè)計(jì)。
隱層節(jié)點(diǎn)數(shù)的初始值可先由以下兩個(gè)公式中的其中之一來(lái)確定[2,3]。
1=■+a (1)
或1=■(2)
式中,m、n分別為輸入結(jié)點(diǎn)數(shù)目與輸出結(jié)點(diǎn)數(shù)目,a為1~10之間的常數(shù)。
2.5 數(shù)據(jù)歸一化
因?yàn)樵紨?shù)據(jù)幅值大小不一,有時(shí)候還相差比較懸殊。如果直接投人使用,測(cè)量值大的波動(dòng)就壟斷了神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程,使其不能反映小的測(cè)量值的變化。所以,在網(wǎng)絡(luò)訓(xùn)練之前,輸人數(shù)據(jù)和目標(biāo)矢量都要經(jīng)過(guò)歸一化處理。
根據(jù)公式可將數(shù)據(jù)“歸一化”,即限定在[0,1]區(qū)間內(nèi)。歸一化公式為:
■ (3)
也可以使用歸一化函數(shù)Premnmx,及反歸一化函數(shù)Postmnmx。
3 BP學(xué)習(xí)算法及實(shí)例
3.1 BP學(xué)習(xí)算法
1) 初始化網(wǎng)絡(luò)及學(xué)習(xí)參數(shù);
2) 從訓(xùn)練樣本集合中取一個(gè)樣本,并作為輸入向量送入網(wǎng)絡(luò);
3) 正向傳播過(guò)程,對(duì)給定的輸入樣本,通過(guò)網(wǎng)絡(luò)計(jì)算得到輸出樣本,并把得到的輸出樣本與期望的樣本比較,如有誤差超出限定范圍,則執(zhí)行第4步;否則返回第2步,輸入下一個(gè)樣本;
4) 反向傳播過(guò)程,即從輸出層反向計(jì)算到第一隱層,修正各神經(jīng)元的連接權(quán)值,使用誤差減小。
3.2 實(shí)例
為了提高瓜籽產(chǎn)量,需要關(guān)注很多因素,濾去相關(guān)度過(guò)低的因子,根據(jù)經(jīng)驗(yàn)確定輸入因子為單果重,種子數(shù),千粒重,種子重,輸出因子為仁重。現(xiàn)以表1所示的2000~2002年測(cè)量數(shù)據(jù)作為訓(xùn)練樣本進(jìn)行訓(xùn)練,對(duì)2003年的數(shù)據(jù)進(jìn)行預(yù)測(cè)。輸出層結(jié)點(diǎn)代表仁重量,神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)模型采用4-4-1,即輸入層4個(gè)神經(jīng)元,根據(jù)公式(2)計(jì)算隱層神經(jīng)元數(shù)確定為4,1個(gè)輸出神經(jīng)元。設(shè)定最大的迭代次數(shù)為500次,系統(tǒng)全局誤差小于0.001。傳遞函數(shù)為tansig,訓(xùn)練函數(shù)為trainlm。
根據(jù)經(jīng)典的BP算法,采用Matlab編程,樣本訓(xùn)練結(jié)果見(jiàn)圖2,2003的數(shù)據(jù)作為預(yù)測(cè)樣本,預(yù)測(cè)結(jié)果如下:
TRAINLM, Epoch 0/500, MSE 0.316381/0.001, Gradient 2.8461/1e-010
TRAINLM, Epoch 4/500, MSE 0.00056622/0.001, Gradient 0.0830661/1e-010
TRAINLM, Performance goal met.
SSE = 0.0102
y = 0.269 0.267 0.27 0.269 0.2679 0.2679
表1 紅籽西瓜數(shù)量性狀表
瓜籽仁重實(shí)際值為0.265,0.282,0.264,0.269,0.265,0.287,誤差為0.0102,當(dāng)樣本較少時(shí)可以接受的誤差范圍內(nèi)。并且收斂速度快。
■
圖2訓(xùn)練函數(shù)為trainlm的訓(xùn)練結(jié)果
采用traingd函數(shù)進(jìn)行訓(xùn)練,則5000次仍未達(dá)到要求的目標(biāo)誤差0.001,說(shuō)明該函數(shù)訓(xùn)練的收斂速度很慢。見(jiàn)圖3所示。所以訓(xùn)練函數(shù)的選擇也非常關(guān)鍵。
■
圖3 訓(xùn)練函數(shù)為traingd的訓(xùn)練結(jié)果
4 結(jié)論
用Matlab編編寫的基于BP網(wǎng)絡(luò)的仁重預(yù)測(cè)程序,計(jì)算結(jié)果表明,誤差較小,預(yù)測(cè)值與實(shí)測(cè)值吻合較好,所建立的模型具有較好的實(shí)用性,說(shuō)明單果重,種子數(shù),千粒重,種子重的數(shù)據(jù)影響瓜子的產(chǎn)量,同時(shí)驗(yàn)證BP算法可以用于瓜仁產(chǎn)量的預(yù)測(cè)。
目前所進(jìn)行的預(yù)測(cè)試驗(yàn)中數(shù)據(jù)的樣本較少,且生長(zhǎng)動(dòng)態(tài)變化,今后擬建立一個(gè)動(dòng)態(tài)預(yù)測(cè)系統(tǒng),為紅籽瓜品種培育、提高產(chǎn)量提供新的方法,值得在預(yù)測(cè)作物生長(zhǎng)中推廣。
參考文獻(xiàn):
[1] 飛思科技產(chǎn)品研發(fā)中心.神經(jīng)網(wǎng)絡(luò)理論與Matlab 7實(shí)現(xiàn)[M].北京:電子工業(yè)出版社.2006:100-105.
[2] 徐廬生.微機(jī)神經(jīng)網(wǎng)絡(luò)[M].北京:中國(guó)醫(yī)藥科技出版社,1995.
[3] 高大啟.有教師的線性基本函數(shù)前向三層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)研究[J].計(jì)算機(jī)學(xué)報(bào),1998,21(1):80-85.
[4] 欽州農(nóng)業(yè)信息網(wǎng):http://www.qzny.gov.cn.
[5] 周開(kāi)利,康耀紅.神經(jīng)網(wǎng)絡(luò)模型及其Matlab仿真程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2005.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文