感知机模型(原始形式和对偶形式)
来源:互联网 发布:传奇数据库 编辑:程序博客网 时间:2024/06/01 10:38
本篇博客主要介绍机器学习中十分基础的感知机模型。感知机模型是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别。我们写出基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。
1.首先,我们假定线性方程 wx+b=0 是一个超平面,令 g(x)=wx+b,也就是超平面上的点x都满足g(x)=0。对于超平面的一侧的点满足:g(x)>0; 同样的,对于超平面另一侧的点满足:g(x)<0.
结论一:对于不在超平面上的点x,它到超平面的距离:
证明:如下图所示,O表示原点,Xp表示超平面上的一点,X是超平面外的一点,w是超平面的法向量。
等式1说明:向量的基本运算法则,OX=OXp+XpX. 因为w是法向量,所以w/||w||是垂直于超平面的单位向量。
等式2说明:将等式1带入g(x)=wx+b;由于Xp在超平面上,所以g(Xp)=w^T*Xp+w0 = 0
以上得证。
2.下面区分一下易混淆的两个概念,梯度下降和随机梯度下降:
梯度下降:一次将误分类集合中所有误分类点的梯度下降;
随机梯度下降:随机选取一个误分类点使其梯度下降。
3.对于误分类的数据来说,当w*xi + b>0时,yi = -1,也就是,明明是正例,预测成负例。因此,误分类点到超平面的距离为:
因此所有误分类点到超平面的总距离为:
忽略1/||w||,我们就可以得到感知机学习的损失函数。
损失函数:
这个损失函数就是感知机学习的经验风险函数。
下面我们计算损失函数的梯度:
值得我们注意的是,以上求和都是针对误分类集合M中的样本点进行的。对于正确分类的样本点,则不需要考虑。
下面我们就得到了我们的更新策略:
随机选取误分类点(xi,yi),对w,b进行更新:
4.感知器算法的原始形式:
输出w,b; 感知机模型f(x)=sign(w*x+b)
(1)选取初值w0,b0
(2)在训练集中选取数据(xi,yi)
(3)若yi*(w*xi+b)<=0, (该样本点被误分类了)
(4)转至(2),直至训练集中没有误分类点。
对于感知器算法,还有一种对偶形式,其基本想法是将w,b表示为实例xi,和标记yi的线性组合的形式,通过求解其系数而求得w,b
将Ni表示为样本点(xi,yi)在更新过程中使用的次数,我们可以得到以下式子:
这样的话,我们可以看出对偶形式本质上是学习Ni,而非w与b,即学习每个样本在更新过程中使用的次数。
我们可以假设:
对偶形式的一般性描述:
输出Ni,b; 感知机模型为:
(1)Ni = 0
(2)在训练集中选取数据(xi,yi)
(3)若
则更新:
(4)转至(2)直到没有误分类的数据
为了方便后期的计算,可先求出Gram矩阵。
例如,正例:x1 = (3,3)^T, x2 = (4,3)^T, 负例: x3 = (1,1)^T
那么Gram矩阵就是:
因为对偶形式中会大量用到xi*xj的值,所以提前求出Gram矩阵会方便很多。
- 感知机模型(原始形式和对偶形式)
- 感知机模型及其对偶形式
- 感知机的对偶形式
- 统计学习方法(2)——感知机原始形式、对偶形式及Python实现
- 感知机学习算法的对偶形式
- 感知机数据算法的对偶形式
- 感知机对偶形式的程序实现
- 感知机中的对偶形式理解
- 感知机的对偶形式 @ Python
- 感知机学习算法的对偶形式
- 感知机对偶形式完美解释
- 感知机的实现和感知机对偶形式的实现
- 感知机学习算法的原始形式
- 感知机学习算法对偶形式(Matlab代码)
- 感知机(perceptron)学习算法的对偶形式
- 感知机的对偶形式实现java版
- 统计学习方法之感知机对偶形式Java实现代码
- 《统计学习方法》 感知机Python 对偶形式实现
- 编译 库链接实例(动态库 隐式显式)
- 解决xcode打开时假死的问题
- NEUQ oj 1036 题解
- RadioGroup设置点击text的基本布局样本
- 使用tensorflow:LSTM神经网络预测股票(三)
- 感知机模型(原始形式和对偶形式)
- jQuery动态给form表单赋值
- GIT教程 — 浅析分支管理(一)
- 多线程 之 setDaemon
- 【期望DP】LibreOJ6178(美团 CodeM 初赛 Round B)[景区路线规划]题解
- java 静态初始化集合
- 第六周的学习
- Kotlin基础学习(1)
- CY3684 68013开发套件安装指南