感知机是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,去+1和-1值。
感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型
感知机模型是基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,
感知机学习算法分为原始形式和对偶形式。
数据集的线性可分性:如果存在某个超平面S,能够将数据集的正实例和负实例正确二的划分到超平面的两侧,则称数据集是可分数据集,否则,为线性不可分。
当训练数据集线性可分时,感知学习算法是收敛的,并且存在无穷多个解,其解由于不同的初值或不同的迭代顺序二可能有所不同。
1、感知机模型
定义:假设输入空间是X∈R,输出空间是Y={+1,-1}输入x∈X表示实例的特征向量,对应于输入空间的点输出y∈Y表示实例的类别,有输入到输出空间的函数如下:
f(x)=sign(w·x+b)
称为感知机,其中w,b为感知机模型参数,w叫做权值或权值向量,b叫作偏置,sign是符号函数,即
Sign(x)={+1,x>=0;-1 x<0}
几何定义
线性方程 w·x+b=0 对应于特征空间中的一个超平面S,其中w是超平面的法向量,b是超平面的截距,这个超平面将特征空间划分为两个部分,位于两部分的点(特征向量)分为正、负两类,超平面S称为分离超平面。
2、感知机学习策略
假设训练数据集是线性可分的,感知机学习的目标是求得一个能够将训练数据集正实例点和负实例点完全正确分开的分离超平面,即确定感知机模型参数w,b,需要确定一个学习策略,即定义(经验)损失函数并将损失函数极小化。
损失函数的一个自然选择是误分类的总数,另一个选择是误分类点到超平面S的总距离,也是感知机所采用的,损失函数是用来估计衡量预测值与真实值的不一致程度。
给定数据集T={(x1,y1),(x2,y2)…,(xn,yn)},其中x∈X=R,y∈Y=(-1,+1)感知机sign(w·x+b)学习的损失函数并使最小化为
其中M是误分类点的集合,损失函数L(w,b)是非负的,如果没有误分类点,损失函数值为0.误分类点越少,误分类点离超平面越近,损失函数值越小,
3、感知机学习算法
感知机学习算法是误分类驱动的,采用随机梯度下降法。首先,任意选取一个超平面w0,b0,然后用梯度下降法不断地极小化目标函数,极小化过程中不是一次使M中所有误分类点的梯度下降,二是一次随机选取一个误分类点使其梯度下降。
3.1 感知机学习算法的原始形式
输入:训练数据集T={(x1,y1),(x2,y2)…,(xn,yn)},其中xi∈X=R,yi∈Y={-1,+1},N是步长,即学习率(0<n<=1)
输出:w,b;感知机模型f(x)=sign(w·x+b)
(1) 选取初值 w0,b0;
(2)在训练数据集中选取数据(xi,yi);
(3) 如果yi(w·xi+b)<=0,则
(4)转至步骤(2),直至训练集中没有误分类点。
算法解释:当一个实例点被误分类,即位于分离超平面的错误一侧时,则调整w,b的值,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面间的距离,直至超平面越过该误分类点使其被正确分类。
3.2 感知机学习算法的对偶形式
基本想法:将w,b表示为实例xi和标记yi的线性组合的形式,通过求解其系数而求得w,b。
输入:线性可分的数据集T={(x1,y1),(x2,y2)…,(xn,yn)},其中xi∈X=R,yi∈Y={-1,+1},N是步长,即学习率(0<n<=1)
输出:a,b;感知机模型
(1) a<-0,b<-0
(2) 在训练集中选取数据(xi,yi)
(3)如果
则
(4)转至步骤(2) 直到没有误分类数据。