感知機

感知機

感知機是二分類的線性分類模型,輸入爲實例的特徵向量,輸出爲實例的類別(取+1和-1)。感知機對應於輸入空間中將實例劃分爲兩類的分離超平面。感知機旨在求出該超平面,爲求得超平面導入了基於誤分類的損失函數,利用梯度下降法對損失函數進行最優化(最優化)。感知機的學習算法具有簡單而易於實現的優點,分爲原始形式 和 對偶形式。感知機預測是用學習得到的感知機模型對新的實例進行預測的,因此屬於判別模型。感知機是一種線性分類模型,只適應於線性可分的數據,對於線性不可分的數據模型訓練是不會收斂的。
感知機模型

假設輸入空間(特徵向量)是 x∈Rn
輸出空間爲 Y={−1,+1},輸入 x∈X表示表示實例的特徵向量,對應於輸入空間的點,輸出 y∈Y

表示實例的類別,則由輸入空間到輸出空間的表達形式爲:
f(x)=sign(w⋅x+b)

該函數稱爲感知機,其中w和b 稱爲模型的參數,w∈Rn稱爲權值,b 稱爲偏置,w⋅x 表示 w和x 的內積

這裏

sign(x)={+1,x>0−1,x<0

如果我們將sign稱之爲激活函數的話,感知機與logistic regression的差別就是感知機激活函數是sign,logistic regression的激活函數是sigmoid。sign(x)將大於0的分爲1,小於0的分爲-1;sigmoid將大於0.5的分爲1,小於0.5的分爲0。因此sign又被稱爲單位階躍函數,logistic regression也被看作是一種概率估計。
在神經網絡以及DeepLearning中會使用其他如tanh,relu等其他激活函數。

感知機的學習策略

如下圖: 線性可分數據集

 


 

對於一個給定的線性可分的數據集,如上面的數據點,紅色代表正類,藍色代表負類,感知機的主要工作就是尋找一個線性可分的超平面 S:{wx+b=0}

, 該超平面能夠將所有的正類和負類完全劃分到超平面的兩側。而這就是上圖中的紅色直線,也就是說,感知機算法實際上就是找一條直線將數據集進行正確劃分。
如果數據集可以被一個超平面完全劃分,則稱該數據集是線性可分的數據集,否則稱爲線性不可分的數據集,如下圖:

非線性可分數據集

感知機分類效果:

 


 

logistic regression分類效果:

 


 

爲了尋找上面那條能夠將數據集完全劃分的超平面 S:wx+b=0

我們需要確定一個學習策略,也就是常說的loss function 以及梯度下降法迭代求解。

爲了使用梯度下降法求解 wb

,我們的loss function必須是 wb 的連續可導函數,因此可以選擇loss function爲:誤分類點到超平面 S 的總距離。令輸入 x0 到超平面 S 的距離爲 1||w|||wx0+b| ,其中 ||w|| 爲 wL2

範數。

對誤分類點(xi,yi)

來說,有 −yi(wxi+b)>0

,則可得loss function爲:

L(w,b)=−1||w||∑xiMyi(wxi+b)

 

測重點講下損失函數

1.損失函數
根據w與b,定義一個損失函數,並使得損失函數最小化。首先,Rn空間中任意一點x0

到超平面的距離爲

1||w|||ωx0+b|

學習過程中,當點發生錯誤分類時,yi與(ωx0+b)的符號相反,且其乘積爲1。那麼假設超平面S的所有錯誤分類的點的集合爲M,那麼所有錯誤分類的點到超平面的距離總和爲

−1||ω||∑xi∈Myi(ωxi+b)

不考慮||ω||,即得到了感知機學習的損失函數。對於給定的訓練集T={(x1,y1),(x2,y2)...(xN,yN)}感知機sign(ωx+b)學習的損失函數定義爲

L(ω,b)=−∑xi∈Myi(ωxi+b)


顯然,損失函數是非負的,並且錯誤分類的點越少,錯誤分類的點離超平面的距離越小,損失函數的值越小。一個特定的樣本點的損失函數,錯誤分類時是ω,b的線性函數,在正確分類時是0,因此,損失函數是ω,b的連續可到函數。

感知機學習算法及對偶形式

1.原始形式
對於給定的訓練集T={(x1,y1),(x2,y2)...(xN,yN)}求解參數ω,b

是損失函數極小化。

minω,bL(ω,b)=−∑xi∈Myi(ωxi+b)


採用隨機梯度下降算法,首先確定一個初始值,損失函數的梯度表示爲:

∇ωL(ω,b)=−∑xi∈Myixi

 

∇bL(ω,b)=−∑xi∈Myi


則根據梯度下降規則, 當出現一個錯誤分類點時,更新ω=ω+ηyixi, b=b+ηyi其中η爲學習率,通過迭代使得損失函數L(ω,b)不斷減小,直至爲零。

 

2.對偶形式
更新ω=ω+ηyixi

,b=b+ηyi其中η爲學習率。逐步修改參數的過程中,易知對於一個點(xi,yi),其對參數的增量分別是αiyixi與αiyi,這裏的αi=niη

.
則有

ω=∑i=1Nαiyixi

b=∑i=1Nαiyi


感知機的模型可表述爲f(x)=sign(∑Nj=1αjyjxjx+b)其中α=(α1,α2...αN)T
對於一個實例(xi,yi)如果yi∑Nj=1αjyjxjx+b<=0即發生錯誤分類時,更新αi=αi+η, b=b+ηyi
在算法過程中,涉及到計算xixj,可以預處理Gram矩陣存儲任意兩個訓練實例向量的內積。

 

感知機作爲一個二分類線性分類器,同時也是支持向量機和神經網絡的基礎,可以推廣到多分類和非線性分類。

 

感知機的對偶形式

基本思想:
w

b 表示爲實例 xi 和標記 yi線性組合的形式,通過求解其係數而求得 wb 。假設 w0,b0爲0,對誤分類點(xi,yi)

通過

w=w+ηyixi

b=b+ηyi

逐步修改 w,b

,設修改 n 次,則 w,b 關於(xi,yi) 的增量分別爲 αiyixiαiyi, 其中αi=niη ,則最後學習到的 w,b

可以分別表示爲

w=∑i=1Nαiyixi

b=∑i=1Nαiyi

 

這裏,αi≥0,=1,2,⋯N

, αi=niη ,ni 的意義是樣本 i 被誤分的次數,所以當 η=1 時,表示第 i 個樣本由於被誤分而更新的次數,實例點更新次數越多,表明它距離分離超平面越近,也就越難正確分類。

參考文章:https://blog.csdn.net/llp1992/article/details/50594349#%E6%84%9F%E7%9F%A5%E6%9C%BA%E7%9A%84%E5%8E%9F%E5%A7%8B%E5%BD%A2%E5%BC%8F

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章