PLA感知机
基本原理
输入特征向量x,有n个特征,每个特征有 w i ( 1 < = i < = n ) w_i(1<=i<=n) wi(1<=i<=n),即输出为 w T x w^Tx wTx,若大于阈值,则输出1,小于阈值,则输出-1。若阈值设为 w 0 w_0 w0
模型表达式 h ( x ) = s i g n ( ∑ i = 1 n w i x i − w 0 ) = s i g n ( ∑ i = 1 n w i x i − w 0 ( 1 ) ) = s i g n ( ∑ i = 0 n w i x i ) h(x)=sign(\sum_{i=1}^{n}w_ix_i-w_0)=sign(\sum_{i=1}^{n}w_ix_i-w_0(1))=sign(\sum_{i=0}^{n}w_ix_i) h(x)=sign(∑i=1nwixi−w0)=sign(∑i=1nwixi−w0(1))=sign(∑i=0nwixi)
Perceptron Learning Algorithm
基本思想:数据集可以被线性可分,先选取初始的系数 w 0 w_0 w0,先选取第一个错误的点,对参数进行更新,即 w t + 1 = w t + y i ( t ) x i ( t ) w_{t+1}=w_t+y_{i(t)}x_{i(t)} wt+1=wt+yi(t)xi(t)。更新后,再选取第二个,第三个错误的点,直到所有的点都被修正后,就得到最好的直线。这种“逐步修正”,就是PLA的思想所在。
x i ( t ) x_{i(t)} xi(t)第t次修正下, x i x_i xi的值,且其值为列向量
更正原理:如果一个点为正的,即y为1,而错误的分类为负的,对这个点进行修正。对于此点: w i ( t ) T x i ( t ) < 0 ( 0 < = i < = n ) w_{i(t)}^Tx_{i(t)}<0(0<=i<=n) wi(t)Txi(t)<0(0<=i<=n),由于点乘内积关系,即向量 w i w_i wi与向量 x i x_i xi相差大于90度,而对于直线 y = w i x y=w_ix y=wix来说, w i w_i wi是直线y的法向量,则,点 x i x_i xi被误分为直线的下方,经过一次或几次参数更新 w t + 1 = w t + y i ( t ) x i ( t ) w_{t+1}=w_t+y_{i(t)}x_{i(t)} wt+1=wt+yi(t)xi(t)后,使得分类错误的点得到修正。
w t + 1 = w t + y i ( t ) x i ( t ) w_{t+1}=w_t+y_{i(t)}x_{i(t)} wt+1=wt+yi(t)xi(t)是向量的加法
错误分类成正的,也同理,因为y变成了-1
Guarantee of PLA
PLA只会在线性可分的情况下停止更新,在非线性可分的情况下不会停止。
有限次数更新原理:
如果有一条直线可以线性可分,此时参数为 w f w_f wf,则 y i ( t ) w f ( t ) T x i ( t ) > = m i n n y n w f ( t ) T x n ( t ) > 0 y_{i(t)}w_{f(t)}^Tx_{i(t)}>=min_ny_nw_{f(t)}^Tx_{n(t)}>0 yi(t)wf(t)Txi(t)>=minnynwf(t)Txn(t)>0
PLA中 w f T w t + 1 w_f^Tw_{t+1} wfTwt+1越来越大,就表示两者在接近,证明PLA是有学习效果的
w f T w t + 1 = w f T ( w t + y n ( t ) x n ( t ) ) > = w f T w t + m i n n y n w f ( t ) T x n ( t ) > w f T w t + 0 w_f^Tw_{t+1} = w_f^T(w_{t}+y_{n(t)}x_{n(t)})>=w_f^Tw_{t}+min_ny_nw_{f(t)}^Tx_{n(t)} >w_f^Tw_{t}+0 wfTwt+1=wfT(wt+yn(t)xn(t))>=wfTwt+minnynwf(t)Txn(t)>wfTwt+0
但是也有可能是由于模变长了,故而证明 w t + 1 w_{t+1} wt+1和 w t w_t wt的模关系
∣ ∣ w t + 1 ∣ ∣ 2 = ∣ ∣ w t + y i ( t ) x i ( t ) ∣ ∣ = ∣ ∣ w t ∣ ∣ 2 + 2 y n ( t ) w t T x n ( t ) + ∣ ∣ y n ( t ) x n ( t ) ∣ ∣ 2 < = ∣ ∣ w t ∣ ∣ 2 + m a x n ∣ ∣ y n x n ∣ ∣ 2 ||w_{t+1}||^{2} = ||w_t+y_{i(t)}x_{i(t)}|| = ||w_t||^2+2y_{n(t)}w_t^Tx_{n(t)}+||y_{n(t)}x_{n(t)}||^2<=||w_t||^2+max_{n}||y_nx_n||^2 ∣∣wt+1∣∣2=∣∣wt+yi(t)xi(t)∣∣=∣∣wt∣∣2+2yn(t)wtTxn(t)+∣∣yn(t)xn(t)∣∣2<=∣∣wt∣∣2+maxn∣∣ynxn∣∣2
故而增量是有限的,向量的长度差别不会太大
设初始权重为
w
0
w_0
w0,经过T次修改后,有如下结论:
即PLA会停止下来,(T)有上界。
Non-Separable Data
但是在实际中,是很难完全,线性可分的,有部分噪声点,故更新公式为
w t + 1 = a r g m a x w ∑ i = 1 n y n ≠ s i g n ( w T x n ) w_{t+1}=argmax_w\sum_{i=1}^{n}{y_n≠sign(w^Tx_n)} wt+1=argmaxw∑i=1nyn=sign(wTxn)
修改后的PLA被称为Packet Algorithm,与PLA基本类似。相处时化 w 0 w_0 w0,在逐个点更新,更新w时,得到一条新的直线,在计算其对应的分类错误点时,与之前错误点个数相比,谁少取谁。