張光建
摘 要:作為模式識別的感知器神經網絡,構建網絡模型需要一個很重要的權值參數,可以通過手工計算,也可以通過MATLAB神經網絡工具箱進行訓練仿真獲得,使用兩種權值建立分類器網絡模型,對比測試模式識別結果,不同權值模型對于測試樣本識別率是有差異的,為了提高模型的泛化,構建網絡模型時需要測試選用最優權值。
關鍵詞:模式識別;神經網絡;感知器;權值
中圖分類號: TP183 文獻標志碼: A 文章編碼:2095-2163(2015)03-
Perceptron Network Weights Calculation and MATLAB Simulation in Pattern Recognition
ZHANG Guangjian
(1 Department of Information Engineering, Sichuan College of Architectural Technology,Deyang Sichuan 618000, China;2 Institute of Intelligent Computing, Sichuan College of Architectural Technology, Deyang Sichuan 618000, China)
Abstract:As the perceptron neural network pattern recognition, constructing the network model takes a very important parameters, which can be used by manual calculation, and can also carry out the training simulation obtained by MATLAB neural network toolbox. The paper uses two weights for building the classifier network model, and compares test results of the pattern recognition model.It is known that for the recognition rate of the samples tested, the weights are different,and in order to improve the generalization of the model, the construction of the network model need to test selects the optimal weights.
Keywords:Pattern Recognition; Neural Network; Perceptron; Weights
0 引 言
人工神經網絡[1](artificial neural network,ANN),簡稱神經網絡(neural network,NN),是一種對人腦功能實行模擬的簡化模型結構,是一種功能型的數學模型(計算模型),可完成科學計算,并具有強大的處理問題能力。神經網絡是由大量的人工神經元相互連接而成的信息處理系統,能夠基于外界信息的引發改變內部結構,因而屬于一種自適應系統。現代神經網絡則是一種非線性統計性數據建模工具,常用來對輸入和輸出間的復雜關系進行建模,或用來探索數據的關聯模式。
1943年,美國神經生理學家McCulloch和Pitts提出的第一個神經網絡模型M-P模型,開創了人工智能的研究工作,奠定了神經網絡的發展基礎。其中的感知器(Perceptron)則是由美國計算機科學家羅森布拉特(Frank Rosenblatt)于1957年提出的。
具體來說,神經網絡是一種運算模型[2],是由大量的節點(或稱“神經元”,或“單元”)及其間的相互聯接構成。每個節點代表一種特定的輸出函數,稱為激勵函數(activation function)。每兩個節點間的連接均表示對于通過該連接信號的加權值,稱之為權重(weight),也就相當于人工神經網絡的記憶。此外的網絡輸出則是依據網絡的連接方式、權重值(權值)和激勵函數的不同而各不相同。綜合論述可得,網絡自身通常都是對自然界某種算法或者函數的逼近,也可能是對一種邏輯策略的表達。因此,為解決模式識別問題創建的網絡模型,若選用最優權值,就會極大地提高模式識別率。
1 感知器及學習算法
神經網絡中,感知器神經網絡[3]是一種典型的分層結構,信息從輸入層進入網絡后,將逐層向前傳遞至輸出層。單層感知器是一個具有一層神經元、采用閾值激活函數的前向網絡。通過對網絡權值的訓練,可以使感知器對一組輸入矢量的響應完成結果為0或1的目標輸出,從而實現對輸入矢量分類的目的。沒有反饋或競爭的簡單神經元感知器模型如圖1 所示。
圖1 一個單一神經元的感知器模型
Fig.1 A single neuron perceptron model
在感知器學習算法[4]中,設輸入向量 ,相應的權值向量 ,對一個輸入模式 的網絡輸入 為
(1)
根據閾值函數產生一個輸出 為:
(2)
感知器學習中,設t為目標輸出,使用Hebbian學習,其誤差公式為:
(3)
對任何新權值,具體計算公式為:
(4)
對于誤差E的三種可能情況,新權值的調整公式為:
(5)
在公式(5)中, 是新的調整權值, 是前次或者初始權值; 是輸入向量; 是學習率,且是一個常數, 。精準快捷地確定 值,將直接影響對后期的網絡學習訓練時間。
2 手工計算權值
樣本集如表1所示。其中 x1,x2為兩個輸入,t為期望目標輸出。感知器分類器的任務是將表1所示的二維模式進行分類。
表1 分類數據
Tab.1 Classification of samples
0.3,0.7 1
-0.6,0.3 0
-0.1,-0.8 0
0.1,-0.45 1
樣本點如圖2所示。
圖2 輸入向量與期望響應樣本圖
Fig.2 Input vector and the desired response sample figure
根據文獻[2]的推理,假定 ,其中, 是學習率, 為網絡初始權值。權值調整過程具體如下。
(0.3)=0.95
=-0.15
調整后的權值,繼續計算第二組樣本數據 。
如果分類正確,繼續使用該組權值計算下一組數據;分類錯誤,即需應用公式(5)的規則進行權值調整,直到最終獲得一組權值w=[1.05 0.025],完成對全部樣本進行的正確分類。為此,根據權值和樣本對感知器網絡進行分類訓練,其相應的分類結果如圖3所示。
圖3樣本分類圖
Fig.3 Sample classification map
3 MATLAB訓練仿真
MATLAB神經網絡工具箱(Neural Network Tool)[5],為神經網絡提供了一種高效、集成的仿真手段,通過該工具箱,可以對神經網絡進行設計、訓練、可視化以及仿真。
使用MATLAB R2013a 的神經網絡工具箱函數,設置p為輸入向量,t為期望目標向量。
p= [0.3 -0.6 -0.1 0.1;
0.7 0.3 -0.8 -0.45];
t= [1 0 0 1];
net =newp(minmax(p),1);
網絡傳遞函數指定為硬限值函數HARDLIM,學習函數指定為LEARNP。創建如圖4所示的感知器神經網絡模型。
圖4 生成的感知器網絡模型
Fig.4 Perceptron network model generation
使用命令net=train(net,p,t)進行網絡訓練,使用sim(net,p)進行仿真,得到輸出向量為[1 0 0 1],完全匹配期望目標向量t ,訓練結果達到零誤差,網絡權值w=[1.8 0],偏值為b=0。使用plotpc(net.iw{1,1},net.b{1}) 命令在樣本中繪制分類線,如圖5所示,從圖中可以看出分類線能對輸入樣本完全分類。
圖5 訓練后的網絡對輸入樣本的分類
Fig.5 Classification of the input sample after network training
4 網絡測試[6]
通過樣本訓練得到的網絡,但是測試樣本的準確率卻未必會高。一個性能良好的網絡應該具有優秀的泛化能力。首先輸入樣本數據進行訓練,通過修正權值來減小誤差得到擬合程度很高的網絡模型,而后的網絡測試則是用另外的樣本數據去測試網絡的性能。
對于兩種權值建立的網絡模型,通過加入測試樣本數據進行分類測試,測試樣本為:
p1=[ 0.4 -0.5 0 0.2 ; 0.8 0.4 -0.7 -0.35 ]
使用MATLAB的sim(net,P1) 函數完成對輸入樣本的測試。
對于手工計算獲得的權值W=[1.05,0.025],加入測試樣本集后,分類結果如圖6所示。
圖6測試樣本分類(手工計算)
Fig.6 Test sample classification (manual calculation)
對于使用MATLAB計算機仿真訓練獲得的權值W=[1.8 0] ,加入測試樣本集,分類結果如圖7所示。
圖7測試樣本分類(MATLAB)
Fig.7 The test sample classification (MATLAB)
對比圖6和圖7,可以清楚看到根據兩種方式獲得的權值,建立兩種感知器神經網絡模型,均能對樣本進行分類,但卻同時可知圖6的網絡模型可對測試樣本集進行更見成效的分類。
5 結束語
感知器神經網絡只能解決線性可分的模式分類問題,在應用上有一定的局限性,但對于線性可分問題建立的模型,總能通過訓練,在有限的循環次數內找到網絡權值,使網絡達到期望的輸出,進而完成模式分類。通過對同一模型的手工計算和MATLAB訓練,得出的網絡權值并不相同,但都可以對網絡進行分類,只是對于使用MATLAB進行的計算機訓練仿真,所獲取的權值與計算精度、連同使用的學習函數及傳遞函數方面將會有一定的影響。而且,選取不同權值建立的模型,在泛化能力上也將存在一定差異。作為感知器分類器的模型建立,需要反復比對找到最優的權值,這樣建立的模型在泛化能力上才會具有更好的適應性。
參考文獻:
[1] (美)Martin T. Hagan等,著.神經網絡設計[M]. 戴葵等,譯.北京:機械工業出版社,2002.
[2] Domany, Eytan. Models of Neural Networks III:Association, Generalization, and Representation[M].New York: USA Springer press,2013.
[3] 張昭昭,喬俊飛,著.模塊化神經網絡結構分析與設計[M].沈陽:遼寧科學技術出版社.2014.
[4] Samarasinghe, Sandhya. Neural Networks for Applied Sciences and Engineering[M]. Boca Raton,Florida: The Chemical Rubber Company Press,2006
[5] 劉冰,郭海霞.MATLAB神經網絡超級學習手冊[M].北京:人民郵電出版社,2014.
[6 ]高飛.MATLAB智能算法超級學習手冊[M].北京:人民郵電出版社,2014.