熊 俊,王士同,潘永惠,包 芳
(1.江南大學數(shù)字媒體學院,江蘇無錫214122;2.江陰職業(yè)技術(shù)學院計算機科學系,江蘇江陰214405)
基于懲罰函數(shù)泛化的神經(jīng)網(wǎng)絡(luò)剪枝算法研究
熊 俊1,王士同1,潘永惠2,包 芳2
(1.江南大學數(shù)字媒體學院,江蘇無錫214122;2.江陰職業(yè)技術(shù)學院計算機科學系,江蘇江陰214405)
神經(jīng)網(wǎng)絡(luò)的隱層數(shù)和隱層節(jié)點數(shù)決定了網(wǎng)絡(luò)規(guī)模,并對網(wǎng)絡(luò)性能造成較大影響。在滿足網(wǎng)絡(luò)所需最少隱層節(jié)點數(shù)的前提下,利用剪枝算法刪除某些冗余節(jié)點,減少隱層節(jié)點數(shù),得到更加精簡的網(wǎng)絡(luò)結(jié)構(gòu)。基于懲罰函數(shù)的剪枝算法是在目標函數(shù)后加入一個懲罰函數(shù)項,該懲罰函數(shù)項是一個變量為網(wǎng)絡(luò)權(quán)值的函數(shù)。由于懲罰函數(shù)中的網(wǎng)絡(luò)權(quán)值變量可以附加一個可調(diào)參數(shù),將單一懲罰函數(shù)項泛化為一類隨參數(shù)規(guī)律變化的新的懲罰函數(shù),初始懲罰函數(shù)可看作泛化后懲罰函數(shù)的參數(shù)取定值的特殊情況。實驗利用基于標準BP神經(jīng)網(wǎng)絡(luò)的XOR數(shù)據(jù)進行測試,得到隱層節(jié)點剪枝效果和網(wǎng)絡(luò)權(quán)值隨懲罰函數(shù)的泛化而發(fā)生變化,并從數(shù)據(jù)分析中得出具有更好剪枝效果及更優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)的懲罰函數(shù)泛化參數(shù)。
隱層節(jié)點;神經(jīng)網(wǎng)絡(luò);剪枝算法;懲罰函數(shù);泛化;XOR數(shù)據(jù)
人工神經(jīng)網(wǎng)絡(luò)[1](Artificial Neural Network, ANN)是由大量的、簡單的處理單元(稱為神經(jīng)元)廣泛地互相連接而形成的復雜網(wǎng)絡(luò)系統(tǒng)。實踐表明,神經(jīng)網(wǎng)絡(luò)的性能與神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)有很大的關(guān)系,而隱層節(jié)點的選擇和調(diào)整是神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化研究中的一項重要內(nèi)容[2],若隱層節(jié)點數(shù)太少,則網(wǎng)絡(luò)可能根本不能訓練或網(wǎng)絡(luò)性能很差;若隱層節(jié)點數(shù)太多,雖然可使網(wǎng)絡(luò)系統(tǒng)誤差減小,但一方面使網(wǎng)絡(luò)訓練時間延長,另一方面訓練容易陷入局部極小點而得不到最優(yōu)點。在隱節(jié)點調(diào)節(jié)過程中,經(jīng)常利用剪枝算法[3]來調(diào)節(jié)網(wǎng)絡(luò)權(quán)值,進而刪除冗余節(jié)點,達到精簡網(wǎng)絡(luò)結(jié)構(gòu)、改進泛化的目的。
目前常用的神經(jīng)網(wǎng)絡(luò)模型包括徑向基函數(shù)(Radial Basis Function,RBF)神經(jīng)網(wǎng)絡(luò)[4]、誤差反向傳播(Error Back-propagation Algorithm,EBP)網(wǎng)絡(luò)[5]、Hopfield網(wǎng)絡(luò)[6]等。其中,BP神經(jīng)網(wǎng)絡(luò)是最常用的神經(jīng)網(wǎng)絡(luò)模型。常用的剪枝算法有懲罰函數(shù)法[7]、靈敏度計算法[8]、相關(guān)性剪枝算法[9]等。 其中,懲罰函數(shù)法是使用最普遍的剪枝算法之一,只需在最小化目標函數(shù)后添加一個變量為網(wǎng)絡(luò)權(quán)值的懲罰函數(shù)。常見的懲罰函數(shù)有權(quán)消除懲罰項[7]、權(quán)衰減懲罰項[7]、拉普拉斯懲罰項[10]等。
上述懲罰函數(shù)均可針對其中的網(wǎng)絡(luò)權(quán)值變量添加參數(shù)進行泛化,本文通過調(diào)整參數(shù)值得到基于傳統(tǒng)懲罰函數(shù)的新的懲罰函數(shù),從而對比分析泛化的懲罰函數(shù)構(gòu)造的剪枝算法對網(wǎng)絡(luò)隱節(jié)點的剪枝效果和網(wǎng)絡(luò)結(jié)構(gòu)的影響。
2.1 基礎(chǔ)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
在人工神經(jīng)網(wǎng)絡(luò)模型中,具有誤差反向傳播學習功能的多層前饋神經(jīng)網(wǎng)絡(luò)即BP神經(jīng)網(wǎng)絡(luò)[1],是目前應(yīng)用最廣泛且研究最深入的神經(jīng)網(wǎng)絡(luò)。BP神經(jīng)網(wǎng)絡(luò)一般由輸入層、輸出層和隱層三部分構(gòu)成。這里重點考慮隱層的神經(jīng)元個數(shù),實驗中利用具有單隱層的網(wǎng)絡(luò),并使用分類問題的XOR數(shù)據(jù)作為實驗數(shù)據(jù)。
對于屬于2個不同類的N維向量x,假設(shè)有一個訓練數(shù)據(jù)集{xk,yd(k)},并且每個xk都對應(yīng)一個已知的yd(k)∈{0,1}。對于二分類問題[10],只需1個輸出神經(jīng)元,輸入神經(jīng)元個數(shù)與輸入向量維數(shù)相同為2。根據(jù)要求構(gòu)造的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
該網(wǎng)絡(luò)的輸入輸出函數(shù)可表示為:
其中,x是神經(jīng)網(wǎng)絡(luò)的輸入向量;y是神經(jīng)網(wǎng)絡(luò)對應(yīng)的輸出值;W1是連接輸入神經(jīng)元與隱層神經(jīng)元的權(quán)值向量;b1為初始偏移向量;W2是連接隱層和輸出層神經(jīng)元的權(quán)值向量;b2為輸出神經(jīng)元的權(quán)值初始偏移;C為一個用于調(diào)節(jié)隱層輸出值的系數(shù),選取C=10。神經(jīng)網(wǎng)絡(luò)隱層和輸出層的轉(zhuǎn)移函數(shù)f(·)和g(·)均采用標準Sigmoid激活函數(shù)。
2.2 神經(jīng)網(wǎng)絡(luò)學習算法
神經(jīng)網(wǎng)絡(luò)學習方式[10]有2種:有導學習和無導學習。有導學習又稱為監(jiān)督學習[10]。一般情況下,有導學習的訓練樣本是輸入輸出對:{xk,yd(k)},k=1,2,…,L,其中,xk為樣本輸入;yd(k)為期望的樣本輸出(教師信號)。神經(jīng)網(wǎng)絡(luò)訓練的目的是:根據(jù)一定的學習規(guī)則,通過調(diào)節(jié)各神經(jīng)元的自由參數(shù),使網(wǎng)絡(luò)輸出產(chǎn)生期望的值,即當輸入樣本為xk時,網(wǎng)絡(luò)輸出盡可能接近yd(k)。本文采用有導學習方式。無導學習稱為無監(jiān)督學習或自組織學習。無導學習不提供教師信號,而只規(guī)定學習規(guī)則,具體的學習內(nèi)容隨系統(tǒng)所處環(huán)境而定。
有導學習和無導學習都要通過調(diào)整神經(jīng)元的自由參數(shù)(權(quán)值和偏移)實現(xiàn),假設(shè)單個神經(jīng)元當前的權(quán)值為w(t),神經(jīng)元學習算法的內(nèi)容是確定神經(jīng)元的權(quán)值調(diào)整量Δw(t),并得到權(quán)值調(diào)節(jié)公式,即:
梯度下降法[10]是最常用的神經(jīng)網(wǎng)絡(luò)學習算法。假定神經(jīng)元權(quán)值修正的目標是極小化目標函數(shù)F(w(t)),根據(jù)梯度法基本原理,若g(t)=▽F(w(t))|w=w(t)表示F(w(t))在w=w(t)時的梯度,則Δw(t)=-ηg(t),η取較小的正數(shù)(稱為學習率),即權(quán)值修正量沿負梯度方向取較小值。
2.3 BP神經(jīng)網(wǎng)絡(luò)
BP算法也稱誤差反向傳播算法[1],通過誤差反向傳播校正來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。當一個樣本輸入網(wǎng)絡(luò),并產(chǎn)生輸出時,通過最小化所有網(wǎng)絡(luò)輸出的均方誤差來訓練網(wǎng)絡(luò)[11],均方誤差為各輸出單元誤差平方和,即:
其中,L是訓練數(shù)據(jù)集中向量x的個數(shù)。
由梯度下降法得到:
輸入層到隱層的權(quán)值為w1(t),權(quán)值調(diào)整公式為:
隱層到輸出層的權(quán)值為w2(t),權(quán)值調(diào)整公式為:
剪枝算法通過在訓練時刪除或合并某些節(jié)點或權(quán)值[4]以達到精簡網(wǎng)絡(luò)結(jié)構(gòu)、改進網(wǎng)絡(luò)性能的目的。在各種神經(jīng)網(wǎng)絡(luò)剪枝算法中,懲罰函數(shù)是其中最普遍使用的一種算法,使用懲罰函數(shù)剪枝算法對網(wǎng)絡(luò)進行一定次數(shù)的訓練,網(wǎng)絡(luò)中的某些權(quán)值將減小到零附近,如果一個隱節(jié)點的輸出權(quán)值接近0或小于某個閾值,就可以刪除該隱節(jié)點。
通過在網(wǎng)絡(luò)目標函數(shù)中引入表示結(jié)構(gòu)復雜性的正則化項來達到降低網(wǎng)絡(luò)復雜性的目的[10]。對于神經(jīng)網(wǎng)絡(luò)中的分類問題,目標函數(shù)為:
其中,E(w)代表該網(wǎng)絡(luò)的誤差平方和;C(w)是懲罰函數(shù),代表網(wǎng)絡(luò)的復雜性;λ是正則化參數(shù),代表模型復雜性的相對重要性。
3.1 常用的懲罰函數(shù)
常用的幾種懲罰函數(shù)具體如下:
(1)權(quán)衰減
其中,wi表示網(wǎng)絡(luò)中的每個權(quán)值。
(2)拉普拉斯正則項
其中,wi表示網(wǎng)絡(luò)中的每個權(quán)值。
(3)權(quán)消除
其中,wi表示網(wǎng)絡(luò)中的每個權(quán)值;w0為固定值,實驗中w0=0.1。
3.2 正則化參數(shù)的動態(tài)修改方法
剪枝算法中的正則化參數(shù)λ對神經(jīng)網(wǎng)絡(luò)的泛化能力有很大影響,且比較難以確定,一般采用動態(tài)修改策略[10]尋找正則化參數(shù),較大地改進了網(wǎng)絡(luò)的泛化能力。
具體方法如下:學習過程中隨時檢測以下誤差量之間的關(guān)系:
(1)E(t-1):前一次權(quán)值調(diào)節(jié)時的誤差。
(2)A(t):當前時刻的加權(quán)平均誤差,定義為:
其中,μ為接近1的濾波系數(shù)。
(3)D:期望誤差值。如果沒有先驗知識,可設(shè)定D=0,此時算法也能較好地進行,但計算時間由計算次數(shù)限制,因此計算時間可能較長。
在每次權(quán)值調(diào)節(jié)后,計算當前時刻的學習誤差E(t)和加權(quán)平均誤差A(t),并根據(jù)它們之間的關(guān)系對λ進行調(diào)節(jié),具體規(guī)則如下:
(1)如果E(t)<E(t-1)或E(t)<D,則:
此時存在以下2種情況:1)神經(jīng)網(wǎng)絡(luò)的訓練誤差正在下降;2)該誤差已經(jīng)小于目標函數(shù)值。這2種情況都是人們期待的,此時應(yīng)略微增加正則化的作用。
(2)如果E(t)≥E(t-1),E(t)<A(t),且E(t)≥D,則:
此時當前誤差有所上升(E(t)≥E(t-1)),但從長遠來說,訓練誤差仍在下降(E(t)<A(t))。此時應(yīng)該略微減少正則化的作用。
(3)如果E(t)≥E(t-1),E(t)≥A(t),且E(t)≥D,則:
其中,ρ為接近1的系數(shù)。
此時不僅當前誤差在上升,而且從長遠來說,訓練誤差也在上升,所以,應(yīng)該較大幅度地減少正則化的作用。λ初始可以取0,隨后按上述規(guī)則動態(tài)調(diào)節(jié)。
權(quán)衰減懲罰函數(shù)式(8)和拉普拉斯正則化項式(9)可泛化為:
圖2 r取0.1,0.5,1.0和2.0時隨wi的變化曲線
綜合以上2種懲罰函數(shù)的泛化情況和權(quán)消除懲罰函數(shù)的變化曲線,可以看出當r取不同參數(shù)時,C(w)中的某一項隨著權(quán)值wi的變化有各種變化趨勢,函數(shù)值范圍也有很大差異,而C(w)是懲罰函數(shù)剪枝算法的重點,所以,可以推測r取不同參數(shù)時,泛化的懲罰函數(shù)剪枝算法的性能也有所不同。
圖3 隨的變化曲線
實驗采用XOR數(shù)據(jù),XOR數(shù)據(jù)的輸入樣本x為4組二維向量:[0;1],[0;0],[1;1],[1;0];對應(yīng)的4組輸出y分別為1,0,0,1;已知對于XOR數(shù)據(jù),隱層至少需要2個神經(jīng)元才能很好地完成分類工作[12],設(shè)定初始隱層具有4個神經(jīng)元,所以,可以通過觀察隨著參數(shù)r的變化,泛化的懲罰函數(shù)剪枝算法將原始隱層4個神經(jīng)元剪除的情況,并通過分析剪枝后的網(wǎng)絡(luò)權(quán)值來評價泛化的懲罰函數(shù)剪枝算法對網(wǎng)絡(luò)結(jié)構(gòu)的影響。實驗運行環(huán)境為:CPU Inter雙核,2.1 GHz,2 GB內(nèi)存,Matlab2009a。
在進行網(wǎng)絡(luò)剪枝時,輸出權(quán)值很小的神經(jīng)元可以被刪除[7]。在利用不同的剪枝方法進行剪枝時,關(guān)注的是迭代算法達到誤差要求或達到迭代次數(shù)時輸出權(quán)值的相對大?。?],實驗設(shè)定輸出權(quán)值小于最大輸出權(quán)值的10%的神經(jīng)元可以被刪除。雖然10%是主觀設(shè)定的,但是為這些泛化的懲罰函數(shù)剪枝設(shè)定了一個統(tǒng)一的閾值,剪枝剩下的神經(jīng)元個數(shù)就是用于構(gòu)造神經(jīng)網(wǎng)絡(luò)隱層的神經(jīng)元個數(shù)。
網(wǎng)絡(luò)中所有的初始權(quán)值和偏移量均?。?0.5, 0.5]內(nèi)的隨機值,目標誤差取0.01,學習率取0.16,迭代次數(shù)取5 000,正則化參數(shù)調(diào)整時的濾波系數(shù)μ=0.92、ρ=0.95,正則化參數(shù)增量Δλ=5e-8。對于泛化函數(shù)各個參數(shù)取值,實驗利用完全相同的隨機初始權(quán)值,共進行20組實驗,每組采用不同的隨機權(quán)值,這些權(quán)值都是由相同的隨機函數(shù)生成。
表1 泛化參數(shù)r的剪枝效果
在表1中,每行表示20組實驗中,某個參數(shù)構(gòu)造的泛化函數(shù)算法將隱層4個節(jié)點剪枝到剩下1個、2個、3個和沒有實現(xiàn)剪枝即剩4個的組數(shù)。例如:當r=1.0時,有0組實驗網(wǎng)絡(luò)隱層4個節(jié)點在剪枝后剩1個,有1組實驗隱層節(jié)點在剪枝后剩2個,有4組剩3個,還有15組剩4個沒有實現(xiàn)剪枝。同時,列出權(quán)消除懲罰函數(shù)在相同條件下的實驗結(jié)果,如表2所示。
表2 權(quán)消除懲罰函數(shù)的剪枝效果
通過分析表1和表2中的各組數(shù)據(jù)可以發(fā)現(xiàn),當r>1.0時,網(wǎng)絡(luò)能達到剪枝效果并滿足構(gòu)造網(wǎng)絡(luò)最低要求即節(jié)點個數(shù)小于4并大于1的組數(shù)均為3組或4組;而當0.5<r<1.0時,節(jié)點個數(shù)小于4并大于1的組數(shù)為5組或6組;當r<0.5時,滿足要求的組數(shù)有明顯增多,最多的當r=0.4時達到11組,而且有3組能夠剪枝達到最優(yōu)的2個節(jié)點。由此可見,當r取小于0.5的數(shù)值時呈現(xiàn)更好的剪枝效果。
在分析剪枝效果的同時,本文還研究了泛化的懲罰函數(shù)算法對網(wǎng)絡(luò)結(jié)構(gòu)的影響。如表3、表4所示為2組各個r取值構(gòu)造的泛化懲罰函數(shù)算法結(jié)束時,網(wǎng)絡(luò)的隱層到輸出層的權(quán)值數(shù)據(jù)。
表3 第1組參數(shù)r訓練得到的神經(jīng)網(wǎng)絡(luò)隱層結(jié)構(gòu)及性能
表4 第2組參數(shù)r訓練得到的神經(jīng)網(wǎng)絡(luò)隱層結(jié)構(gòu)及性能
圖4 隨參數(shù)r的變化曲線
本文對懲罰函數(shù)剪枝算法中常用的懲罰函數(shù)進行泛化,以標準BP神經(jīng)網(wǎng)絡(luò)為模型,利用XOR數(shù)據(jù)為實驗數(shù)據(jù),探討了隨著懲罰函數(shù)參數(shù)的泛化,網(wǎng)絡(luò)剪枝效果和網(wǎng)絡(luò)結(jié)構(gòu)變化。實驗結(jié)果顯示,泛化后的懲罰函數(shù)隨著參數(shù)的變化,表現(xiàn)出了各種剪枝效果,訓練得出的網(wǎng)絡(luò)權(quán)值也有很大差異。實驗結(jié)果為選擇合適的懲罰函數(shù)參數(shù)構(gòu)造相應(yīng)的懲罰函數(shù)剪枝算法,以及建立更加精簡高效的神經(jīng)網(wǎng)絡(luò)提供了有利的依據(jù)。下一步工作將研究具有良好剪枝效果及參數(shù)構(gòu)造的懲罰函數(shù)算法對神經(jīng)網(wǎng)絡(luò)性能的影響。
[1] 王士同,陳慧萍,趙躍華,等.人工智能教程[M].2版.北京:電子工業(yè)出版社,2006.
[2] 馮宏偉,薛 蕾.基于HMM和新型前饋型神經(jīng)網(wǎng)絡(luò)的語音研究[J].計算機工程與設(shè)計,2010,31(24): 5324-5327.
[3] Reed R.Pruning Algorithms:A Survey[J].IEEE Transactions on Neural Network,1993,4(5):740-747.
[4] Ke Meng,Zhao Yangdong,Wang Dianhui,et al.A Selfadaptive RBF Neural Network Classifier for Transformer FaultAnalusis[J].IEEE Transactionson Power Systems,2010,25(3):1350-1360.
[5] Jiang Huiyu,Dong Min,Yang Feng.Application of BP NerualNetwork into Predication of Nitrobenzene Compound in Toxicity[C]//Proceedings of the 2nd International Conference on Genetic and Evolutionary Computing.[S.l.]:IEEE Press,2008:170-173.
[6] Pajares G.A Holfield Neural Network for Image Change Detection[J].IEEE Transactions on Neural Networks, 2006,17(5):1250-1264.
[7] Zeng Huiwen,Trussell H J.Constrained Dimensionality Reduction Using a Mixed-Norm Penalty Function with Neural Networks[J].IEEE Transactions on Knowledge and Data Engineering,2010,22(3):365-380.
[8] 費蕓潔,鄧 偉.一種基于靈敏度分析的神經(jīng)網(wǎng)絡(luò)剪枝算法[J].計算機工程與應(yīng)用,2007,43(7):34-35.
[9] 宋清昆,郝 敏.基于改進相關(guān)性剪枝算法的BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)優(yōu)化[J].自動化技術(shù)與應(yīng)用,2006,25(12):3-4.
[10] 魏海坤.神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計的理論與方法[M].北京:國防工業(yè)出版社,2005.
[11] Liu Zilong,Liu Guozhong,Liu Jie.Adaptive Tracking Controller Using BP Neural Networks for a Class of Nonlinear Systems[J].Journal of Systems Engineering and Electronics,2004,15(4):598-604.
[12] 李 季,嚴東超,趙虎城.基于動量因子技術(shù)的BP神經(jīng)網(wǎng)絡(luò)的改進算法及應(yīng)用[J].電氣應(yīng)用,2005,24(6):42-44.
編輯 陸燕菲
Study of Neural Network Pruning Algorithm Based on Generalization of Penalty Function
XIONG Jun1,WANG Shitong1,PAN Yonghui2,BAO Fang2
(1.College of Digital Media,Jiangnan University,Wuxi 214122,China;
2.Department of Computer Science,Jiangyin Polytechnic College,Jiangyin 214405,China)
The number of hidden layer and hidden layer node in neural network determines the size of the network and has a great influence on the performance of the network.Therefore,when the network contains the least hidden layer node number,pruning algorithm can be used to delete some redundant node,then the network is more simple.The pruning algorithm adds a penalty function to the target function,and the penalty function regards the weights of network as variable.It adds a variable parameter to the weights of network,so the simple penalty function can be generalized to a kind of new penalty function that changes as the parameter.The initial function can be treated as a special condition after the generalization of penalty function.Experiment tests the XOR data based on the BP neural network and sums up the effect of the generalization of penalty function on the pruning of the hidden layer node with neural network and the structure of the neural network.Then the parameters which can lead to better pruning effect and more optimal network structure are obtained from data in experiment.
hidden layer node;neural network;pruning algorithm;penalty function;generalization;XOR data
1000-3428(2014)11-0149-06
A
TP183
10.3969/j.issn.1000-3428.2014.11.030
熊 俊(1991-),男,碩士研究生,主研方向:人工智能,模式識別;王士同,教授、博士生導師;潘永惠,副教授、博士;包 芳,教授,博士。
2013-11-26
2014-01-18E-mail:jnxiongiun@163.com
中文引用格式:熊 俊,王士同,潘永惠,等.基于懲罰函數(shù)泛化的神經(jīng)網(wǎng)絡(luò)剪枝算法研究[J].計算機工程,2014, 40(11):149-154.
英文引用格式:Xiong Jun,Wang Shitong,Pan Yonghui,et al.Study of Neural Network Pruning Algorithm Based on Generalization of Penalty Function[J].Computer Engineering,2014,40(11):149-154.