感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。
感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,导入基于误分类的损失函数,利用梯度
下降法对损失函数进行极小化求得感知机模型。
2.1 感知机模型
定义(感知机):假设输入空间(特征空间)是X属于R,输出空间是 Y={+1,-1}。输入x属于X表示实例的特征向量,对应于输入空间(特征空间)的点;输出y属于 Y表示实例的类别。由输入空间到输出空间的如下函数
f
(x)=sign(w*x+b)
其中,w和b为感知机模型参数,w叫作权值(weight)或权值向量(weightvectot) b叫作偏置(bias).
![](https://i-blog.csdnimg.cn/blog_migrate/bcb77209169faf6f0149c1480a4136d7.png)
感知机是一种线性分类模型,属于判别模型.感知机模型的假设空间是定义在特征空间中的所有线性分类模型(linear classification model)或线性分类器(linear classifier),即函数集合{f|f(x)=w*x+b}。
2.2 感知机学习策略
数据集的线性可分性:如果存在某个超平面S: w*x+b=0能够将数据集的正实例点和负实例点完全正确地划分到超平面的两侧,则称数据集为线性可分数据集(linearly aeparahle data sec);否则,称数据集线性不可分。
感知机学习策略:为了找出这样的超平面,即确定感知机模型参数w,b。需要确定一个学习策略,即定义(经验)损失函数并将损失函数极小化。
损失函数:误分类点到超平面S的总距离。
![](https://i-blog.csdnimg.cn/blog_migrate/2382ad956d999bf764e55e240956a010.png)
2.3 感知机学习算法
感知机学习问题转化为求解损失函数的最优化问题,最优化的方法是随机梯度下降法.感知机学习的具体算法包括原始形式和对偶形式。
感知机学习算法的原始形式:
损
失函数极小化问题
![](https://i-blog.csdnimg.cn/blog_migrate/94040b23d201960841661cb7ba74a4f4.png)
采用随机梯度下降法(( stochastic gradient descent)。
![](https://i-blog.csdnimg.cn/blog_migrate/4ec3beaca5ec40c2ea048fb235d2a3c9.png)
感知机学习算法由于采用不同的初值或选取不同的误分类点,解可以不同
算法的收敛性:
![](https://i-blog.csdnimg.cn/blog_migrate/6e869473b699a5c4038bb50dea8b34ce.png)
(1) 存在满足条件||w^opt||=1,的超平面将训练数据集完全正确分开:且存在 r>0,对所有i=1,2,..
![](https://i-blog.csdnimg.cn/blog_migrate/19ce4932036658d1c0829aa2ee6f002d.png)
(2) 令R=max||xi||,则感知机算法2.1在训练数据集上的误分类次数k满足不等式,
![](https://i-blog.csdnimg.cn/blog_migrate/7d4c19c8aa812dadba2b9d866172270c.png)
定理表明,误分类的次数k是有上界的,当训练数据集线性可分时,感知机学习算法原始形式迭代是收敛的。但是感知机学习算法存在许多解,这些解既依赖于初值的选择,也依赖于迭代过程中误分类点的选择顺序。当训练集线性不可分时,感知机学习算法不收敛,迭代结果会发生震荡。
感知机学习算法的对偶形式:
对偶形式的基本想法是:将w和b表示为实例xi和标记yi的线性组合的形式,通过求解其系数而求得w和b。
设初始值为0,N次更新后为:
![](https://i-blog.csdnimg.cn/blog_migrate/e1ba566b5d65710afa3a45f2fdecbe4b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7921df73542dc1814818f25df7b4ed0a.png)
对偶形式中训练实例仅以内积的形式出现。为了方便,可以预先将训练集中实例间的内积计算出来并以矩阵的形式存储,这个矩阵就是所谓的Gram矩阵( Gram matrix )
习题
2.1Minsky 和 Papert 指出:感知机因为是线性模型,所以不能表示复杂的函数,如异或(XOR)。验证感知机为什么不能表示异或?
答:已知异或表示对于同一集合的两个元素(a, b),a和b相同则为0, 相异则为1,由此可以得到其运算关系:
- (0, 0) = (1, 1) = 0
- (0, 1) = (1, 0) = 1
可得图像 :
由图像可以看出,XOR的训练集线性不可分,而感知机模型并不能学习线性不可分函数(linear insparable function)
2.3 证明一下定理:样本集线性可分的充分必要条件是正实例点集和负实例点集所构成的凸壳互不相交。
这里给出比较精确的数学证明,主要参考凸优化相关理论。
答:
必要性: 假设样本集T线性可分,则存在一个超平面Wopt将数据集的正实例点和负实例点完全正确地划分到Wopt的两侧。显然两侧的点分别构成的凸壳不相交;
充分性: 假设存在两个凸壳A、B相交,且存在超平面(W)将A和B线性分割。令A在B的凸壳内部的点为a,因为线性可分,则A中不存在两点之间的连线与超平面(W)相交,而凸壳B中任意一点与A中的点的连线均与超平面(W)相交,则B内部的点a也与A中任一点之间的连线不与(W)相交,与A中不存在两点之间的连线与超平面小脚矛盾。故只有正负实例点所构成的两个凸壳不相交时样本集才线性可分。