【统计学习方法.李航】感知机学习算法

什么是感知机?
感知机是二类分类的线性分类模型,其输入为实例的特征空间,输出的为实例的类别,取+1和-1二值。
感知机学习的目标?
求出将训练数据进行线性划分的分离超平面
怎么求?
导入基于误分类的损失函数,利用梯度下降法对损失函数极小化,从而求得感知机模型。

感知机的定义

在这里插入图片描述

线性方程:
在这里插入图片描述
对应的是特征空间中的一个超平面,w是超平面的法向量,b是超平面的截距。

感知机就是在多项式外面加了一个符号函数用于分类
方程ax+by+cz+d=0表示一个平面,(a,b,c)表示该平面的法向量。
或者这么理解,对于ax+by+c = 0,斜率为-a/b,对于向量(a,b)的斜率为b/a,所以二者相乘为-1,垂直。
感知机的目标就是求得一个能够将训练集的正实例点和负实例点完全分开的分离超平面,即wx+b=0,正实例点在分离超平面的上方,即wx+b>0,负实例点在分离超平面下方,即wx+b<0。

在这里插入图片描述
在这里插入图片描述


损失函数

好了,那么我们的目标就是确定超平面wx+b=0,其实就是确定参数w,b,那么怎么确定这个参数呢?我们需要定义(经验)损失函数并将损失函数极小化

经验损失函数:就是所有实例的损失(平方损失:真实值与预测值的差的平方)的均值
结构风险:就是在经验风险的基础上加上表示模型复杂度的正则化项

在这里插入图片描述
在这里插入图片描述

距离是非负的,所以距离公式的是带绝对值的,后面相乘了一个-y,也就变相的去掉了绝对值,得到了距离的表达式
在这里插入图片描述
这样我们的目标就转化为下述问题:通过对损失函数的最小化来得到参数w,b,从而 得到最终的分离超平面。

在这里插入图片描述


随机梯度下降

那么怎么对上述损失函数进行最优化处理呢?这里我们使用随机梯度下降法
在这里插入图片描述

随机的意思,就是每次随机的挑选一个实例进行参数更新

在这里插入图片描述
在这里插入图片描述

梯度下降标准形式:
在这里插入图片描述
另外上述算法2.1中的(3)如果y(wx+b)<=0,那么代表该实例点是误分类的点,只有误分类的点才进行参数更新

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

这里我想说的是,每次选择一个误分类的实例点进行参数更新,更新完之后参数之后,意味着得到了一个新的超平面,那么接下来你仍然需要利用该超平面对所有的实例进行测试。同样,该算法由于每次采取不同的初值或者选取不同的误分类点,解可以不同,也就意味着不同的超平面。这个很好理解,对于以下线性可分的数据集,存在多个超平面可以完全的将正负实例分开,同时,由于我们的损失函数定义的是误分类点到平面距离的和,所以该多个超平面的损失均为0,因为不存在误分类的点,这也是造成最终可能存在多个超平面的一个原因,但是多个超平面到底哪个是最好的?或者说怎么才叫好呢?这就是后续SVM(支持向量机)做的事情了。


感知机的对偶形式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这里严格来说是根据拉格朗日函数啊,对偶性的,极大极小转化得来的,不过这里因为简单,直接阐述了,后续在SVM的对偶形式有较为详细的阐述,二者可以对比着看
这里需要注意的是,上述的修改n次,指的是对于一个误分类点,修改n次。


总结

在这里插入图片描述

代码实现

Python3代码实现感知机

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值