统计学习(一)感知机

一、 什么是感知机?

感知机是二分类的线性分类模型,是神经网络和支持向量机的基础,是结合了生物学的一种机器仿生结构,学过生物的同学都记得我们动物是通过神经元传递信息,成千上万的神经元错综组合构成了复杂庞大的神经网络系统,我们让机器模仿这个过程于是构成了人工的神经网络系统Artificial Neural Networks,简称ANN。在这个基础上进行深入研究得到了我们庞大的深度学习知识系统。

感知机对我们学习机器学习以及后面的深度学习都起着至关重要的作用,如下为一个感知机的示意图。
在这里插入图片描述
其中x0到x3都为数据的4个特征,w0到w3为模型的权重值,感知机接收到4个特征信息并通过对应的函数f(x)输出一个特征表达信息,然后这个结果可以为数据的标签,这个函数f(x)在神经网络中称为激活函数,上图中x0=1,所以我们可以直接得到一个很简单的表达关系

y=kx+b

是不是像极了小学学的一元一次方程,然后多个变量对应多元一次函数方程,这样理解是不是容易很多,可以这样理解。对感知机而言,感知机是通过划分一个超平面把不同类别的数据分开,可以理解为一条直线划分开一个二维平面中不同类型数据一样,属于线性模型,所以针对现实生活中很多复杂的非线性问题(如二维平面中圆圈内的数据为正,圆圈外数据为负,划分界限为曲线不是直线),单独的一个感知机(单层感知机)是没法解决的,但是通过多个单层感知机相互连接传递信息构建一定规则的结构(多层感知机)就可以优化这个问题,注意:单层感知机是线性模型,多层感知机是非线性模型。

感知机的函数表达式为
在这里插入图片描述
其中w0为偏置,是让模型拥有一定移动能力可以移动到一个更好的划分界限上(简单理解为一元一次函数y=kx+b中的b)。

但是我们上面提到,感知机是划分了一个超平面,于是在输出部分又加了一个指示函数,于是感知机函数变为
在这里插入图片描述
在这里插入图片描述

因为是划分一个超平面,这个平面把空间分成两个部分,我们往往认为是正负两部分,你也可以理解成正面反面,于是这个指示函数sign(x)的作用一般是指x>0就输出+1否则返回-1,用来表示超平面的正反方向。

几何解释为:
在这里插入图片描述

在这里插入图片描述
如上是将两类数据用一条直线划分,函数输出大于0的表示在直线上方为正标签,反之为负标签。

正反标签由自己定义数据,然后感知机训练得到结果。

二、感知机的学习策略

2.1数据集的线性可分性

感知机的目标是定义一个超平面,把两类不同的数据完全正确无误的分开,于是要求保证给定的数据集,存在一个超平面能够正确无误的把数据集中的两类数据分开,说明数据集线性可分,不然是线性不可分。

2.2感知机的学习策略

因为感知机的目标是定义一个超平面,把两类不同的数据完全正确无误的分开,于是我们定义感知机函数的输出构建损失函数,损失函数有两种方案:
1.按误分类点数目划分,但是和我们需要寻找权重参数w没有直接练习,不方便模型的优化。
2.按误分类点到超平面的距离总和计算误差,这样和权重参数w联系起来,方便参数优化。

于是选择了方案2。

我们以二维平面中的数据举例说明,数据集合为{(xi,yi)}。

于是任意点x0到超平面的距离为:
在这里插入图片描述
在这里插入图片描述
于是针对 误分类点(xi,yi) 来说,
在这里插入图片描述
上述公式解释为:如果误分类,真实标签yi和模型输出结果(w*xi+b)肯定是符号相反的结果,于是前面添加负号总结果大于0。

于是 误分类点(xi,yi) 对超平面的距离为:
在这里插入图片描述
于是所有误分类点对超平面的距离总和为:
在这里插入图片描述
这里除||w||是为了平衡距离偏差,啥意思呢,因为感知机超平面的几何解释为:
在这里插入图片描述
于是乎会发现我在左边乘2或者乘3,右边都为0,但是对于我的求距离而言会带来影响,原始的求距离公式为|w*x0+b|,所以为了平衡这个距离偏差,我们对这个方程结果除||w||,就是为了平衡度量,可以理解为1000m和1km一样,意思是一样的,但是单位不一样导致我们看到的数字不一样,而对于我们求解计算时1000和1肯定不同,所以这里除二范数||w||可以理解为规范单位,避免数学意义上的错误。

但是在这个超平面中 ,因为已经确保了数据是线性可分的,我们的最终目的是找到这个超平面,于是最终的目标是让
在这里插入图片描述
这个结果为0,这个公式最终反复求解也肯定能为0,于是乘1/||w||显得比较多余,在感知机这个部分意义不大,严格来说是要保留的,但是因为这个方程式最终求解的结果为0,所以可以省略,这里需要注意一下。

为了简单计算我们省略掉||w||,然后得到最终的损失函数表达式:
在这里插入图片描述
其中yi取值为-1或者+1。

如果没有误分类点损失函数结果为0,因为输入的数据xi和yi都是已经知道的具体数值,现在我们的目标是求解w和b具体的数值让损失函数尽可能小,小到为0。

这里可以用梯度下降法,不了解的可以先了解下,比较简单。

梯度下降法需要求未知变量的偏导,然后按偏导数方向下降,像下山一样,求得未知变量偏导为:
在这里插入图片描述

于是先随机初始化w和b的值,再随机选择数据点(xi,yi)更新过程为:
在这里插入图片描述
在这里插入图片描述

重复上面这个过程直到迭代次数为0。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
感知机(Perceptron)和支持向量机(Support Vector Machine,SVM)都是用于分类和回归任务的机器学习模型,但它们在基本原理、实现方式和性能优化方面存在一些差异。 1. 基本原理:感知机是一种线性模型,用于二元分类。它基于感知器算法,通过连续调整权重和偏置项,使得神经元的输出始终为1(对于正类)或0(对于负类)。支持向量机是一种统计学习模型,主要用于高维数据的分类和回归任务。它通过最大化间隔(即支持向量与分类线之间的距离)来避免过拟合,并捕捉到数据的全局结构信息。 2. 实现方式:感知机通常通过迭代调整权重和偏置项来实现学习。训练数据集被分成训练集和测试集,通过反向传播算法不断优化模型参数。支持向量机通常使用核函数将原始数据映射到高维特征空间,然后在特征空间中计算间隔最大化。在实践中,有许多不同的核函数可供选择,如线性核、多项式核和高斯核等。 3. 性能优化:感知机的性能受到其学习算法的限制,通常只能处理线性可分的数据集。支持向量机通过使用间隔最大化作为目标函数,能够更好地处理非线性可分的数据集。此外,支持向量机还具有对噪声和异常值的鲁棒性,并且对参数的选择不太敏感。 4. 应用场景:感知机在二元分类和二元回归任务中得到了广泛应用,如手写数字识别、垃圾邮件过滤等。支持向量机则更广泛地应用于各种分类和回归任务,如文本分类、时间序列预测、生物信息学等。 总之,感知机和支持向量机在基本原理、实现方式、性能优化和应用场景方面存在差异。感知机是一种简单的线性模型,适用于二元分类任务;而支持向量机则能够处理更复杂的数据结构,并在高维数据中表现良好。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值