孫 峰,龔曉玲,張炳杰,柳毓松,王延江
(中國石油大學(華東), 山東 青島 266580)
人工神經(jīng)網(wǎng)絡(luò)是一種模仿人腦神經(jīng)元的結(jié)構(gòu)和信息傳遞過程所建立的數(shù)學模型,具有學習、記憶等功能.近三十年來神經(jīng)網(wǎng)絡(luò)得到迅速的發(fā)展并在模式識別等領(lǐng)域有著廣泛的應用,尤其在未來智能化城市發(fā)展中會起到關(guān)鍵作用.其中,應用最廣泛的就是采用了反向傳播(back propagation)學習算法[1]的前饋神經(jīng)網(wǎng)絡(luò),這種網(wǎng)絡(luò)也稱為BP神經(jīng)網(wǎng)絡(luò),自1986年被提出之后,至今仍在神經(jīng)網(wǎng)絡(luò)中占據(jù)重要地位.該網(wǎng)絡(luò)在訓練時信息從前向后逐層傳播,而網(wǎng)絡(luò)中的權(quán)重則通過誤差反向傳播來調(diào)整.這種算法結(jié)構(gòu)簡單且能夠以任意精度逼近任意非線性函數(shù)[2-3],但也存在一些缺陷:由于網(wǎng)絡(luò)收斂速度慢,導致訓練花費時間過長;由于采用梯度下降法易陷入局部極小值;易過擬合訓練使其泛化能力變差等.
為了加快網(wǎng)絡(luò)的訓練速度,黃廣斌等提出了一種針對單隱層前饋神經(jīng)網(wǎng)絡(luò)的快速構(gòu)建與學習算法[4],因其快速特性而稱之為超限學習機(extreme learning machine, ELM).ELM算法的整個學習過程一次完成,使得網(wǎng)絡(luò)訓練大大簡化,運算速度幾十倍甚至幾千倍于BP算法[5-6],ELM在許多領(lǐng)域都取得了突出成果[7-9].雖然網(wǎng)絡(luò)訓練效果很好,但ELM相對于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),需要更多的隱層節(jié)點才能達到同樣的訓練精度[10].由于使用大量隱層節(jié)點,計算工作量會大大增加,特別是樣本超高維時,測試速度明顯變慢;過多的隱層節(jié)點也會使網(wǎng)絡(luò)過擬合而降低泛化能力.
針對ELM存在的問題,文獻[11]提出了用梯度下降法來選擇合適權(quán)值的upper-layer-solution-aware(USA)算法.使用最速下降法來更新從輸入層到隱層的權(quán)值.它與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)的區(qū)別在于是用廣義逆一步得出,相當于傳統(tǒng)BP算法和ELM算法的結(jié)合.與BP神經(jīng)網(wǎng)絡(luò)相比,它的速度大大提高了;與ELM算法相比,它需要的隱層節(jié)點數(shù)減少了.相比于ELM,它在訓練上需要浪費一些時間,但是實際應用中,往往測試時間比訓練時間更加關(guān)鍵,減少隱層節(jié)點數(shù),有利于縮短測試時間,更符合實際工程需要.
筆者借鑒ELM的一次學習思想,提出了一種基于共軛梯度法的快速學習算法,由于共軛梯度法計算復雜度不高于最速下降法,但是收斂速度優(yōu)于最速下降法,使得筆者算法在保持快速這一優(yōu)勢前提下,網(wǎng)絡(luò)訓練精度得到進一步提高.
在介紹筆者算法前,先簡單介紹一下ELM的基本算法以及ELM算法和BP算法相結(jié)合的USA算法.這兩種算法都應用于單隱層前饋神經(jīng)網(wǎng)絡(luò)且有良好的數(shù)值表現(xiàn),ELM算法隨機賦予輸入層到隱層的權(quán)值,無需迭代,因此訓練時間極快.USA算法用最速下降法對輸入層到隱層的權(quán)值進行優(yōu)化,雖訓練時間稍慢,但達到相同網(wǎng)絡(luò)訓練精度所需隱層節(jié)點個數(shù)要大大少于ELM.
(1)
式中:wi=[wi1,wi2,…,win]T為連接輸入層到隱層第i個單元之間的權(quán)值;ui=[ui1,ui2,…,uin]T為連接隱層第i個單元到輸出層之間的權(quán)值;bi為第i個隱節(jié)點的閾值.
如果這個網(wǎng)絡(luò)可以零誤差地學習這N個樣本,即
(2)
上式表示成矩陣的形式為:
HU=T,
(3)
式中:H為隱層輸出矩陣[12-13].
(4)
U=H-1T,
(5)
U=H?T,
(6)
式中:H?=(HTH)-1HT.
通過以上原理,可以看出ELM最大的優(yōu)點在于它無需迭代,一步就能求出隱層權(quán)值U.
USA算法是文獻[11]中提出的一種算法.下面簡單介紹其原理.
(7)
然后沿負梯度方向優(yōu)化W,即
(8)
式中:η為學習率.
這樣在每次迭代后只優(yōu)化更新連接輸入層和隱藏層的權(quán)值W,使誤差逐步減小,達到可接受誤差或最大迭代次數(shù)時迭代結(jié)束,得到了優(yōu)化的網(wǎng)絡(luò)結(jié)構(gòu).
要想降低網(wǎng)絡(luò)的隱層節(jié)點個數(shù),一種有效方法就是對其權(quán)值進行優(yōu)化.從最優(yōu)化原理來說,優(yōu)化權(quán)值的方法有最速下降法、共軛梯度法、牛頓法等.BP算法就是采用最速下降法達到優(yōu)化權(quán)值的目的.
共軛梯度法是一類效果較好的共軛方向法,最早由Hestenes和Stiefel提出并用于求解線性方程組[14],后來被Fletcher和Reeves引入求解無約束最優(yōu)化問題[15].共軛梯度法的原理是:在尋優(yōu)過程中,利用當前點xk處的梯度向量g(xk)和前一迭代點xk-1處的搜索方向dk-1對最速下降方向進行如下修正:
dk=-g(xk)+βkdk-1,
(9)
并保證新的搜索方向dk與之前的搜索方向dk-1,dk-2,…,d0之間滿足共軛關(guān)系.其中,修正系數(shù)βk的不同又進一步形成了不同的共軛梯度法.
共軛梯度法與最速下降法同樣用到一階導數(shù)信息,但它克服了梯度下降法收斂慢的缺點,又避免了牛頓法需要存儲和計算Hesse矩陣并求逆的缺點.其優(yōu)點是所需存儲量小,具有有限步收斂性,穩(wěn)定性高,而且不需要任何外來參數(shù).
(10)
隱層到輸出層間的權(quán)值矩陣為:
(11)
那么該網(wǎng)絡(luò)的隱層輸出矩陣為:
H=g(WTX),
(12)
式中:g(·)為隱層激活函數(shù),一般選用Sigmoid函數(shù).根據(jù)輸出值是否包含負值,分為Log-Sigmoid函數(shù)和Tan-Sigmoid函數(shù),本算法選用函數(shù)值在0~1的簡單Log-Sigmoid函數(shù),即
(13)
網(wǎng)絡(luò)的輸出層激活函數(shù)為簡單線性函數(shù),則網(wǎng)絡(luò)的實際輸出為:
Y=UTH.
(14)
對于確定網(wǎng)絡(luò)的權(quán)值U,可以將網(wǎng)絡(luò)結(jié)構(gòu)看成一個線性系統(tǒng),
UTH=T.
(15)
U=(HT)?TT=(HHT)-1HTT.
(16)
由于H=g(WTX),所以隱層到輸出層的權(quán)值U可以看作是輸入層到隱層的權(quán)值W的函數(shù).本算法采用共軛梯度法來對輸入層到隱層之間的權(quán)值W進行優(yōu)化.網(wǎng)絡(luò)的誤差函數(shù)可以定義為:
(17)
首先求誤差函數(shù)的梯度,由式(14)和式(17)得:
(18)
再將式(16)帶入式(18),得到梯度的計算公式為:
=2X[HTo(I-H)To[H?(HTT)(TH?-TT(TH?))]],
(19)
式中:
H?=HT(HHT)-1.
(20)
本算法采用F-R共軛梯度法,搜索方向為:
(21)
式中:gk即為第k次迭代的梯度,修正項系數(shù)為:
(22)
從輸入層到隱層的權(quán)值W的更新公式為:
Wk+1=Wk+ηkdk,
(23)
式中:學習率ηk通過線搜索的方式獲得.
將筆者提出的算法與USA算法[11]、ELM算法[4]在3種數(shù)據(jù)庫上進行實數(shù)值試驗,驗證算法效果.為了公平評判算法的性能,網(wǎng)絡(luò)的初始權(quán)值均相同,并重復選取不同的隨機初始權(quán)值進行10次試驗,從訓練及測試誤差(函數(shù)擬合)或精度(分類)、訓練時間幾個方面來評價試驗結(jié)果(結(jié)果為平均值).因為測試時間僅與隱藏層節(jié)點數(shù)有關(guān),與算法無關(guān),所以在這里不做比較.
Sin C函數(shù)表達式為:
(24)
Sin C數(shù)據(jù)的產(chǎn)生方法為在(-10,10)內(nèi)隨機產(chǎn)生5 000組訓練樣本和5 000組測試樣本.通過網(wǎng)絡(luò)在訓練集及測試集上的誤差可以衡量網(wǎng)絡(luò)的學習能力.
MNIST手寫數(shù)字數(shù)據(jù)庫也是一種衡量分類算法性能的數(shù)據(jù)庫,它源于美國國家標準與技術(shù)局收集的NIST數(shù)據(jù)庫,數(shù)字圖像已被標準化為一張28×28的圖片.該數(shù)據(jù)庫以矩陣的形式存放,其中每個樣本即每個手寫數(shù)字都是一個1×784的向量,向量中的每個元素都是0~255的數(shù)字,代表的是該像素點的灰度值.MNIST數(shù)據(jù)庫一共有60 000個訓練樣本和10 000個測試樣本.
在Sin C數(shù)據(jù)庫上的試驗選取網(wǎng)絡(luò)的隱層節(jié)點數(shù)為30,在Diabetes數(shù)據(jù)庫上的試驗選取網(wǎng)絡(luò)的隱層節(jié)點數(shù)為150,在這兩個數(shù)據(jù)庫上USA和筆者算法的迭代次數(shù)為10次.訓練及測試結(jié)果見表1和表2.可以看出,ELM算法訓練時間最短,符合ELM算法原理.筆者算法在訓練時間與USA 算法相當?shù)那闆r下,訓練及測試誤差是3種算法中最小的,精度是3種算法中最高的.
由于MNIST數(shù)據(jù)庫較大,分別選取隱層節(jié)點個數(shù)為:64、128、256、512、1 024進行試驗,計算相應的分類精度.USA和筆者算法的迭代次數(shù)為15次.訓練及測試結(jié)果見表3.可以看出在時間上本算法雖然沒有優(yōu)勢,但是精度相比于其他兩種算法有所提高.
表1 不同算法在Sin C數(shù)據(jù)庫上的誤差比較
表2 不同算法在Diabetes數(shù)據(jù)庫上的精度比較
表3 不同算法在MNIST數(shù)據(jù)庫上的誤差比較
從表3中一方面可以看出,若要達到相同的測試精度,如90%,ELM大約需要512個隱節(jié)點,USA算法大約需要128個隱節(jié)點,而筆者算法大約需要90個隱層節(jié)點.說明筆者算法在保證相同精度的前提下,可有效地減少了隱層節(jié)點數(shù),簡化了網(wǎng)絡(luò)結(jié)構(gòu),增強了網(wǎng)絡(luò)的泛化能力.另一方面,對于相同的隱層節(jié)點個數(shù),ELM、USA和筆者算法的測試精度依次增高,且USA算法和筆者算法的精度均明顯高于ELM算法.說明筆者算法在保證訓練時間不是太長的情況下,有效地優(yōu)化了初始權(quán)值,使網(wǎng)絡(luò)在相同的隱層節(jié)點個數(shù)下,得到更高的訓練精度.
針對前饋神經(jīng)網(wǎng)絡(luò)中傳統(tǒng)算法所需時間過長,而ELM算法所需要的隱層節(jié)點數(shù)過多的缺陷,筆者算法在保證算法訓練速度的前提下,有效提高了網(wǎng)絡(luò)的精度和泛化能力.從各類數(shù)據(jù)庫的試驗可以證明,筆者算法是一個更有效的單隱層前饋神經(jīng)網(wǎng)絡(luò)學習算法.
參考文獻:
[1]WERBOS P J. Beyond regression: new tools for prediction and analysis in the behavioral sciences[D]. Harvard University, Cambridge,1974.
[2]HORNIK K. Approximation capabilities of multilayer feedforward networks[J]. Neural networks,1991, 4 (2): 251-257
[3]LESHNO M, LIN V Y, PINKUS A, et al. Multilayer feedforward networks with a nonpolynomial activation function can approximate any function[J]. Neural networks, 1993, 6 (6): 861-867.
[4]HUANG G B, ZHU Q Y, SIEW C K. Extreme learning machine: theory and applications[J]. Neurocomputing, 2006, 70(123): 489-501.
[5]BARTLETT P L. The sample complexity of pattern classification with neural networks: the size of the weights is more important than the size of the network[J]. IEEE trans. Inf. theory, 1998, 44 (2): 525-536.
[6]WIDROW B, GREENBLATT A, KIM Y, et al. The No-Prop algorithm: a new learning algorithm for multilayer neural networks[J]. Neural networks, 2013(37): 182-188.
[7]郝向東, 毛曉波, 梁靜. ELM與Mean Shift相結(jié)合的抗遮擋目標跟蹤算法[J]. 鄭州大學學報(工學版), 2016, 37(1):1-5.
[8]王杰, 萇群康, 彭金柱. 極限學習機優(yōu)化及其擬合性分析[J]. 鄭州大學學報(工學版), 2016, 37(2):20-24.
[9]鄧萬宇, 李力, ?;劬? 基于Spark的并行極速神經(jīng)網(wǎng)絡(luò)[J]. 鄭州大學學報(工學版), 2016, 37(5):47-56.
[10] ZHU Q Y, QIN A K, SUGANTHAN P N, et al. Evolutionary extreme learning machine[J]. Pattern recognition, 2005, 38(10): 1759-1763.
[11] YU D, DENG L. Efficient and effective algorithms for training single-hidden-layer neural networks[J]. Pattern recognition letters, 2012, 33(5):554-558.
[12] HUANG G B, BABRI H A. Upper bounds on the number of hidden neurons in feedforward networks with arbitrary bounded nonlinear activation functions[J]. IEEE transactions on neural networks,1998, 9 (1): 224-229.
[13] HUANG G B. Learning capability and storage capacity of two hidden-layer feedforward networks[J]. IEEE transactions on neural networks, 2003, 14 (2): 274-281.
[14] ARMIJO L. Minimization of functions having Lipschitz continuous first partial derivatives[J]. Pacific journal of mathematics, 1966(16):1-3.
[15] GOLDSTEIN A. On steepest descent[J]. SIAM journal on control, 1965(3):147-151.