張俊虎,劉赟玥,王玲玲,袁棟梁
(青島科技大學(xué) 信息科學(xué)技術(shù)學(xué)院,山東 青島 266061)
目前確定神經(jīng)網(wǎng)絡(luò)[1]隱含層節(jié)點(diǎn)數(shù)的方法主要有試湊法[2]、經(jīng)驗(yàn)公式法[3]、以及引入超平面、動態(tài)全參數(shù)自調(diào)整[4]、區(qū)間增長法[5]。試湊法對于同一樣本集分別設(shè)置不同隱含層節(jié)點(diǎn)數(shù)進(jìn)行網(wǎng)絡(luò)訓(xùn)練,選取誤差值最小時對應(yīng)的節(jié)點(diǎn)數(shù)值作為最終結(jié)果。此種計(jì)算方式?jīng)]有科學(xué)的判斷,只能盲目的憑借經(jīng)驗(yàn)計(jì)算,這不僅會導(dǎo)致計(jì)算量的增大。特別的,對于存在較多節(jié)點(diǎn)的網(wǎng)絡(luò)結(jié)構(gòu),最終的計(jì)算效率也會降低;經(jīng)驗(yàn)公式法的提出沒有建立在相關(guān)理論基礎(chǔ)的前提下,只能從以往的項(xiàng)目經(jīng)驗(yàn)得出對應(yīng)的計(jì)算公式,以此獲取隱含層節(jié)點(diǎn)數(shù)可能存在的區(qū)間范圍,經(jīng)網(wǎng)絡(luò)訓(xùn)練選擇誤差達(dá)到最小值時對應(yīng)的節(jié)點(diǎn)數(shù)。所以這種方法只針對特定的數(shù)據(jù)集取值效果較為顯著,不具備算法的通用性;而動態(tài)全參數(shù)調(diào)整是通過一個事先給定先驗(yàn)知識的網(wǎng)絡(luò),動態(tài)調(diào)節(jié)另一個BP神經(jīng)網(wǎng)絡(luò)中隱含層節(jié)點(diǎn)數(shù)。該算法的復(fù)雜性甚至超過BP神經(jīng)網(wǎng)絡(luò)算法本身,消耗過大。增長法的計(jì)算方式首先通過經(jīng)驗(yàn)公式獲得隱含層節(jié)點(diǎn)數(shù)的取值范圍,從最小單元數(shù)開始訓(xùn)練網(wǎng)絡(luò),不斷增加隱含層節(jié)點(diǎn)數(shù),選取訓(xùn)練誤差和收斂速度性能達(dá)到最優(yōu)值對應(yīng)的隱含層節(jié)點(diǎn)數(shù)。此種算法的缺陷在于,沒有一種確切的方法解決何時停止增長的問題。
常見的約簡算法有:主成分分析法[6]、奇異值分解法[7]、以及基于粗糙集的屬性約簡[8]。其中,主成分分析法的實(shí)現(xiàn)思想是:將不同屬性上的數(shù)據(jù)信息借助線性變化集中到互相獨(dú)立的主成分上,滿足新的變量兩兩不相關(guān)從而達(dá)到剔除冗余屬性的目的。但最終得到的約簡集可能仍存在冗余屬性;奇異值分解法通過將一個復(fù)雜的矩陣分解成若干相互獨(dú)立的矩陣,提取代數(shù)特征。經(jīng)奇異值分解壓縮后,會造成刪除的部分屬性中存在有用的信息?;诖植诩膶傩约s簡算法[9]在不借助先驗(yàn)知識并保持決策和分類能力不變的前提下,剔除數(shù)據(jù)決策表中關(guān)聯(lián)度較弱的屬性。相較于前兩種約簡算法,它的優(yōu)勢體現(xiàn)在:計(jì)算量小,獲得最簡屬性集并能夠保證結(jié)果的準(zhǔn)確性。
因此,本工作提出了一種基于屬性核特征選擇與隱含層節(jié)點(diǎn)數(shù)動態(tài)確定的BP神經(jīng)網(wǎng)絡(luò)模型。利用了粗糙集理論的思想,以屬性核為算法起點(diǎn),通過計(jì)算屬性的重要度,迭代特征選擇的標(biāo)準(zhǔn),獲取最小屬性集合從而實(shí)現(xiàn)對BP 神經(jīng)網(wǎng)絡(luò)輸入項(xiàng)的約簡。同時,引入二分分割算法以逐步縮短范圍區(qū)間對比誤差大小的形式,快速確定隱含層節(jié)點(diǎn)數(shù)。而GM(1,1)是一種常見的產(chǎn)量預(yù)測模型,通過分析各因素之間的相異程度,生成規(guī)律性的數(shù)據(jù),建立對應(yīng)微分方程。但忽略了各因素之間的聯(lián)系,導(dǎo)致誤差偏大。為驗(yàn)證改進(jìn)后的算法性能,以水產(chǎn)養(yǎng)殖中對蝦產(chǎn)量為例對其進(jìn)行預(yù)測。實(shí)驗(yàn)分析表明,改進(jìn)后的算法不僅解決了BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練中出現(xiàn)的過擬合現(xiàn)象,而且提高了模型的預(yù)測精度。
BP神經(jīng)網(wǎng)絡(luò)能夠在無需事先獲取映射關(guān)系方程式的前提下,實(shí)現(xiàn)M-N 維的映射關(guān)系轉(zhuǎn)換。BP神經(jīng)網(wǎng)絡(luò)為三層結(jié)構(gòu)模式,由輸入層、隱含層、輸出層組成,如圖1所示。BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)分為正向傳播與反向傳播兩個過程。正向傳播中,輸入的數(shù)據(jù)經(jīng)過輸入層逐層向后正向傳遞。在傳遞過程中每一層的目標(biāo)神經(jīng)元產(chǎn)生計(jì)算結(jié)果,并在S型激活函數(shù)的作用下產(chǎn)生響應(yīng)。經(jīng)激活函數(shù)激活后的神經(jīng)元正向傳遞,在傳遞函數(shù)的推動下達(dá)到網(wǎng)絡(luò)結(jié)構(gòu)中的隱含層和輸出層,分別生成隱含層輸出和輸出層輸出[10-11]。反向傳播是通過計(jì)算輸出層與預(yù)測值之間的誤差,逐步調(diào)整權(quán)值以及各項(xiàng)參數(shù)取值大小,最終使得誤差在預(yù)期結(jié)果之內(nèi)。
圖1 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 BP neural network structure diagram
具備非線性映射能力的BP 神經(jīng)網(wǎng)絡(luò),隨著人們對其的深入研究與應(yīng)用,BP神經(jīng)網(wǎng)絡(luò)的性能受到諸多因素的影響。如,隱含層節(jié)點(diǎn)個數(shù)的取值、學(xué)習(xí)率以及初始神經(jīng)元輸入個數(shù)等。本研究擬在解決BP神經(jīng)網(wǎng)絡(luò)中存在的過擬合現(xiàn)象以及網(wǎng)絡(luò)耗時長的問題。故對隱含層節(jié)點(diǎn)數(shù)的確定以及初始神經(jīng)元的個數(shù)選取做了改進(jìn)。
AC-H-BPNN 模型具備BP神經(jīng)網(wǎng)絡(luò)強(qiáng)有力的非線性映射能力的同時,克服了傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)自身容易陷入過擬合的問題。通過屬性核特征選擇將輸入項(xiàng)進(jìn)行降維處理,精準(zhǔn)的數(shù)據(jù)輸入能夠在一定程度上提高網(wǎng)絡(luò)訓(xùn)練的效率,具體流程圖如圖2所示。其中數(shù)據(jù)線性歸一化的計(jì)算方式為
其中,xf為歸一化后的值,xmin為集合中的最小值,xmax為集合中的最大值。具體算法步驟見圖2。
圖2 AC-H-BPNN模型的流程圖Fig.2 AC-BPNN model flow chart
傳統(tǒng)的約簡算法對輸入項(xiàng)的約簡難以獲得最小約簡集,且結(jié)果仍存在冗余項(xiàng)。本研究的約簡算法建立在粗糙集理論的基礎(chǔ)上,在不借助先驗(yàn)知識的情況下,依靠數(shù)據(jù)本身對其進(jìn)行推理分析,挖掘出數(shù)據(jù)之間的隱含知識,揭示事物的潛在價值和規(guī)律[12]。
定義1:在知識表達(dá)系統(tǒng)S=<U,A,V,f>中,對每個屬性子集,定義一個不可分辨關(guān)系[13],
其中:屬性值集V=∪a∈AVa(Va表示屬性a 的值域),f:U×V→A 是一個信息函數(shù),它指的是U 中每一個對象x 的屬性值,即?x∈U,?a∈A,f(x,a)∈Va。對象x 關(guān)于IND(B)的等價類,在不產(chǎn)生混淆的情況下,用B 代替IND(B),記[x]B=[x]IND(B)。全體等價類集合即為U/IND(B)=U/B。
定義2:在知識表達(dá)系統(tǒng)S=〈U,A,V,f〉中,對于每個子集的不可區(qū)分關(guān)系B,X 的B 下近似可以定義為
定義3:在知識表達(dá)系統(tǒng)S=〈U,A,V,f〉中,若P,Q?A,則Q 的P 正域可以定義為
屬性重要度的計(jì)算方式如下:
具體算法步驟見圖3。
圖3 屬性約簡算法流程圖Fig.3 Flow chart of attribute reduction algorithm
運(yùn)用二分分割算法實(shí)現(xiàn)對隱含層節(jié)點(diǎn)數(shù)的確定。二分分割算法借鑒了數(shù)學(xué)中折半查找的思想:在確定的區(qū)間范圍內(nèi),通過區(qū)間內(nèi)的兩個端點(diǎn)逐漸向零點(diǎn)逼近,得到零點(diǎn)近似值的方法。利用經(jīng)驗(yàn)公式計(jì)算得出隱含層節(jié)點(diǎn)數(shù)可能存在的、最大概率上的區(qū)間范圍。再根據(jù)二分分割算法縮短取值范圍,比較兩區(qū)間端點(diǎn)值的輸出均方誤差大小,選擇最優(yōu)隱含層節(jié)點(diǎn)數(shù)。均方誤差的計(jì)算公式如下:
公式中In 為預(yù)測值,Out為真實(shí)值。二分分割算法見圖4。
圖4 二分分割算法流程圖Fig.4 Two-division algorithm flow chart
為驗(yàn)證本AC-H-BPNN 模型,選擇中國漁業(yè)統(tǒng)計(jì)年鑒作為數(shù)據(jù)源。以山東對蝦產(chǎn)量為例,經(jīng)過調(diào)研,明確了水產(chǎn)養(yǎng)殖產(chǎn)量的大小受:養(yǎng)殖面積、育苗量、勞動力數(shù)量、生產(chǎn)漁船數(shù)量、技術(shù)推廣人員數(shù)量、損失量、災(zāi)害損失量等因素影響。水產(chǎn)養(yǎng)殖數(shù)據(jù)樣本如表1所示。
表1 山東海水養(yǎng)殖對蝦產(chǎn)量數(shù)據(jù)樣本Table 1 Sample data of Shandong marine aquaculture shrimp production
對于BP神經(jīng)網(wǎng)絡(luò)來說,當(dāng)輸入的數(shù)據(jù)過多時,不利于網(wǎng)絡(luò)的訓(xùn)練與學(xué)習(xí),從而導(dǎo)致收斂速度的下降。因此,在網(wǎng)絡(luò)訓(xùn)練之前,需要根據(jù)目標(biāo)能力對屬性進(jìn)行精準(zhǔn)約簡,選取適合的屬性輸入,確定BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)屬性集合。條件屬性C={a1,a2,a3,a4,a5,a6,a7}(分別代表了養(yǎng)殖面積、育苗量、勞動力、生產(chǎn)漁船量、技術(shù)推廣人員、損失產(chǎn)量、災(zāi)害損失),決策屬性D 為年產(chǎn)量。依據(jù)算法步驟選擇重要度較大的屬性構(gòu)成屬性核CORED(C),屬性度值為零的屬性予以剔除。例如,對于數(shù)據(jù)決策表中的a3和a5,有:POS(C-{a3})(D)=POS(C-{a5})(D)=U。于是得出,。表示屬性a3與屬性a5對于數(shù)據(jù)決策表來說,去掉該屬性對于正域大小變化影響不大,即該屬性的對于整體的數(shù)據(jù)決策表重要程度較弱。重復(fù)這一過程,直到剩余集合中所有屬性的重要度值均為零,得到最終約簡集合。約簡后的最小屬性子集為{a1,a2,a4,a6}。
經(jīng)過分析和網(wǎng)絡(luò)訓(xùn)練選取最佳的參數(shù)。動量因子λ 取值為0.87,學(xué)習(xí)率取值為0.6。本研究ACH-BPNN模型中隱含層數(shù)為1。根據(jù)經(jīng)驗(yàn)公式,計(jì)算隱含層節(jié)點(diǎn)個數(shù)的可能取值范圍在區(qū)間[3,10]內(nèi),再結(jié)合二分分割算法計(jì)算得出隱含層節(jié)點(diǎn)數(shù)。不同隱含層節(jié)點(diǎn)數(shù)對應(yīng)的網(wǎng)絡(luò)性能數(shù)據(jù)表如表2所示。
表2 不同隱含層節(jié)點(diǎn)數(shù)神經(jīng)網(wǎng)絡(luò)性能的對比Table 2 Performance comparison of neural networks with different number of hidden layers
由表2可知,當(dāng)隱含層節(jié)點(diǎn)個數(shù)為6時,此時神經(jīng)網(wǎng)絡(luò)的總體性能達(dá)到最優(yōu)。故選定本工作BP神經(jīng)網(wǎng)絡(luò)模型的隱含層節(jié)點(diǎn)個數(shù)為6。BP 神經(jīng)網(wǎng)絡(luò)模型的拓?fù)浣Y(jié)構(gòu)為4-6-1。
為驗(yàn)證本AC-H-BPNN 模型對于對蝦產(chǎn)量的預(yù)測效果,實(shí)驗(yàn)采用表1中的52組樣本數(shù)據(jù)訓(xùn)練,選取了4組樣本數(shù)據(jù)作為預(yù)測模型的數(shù)據(jù)驗(yàn)證。并與優(yōu)化前的傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)算法以及水產(chǎn)養(yǎng)殖產(chǎn)量預(yù)測常用的GM(1,1)算法模型進(jìn)行對比[14]。表3為不同模型對于對蝦產(chǎn)量預(yù)測的結(jié)果對比。
表3 不同模型的擬合能力對比Table 3 Comparison of prediction results of various algorithms
為了更好的評估本模型對對蝦產(chǎn)量的預(yù)測與其他預(yù)測模型的預(yù)測性能,預(yù)測方法和預(yù)測結(jié)果的可靠性通過均方根誤差指標(biāo)進(jìn)行評價。均方根誤差結(jié)果越小,代表模型預(yù)測的精度越高,模型的預(yù)測性能較好。其中Sj代表預(yù)測值,Tj代表實(shí)際值。其中均方根誤差計(jì)算公式為
由于最初的模型設(shè)計(jì)初衷是為了解決BP神經(jīng)網(wǎng)絡(luò)容易產(chǎn)生過擬合與訓(xùn)練時間過長的問題,所以這里加入了模型誤差對比與網(wǎng)絡(luò)平均耗時對比,如表4所示。以驗(yàn)證優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)模型是否能夠克服上述問題。對于同一組樣本進(jìn)行訓(xùn)練并計(jì)算誤差隨網(wǎng)絡(luò)訓(xùn)練次數(shù)的變化,圖5顯示的為優(yōu)化前與優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)誤差隨訓(xùn)練次數(shù)的曲線變化。
圖5 BP神經(jīng)網(wǎng)絡(luò)優(yōu)化前后的誤差對比圖Fig.5 Error comparison chart before and after BP neural network optimization
根據(jù)表3、表4可知,傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)算法對于產(chǎn)量預(yù)測容易出現(xiàn)過擬合現(xiàn)象。這是由于在網(wǎng)絡(luò)訓(xùn)練使用梯度下降法調(diào)整誤差和權(quán)重量。例如在2004年的對蝦產(chǎn)量預(yù)測結(jié)果與其他算法模型存在較大的差距,很大程度上便是由于此種原因造成的。GM(1,1)預(yù)測模型的產(chǎn)量預(yù)測結(jié)果出現(xiàn)了偏激狀況。分別在2004年與2011年的對蝦產(chǎn)量預(yù)測結(jié)果出現(xiàn)偏低和過高。這種情況的發(fā)生與關(guān)聯(lián)因素的分析計(jì)算方式有一定的關(guān)聯(lián)。GM(1,1)模型通過分析各因素之間的相異程度,生成規(guī)律性的數(shù)據(jù),建立對應(yīng)微分方程。但水產(chǎn)養(yǎng)殖中的對蝦數(shù)據(jù)具有非線性相關(guān)的特性,這就使得最終的預(yù)測結(jié)果不穩(wěn)定,預(yù)測精度較差。對于本AC-H-BPNN 預(yù)測模型,經(jīng)過二分分割算法的應(yīng)用,科學(xué)設(shè)定了隱含層節(jié)點(diǎn)數(shù),在一定程度上降低了網(wǎng)絡(luò)訓(xùn)練的時間。與傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)對比,由于神經(jīng)元輸入的個數(shù)減少一半,除去了冗余的數(shù)據(jù)點(diǎn),減少了過擬合現(xiàn)象的出現(xiàn)。故此,本工作所建立的模型在預(yù)測精度和平均耗時上均優(yōu)于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)的預(yù)測效果。
表4 不同預(yù)測模型的性能比較Table 4 Performance comparison of different prediction models
另外,與GM(1,1)預(yù)測模型對比,本工作ACH-BPNN 模型在平均耗時中高于GM(1,1)模型,但通過對比表3真實(shí)值與預(yù)測值之間的關(guān)系。不難看出,GM(1,1)的預(yù)測能力存在不穩(wěn)定性,也就是說,其預(yù)測精度較低,容易產(chǎn)生偏差。綜合實(shí)驗(yàn)結(jié)果可知,AC-H-BPNN 模型能夠在較短的時間內(nèi)獲取較高的預(yù)測精度。
本研究引入屬性核特征選擇約簡算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò),利用粗糙集理論的特性,在不需要先驗(yàn)知識的前提下,判別各影響因素的重要程度,去除與數(shù)據(jù)表關(guān)聯(lián)度較小的屬性。同時,將二分分割算法與經(jīng)驗(yàn)公式相結(jié)合,確定隱含層節(jié)點(diǎn)數(shù),減少過擬合現(xiàn)象的產(chǎn)生。改進(jìn)后的BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型不僅保留了非線性泛化特點(diǎn),還提高了模型的預(yù)測精度。為水產(chǎn)養(yǎng)殖產(chǎn)量預(yù)測提供新方法,具備一定的實(shí)用性。下一步的工作將繼續(xù)完善該算法,確定更加完善的隱含層節(jié)點(diǎn)取值范圍以及權(quán)值誤差的修正量。并將該方法應(yīng)用在更多的實(shí)際數(shù)據(jù)集中,以發(fā)現(xiàn)可能存在的問題。