1. 感知機模型
感知機模型是一個二分類的模型,它通過形如y=wx+b的式子將實例x轉換爲類別,取+1和-1表示,從而將實例進行劃分。它是簡單並且容易實現的一個模型。
感知機模型主要用來將平面上線性可分的數據集進行劃分,對於線性不可分的數據集,感知機無法收斂。
感知機模型的輸入輸出由以下函數進行映射,其中w是n維空間的一個向量,b是偏置,sign是符號函數。
f(x)=sign(wx+b)..........(1)sign(x)={+1−1x≥0x<0..........(2)
對於感知機的學習策略,我們可以考慮當一個實例點被誤分類,則調整w,b的值 ,使分離超平面向該誤分類點的一側移動,減少該誤分類點與超平面的距離,直至超平面越過該誤分類點使其正確分類。於是有感知機的損失函數
L(w,b)=−xi∈M∑yi(w⋅xi+b)..........(3)
其中M爲誤分類點的集合。可以發現−yi(w⋅xi+b)恆爲正數,當所有點都完全分類正確時,損失函數爲0。對於一個誤分類的樣本點來說,式子(3)是w,b的連續可導函數。所以採用隨機梯度下降法進行學習。感知機學習算法的原始形式如下:
- 定義初始的w0,b0。
- 掃描訓練集,若yi(w⋅xi+b)≤0,則更新w=w+ηyixi,b=b+ηyi
- 重複2,直至不存在誤分類點。
c不同的初始值,或者誤分類點的選取順序不同,都可能使得最後得到的w和b不同。
2. 收斂性證明(Novikoff定理)
我們如何保證在算法原始模型中,經過有限次的迭代後一定會收斂呢?下面我們進行收斂性的證明。首先令w^x^=w⋅x+b。假設最終得到的超平面w^opt⋅x^=wopt⋅x+bopt=0,使∣∣w^opt∣∣=1,因此對於所有的樣本i,有
yi(w^opt⋅x^i)>0
存在
γ=imin{yi(wopt⋅xi+bopt)}
使得
yi(w^opt⋅x^i)≥γ..........(4)
選擇初值w^0,令w^k−1是第k個誤分類實例之前的權重向量,則第k個誤分類實例的條件是
yi(w^k−1⋅x^i)=yi(wk−1⋅xi+bk−1)≤0.........(5)
假如樣本(xi,yi)被誤分類,則更新權重和偏置
wk=wk−1+ηyixibk=bk−1+ηyi
即
w^k=w^k−1+ηyix^i..........(6)
由式子4和6得
w^kw^opt=w^k−1⋅w^opt+ηyiw^opt⋅x^i≥w^k−1⋅w^opt+ηγ..........(7)
因此可得w^k和w^k−1之間的遞推式,從而有
w^kw^opt≥w^k−1⋅w^opt+ηγ≥w^k−2⋅w^opt+2ηγ≥...≥kηγ..........(8)
令R=1≤i≤Nmax∣∣xi∣∣,又由式子5和6推得
∣∣w^k∣∣2=∣∣w^k−1∣∣2+2ηyiw^k−1⋅x^i+η2∣∣x^i∣∣2≤∣∣w^k−1∣∣2+η2∣∣x^i∣∣2≤∣∣w^k−1∣∣2+η2R2≤∣∣w^k−2∣∣2+2η2R2≤...≤kη2R2..........(9)
結合8和9,得到
kηγ≤w^k⋅w^opt≤∣∣w^k∣∣∣∣w^opt∣∣≤kηR
於是
k≤(γR)2..........(10)
根據10,我們知道誤分類次數k是有上界的,也就是說經過有限次分類我們一定能找到將訓練數據完全分開的超平面。
3. 感知機對偶形式
假設w和b初始值均爲0,對於誤分類點通過w=w+ηyixi和b=b+ηyi逐步修改,設修改N次,則最後學習到的w和b分別是
w=i=1∑Naiyixib=i=1∑Naiyi
其中ai=niη,ni表示第i個實例點由於被誤分而更新的次數。則我們的感知機模型可以表示爲f(x)=sign(j=1∑Najyjxj⋅x+b)
感知機算法的對偶形式總結如下:
- 初始化a=0,b=0
- 遍歷訓練集,如果當前樣本yi(j=1∑Najyjxj⋅x+b)≤0,則更新ai=ai+η,b=b+ηyi
- 重複2直至沒有誤分類數據。
由於訓練過程中需要不停地計算內積,因此可以先將訓練實例的內積計算出來並以矩陣的形式存儲,這個矩陣被稱爲Gram矩陣。
4.感知機的缺點
- 在數據集線性可分時,感知器雖然可以找到一個超平面把兩類數據分開,
但並不能保證能其泛化能力。
- 感知器對樣本順序比較敏感。每次迭代的順序不一致時,找到的分割超平
面也往往不一致。
- 如果訓練集不是線性可分的,就永遠不會收斂
5.感知機的幾個變形
5.1 投票感知機
投票感知器記錄第k 次更新後得到的權重wk 在之後的訓練過程中正確分類樣本的次數ck 。這樣最後的分類器形式爲:
y=sgn(k=1∑Kcksgn(wkTx))
投票感知機需要保存K個權重向量,帶來額外開銷。
5.2 平均感知機
爲了降低開銷,對投票感知機的式子進行簡化,得到
y=sgn(k=1∑K(ckwk)Tx)=sgn(wˉTx)