天天看點

感覺器

MATLAB神經網絡程式設計》 化學工業出版社 讀書筆記 

第四章 前向型神經網絡 4.1 感覺器網絡

本文是《MATLAB神經網絡程式設計》書籍的閱讀筆記,其中涉及的源碼、公式、原理都來自此書,若有不了解之處請參閱原書。

感覺器可以說是最早的人工神經網絡(Artificial Neural Network,ANN),單層感覺器是一個具有一層神經元、采用門檻值激活函數的前向神經網絡網絡。

感覺器的輸出一般是0或1,當然也可以是-1或+1,實作對輸入的矢量進行分類的目的。 

前向神經網絡(Feed Forword Neural Network):各個神經元接受前級輸入,并輸出到下一級,無回報,可用一有向無環圖表示。 

前饋網絡通常分為不同的“層”(layer),第i層的輸入隻與第i-1層的輸入聯接。 

可見層:輸入層(input layer)與輸出層(output layer) 

隐藏層(hidden layer):中間層。

(一)感覺器的結構

感覺器

單層感覺器的神經元模型

上圖中每一個輸入分量pj(j=1,2…..r)通過一個權值分量wj(j=1,2….r)進行權重求和,并作為門檻值函數的輸入,偏差b的加入使得網絡多一個參數,可以作為調節輸出的值增加友善。

n=∑ wj*pj+b 

a=f(n)

多層感覺器的模式如下: 

感覺器

感覺器中的函數f稱為傳輸函數,感覺器中一般選擇門檻值函數作為傳輸函數如 

感覺器
感覺器

感覺器特别适合解決簡單的模式分類(pattern classification)問題。但是單層感覺器隻能解決線性可分的問題。

(二)感覺器的學習 

感覺器學習的目的是找到合适的權值與門檻值,使得感覺器的輸出、輸入之間滿足線性可分的函數關系。學習的過程往往很複雜,需要不斷的調整權值與門檻值,稱為“訓練”的過程。 

若以t表示目标輸出,a表示實際輸出,則

e=t-a

訓練的目的就是使t->a. 

一般感覺器的傳輸感受為門檻值函數網絡的輸出a隻能是0或1,是以隻要網絡表達的函數是線性可分的,則函數經過有限次疊代之後,将收斂到正确的權值與門檻值,使e=0。 

感覺器的訓練需要提供樣本集,每個樣本由神經網絡的輸入向量和輸出向量對構成,n個訓練樣本構成的樣本集為: 

{p1,t1},{p2,t2}~~~~{pn,tn} 

每一步學習過程,對各個神經元的權值與門檻值的調整算法是:

感覺器

式子中W為權值向量;b為門檻值向量;p為輸入向量;k為第k步學習過程。上述學習過程稱為标準化感覺器學習規則,可以用函數learnp實作。

如果輸入向量的取值範圍很大,一些輸入值太大,而一些輸入值太小,按照上述公式學習的時間将會很長。為此,門檻值的調整可以繼續按照上述公式,而權值的調整可以采用歸一化方法,即 

感覺器

上述歸一化學習方式可以使用函數learnpn實作。

(三)感覺器的神經網絡訓練函數

Matlab的神經網絡工具箱提供了大量的感覺器函數。

感覺器
感覺器
感覺器
感覺器
感覺器

上述圖檔截圖自:http://www.docin.com/p-209646585.html 

函數的具體使用方式以及原理可以在MATLAB指令視窗中使用指令:help+函數名 檢視。

(四)在MATLAB中實作一個簡單的感覺器 

給定樣本輸入向量P,目标向量T以及需要進行分類的輸入向量Q,設計一個單層感覺器,對Q進行分類。 

源代碼如下:

clear all;
P=[- - ;  ];    %輸入向量,即訓練集
T=[  ];                    %輸出向量
net=newp([- ;- ],);      %生成感覺器,net是傳回參數
%傳回劃線的句柄,下一次繪制分類線時%将舊的删除
he=plotpc(net.iw{},net.b{});
net.trainParam.epochs=;     %設定訓練次數最大是15
net=train(net,P,T);           %利用訓練集對感覺器進行訓練
Q=[  -;- - ];
Y=sim(net,Q)                  %Y是利用感覺器net對Q進行分類的結果
figure;
plotpv(Q,Y);                  %畫出輸入的結果表示的點
he=plotpc(net.iw{},net.b{},he)%畫出分類線           
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

訓練的過程忽略,下圖是最後得到的分類結果圖:

感覺器
感覺器

由圖可知,在經過兩次訓練後網絡目标誤差達到要求。

(五)小結 

感覺器是最簡單的神經網絡,隻适合進行簡單的模式分類;感覺器隻對線性可分的向量集合進行分類,所謂線性可分,是指可以用一條直線(針對二維向量)或者一個平面(針對三維向量)将輸入向量分開;對感覺器的分析有助于了解更加複雜的神經網絡。

繼續閱讀