机器学习入门之感知机
Posted Jarlene
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习入门之感知机相关的知识,希望对你有一定的参考价值。
感知机
感知机是二类分类线性分类模型,输出的值为+1, -1两种类型;感知机是利用超平面将两类分离,再次我们将通过三个方面对感知机进行详细的阐述。分别是感知机模型,感知机学习策略,感知机学习算法。
感知机模型
假设输入空间(特征空间)是X∈Rn,输出空间是Y=+1, -1。输入x∈X表示实例特征向量。对应于输出空间(特征空间)的点:输出y∈Y表示实例类别,由输入空间到输出空间的如下函数:
f(x) = sign(w*x+b)
称为感知机。其中w和b是感知机模型参数。w是权值,b是偏置。感知机是一种线性分类模型,属于判别模型。感知机有如下几何解释:线性方程:
w*x+b=0
对应于特征空间Rn 中的一个超平面S,其中w是超平面的法向量,b是超平面的截距。
对于一个给定的数据集T=(x1,y1), x2,y2,…..,xN,yN,如果存在某个超平面S:
w*x+b=0
能够将数据集的正实例和负实例完全正确的划分到超平面的两侧,则称数据集T是线性可分数据集,否则称线性不可分数据集。
感知机学习策略
为了能够寻找到将数据集正负实例完全正确分离的超平面,即确定模型参数w和b,需要一个学习策略,即定义一个损失函数,并将损失函数极小化。损失函数的一个自然选择是误分类点的总数。但是这样的损失函数对w和b不是连续可导函数,不易优化。损失函数的另一个选择是误分类点到超平面S的总距离。
单个点x0到超平面S的距离是:
对于误分类来说,-yi(w*xi+b)>0。因此误分类点到超平面S的距离
假设超平面S误分类点集合为M,则总距离:
因此,感知机sign(wx+b)的损失函数可以简写为:
其中M是误分类点集合,这个损失函数称为感知机经验风险函数。
感知机学习算法
从上面可以,感知机学习问题转化为求解损失函数最优化问题,最优化的方法是随机梯度下降法。感知机学习算法有两种形式:原始形式和对偶形式。在训练数据线性可分的条件下,感知机学习算法是收敛的。
原始形式
在给定训练数据集T=(x1,y1), x2,y2,…..,xN,yN,我们可以通过求参数w和b使得:
最小。其中M是误分类点。
感知机学习算法是误分类数据驱动的,采用随机梯度下降法,即随机选取一个超平面w0和b0,使用梯度下降法对损失函数进行极小化。极小化不是一次使得所有M集合误分类点梯度下降,而是一次随机选取一个点使其梯度下降。
假设M集合是固定,那么损失函数的梯度为:
随机一个选取一个误分类点(xi, yi)对w和b进行更新。
η(0<=η<=1)是步长,统计学习中称为学习率。通过不断迭代,损失函数不断减小,直到为0。
具体步骤:
1、 随机选取w0和b0
2、 在训练数据中选取(xi,yi)
3、 如果yi(w*xi+b) <= 0
4、 转2,直到训练数据中,没有误分类点。
感知机学习算法直观的解释如下:
当一个实例点被误分类时,即位于分离超平面错误的一边,则调整w和b使得超平面想误分类点一侧移动,减少误分类点到超平面的距离。直到超平面越过该误分类点,被正确分类。
对偶形式
对偶形似的基本想法是:将w和b表示实例xi和标记yi的线性组合形式,通过求解器系数的到w和b。在原始形式中,通过
逐步修改w和b,假设修改了n次,则w和b关于(xi, yi)的增量分别是aixiyi和aiyi,这里的ai=niη。最后学习到的w和b是:
其中ai > =0, i =1,2,….,N。当时,表示第i个实例有误分类而进行更新的次数。实例点更新次数越多,则它里超平面的距离就越近,也就越难正确分类。
具体步骤:
输入:线性可分数据集T=(x1,y1), x2,y2,…..,xN,yN,学习率η(0<=η<=1)
输出:a,b;感知机模型:
,其中a=(a1,a2,…..aN)T
1、 a=0、b=0;
2、 在训练数据中选取(xi,yi)
3、 如果
4、转到2,直到没有误分类数据。
以上是关于机器学习入门之感知机的主要内容,如果未能解决你的问题,请参考以下文章