第二講-感知器_第1頁
第二講-感知器_第2頁
第二講-感知器_第3頁
第二講-感知器_第4頁
第二講-感知器_第5頁
已閱讀5頁,還剩49頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第3章

感知器

主要內容:感知器與人工神經網絡的早期發展;線性可分問題與線性不可分問題;感知器的訓練算法.

重點:感知器的結構、表達能力、學習算法難點:感知器的表達能力

設計算機1秒能完成24個城市的枚舉,則城市數與計算時間的關系如下表:隨城市增多,計算時間增加很快。到31個城市時,要計算325年。城市數2425262728293031計算時間1sec24sec10min4.3hour4.9day136.5day10.8year325year人工智能的具體應用人工智能的具體應用人工智能的具體應用第3章

感知器3.1感知器與人工神經網絡的早期發展

3.2感知器的學習算法

3.2.1感知器訓練算法

3.3線性不可分問題3.3.1異或(Exclusive–OR)問題

3.3.2線性不可分問題的克服

實現!問題的發現與解決!3.1感知器與ANN的早期發展McCulloch和Pitts1943年,發表第一個系統的ANN研究——閾值加權和(M-P)數學模型.1947年,開發出感知器.圖3.1感知器神經元模型硬限幅函數F.Roseblatt已經證明,如果兩類模式是線性可分的(指存在一個超平面將它們分開),則算法一定收斂.感知器特別適用于簡單的模式分類問題,也可用于基于模式分類的學習控制中.本節中所說的感知器是指單層的感知器.多層網絡因為要用到后面將要介紹的反向傳播法進行權值修正,所以把它們均歸類為反向傳播網絡之中.3.1感知器與ANN的早期發展3.1感知器與ANN的早期發展1962年,Rosenblatt宣布:人工神經網絡可以學會它能表示的任何東西.o1圖3.2多輸出感知器x1x2o2omxn…

………輸入層輸出層3.2感知器的學習算法

感知器的學習是有導師學習.感知器的訓練算法的基本原理來源于著名的Hebb學習律.基本思想:逐步地將樣本輸入到網絡中,根據輸出結果和理想輸出之間的差別來調整網絡中的權矩陣.什么是Hebb學習律,與感知器的學習規則是否相同?感知器模型如圖I/O關系:3.2感知器的學習算法-網絡結構

感知器的最大作用就是可以對輸入的樣本分類,故它可作分類器,如感知器對輸入信號的分類如下:即當感知器的輸出為1時,輸入樣本稱為A類;輸出為0時,輸入樣本稱為B類.3.2感知器的學習算法-網絡結構

一個簡單的單神經元(感知器)分類的例子.例:二維矢量,兩類如圖:L為分類線:區為區為設一個單神經元硬限幅函數123.2感知器的學習算法-網絡結構

學習規則是用來計算新的權值矩陣W及新的偏差的算法.感知器利用其學習規則來調整網絡的權值,以便使該網絡對輸人矢量的響應達到數值為0或1的目標輸出.輸入矢量P,輸出矢量A,目標矢量為T的感知器網絡,其學習規則為:(誤差學習算法).3.2感知器的學習算法-學習規則感知器的學習算法目的在于找尋恰當的權系數w=(w1,w2,…,wn),使系統對一個特定的樣本x=(x1,x2,…,xn)能產生期望值d.當x分類為A類時,期望值d=1;x為B類時,d=-1.為了方便說明感知器學習算法,把閾值b并入權系數w中,同時,樣本x也相應增加一個分量xn+1.故令:wn+1=-b,xn+1=1

則感知器的輸出可表示為:3.2感知器的學習算法-學習規則感知器學習算法步驟如下:步1.對權系數w置初值權系數w=(w1,…,wn,wn+1)的各個分量置一個較小的初始隨機值,并記為wl(0),…,wn(0),同時有wn+1(0)=-b.wi(t)為t時刻從第i個輸入上的權系數,i=1,2,…,n.wn+1(t)為t時刻時的閾值.步2.輸入一樣本x=(x1,x2,…,xn+1)以及它的期望輸出d期望輸出值d在樣本的類屬不同時取值不同.如果x是A類,則取d=1,如果x是B類,則取-1.期望輸出d也即是教師信號.3.2感知器的學習算法-學習規則步4.根據實際輸出求誤差ee(t)=d-y(t)

步5.用誤差e去修改權系數wi(t+1)=wi(t)+e(t)xii=1,2,…,n+1

其中稱為權重變化率,0<1.的值不能太大.如果取值太大則wi(t)的穩定性差;的值也不能太小,否則wi(t)的收斂速度太慢.步3.計算實際輸出值y3.2感知器的學習算法-學習規則當實際輸出和期望值d相同時有:wi(t+1)=wi(t)步6.轉到第2步,一直執行到一切樣本均穩定為止.(算法的收斂性分析見后面的證明).從上面分析可知,感知器實質是一個分類器,它的這種分類是和二值邏輯相應的.因此,感知器可以用于實現邏輯函數.下面對感知器實現邏輯函數的情況作一些介紹.例用感知器實現或邏輯函數OR,即x1

x2,的真值(真值表如右所示).x1x2x1

x20011010101113.2感知器的學習算法-學習規則即有

b>0,w2,w1b,w1+w2b以x1

x2=1為A類,以x1

x2=0為B類,則有方程組令w1=1,w2=1,則有b1.取b=0.5,則有分類判別曲線x1+x2-0.5=0,分類情況如圖3.2a所示,實現的NN如圖3.2b.3.2感知器的學習算法-學習規則x1x2圖3.1bOR函數的NN實現o(x1,x2)11-10.53.2感知器的學習算法-學習規則類似地,對與邏輯函數AND(真值表如下所示),即x1

x2,也可設計如圖所示的分類面(分類函數).x1x2x1

x20011010100013.2感知器的學習算法-學習規則x1x2圖3.2bAND函數的NN實現o(x1,x2)11-11.53.2感知器的學習算法-學習規則但對異或邏輯函數XOR(真值表如下所示),則不可能利用單層感知器設計的線性分類面(線性分類函數),如下圖所示.x1x2x1

x2001101010110?3.2感知器的學習算法-學習規則對此,只能設計多層感知器,如下圖所示的XOR函數的2層設計.x1x211-11.5x1x211-10.5圖3.3bXOR函數的2層NN實現o(x1,x2)-11-103.2感知器的學習算法-學習規則而其函數空間的分類面如下圖所示.3.2感知器的學習算法-學習規則3.2感知器的學習算法-Matlab實現該函數的調用命令為:[dW,LS]=learnp(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)[db,LS]=learnp(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS)

------各參數的具體意義可參考神經網絡工具箱的用戶指南.3.2感知器的學習算法-Matlab實現感知器設計訓練的步驟可總結如下:1)對于所要解決的問題,確定輸入矢量P,目標矢量T,并由此確定各矢量的維數以及確定網絡結構大小的神經元數目;2)參數初始化: a)賦給權矢量w在(-l,1)的隨機非零初始值; b)給出最大訓練循環次數max_epoch;3)網絡表達式:根據輸入矢量P以及最新權矢量W,計算網絡輸出矢量A;4)檢查:檢查輸出矢量A與目標矢量T是否相同,如果是,或已達最大循環次數,訓練結束,否則轉入5);5)學習:根據感知器的學習規則調整權矢量,并返回3).3.2感知器的學習算法-Matlab實現上述的整個訓練過程我們可以用MATLAB工具箱中的函數train.m來完成。其調用方式如下:[net,tr]=train(net,P,T,Pi,Ai)3.2感知器的學習算法-Matlab實現例1采用單一感知器神經元解決一個簡單的分類問題:將四個輸入輸入矢量分為兩類,其中兩個矢量對應的目標值為1,另兩個矢量對應的目標值為0,即輸入矢量:P=[-0.5–0.50.30.0;…-0.50.5-0.51.0]目標分類矢量:T=[1.01.00.00.0]

3.2感知器的學習算法-Matlab實現解首先定義輸入矢量及相應的目標矢量:P=[-0.5–0.50.30.0;-0.50.5-0.51.0];T=[1.01.00.00.0];輸入矢量可以用左圖來描述,對應于目標值0的輸入矢量用符號‘0’表示,對應于目標值1的輸入矢量符號‘+’表示.

輸入矢量圖

訓練結束后得到如圖所示的分類結果,分類線將兩類輸入矢量分開,其相應的訓練誤差的變化如圖所示。這說明經過4步訓練后,就達到了誤差指標的要求.

分類結果誤差變化曲線下面給出本例的MATLAB程序%Examplepre.m

%NEWP——

建立一個感知器神經元%INIT——

對感知器神經元初始化%TRAIN——

訓練感知器神經元%SIM——

對感知器神經元仿真pause%敲任意鍵繼續clc%P為輸入矢量P=[-0.5-0.5+0.3+0.0;-0.5+0.5-0.51.0];%T為目標矢量T=[1100];pause%繪制輸入矢量圖plotpv(P,T);pause%定義感知器神經元并對其初始化

net=newp([-0.50.5;-0.51],1);net.initFcn='initlay';net.layers{1}.initFcn='initwb';net.inputWeights{1,1}.initFcn='rands';net.layerWeights{1,1}.initFcn='rands';net.biases{1}.initFcn='rands';net=init(net);echooffk=pickic;ifk==2net.iw{1,1}=[-0.81610.3078];net.b{1}=[-0.1680];endechoonplotpc(net.iw{1,1},net.b{1})pause

%訓練感知器神經元net=train(net,P,T);pause%繪制結果分類曲線plotpv(P,T)plotpc(net.iw{1,1},net.b{1});pause%利用訓練完的感知器神經元分類p=[-0.5;0];a=sim(net,p)echooff感知器學習算法的收斂性定理:如果樣本輸入函數是線性可分的,那么感知器學習算法經過有限次迭代后,可收斂到正確的權值或權向量.可證:在訓練樣本Xk,k=1,2,…,N是線性可分時,采用上式的學習方法,在有限次迭代后,必能得到正確解.3.2感知器的學習算法-收斂性定理為證明此定理,不失一般性,先對該分類問題做一些假設:A1:

輸入樣本Xk,k=1,2,…,N全部歸一化,即||Xk||=1;A2:

對最優權向量W*,有||W*||=1.A3:

如果樣本可分,那么任意給定的一個輸入樣本Xk,要么屬于某一區域F+,要么不屬于這一區域,記為F-,F+和F-構成了整個線性可分的樣本空間.在這里僅討論Xk∈F+的情況.3.2感知器的學習算法-收斂性定理證明:因為N個樣本線性可分,所以存在單位權向量W*和一個較小的正數d>0,使得W*TXk≥d對所有的樣本輸入Xk都成立,任意權值向量W和最優權值向量W*之間的余弦角cosα為

由學習律可得W(k+1)=W(k)+μX(k),μ是學習系數. 上式左乘W*可得W*WT(k+1)=W*[WT(k)+μXT(k)]≥W*WT(k)+μd從k=0迭代,可得W*WT(k)≥W*WT(0)+kμd 3.2感知器的學習算法-收斂性定理選擇W(0)∈Xk,滿足W*Xk>0,此時有W*WT(k)≥kμd 在W(k)未達到W*時,W(k)XT(k)<0,所以

迭代可得:

所以,

由于余弦值S(k)≤1,當W(k)=W*時,S(k)=1,于是我們求解得到這說明在μ和d選定后,可以在有限的次數k達到最優加權W*.1)由于激活函數為閾值函數,輸出矢量只能取0,1,說明僅可以解決簡單的分類問題,對于線性不可分或重疊時無法分類;但多層感知器網絡卻具有復雜的非線性分類能力,是一類非常有效的分類器.3.2硬限幅函數單神經元(感知器)分類特性2)輸入矢量線性可分時,學習在有限次數內收斂;3)輸入矢量的奇異性導致較慢的收斂.比如當輸入/輸出矢量分別為:P=[-0.5–0.5+0.3–0.1–80-0.5+0.5–0.5+1.0100];T=[11001];時,必然導致訓練的困難;4)異或問題不可解.

5)感知器網絡在NN的研究中有著重要意義和地位,其學習算法的自組織、自適應思想,是NN學習算法的基礎.3.2硬限幅函數單神經元(感知器)分類特性3.2具有線性函數的單層網絡的分類功能它與感知器的主要不同之處在于其神經元的激活函數是線性函數,這允許輸出可以是任意值,而不僅僅只是像感知器中那樣只能取0或1.它采用的是W-H學習法則,也稱最小均方差(LMS)規則對權值進行訓練.自適應線性元件的主要用途是線性逼近一個函數式而進行模式聯想.3.2線性神經元模型和結構一.線性神經元模型和結構圖自適應線性神經網絡的結構

單神經元多個神經元3.2LMS(梯度下降)學習規則二.采用線性函數分類任務的目標:所有可能的輸入矢量與輸出矢量的誤差平方的統計量最小.線性函數單神經元的分類任務中采用LMS算法調節連接權.LMS的算法如下:LMS梯度下降算法訓練方法:逐個處理、成批處理.采用成批處理的方法:設誤差E采用下式表示:其中yi=f[w

xi]是對應第i個樣本xi的NN實時輸出;oi是對應第i個樣本xi的期望輸出.3.2LMS(梯度下降)學習規則對W求偏導,有令則有可寫為其中所以要使誤差

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論