張世睿,李心科
(合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,安徽 合肥 230009)
基于模擬退火的BP網(wǎng)絡(luò)隱藏層節(jié)點(diǎn)估算算法
張世睿,李心科
(合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,安徽 合肥 230009)
單隱藏層BP神經(jīng)網(wǎng)絡(luò)在模式識(shí)別及數(shù)據(jù)挖掘等領(lǐng)域應(yīng)用廣泛,而隱藏層節(jié)點(diǎn)的數(shù)目受到眾多因素的影響,因此節(jié)點(diǎn)數(shù)量的選取一直是一個(gè)復(fù)雜的問題。文章提出一種基于模擬退火算法(simulated annealing,SA)的單隱藏層BP神經(jīng)網(wǎng)絡(luò)隱藏層節(jié)點(diǎn)估算算法,基于經(jīng)驗(yàn)確定隱藏節(jié)點(diǎn)數(shù)的下界,通過模擬退火不斷增加隱藏節(jié)點(diǎn)個(gè)數(shù)直至算法結(jié)束,得到最優(yōu)解。該方法與經(jīng)驗(yàn)法和試湊法相比具有較強(qiáng)的理論依據(jù),與遺傳算法等方法相比不容易陷入局部最小值。實(shí)驗(yàn)證明,采用該方法估算隱藏層節(jié)點(diǎn)的準(zhǔn)確率較高,速度也較快。
BP網(wǎng)絡(luò);模擬退火算法(SA);單隱藏層;隱藏層節(jié)點(diǎn)數(shù)
BP神經(jīng)網(wǎng)絡(luò)由于具有很強(qiáng)的自我學(xué)習(xí)能力,能夠逼近任意復(fù)雜非線性函數(shù)[1],同時(shí)還能夠解決傳統(tǒng)參數(shù)方法難以找到合適規(guī)則的問題,具有較強(qiáng)的容錯(cuò)性和魯棒性,已經(jīng)被廣泛應(yīng)用于模式識(shí)別、信息分類和數(shù)據(jù)挖掘等領(lǐng)域[2-3]。
研究證明,神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力取決于網(wǎng)絡(luò)隱藏層的結(jié)構(gòu),其中包括隱藏層的數(shù)目和每個(gè)隱藏層中隱藏節(jié)點(diǎn)的數(shù)量。增加隱藏層的數(shù)量可以有效降低網(wǎng)絡(luò)的訓(xùn)練誤差,提高網(wǎng)絡(luò)識(shí)別的準(zhǔn)確率,但也會(huì)使網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)更加復(fù)雜,訓(xùn)練時(shí)間也會(huì)更長(zhǎng);而增加隱藏節(jié)點(diǎn)數(shù)也可以提高識(shí)別的準(zhǔn)確率,更容易觀察和調(diào)整訓(xùn)練效果[4]。采用單隱藏層的3層結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)能夠逼近任意連續(xù)函數(shù),因此本文僅研究單隱藏層BP網(wǎng)絡(luò)隱藏層節(jié)點(diǎn)的選擇問題。
然而隱藏層節(jié)點(diǎn)的選擇十分復(fù)雜,節(jié)點(diǎn)的數(shù)目受到眾多因素的影響,例如,分類的需求、數(shù)據(jù)集的大小等。與學(xué)習(xí)算法的激勵(lì)函數(shù)選擇相比,確定隱藏層節(jié)點(diǎn)數(shù)目的研究較少[5]。對(duì)于模式識(shí)別和數(shù)據(jù)集分類等問題,如果隱藏層節(jié)點(diǎn)數(shù)目過少,那么網(wǎng)絡(luò)的識(shí)別準(zhǔn)確率會(huì)較低;如果隱藏層節(jié)點(diǎn)過多,那么訓(xùn)練時(shí)間會(huì)變長(zhǎng),造成過訓(xùn)練[6]。
隱藏層節(jié)點(diǎn)數(shù)目選取的方法主要有試湊法[7]、經(jīng)驗(yàn)公式法[8]、增長(zhǎng)法[9]、遺傳算法[10]以及三點(diǎn)式搜索等綜合優(yōu)化選取方法[11]。上述方法都有其局限性:試湊法是通過不斷地選取網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)量進(jìn)行測(cè)試,直至選擇結(jié)果滿意為止,該方法沒有目的性,只能不斷盲目地進(jìn)行試驗(yàn),計(jì)算開銷非常大,對(duì)于某些節(jié)點(diǎn)數(shù)較多的網(wǎng)絡(luò),計(jì)算效率較低;經(jīng)驗(yàn)公式法缺少相關(guān)的理論依據(jù),由于其公式是來自項(xiàng)目和試驗(yàn)中的經(jīng)驗(yàn),只能針對(duì)特定的數(shù)據(jù)集有效,不能作為通用的確定隱藏層節(jié)點(diǎn)的方法使用;增長(zhǎng)法是從一個(gè)最小的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)開始試驗(yàn),不斷增加隱藏層中節(jié)點(diǎn)的數(shù)目,直至獲取滿意的數(shù)目為止,雖然相關(guān)研究較多,但是對(duì)于如何終止增長(zhǎng)的問題目前沒有統(tǒng)一的解決方法;遺傳算法由于其固有的爬山能力差、收斂速度慢的問題,會(huì)導(dǎo)致在平坦區(qū)域搜索結(jié)果陷入局部最小值的情況;三點(diǎn)式搜索可能會(huì)錯(cuò)過全局最優(yōu)解。此外,這些算法需要不斷地模擬完整的網(wǎng)絡(luò)訓(xùn)練過程,運(yùn)行時(shí)間較長(zhǎng)且開銷大。
本文提出了一種基于模擬退火算法(simulated annealing,SA)的單隱藏層BP神經(jīng)網(wǎng)絡(luò)隱藏層節(jié)點(diǎn)估算算法,利用模擬退火算法局部搜索能力較強(qiáng)、運(yùn)行時(shí)間較短的優(yōu)勢(shì),快速確定網(wǎng)絡(luò)隱藏層節(jié)點(diǎn)數(shù),優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),提高網(wǎng)絡(luò)的識(shí)別率。
模擬退火算法是基于統(tǒng)計(jì)物理的一種算法,通過引入物理系統(tǒng)中晶體退火過程這樣一種自然的機(jī)制,采用Metropolis準(zhǔn)則接受產(chǎn)生的最優(yōu)的問題解。該算法最關(guān)鍵的一點(diǎn)就是對(duì)于問題的局部最小解采用一定的概率來判斷是否接受,以便跳出局部極值點(diǎn),繼續(xù)對(duì)全局問題進(jìn)行分解探究,從而得到問題的全局最優(yōu)解[12]。
本文提出的隱藏節(jié)點(diǎn)估算算法利用模擬退火算法的優(yōu)點(diǎn),與增長(zhǎng)法相結(jié)合,首先選取一個(gè)初始的隱藏層節(jié)點(diǎn)數(shù),通常根據(jù)經(jīng)驗(yàn)選擇輸入節(jié)點(diǎn)和輸出節(jié)點(diǎn)中較大的一個(gè)為初始值,然后對(duì)網(wǎng)絡(luò)進(jìn)行一定次數(shù)的訓(xùn)練,通過模擬退火算法決定是繼續(xù)增加節(jié)點(diǎn)數(shù),還是接受當(dāng)前節(jié)點(diǎn)數(shù)為算法的結(jié)果。重復(fù)上述過程,直至退火完成。
算法需要確定模擬退火的一些參數(shù):
(1) 模擬退火的初始溫度。該值應(yīng)當(dāng)足夠高,從而使得產(chǎn)生的所有解都能夠被接受,避免算法陷入局部最優(yōu)解,因此,設(shè)置初始溫度為100。
(2) 退火的控制函數(shù)。通常采用的公式為:Tk+1=αTk,其中,α為小于1的系數(shù)。
(3) 評(píng)價(jià)函數(shù)C(H)。該函數(shù)為在隱藏層節(jié)點(diǎn)數(shù)為H時(shí),經(jīng)過一定數(shù)量的訓(xùn)練后,網(wǎng)絡(luò)的識(shí)別誤差率。
算法的執(zhí)行步驟如下:
(1) 根據(jù)具體問題確定網(wǎng)絡(luò)的輸入和輸出層的個(gè)數(shù)M和N,以及網(wǎng)絡(luò)的激勵(lì)函數(shù)和學(xué)習(xí)算法,構(gòu)建基本的網(wǎng)絡(luò)模型。
(2) 選取初始隱藏層個(gè)數(shù),根據(jù)經(jīng)驗(yàn)可知隱藏層的個(gè)數(shù)通常大于等于輸入層和輸出層節(jié)點(diǎn)的個(gè)數(shù),因此選擇輸入層節(jié)點(diǎn)數(shù)和輸出層節(jié)點(diǎn)數(shù)中的最大值作為初始隱藏層個(gè)數(shù),H=max(M,N)。
(3) 對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練次數(shù)為目標(biāo)次數(shù)的10%,評(píng)價(jià)函數(shù)C(H)即為步驟(3)訓(xùn)練后的識(shí)別誤差率函數(shù),H為當(dāng)前隱藏層節(jié)點(diǎn)個(gè)數(shù),輸出為當(dāng)前訓(xùn)練次數(shù)后的網(wǎng)絡(luò)識(shí)別誤差率。
(4) 增加網(wǎng)絡(luò)中隱藏層節(jié)點(diǎn)的個(gè)數(shù),計(jì)算增量Δt′=C(H+1)-C(H),若Δt′<0,則接受H+1作為新的隱藏層節(jié)點(diǎn)個(gè)數(shù);否則,以概率exp(-Δt′/T)接受H+1作為網(wǎng)絡(luò)隱藏層節(jié)點(diǎn)個(gè)數(shù)的新解,其中,T為當(dāng)前溫度。
(5) 若連續(xù)若干個(gè)新解都沒有被接受,則終止算法;否則減小T,跳轉(zhuǎn)到步驟(3),直至T減到很小,結(jié)束該算法。
本文以Fisher’sIris數(shù)據(jù)集作為神經(jīng)網(wǎng)絡(luò)的實(shí)驗(yàn)數(shù)據(jù)集,該數(shù)據(jù)集是一個(gè)鳶尾花卉的數(shù)據(jù)集,分為3種花,每種花各50條數(shù)據(jù),共有150條花卉信息。3種花分別為I.setosa、I.versicolor及I.virginica。實(shí)驗(yàn)中分別選取每種花的前25條數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,后25條數(shù)據(jù)作為測(cè)試數(shù)據(jù)集,因此,共計(jì)75條訓(xùn)練數(shù)據(jù)和75條測(cè)試數(shù)據(jù)。
根據(jù)數(shù)據(jù)集的內(nèi)容,確定神經(jīng)網(wǎng)絡(luò)的輸入節(jié)點(diǎn)數(shù)目為4,分別表示在Fisher’sIris數(shù)據(jù)集中每種花的特有屬性:花萼長(zhǎng)度(sepal length)、花萼寬度(sepal width)、花瓣長(zhǎng)度(petal length)及花瓣寬度(petal width)。
神經(jīng)網(wǎng)絡(luò)的輸出節(jié)點(diǎn)數(shù)目設(shè)置為3,分別表示識(shí)別為3種花的可能性的大小,最終選擇其中較大的一個(gè)值所對(duì)應(yīng)的種類作為網(wǎng)絡(luò)識(shí)別的結(jié)果去驗(yàn)證網(wǎng)絡(luò)的識(shí)別準(zhǔn)確率;對(duì)于輸入數(shù)據(jù),在讀入神經(jīng)網(wǎng)絡(luò)后會(huì)進(jìn)行處理;根據(jù)花的不同類型設(shè)置對(duì)應(yīng)的輸出節(jié)點(diǎn)的值為1,其他值為0,作為訓(xùn)練數(shù)據(jù)的輸出數(shù)據(jù)。
由于本文的輸入數(shù)據(jù)均為正數(shù),為了保證收斂速度,通過線性歸一化方法將數(shù)據(jù)歸一化到[0,1]范圍,公式為:
y=(x—xmin)/(xmax-xmin)
(1)
其中,xmin為輸入數(shù)據(jù)的最小值;xmax為輸入數(shù)據(jù)的最大值。
由于輸入數(shù)據(jù)均歸一化到了[0,1]區(qū)間,因此第1層激活函數(shù)選擇S型函數(shù),第2層激活函數(shù)選擇線性激活函數(shù),其中S型函數(shù)公式為:
f(x)=1/(1+e-x)
(2)
其中,0 訓(xùn)練函數(shù)選擇有動(dòng)量和自適應(yīng)的梯度下降法,這是目前較為常用的一種學(xué)習(xí)算法,能夠快速收斂并得出結(jié)果。設(shè)置學(xué)習(xí)迭代次數(shù)為500次,目標(biāo)誤差率為1%。 2.2.1 實(shí)驗(yàn)結(jié)果 確定初始隱藏節(jié)點(diǎn)的個(gè)數(shù)H=4,根據(jù)本文提出的算法不斷訓(xùn)練網(wǎng)絡(luò)。 在不同隱藏層節(jié)點(diǎn)個(gè)數(shù)下,訓(xùn)練50次后網(wǎng)絡(luò)的誤差情況如圖1所示,當(dāng)隱藏層節(jié)點(diǎn)數(shù)為14時(shí),模擬退火算法判斷運(yùn)行結(jié)束,最終確定該鳶尾花識(shí)別模型的網(wǎng)絡(luò)隱藏層節(jié)點(diǎn)個(gè)數(shù)為11。 圖1 網(wǎng)絡(luò)訓(xùn)練誤差率 從圖1可以看出,基于模擬退火算法的BP網(wǎng)絡(luò)隱藏層節(jié)點(diǎn)估算算法沒有陷入到局部最小值的困境中,而是繼續(xù)搜索,最終找到11這樣一個(gè)比較穩(wěn)定的值。 為了驗(yàn)證實(shí)驗(yàn)結(jié)果的準(zhǔn)確性,使用11作為該實(shí)驗(yàn)中隱藏層節(jié)點(diǎn)的個(gè)數(shù),建立BP神經(jīng)網(wǎng)絡(luò),對(duì)實(shí)驗(yàn)中的數(shù)據(jù)集進(jìn)行了訓(xùn)練,訓(xùn)練結(jié)果如圖2所示。 圖2 網(wǎng)絡(luò)訓(xùn)練結(jié)果信息 輸入測(cè)試數(shù)據(jù)集對(duì)該網(wǎng)絡(luò)的識(shí)別率進(jìn)行了驗(yàn)證,識(shí)別率高達(dá)98.667%,證明了選取的隱藏層節(jié)點(diǎn)數(shù)合適,網(wǎng)絡(luò)識(shí)別率較高。 2.2.2 3種方法結(jié)果對(duì)比 采用本文算法、試湊法及增長(zhǎng)法在上述數(shù)據(jù)集上進(jìn)行了多次實(shí)驗(yàn)對(duì)比。 3種方法的判定時(shí)間如圖3所示。從圖3可以看出,本文算法與試湊法和增長(zhǎng)法相比能夠更快地獲得準(zhǔn)確合適的隱藏層節(jié)點(diǎn)個(gè)數(shù),說明本文算法的準(zhǔn)確性較高,且速度較快。 圖3 3種方法判定時(shí)間對(duì)比 本文提出了一種基于模擬退火算法的單隱藏層BP神經(jīng)網(wǎng)絡(luò)隱藏層節(jié)點(diǎn)估算算法,實(shí)驗(yàn)證明該算法能夠有效且快速地尋找到合適的隱藏層節(jié)點(diǎn)個(gè)數(shù),網(wǎng)絡(luò)工作正常,識(shí)別率較高。與傳統(tǒng)的試湊法和經(jīng)驗(yàn)公式法相比,本文算法具備了較強(qiáng)的理論依據(jù),結(jié)果更可信;與遺傳算法等算法相比,又解決了容易陷入局部最小值的問題。本文算法可以作為一種有效的確定單隱藏層BP神經(jīng)網(wǎng)絡(luò)隱藏層節(jié)點(diǎn)的方法在實(shí)踐中使用。 下一步的工作將繼續(xù)完善該算法,確定更優(yōu)化的初始節(jié)點(diǎn)數(shù)選取方法以及每次迭代的步長(zhǎng),并將該方法應(yīng)用在更多的實(shí)際數(shù)據(jù)集中,以期發(fā)現(xiàn)方法中存在的問題。 [1] LIPPMANN R P.An introduction to computing with neural nets[J].IEEE ASSP Magazine,1987,4(2):4-22. [2] 王華強(qiáng),袁浩,楊滁光.自適應(yīng)模糊神經(jīng)網(wǎng)絡(luò)在EPS中的應(yīng)用[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,34(2):188-191. [3] 韓江,李雪冬,夏鏈,等.基于粗糙集的模糊神經(jīng)網(wǎng)絡(luò)在故障診斷中的應(yīng)用[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,35(5):577-580. [4] CURTEANU S,CARTWRIGHT H.Neural networks applied in chemistry:I.determination of the optimal topology of multilayer perceptron neural networks[J].Journal of Chemometrics,2011,25(10):527-549. [5] ZANCHETTIN C,LUDERMIR T B,ALMIDA L M.Hybrid training method for MLP:optimization of architecture and training[J].IEEE Transactions on Systems,Man and Cybernetics,Part B: Cybernetics,2011,41(4):1097-1109. [6] SUN J.Learning algorithm and hidden node selection scheme for local coupled feedforward neural network classifier[J].Neurocomputing,2012,79(3):158-163. [7] BENARDOS P G,VOSNIAKOS G C.Optimizing feedforward artificial neural network architecture[J].Engineering Applications of Artificial Intelligence,2007,20(3):365-382. [8] MIRCHANDANI G,CAO W.On hidden nodes for neural nets[J].IEEE Transactions on Circuits and Systems,1989,36(5):661-664. [9] ISLAM M A,YAO X,MURASE K.A constructive algorithm for training cooperative neural network ensembles[J].IEEE Transactions on Neural Networks,2003,14(4):820-834. [10] 鄧萬宇,鄭慶華,陳琳,等.神經(jīng)網(wǎng)絡(luò)極速學(xué)習(xí)方法研究[J].計(jì)算機(jī)學(xué)報(bào),2010,33(2):279-287. [11] 高鵬毅.BP神經(jīng)網(wǎng)絡(luò)分類器優(yōu)化技術(shù)研究[D].武漢:華中科技大學(xué),2012. [12] 傅文淵,凌朝東.布朗運(yùn)動(dòng)模擬退火算法[J].計(jì)算機(jī)學(xué)報(bào),2014,37(6):1301-1308. AnestimationalgorithmofBPneuralnetworkhiddenlayernodesbasedonsimulatedannealing ZHANG Shirui,LI Xinke (School of Computer and Information, Hefei University of Technology, Hefei 230009, China) Single hidden layer BP neural network has achieved widespread success in pattern recognition, data mining and other fields. The number of hidden layer nodes is affected by many factors, so the selection of the number of nodes has been a complex issue. In this paper, an estimation algorithm of hidden layer nodes of single hidden layer BP neural network based on simulated annealing(SA) is presented. The lower bound of the number of hidden nodes is determined based on the experience. Through increasing the number of hidden nodes until the end by SA, the optimal solution is gotten. Compared with experience method and trial and error method, this method has strong theoretical basis. Besides, it is not easy to fall into local minimum compared with genetic algorithm. Experimental results show that this method has higher accuracy and faster speed in the estimation of the hidden layer nodes. BP neural network; simulated annealing(SA); single hidden layer; number of hidden layer nodes 2016-03-30 張世睿(1991-),男,安徽蕪湖人,合肥工業(yè)大學(xué)碩士生; 李心科(1963-),男,江蘇徐州人,博士,合肥工業(yè)大學(xué)副教授,碩士生導(dǎo)師,通訊作者,E-mail:Thinker-lee9268@163.com. 10.3969/j.issn.1003-5060.2017.11.010 TP183 A 1003-5060(2017)11-1489-04 (責(zé)任編輯 張淑艷)2.2 實(shí)驗(yàn)結(jié)果與分析
3 結(jié) 論