感知机模型
2016-08-15 22:27
197 查看
首先看一个例子
上图显示IR2中两个类的20个数据点,这些数据可以被一个线性边界分隔开。前面几篇已经讲了分类的回归方法和LDA,对于这个例子,
橙色的是该问题的最小二乘法解,通过对X上的-1/1响应Y回归得到。
可以看到,这个解不能很好地解决这个问题,因为它错分了一个点。事实上,对于这个问题,LDA的解也就是最小二乘法的解(见上一篇)。
上图中两条蓝色的分隔线是以不同随机初始化的感知机学习算法找出的,可以看到,这里两类被正确分隔开。
感知学习算法(perceptron learning algorithm)试图通过极小化误分类点的函数间隔yi(xTiβ+β0)来找出分隔超平面。
如果相应y=1被误分类,则xTβ+β0<0,而对于被误分类的相应y=−1,则xTβ+β0>0,感知机的目标是极小化
D(β,β0)=−∑i∈Myi(xTiβ+β0)
其中M是误分类点的下标集合。这个量是非负的,并正比于误分类点到判定边界的距离。
梯度由
∂D(β,β0)∂β=−∑i∈Myixi
∂D(β,β0)∂β0=−∑i∈Myi
感知机算法使用随机梯度下降法极小化该准则,这意味着不是每次计算所有误分类数据的梯度和,而是每访问一个误分类观测之后就在该方向上前进一个步长。
因此,按照某种次序访问误分类的观测,并使用下式更新参数β
β=β+ρyixi
这里把β0对应的x的分量看成固定的1。
这里ρ是学习率,在这里我们取1。
可以证明,如果类是线性可分隔的,在有限步后,算法收敛于一个分离超平面,如上图中的两条蓝色分隔线。
具体的,考虑如下问题(统计学习基础4.6):
假定IRp中有N个点xi,这些点具有类标号yi∈{−1,1},现在证明算法在有限步收敛到分隔超平面。
记分隔超平面为βTx∗=0,其中x∗=(x,1),β=(β1,β0)。设zi=x∗i/||x∗i||,
由分隔超平面的性质我们可以得到
yiβTxi>0
所以可以得到
yiβTzi>0
取yiβTzi中的最小值m,根据m的定义我们可以得到
yiβTzi>=m
所以yi(1mβT)zi>=1
在这里定义
βsep=(1mβT),所以说存在βopt对于任意z,我们有
yiβsepzi>=1
给定当前的\beta_{old},感知机算法之别处z_i被误分类,并产生更新
βnew=βold+yizi
两边同时减去\beta_{sep},然后平方得到
||βnew−βsep||2=||βold−βsep||2+y2i||zi||2+2yi(βold−βsep)Tzi
其中,y2i||zi||2=1,又因为是误分类点,所以
2yi(βold−βsep)Tzi=2yiβToldzi−2yiβTsepzi<=(0−1)=−2
所以我们可以得到
||βnew−βsep||2<=||βold−βsep||2−1
所以我们可以得出结论,
感知机算法在不超过||betastart−βsep||2步收敛到分离超平面。
感知机模型存在一些问题:
1.当数据可分时,存在很多解,并且找到哪个解依赖于初值。
2.”有限步”的步数可能很大。间隔越小,所需时间越长。
3.当数据不可分时,算法不收敛,并周期变化。该周期很可能很长,因此难以检测。
上图显示IR2中两个类的20个数据点,这些数据可以被一个线性边界分隔开。前面几篇已经讲了分类的回归方法和LDA,对于这个例子,
橙色的是该问题的最小二乘法解,通过对X上的-1/1响应Y回归得到。
可以看到,这个解不能很好地解决这个问题,因为它错分了一个点。事实上,对于这个问题,LDA的解也就是最小二乘法的解(见上一篇)。
上图中两条蓝色的分隔线是以不同随机初始化的感知机学习算法找出的,可以看到,这里两类被正确分隔开。
感知学习算法(perceptron learning algorithm)试图通过极小化误分类点的函数间隔yi(xTiβ+β0)来找出分隔超平面。
如果相应y=1被误分类,则xTβ+β0<0,而对于被误分类的相应y=−1,则xTβ+β0>0,感知机的目标是极小化
D(β,β0)=−∑i∈Myi(xTiβ+β0)
其中M是误分类点的下标集合。这个量是非负的,并正比于误分类点到判定边界的距离。
梯度由
∂D(β,β0)∂β=−∑i∈Myixi
∂D(β,β0)∂β0=−∑i∈Myi
感知机算法使用随机梯度下降法极小化该准则,这意味着不是每次计算所有误分类数据的梯度和,而是每访问一个误分类观测之后就在该方向上前进一个步长。
因此,按照某种次序访问误分类的观测,并使用下式更新参数β
β=β+ρyixi
这里把β0对应的x的分量看成固定的1。
这里ρ是学习率,在这里我们取1。
可以证明,如果类是线性可分隔的,在有限步后,算法收敛于一个分离超平面,如上图中的两条蓝色分隔线。
具体的,考虑如下问题(统计学习基础4.6):
假定IRp中有N个点xi,这些点具有类标号yi∈{−1,1},现在证明算法在有限步收敛到分隔超平面。
记分隔超平面为βTx∗=0,其中x∗=(x,1),β=(β1,β0)。设zi=x∗i/||x∗i||,
由分隔超平面的性质我们可以得到
yiβTxi>0
所以可以得到
yiβTzi>0
取yiβTzi中的最小值m,根据m的定义我们可以得到
yiβTzi>=m
所以yi(1mβT)zi>=1
在这里定义
βsep=(1mβT),所以说存在βopt对于任意z,我们有
yiβsepzi>=1
给定当前的\beta_{old},感知机算法之别处z_i被误分类,并产生更新
βnew=βold+yizi
两边同时减去\beta_{sep},然后平方得到
||βnew−βsep||2=||βold−βsep||2+y2i||zi||2+2yi(βold−βsep)Tzi
其中,y2i||zi||2=1,又因为是误分类点,所以
2yi(βold−βsep)Tzi=2yiβToldzi−2yiβTsepzi<=(0−1)=−2
所以我们可以得到
||βnew−βsep||2<=||βold−βsep||2−1
所以我们可以得出结论,
感知机算法在不超过||betastart−βsep||2步收敛到分离超平面。
感知机模型存在一些问题:
1.当数据可分时,存在很多解,并且找到哪个解依赖于初值。
2.”有限步”的步数可能很大。间隔越小,所需时间越长。
3.当数据不可分时,算法不收敛,并周期变化。该周期很可能很长,因此难以检测。
相关文章推荐
- 感知机模型
- 感知机模型
- 感知机模型原始问题与对偶问题对比
- python 实现 Peceptron Learning Algorithm ( 二) 感知机模型实现
- python 实现 Peceptron Learning Algorithm ( 三) 感知机模型应用于Iris数据集
- TensorFlow上实现MLP多层感知机模型
- 机器学习:感知机模型
- 统计学习笔记(2)——感知机模型
- python 实现 Peceptron Learning Algorithm ( 二) 感知机模型实现
- python 实现 Peceptron Learning Algorithm ( 三) 感知机模型应用于Iris数据集
- 感知机模型学习笔记及Python实现
- 统计学习方法 2-感知机模型
- 感知机模型理解和实现
- python 实现 Peceptron Learning Algorithm ( 二) 感知机模型实现
- python 实现 Peceptron Learning Algorithm ( 三) 感知机模型应用于Iris数据集
- [笔记-统计学习方法]感知机模型(perceptron) 原理与实现
- 感知机模型
- 整理:统计学习-2 感知机知识准备(模型类型、超平面与梯度下降法)
- python 实现 Peceptron Learning Algorithm ( 二) 感知机模型实现
- 使用感知机训练加法模型