張雨濃,鄧健豪,金 龍,劉錦榮,殷勇華
(1.中山大學信息科學與技術學院,廣東廣州 510006;2.中山大學軟件學院,廣東廣州 510006)
人工神經網絡 (Artificial Neural Network,以下簡稱神經網絡)是模擬生物神經系統(tǒng)的組織結構、處理方式和系統(tǒng)功能的簡化系統(tǒng)[1]。神經網絡作為一種并行的計算模型,能夠在被建模對象的結構及參數(shù)均未知的情況下,通過訓練,自適應地獲取輸入與輸出之間的非線性映射關系[2]。由于其優(yōu)秀的非線性映射、泛化、自組織及自我學習能力,神經網絡已被廣泛地應用于計算機科學技術、信息與通信工程、電氣工程、人工智能、模式識別和控制工程等學科和領域[1,3]。
BP(Back Propagation)神經網絡是由Rumelhart和McClelland等人于1986年提出的一種前向監(jiān)督型神經網絡[4],由于其采用基于梯度下降思想的誤差回傳 (即BP)學習算法而得名。BP神經網絡結構簡單,具有較強的非線性映射能力,是目前應用最為廣泛的神經網絡模型及算法之一[1,4-5]。
本文創(chuàng)新地提出了唯一性邏輯,并展望了唯一性邏輯可能的應用前景。通過計算機數(shù)值實驗驗證,我們發(fā)現(xiàn)所提出的基于BP神經網絡的模型可以準確有效地實現(xiàn)唯一性偵測。
所謂唯一性邏輯,就是判斷輸入向量中是否存在唯一分量的邏輯。
定義 對于輸入向量(x1,x2,…,xm),若有且只有一個輸入分量xk,使得xk≠xi,i∈{a|a=1,2,…,m且a≠k},則稱輸入向量 (x1,x2,…,xm)具有唯一性,其中輸入分量xk是唯一的。
例如,對于二值四輸入的情況,若輸入向量為(0,0,1,1),則不具有唯一性;若輸入為(1,0,0,0),則第一個輸入分量1是唯一的。
以下列舉部分唯一性邏輯可能的應用前景。
首先,唯一性邏輯可以用于查找異常。例如,在生產工業(yè)中,需要對大量的同種類產品進行檢驗時,可以設定一系列的測試用例;對于這些測試用例,所有的產品都應具有相同的響應。若某一件產品的響應與其它產品的均不相同,通過唯一性檢測,就可以馬上定位出該產品,然后對其進行檢查。
另外,若輸入表示投票,則可以找出與眾不同的一票。由于該票是唯一的、與眾不同的,它代表了不同的意見,也許有著特殊的意義,需要作進一步探究。
總的來說,由于唯一性邏輯是新穎的,它的應用還有待開發(fā)。
BP神經網絡泛指那些采用誤差后向傳播算法的多層前向神經網絡模型[1]。圖1給出了一個三層結構的BP神經網絡模型,包含輸入層、隱含層和輸出層。相鄰兩層的各個神經元彼此相連,且神經元之間的連接強度用連接權值來表示。當神經元將輸入端的各個信號進行加權求和后,神經元的第二步工作就是通過激勵函數(shù)對求和信號進行變換處理[1],處理后的信號則為神經元的最終輸出。
BP學習算法的思想是,依據(jù)神經網絡實際輸出與期望輸出之間誤差的負梯度方向,通過迭代,從后往前逐層地修正各層神經元之間的連接權值[6-9],以使網絡獲得良好的逼近能力。
BP 學習算法的主要步驟為[10-11]:
1)初始化網絡的權值和閾值;
2)計算網絡各層輸出向量和輸出誤差;
3)根據(jù)網絡的輸出誤差,通過反向傳播來修正權值和閾值;
4)重復2)和3),直到符合特定條件。
神經網絡的訓練算法是決定神經網絡預測效率和收斂速度的關鍵[12]。傳統(tǒng)BP訓練算法存在著一些固有的缺陷[6-8],例如易陷入局部極小點、學習收斂速度慢和網絡結構難以確定等。為了克服傳統(tǒng)BP算法的缺點,有許多新的改進算法和方法被提出[6-7,13]。這些方法包括增加動量項的 BP 學習算法、可變學習率的BP算法、彈性BP學習算法、共軛梯度法改進算法和Levenberg-Marquardt算法等。
本文實驗采用了Levenberg-Marquardt算法,該算法同時具有梯度法和牛頓法的優(yōu)點,是BP神經網絡中最優(yōu)越的算法之一[14],具有訓練速度快的特點。
一般而言,具有一層隱含層的BP神經網絡足夠應付大多數(shù)應用[15]。相關理論研究證明[16-17],一個以Sigmoid函數(shù)為隱含層神經元激勵函數(shù)的三層神經網絡可以逼近任意連續(xù)函數(shù),具有強大的非線性映射能力。然而,當BP神經網絡含有多個隱含層時,網絡會變得過于復雜,有可能產生多個局部極小值以及導致較慢的收斂速度和較大的誤差[15]。因此,本文采用單隱含層結構,單極Sigmoid函數(shù)作為隱含層和輸出層的激勵函數(shù),理論上可以實現(xiàn)唯一性邏輯。
單極 Sigmoid 激勵函數(shù)為[6-7]
其中,c為傾斜參數(shù),其變化會影響Sigmoid函數(shù)的形狀。由于該函數(shù)是全局可微的,這一優(yōu)點在BP等梯度類學習算法中有著良好的效果。
由于輸出層使用Sigmoid激勵函數(shù),這使得輸出值為介于0到1的實數(shù),因此,需通過四舍五入將最后輸出值轉換成整數(shù)0或1。
由于三層BP神經網絡只有一層隱含層,因此,隱含層神經元數(shù)是比較重要的一個參數(shù)。計算機數(shù)值實驗中,首先給定較小初始隱含層神經元數(shù),構成一個結構較小的BP網絡進行訓練。如果在規(guī)定的訓練次數(shù)內沒有滿足收斂條件,則停止訓練,并逐漸增加隱含層神經元數(shù),形成新的BP神經網絡再重新訓練。
圖1 一個三層結構的BP神經網絡模型Fig.1 A 3-layer BP neural network model
本文使用三層BP神經網絡來實現(xiàn)三輸入唯一性偵測。輸入層神經元數(shù)為3,輸出層神經元數(shù)為2。經過計算機數(shù)值實驗,我們發(fā)現(xiàn)隱含層神經元數(shù)為5時網絡收斂速度和訓練效果最好。
在本次實驗中,所有樣本都是二值的 (0或1)。唯一性偵測網絡的輸出為唯一輸入分量的位置的二進制表示。
對于三輸入的BP神經網絡,有兩個輸出,代表四種情況,分別是:沒有唯一性,第1分量是唯一的,第2分量是唯一的和第3分量是唯一的。所有8個訓練樣本及其含義如表1所示。
計算機實驗的目標就是把網絡訓練到可以正確識別所有樣本,即實現(xiàn)唯一性偵測。
表1 三輸入唯一性偵測網絡的訓練樣本Table 1 Training examples for 3-input uniqueness detection network
經過多次實驗,我們發(fā)現(xiàn),使用上述的三層BP神經網絡結構和Levenberg-Marquardt算法,可以在短時間內成功地訓練出用于唯一性偵測的三輸入神經網絡。
圖2為三輸入唯一性偵測網絡在訓練過程中的均方誤差 (Mean Squared Error,MSE)變化圖。具體而言,均方誤差為測試值與目標值之差的平方的均值:
從圖2可以看出,在第10次迭代完成時,MSE下降到目標誤差值以下,訓練結束。為了便于觀察實驗結果,將多輸出向量轉換成十進制的數(shù)字。從圖3可以看出,訓練完成后的網絡對全部8個樣本的測試結果與樣本目標值完全一致。
四輸入的唯一性偵測網絡的輸入層神經元數(shù)為4,輸出層神經元數(shù)為3。經過計算機數(shù)值實驗,我們發(fā)現(xiàn)隱含層神經元數(shù)為15時網絡收斂速度和訓練效果最好。
對于四輸入的BP神經網絡,有三個輸出,代表五種情況,分別是:沒有唯一性,第1分量是唯一的,第2分量是唯一的,第3分量是唯一的和第4分量是唯一的。表2為四輸入的唯一性偵測網絡的全部16個訓練樣本及其含義。
圖4為四輸入唯一性偵測網絡在訓練過程中的MSE變化圖,圖5為訓練后網絡的測試結果。
表2 四輸入唯一性偵測網絡的訓練樣本Table 2 Training examples for 4-input uniqueness detection network
圖4 四輸入唯一性偵測網絡的MSE變化圖Fig.4 MSE curve of 4-input uniqueness detection network
從圖4可以看出,在第42次迭代完成時,MSE下降到目標誤差值以下,訓練結束。從圖5可以看出,學習完成后的網絡對全部16個樣本的測試結果與樣本目標值完全一致。
圖5 四輸入唯一性偵測網絡的測試結果Fig.5 Results of 4-input uniqueness detection network
五輸入的唯一性偵測網絡的訓練方法與三、四輸入的類似。表3為五輸入的唯一性偵測網絡的全部32個訓練樣本。
圖6為5輸入唯一性偵測網絡在訓練過程中的MSE變化圖,圖7為訓練后網絡的測試結果。實驗結果顯示訓練完成后的五輸入的網絡對全部32個樣本的測試結果與樣本目標值完全一致。
圖6 五輸入唯一性偵測網絡的MSE變化圖Fig.6 MSE curve of 5-input uniqueness detection network
表3 五輸入唯一性偵測網絡的訓練樣本Table 3 Training examples for 5-input uniqueness detection network
本文首先提出了唯一性邏輯的概念并給出其定義,指出了唯一性邏輯可能的應用前景。然后,通過計算機數(shù)值實驗驗證了BP神經網絡實現(xiàn)唯一性偵測的可行性。實驗證明,使用Levenberg-Marquardt算法可以快速、有效地訓練出用于唯一性偵測的三層BP神經網絡。
我們實現(xiàn)了三、四和五輸入唯一性邏輯的BP神經網絡偵測,為唯一性邏輯打下了理論和實驗基礎,有利于未來的實際應用以及推廣到多輸入的唯一性邏輯。
圖7 五輸入唯一性偵測網絡的測試結果Fig.7 Results of 5-input uniqueness detection network
[1]張雨濃,楊逸文,李巍.神經網絡權值直接確定法[M].廣州:中山大學出版社,2010.
[2]ZHANG Y N,LI W,YI C F,et al.A weights-directlydeter-mined simple neural network for nonlinear system identification[C]∥Proceedings of the IEEE International Conference on Fuzzy Systems,2008:455 -460.
[3]STATAKE T,KATSUMI M,NAKAMURA N.Neural network approach for minimizing the makespan of the general job-shop[J].International Journal of Production Economics,1994,33:67 -74.
[4]RUMELHART D,MCCLELLAND J.Parallel Distributed Processing:Explorations in the Microstructure of Cognition[M].Cambridge:MIT Press,1986.
[5]張雨濃,譚寧,李展,等.求解線性不定方程組所展現(xiàn)的BP與Hopfield類型神經網絡的學習同質性研究[J].中山大學學報:自然科學版,2010,49(2):1-7.
[6]張青貴.人工神經網絡導論[M].北京:中國水利水電出版社,2004.
[7]HAM F M,KOSTANIC I.Principles of neurocom-puting for science and engineering[M].New York:McGraw-Hill Companies Inc,2001.
[8]成素梅,郝中華.BP神經網絡的哲學思考[J].科學技術與辯證法,2008,25(4):20-25.
[9]周政.BP神經網絡的發(fā)展現(xiàn)狀綜述[J].山西電子技術,2008,2:90-92.
[10]HAGAN M,DEMUTH H,BEALE M.Neural network design[M].Beijing:China Machine Press,2002.
[11]HAYKIN S.Neural networks and learning machines[M].Beijing:China Machine Press,2009.
[12]陳志堅,孟建熠,嚴曉浪,等.基于神經網絡的重構指令預取機制及其可擴展架構[J].電子學報,2012,40(7):1476-1480.
[13]高雪鵬,叢爽.BP網絡改進算法的性能對比研究[J].控制與決策,2001,16(2):167-171.
[14]蘇高利,鄧芳萍.論基于MATLAB語言的BP神經網絡的改進算法[J].科技通報,2003,19(2):130-135.
[15]FUH K H,WANG S B.Force modeling and forecasting in creep feed grinding using improved BP neural network[J].International Journal of Machine Tools and Manufacture,1997,37(8):1167 -1178.
[16]HORNIK K,STINCHCOMBE M,WHITE H.Multilayer feed forward networks are universal approximators[J].Neural Networks,1989,2(5):359-366.
[17]CHEN T,CHEN H.Universal approximation to nonlinear operators by neural networks with arbitrary activation functions and its application to dynamical systems[J].IEEE Transactions on Neural Networks,1995,6(4):911-917.