PLA停止的条件:找到一条“best”的直线可以把圆圈和叉叉完美的分开。
这就要求资料data是线性可分的(linear separability),否则PLA永远也不会停下来。
接下来假设D线性可分,那么PLA什么情况会停下来(halt)呢?
假设wf是“perfect”的:
上面的公式含义:两个向量的内积几何意义是,一个向量在另一个向量上投影的长度。所以就是平面上的某一个点x到“红蓝分界线”的距离(是分正负的),前面的yn就是用来调整正负号的,可以保证距离都是正的满足>0。哪怕是最小的min也肯定满足>0,所以其他的点到“红蓝分界线”的距离一定都会>0。
影响PLA是否停下从两个方面来考虑:
1.wt和wf两个向量的内积越来越大,一定程度上表示两个变量越来越接近。但需要注意,两个变量的内积大小不是判断是否接近的充分条件,还需要考虑两个变量的长度变化。
2.比较||w(t+1)||和||w(t)||
两个变量的内积:
wt和wf的内积每一次更新之后都会增大,可能两个变量越来越接近了(内积的大小不能完全确定)。
||wt||大小
||w(t+1)||和||w(t)||的平方差最大的时候是max||xn||的平方,并不是很显著的大了很多,所以每次更新之后的长度变化并不会特别大。
上面的yn是灰色的,因为y取值{-1,+1}取平方之后没什么区别,可以直接将||ynxn||写成||xn||。
注意点:第一部分的内积大小是满足“线性可分”条件下的公式;第二部分的向量长度是“PLA只会在有mistake的时候继续循环”的条件下。
上面提到过向量的内积并不能确定是否越来越接近,但是正规化之后的两个向量如果内积越来越大就一定是越来越接近。
向量正规化之后的内积最大是1,不可能超过1。
从w0=0,经过T次错误修正。
怎么得到常数的表达式呢?我看了博客园的一篇推导过程笔记,我在推算过程中有一点不一样,也希望大家帮我纠错。
课后习题推导
推导过程如下:
需要用到一个关于循环次数T的公式,如下图
more about PLA
只要满足“线性可分”和“存在错误需要修正”的条件,
1.wf和wt的内积会增加的很快;wt的长度会增加的比较缓慢。
2.w(PLA)越来越接近wf(和wf几乎成为一条线)时,循环就会停止。
PLA的优缺点:
优点:很快速,无论是多少维的数据都可以。
缺点:PLA使用的前提是“线性可分”,但是很难确定是否“线性可分”;T<=R的平方/ρ的平方,ρ取决于wf,所以循环的次数T是取决于wf的(wf是未知的)
噪声数据(noisy data)
当存在噪声数据时要怎么找到“最好的”那条线呢?
首先假定噪声很小:yn=f(xn)在大多数情况下都满足
然后,g≈f on D 等价于yn=g(xn)在大多数的情况下都满足
存在噪声数据,找不到“完全没有错误”的直线,那么就找“错误最少”的直线当做是“最好”的。
但是这种方法很难实现!!下面介绍一种针对“noisy data”的方法。
pocket algorithm
大致的过程和PLA是相同的,只是在PLA循环的过程中会找到一个我们觉得“最好”的w装在口袋里,再次遇到“更好的”和之前的“我们认为最好的”进行比较,留下“错误更少的”放在口袋里。