机器学习基石笔记-Lecture 2 Perceptron learning algorithm

感知机学习,从二分类问题引入。

perceptron的思想其实来自于神经元。当刺激超过某一阈值时,神经元被激活。

把刺激程度表示为变量的线性组合,与阈值比较,确定分类。

对h(x)的形式简化

形如上式的h(x)的全体就是一个假设集合H.

接下来的需要使用一种演算法找出H里面最好的h来模拟真实的分类函数f。

 

感知机学习算法 PLA

 

PLA对犯错的点进行学习,修正系数w,直到全部点分类正确。

如果数据不是线性可分的,按照这种方法显然PLA会不断迭代下去。

 

如果数据线性可分,那么PLA一定会停止。证明如下:

随着迭代,w_t 与 真实的w_f的内积越来越大,但是这种增大可能也有 w_t本身模变大的原因。

其实我们想考察的是 w_t 与 w_f的角度是不是越来越小(那么它们就越来越接近),作为分隔平面的法向量而且已经没有了常数项,只关心方向就好。

由上面两张图,迭代推导后相除其实可以得到

随着迭代次数的增多,左式增加,而左式单位向量的内积小于等于1,说明存在足够大的T,使得T次迭代后算法收敛。

 

对于存在噪声的数据集,或许本来线性可分的就变得不可分了,那么PLA还能使用吗?

虽然PLA做不到对非线性可分数据集完全的正确划分,但是可以在一定的容错率下找到一条最优的线。

pocket的方法与正统PLA的区别就在于第三步,不是每一次都更新w,而是确定这一次比上一次的错误率低时才更新。并且设定了最大迭代次数。

 

posted @ 2017-06-20 14:28  Akane  阅读(156)  评论(0编辑  收藏  举报