1. 程式人生 > >感知機對偶形式手算過程

感知機對偶形式手算過程

李航《統計學習方法》第二章

 

 手算過程開始

符號說明:(A,B)表示A與B的內積 

首先\alpha _{i}都是0,因為每個都沒有誤分,因此b=\alpha_{i}*y_{i}=0*1+0*1+0*-1=0,所以這就是表2.2的第一列

接著,就是進入迭代過程,首先計算第一個點

\\y_{i}(\sum \alpha yx_{i} *x_{j}+b)\\=1*(0*1*(3,3)+0*1*(4,3)+0*-1*(1,1),(3,3))+0\\=0

那麼就出現誤分類,則此時\alpha_{1}=1,\alpha_{2}=0,\alpha_{3}=0,而b=1*1+0*,+0*-1=1,這就是表2.2的第二列

接著進行判斷,第二個點,發現沒有誤分類,進行判斷第三個點

\\y_{i}(\sum \alpha yx_{i} *x_{j}+b)\\=-1*((1*1*(3,3)+0*1*(4,3)+0*-1*(1,1),(1,1))+1)\\=-1*(((3,3),(1,1))+1)\\=-(6+1)\\=-7<0 

因此該點為誤分類點,此時\alpha_{1}=1,\alpha_{2}=0,\alpha_{3}=1,而b=1*1+0*,+1*-1=0,這就是表2.2的第三列

接著進行判斷該樣本是否被正常分類

\\y_{i}(\sum \alpha yx_{i} *x_{j}+b)\\=-1*((1*1*(3,3)+0*1*(4,3)+1*-1*(1,1),(1,1))+0)\\=-1*(((2,2),(1,1))+0)\\=-(4+0)\\=-4<0

 

因此該點 仍為誤分類點,此時 \alpha_{1}=1,\alpha_{2}=0,\alpha_{3}=2,而b=1*1+0*,+2*-1=-1,這就是表2.2的第四列 

因為這個點仍然沒有被分類正確,所以接著還進行判斷該點,

\\y_{i}(\sum \alpha yx_{i} *x_{j}+b)\\=-1*((1*1*(3,3)+0*1*(4,3)+2*-1*(1,1),(1,1))-1)\\=-1*(((1,1),(1,1))-1)\\=-(2-1)\\=-1<0 

因此該點仍然被錯分,此時\alpha_{1}=1,\alpha_{2}=0,\alpha_{3}=3,而b=1*1+0*,+3*-1=-2,emm,電子版這裡出錯了,紙質版沒問題,下面是紙質版的表格,,手打出來

k 0 1 2 3 4 5 6 7
    x_{1} x_{3} x3 x3 x1 x3 x3
\alpha_{1}

0

1 1 1 1 2 2 2
\alpha_{2}
0 0 0 0 0 0 0 0
\alpha_{3} 0 0 1 2 3 3 4 5
b 0 1 0 -1 -2 -1 -2 3

這才是對的,和我算的一致。後面的部分不算了,就這個意思。至於書上說Gram矩陣是幹什麼的,我的理解是程式設計時候,先算出來,然後進行計算內積的時候,不用先相加在算內積,而是先算內積再相加,這樣能減少計算過程。