感知器是一種早期的神經網絡模型,由美國學者F.Rosenblatt於1957年提出.感知器中第一次引入了學習的概念,使人腦所具備的學習功能在基於符號處理的數學到了一定程度模擬,所以引起了廣泛的關注。
簡單感知器
簡單感知器模型實際上仍然是MP模型的結構,但是它通過采用監督學習來逐步增強模式划分的能力,達到所謂學習的目的。
其結構如下圖所示
感知器處理單元對n個輸入進行加權和操作v即:
其中,Wi為第i個輸入到處理單元的連接權值,f為階躍函數。
感知器在形式上與MP模型差不多,它們之間的區別在於神經元間連接權的變化。感知器的連接權定義為可變的,這樣感知器就被賦予了學習的特性。
利用簡單感知器可以實現邏輯代數中的一些運算。
Y=f(w1x1+w2x2-θ)
(1)“與”運算。當取w1=w2=1,θ=1.5時,上式完成邏輯“與”的運算。
(2)“或”運算, 當取wl=w2=1,θ=0.5時,上式完成邏輯“或”的運算。
(3)“非”運算,當取wl=-1,w2=0,θ=-1時.完成邏輯“非”的運算。
與許多代數方程一樣,上式中不等式具有一定的幾何意義。
對於一個兩輸入的簡單感知器,每個輸入取值為0和1,如上面結出的邏輯運算,所有輸入樣本有四個,記為(x1,x2):(0,0),(0,1),(1,0),(1,1),構成了樣本輸入空間。例如,在二維平面上,對於“或”運算,各個樣本的分布如下圖所示。
直線1*x1+1*x2-0.5=0將二維平面分為兩部分,上部為激發區(y,=1,用★表示),下部為抑制區(y=0,用☆表示)。
簡單感知器引入的學習算法稱之為誤差學習算法。該算法是神經網絡學習中的一個重要算法,並已被廣泛應用。
現介紹如下:
誤差型學習規則:
(1)選擇一組初始權值wi(0)。
(2)計算某一輸入模式對應的實際輸出y與期望輸出d的誤差δ
(3)如果δ小於給定值,結束,否則繼續。
(4)更新權值(閾值可視為輸入恆為1的一個權值): Δwi(t+1)=wi(t+1)- wi(t)=η[d—y(t)]xi。
式中η為在區間(0,1)上的一個常數,稱為學習步長,它的取值與訓練速度和w收斂的穩定性有關;d、y為神經元的期望輸出和實際輸出;xi為神經元的第i個輸入。
(5)返回(2),重復,直到對所有訓練樣本模式,網絡輸出均能滿足要求。
對於學習步長V的取值一般是在(0,1)上的一個常數,但是為了改進收斂速度,也可以采用變步長的方法,這里介紹一個算法如下式:
式中,α為一個正的常量。這里取值為0.1。
感知器對線性不可分問題的局限性決定了它只有較差的歸納性,而且通常需要較長的離線學習才能達到收效。
多層感知器
如果在輸入和輸出層間加上一層或多層的神經元(隱層神經元),就可構成多層前向網絡,這里稱為多層感知器。
這里需指出的是:多層感知器只允許調節一層的連接權。這是因為按感知器的概念,無法給出一個有效的多層感知器學習算法。
上述三層感知器中,有兩層連接權,輸入層與隱層單元間的權值是隨機設置的固定值,不被調節;輸出層與隱層間的連接權是可調節的。
對於上面述及的異或問題,用一個簡單的三層感知器就可得到解決。
實際上,該三層感知器的輸入層和隱層的連接,就是在模式空間中用兩個超平面去划分樣本,即用兩條直線: x1+x2=0.5 x1十x 2=1.5。
可以證明,只要隱層和隱層單元數足夠多,多層感知器網絡可實現任何模式分類。
但是,多層網絡的權值如何確定,即網絡如何進行學習,在感知器上沒有得到解決:
當年Minsky等人就是因為對於非線性空間的多層感知器學習算法未能得到解決,
使其對神經網絡的研究作出悲觀的結論。
感知器收斂定理
對於一個N個輸入的感知器,如果樣本輸入函數是線性可分的,那么對任意給定的一個輸入
樣本x,要么屬於某一區域F+,要么不屬於這一區域,記為F—。F+,F—兩類樣本構成了整個線性可分樣本空間。
[定理] 如果樣本輸入函數是線性可分的,那么下面的感知器學習算法經過有限次迭代后,
可收斂到正確的權值或權向量。
假設樣本空間F是單位長度樣本輸入向量的集合,若存在一個單位權向量w*。和一個較小的正數δ>0,
使得w*·x>= δ對所有的樣本輸入x都成立,則權向量w按下述學習過程僅需有限步就可收斂。
因此,感知器學習迭代次數是一有限數,經過有限次迭代,學習算法可收斂到正確的權向量w*。
對於上述證明,要說明的是:正數δ越小,迭代次數越多;
其次,若樣本輸入函數不是線性可分的,則學習過程將出現振盪,得不到正確的結果。
感知器與邏輯回歸的區別
兩者都為線性分類器,只能處理線性可分的數據。
兩者的損失函數有所不同,PLA針對分錯的數據進行建模,LR使用平方損失建模。
兩者的優化方法可以統一為GD。
LR比PLA的優點之一在於對於激活函數的改進。
前者為sigmoid function,后者為step function。
LR使得最終結果有了概率解釋的能力(將結果限制在0-1之間),sigmoid為平滑函數,能夠得到更好的分類結果,而step function為分段函數,對於分類的結果處理比較粗糙,非0即1,而不是返回一個分類的概率。
感知機學習旨在求出將訓練數據集進行線性划分的分類超平面,為此,導入了基於誤分類的損失函數,然后利用梯度下降法對損失函數進行極小化,從而求出感知機模型。感知機模型是神經網絡和支持向量機的基礎。下面分別從感知機學習的模型、策略和算法三個方面來介紹。
1. 感知機模型
感知機模型如下:
f(x)= sign(w*x+b)
其中,x為輸入向量,sign為符號函數,括號里面大於等於0,則其值為1,括號里面小於0,則其值為-1。w為權值向量,b為偏置。求感知機模型即求模型參數w和b。感知機預測,即通過學習得到的感知機模型,對於新的輸入實例給出其對應的輸出類別1或者-1。
2. 感知機策略
假設訓練數據集是線性可分的,感知機學習的目標就是求得一個能夠將訓練數據集中正負實例完全分開的分類超平面,為了找到分類超平面,即確定感知機模型中的參數w和b,需要定義一個損失函數並通過將損失函數最小化來求w和b。
這里選擇的損失函數是誤分類點到分類超平面S的總距離。輸入空間中任一點x0到超平面S的距離為:

其中,||w||為w的L2范數。
其次,對於誤分類點來說,當-yi (wxi + b)>0時,yi=-1,當-yi(wxi + b)<0時,yi=+1。所以對誤分類點(xi, yi)滿足:
-yi (wxi +b) > 0
所以誤分類點(xi, yi)到分類超平面S的距離是:

3. 感知機算法
感知機學習問題轉化為求解損失函數式(1)的最優化問題,最優化的方法是隨機梯度下降法。感知機學習算法是誤分類驅動的,具體采用隨機梯度下降法。首先,任意選取一個超平面w0,b0,然后用梯度下降法不斷極小化目標函數式(1)。極小化的過程不是一次使M中所有誤分類點的梯度下降,而是一次隨機選取一個誤分類點使其梯度下降。
損失函數L(w,b)的梯度是對w和b求偏導,即:

其中,(0<<=1)是學習率,即學習的步長。綜上,感知機學習算法如下:

這種算法的基本思想是:當一個實例點被誤分類,即位於分類超平面錯誤的一側時,則調整w和b,使分類超平面向該誤分類點的一側移動,以減少該誤分類點與超平面的距離,直到超平面越過該誤分類點使其被正確分類為止。
需要注意的是,這種感知機學習算法得到的模型參數不是唯一的,它會由於采用不同的參數初始值或選取不同的誤分類點,而導致解不同。為了得到唯一的分類超平面,需要對分類超平面增加約束條件,線性支持向量機就是這個想法。另外,當訓練數據集線性不可分時,感知機學習算法不收斂,迭代結果會發生震盪。而對於線性可分的數據集,算法一定是收斂的,即經過有限次迭代,一定可以得到一個將數據集完全正確划分的分類超平面及感知機模型。
以上是感知機學習算法的原始形式,下面介紹感知機學習算法的對偶形式,對偶形式的基本想法是,將w和b表示為實例xi和標記yi的線性組合形式,通過求解其系數而求得w和b。對誤分類點(xi, yi)通過

所以,感知機學習算法的對偶形式如下:

參考文獻:
1.《統計學習方法》








