第二章、感知机(perceptron)
关键词:二分类、线性分类器、判别模型
目录
- 2.1 感知机模型
- 2.2 感知机策略
- 2.3 感知机算法
2.1 感知机模型
1. 模型描述
假设输入空间(特征空间)X⊆R,输出空间为Y={+1,-1},输入x∈X表示实例的特征向量,对应于输入空间(特征空间)的点,输入y∈Y表示实例的类别,由输入到输出的如下函数:
成为感知机。
- w(weight vector):权值向量
- b(bias):偏置
- sign:符号函数
2. 几何解释
线性方程wx+b=0
定义了一个“分离超平面S”,其中w为该平面的法向量,b为平面的截距,S将特征空间划分为两个部分。
如果x是一维的,那么该超平面就是一个点。
如果x是二维的,那么该超平面就是一条线…
2.2 感知机策略
1. 数据集的线性可分性
给定一个DataSet T={{x1,y1},{x2,y2},{x3,y3},…},其中,xi∈X=Rn,yi∈Y={+1,-1},i=1,2,3…,如果存在某个超平面S能够将数据集的正实例和负实例完全正确的划分在S两侧,即对所有yi=+1,wxi+b>0,对所有yi=-1,wxi+b<0,则称数据集T为线性可分数据集。
2. 感知机的学习策略
首先想到的是误分类点的总数,但是它不是w和b的连续可导函数,不易最优化。
紧接着就容易想到每个点到超平面S的距离。
对于任意一个点x0,它到超平面S的距离为:
其中||w||为w的L2范数,也就是w的模(向量长度)。
对于一个误分类的点xi,都有-yi*(wx+b)>0
且|yi|=1
,因此,它们到超平面的距离为:
则对于所有误分类到超平面的距离之和为,M为所有误分类的点的集合:
因此,最终定义感知机学习的损失函数为:
ps. 点(x0,y0)到直线Ax+By+X=0的距离为:
2.3 感知机算法
1. 原始问题
- 最优化的问题:求解w和b,能够使
随机梯度下降(stochastic gradient descent):
极小化过程中,不是一次使M中所有的误分类点都梯度下降,而是一次随机选取一个误分类点进行梯度下降。
损失函数的梯度为:
随机选取一个误分类点(xi,yi):
其中,η(0<η<=1)为学习率
感知机学习算法的原始描述
输入:训练集T={{x1,y1},{x2,y2},{x3,y3}…},其中xi∈X=Rn,yi∈Y={+1,-1},i=1,2,3…;学习率η(0<η<=1)
输出:w,b;感知机模型f(x)=sign(wx+b)
算法描述
- ① 输入初始w,b
- ② 在训练集中选取(xi,yi)
③ 如果yi(wxi+b)<=0,则
④ 回到②,直到没有误分类点
2. 算法的收敛性
定义如下:
定理(Novikoff):设训练集T={{x1,y1},{x2,y2},{x3,y3}…},其中xi∈X=Rn,yi∈Y={+1,-1},i=1,2,3…,则
证明:
3. 对偶问题
初始w0=0,b0=0,由
设w和b关于一个实例xi和yi的增量分别为αiyixi和αiyi,其中
因此,最终
感知机学习算法的对偶形式:
输入:训练集T={{x1,y1},{x2,y2},{x3,y3}…},其中xi∈X=Rn,yi∈Y={+1,-1},i=1,2,3…;学习率η(0<η<=1)
输出:α,b;感知机模型
算法描述
- ① α←0,b←0
- ② 随机选择一个xi,yi
③ 如果yif(xi)<=0,则:
- ④ 回到②,直到没有误分类点