證明:經過有限次迭代,可以得到一個將線性可分的訓練數據集完全正確劃分的分離超平面及感知機模型
當訓練數據集線性不可分時,算法不收斂
假設前提:
- 所有訓練數據點都線性可分的
- 初值(w0,b0)=0
證明前的一些定義
(1)令
w^=(wT,b)T 向量一般默認爲列向量x^=(x,1)
則
w^⋅x^=w⋅x+b
(2)
所有訓練數據點都線性可分
⇒∃一個超平面,使得所有訓練數據集都被正確劃分
令這個超平面爲
w^opt⋅x^=0且∣∣w^opt∣∣=1(15)
(3)令
γ=mini{yi(w^opt⋅x^i)}(1)
(4)令w^k爲更新了k次之後的w^
(5)令
R=max1≤i≤n∣∣x^i∣∣(10)
證明過程
超平面w^opt⋅x^=0將所有數據都完全正確的分開
⇒∀(x^i,yi),有yi與w^opt⋅x^i符號相同,且兩者都不爲0
⇒∀(x^i,yi),有yi(w^opt⋅x^i)>0
以上結論結合公式(1)得:
yi(w^opt⋅x^i)≥γ>0(2)
假設算法已經更新了k次,則至少有一個樣本點在超平面w^k−1⋅x^=0上分類錯誤
假設(xi,yi)就是這個分類錯誤的點,則
yi(w^k−1⋅x^i)<0(9)
且:
{wk=wk−1+ηyixibk=bk−1+ηyi(3)
計算w^k與w^k−1的關係:
w^k=(wk,bk)=(wk−1+ηyixi,bk−1+ηyi)=(wk−1,bk−1)+(ηyixi,ηyi)=w^k−1+ηyi(xi,1)=w^k−1+ηyix^i
得到:
w^k=w^k−1+ηyix^i(4)
Note: 由公式(3)推公式(4)本來很簡單,之前一直推不出來是因爲我把公式(4)ηyix^i當成了一個數,用numpy裏面向量和數值相加的公式來算公式(4)。實際上ηyix^i也是一個n+1的向量,應該使用向量的加法來計算公式(4)。
證明w^k⋅w^opt≥kηγ:
w^k⋅w^opt=(w^k−1+ηyix^i)⋅w^opt(5)
=w^k−1⋅w^opt+ηyix^i⋅w^opt()
≥w^k−1⋅w^opt+ηγ(6)
≥w^k−2⋅w^opt+2ηγ
⋯()
≥w^0⋅w^opt+kηγ
≥kηγ(7)
公式說明:
- 步驟(5):由公式(4)得到
- 步驟(6):由公式(2)得到
- 步驟(7):假設初值(w0,b0)=0?
最終得到:
w^k⋅w^opt≥kηγ(8)
證明∣∣w^k∣∣2≤kη2R2:
∣∣w^k∣∣2=∣∣w^k−1∣∣2+2w^k−1ηyix^i+(ηyix^i)2(11)
<∣∣w^k−1∣∣2+0+η2x^i2(12)
≤∣∣w^k−1∣∣2+η2R2(13)
≤∣∣w^k−2∣∣2+2η2R2
⋯
≤∣∣w^0∣∣2+kη2R2(13)
≤kη2R2
公式說明:
- 步驟(11):結合公式(4)得到
- 步驟(12):結合公式(9)得到第二項小於,第三項中yi2=1
- 步驟(13):結合公式(10)得到
最終得到:
∣∣w^k∣∣2≤kη2R2(14)
公式(8)⇒kηγ≤w^k⋅w^opt
⇒k2η2γ2≤∣∣w^k∣∣2∣∣w^opt∣∣2
⇒k2η2γ2≤∣∣w^k∣∣2≤η2R2(16)
⇒k≤(γR)2
公式說明:
- 步驟(16):結合公式(15)
最終結論:
k≤(γR)2
命題得證