机器学习入门之感知机

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,直到没有误分类数据。

以上是关于机器学习入门之感知机的主要内容,如果未能解决你的问题,请参考以下文章

02-03 感知机对偶形式(鸢尾花分类)

机器学习-感知机

2-5 感知机 - 对偶形式 - 学习模型的推导

感知机 - 对偶形式

原始感知机入门——python3实现

机器学习基础从感知机到支持向量机&支持向量机的多分类方法