感知机算法原理(PLA原理)及 Python 实现

参考书籍:李航老师的《统计学习方法》、林轩田老师的《机器学习基石》

如无特殊说明,图片均来自网络(google图片、百度图片),如有侵权请联系我,我会立即删除或更改


PLAPerceptron Learning Algorithm 的缩写,也叫感知机算法。感知机算法与线性回归有很多相似的地方。例如线性回归采用梯度下降法求最优参数的时候对每个数据点都进行了遍历,求误差的平均值。而 PLA 只选取一个点进行处理,所以 PLA 的学习过程也可以叫做 随机梯度下降

如果不了解什么是线性回归,可以参考我的另一篇文章:《机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradient Decent)》


1 感知机模型

1.1 形象的感知机

什么是感知机模型呢,简而言之就是可以将有两个特征的数据集中的正例和反例完全分开的关于一条直线的函数,或者可以是关于三维空间中的一个平面的函数,更可以是关于高维的一个超平面的函数。

什么?关于一条直线的函数?关于一个平面的函数?关于一个超平面的函数?其实感知机就是一个分段函数,不过变量是一条直线、平面或超平面而已。

可能听起来有点绕口,看了1.2节就明白了。当然如果数据集只有一个特征,那么也可以是一个点。比如下面的这条直线就将数据集中的正负实例完全分成了两部分:

这里写图片描述

或者下面的这个三维空间中的平面将有三个特征的数据集分成了两部分:
这里写图片描述


1.2 感知机的数学表示

上面的图片应该已经给了大家一个形象的理解:感知器就是一个东西能够把训练集中的正例和反例划分为两个部分,并且能够对未来输入的数据进行分类。举个例子:一个小孩子的妈妈在教他什么是苹果什么不是苹果,首先会拿个苹果过来说“记住,这个是苹果”,然后拿了一个杯子过来说“这个不是苹果”,又拿来一个稍微不一样的苹果说“这个也是苹果”……,最后,小孩子就学习到了一个模型(判断苹果的标准)来判断什么是苹果什么不是苹果。

首先,感知机的输入空间(特征空间)为 XRn ,即 n 维向量空间,输出空间为 Y={+1,1} ,即 1 代表反例, +1 代表正例。例如:输入 xX 对应于输入空间 Rn 中的某个点,而输出 yY 表示该点所在的分类。需要注意的是,输入 x 是一个 n 维的向量,即 x=(x(1),x(2),...,x(n)) 。现在已经有了输入和输出的定义,我们就可以给出感知机 f(x) 的模型了:

f(x)=sign(ωx+b)

其中,向量 ω=(ω(1),ω(2),...,ω(n)) 中的每个分量代表输入向量空间 Rn 中向量 x 的每个分量 xi 的权重,或者说参数。 bR 称为偏置单元, ωx 表示 ω x 的内积, sign 是一个符号函数,即:
sign(x)=+1,1,x0x<0

我们把上面这个函数 f(x) 称为感知机。


1.3 感知机的假设空间

上面说了,感知机是一个模型,它具有输入和输出。但是我们事先并不知道这个模型到底是什么。同时我们也需要知道到哪里去寻找我们想要的感知机模型,所以这里有个概念叫做 假设空间,我们把假设空间用 H 表示,它是一个包含了在特征空间(输入空间) Rn 中定义的所有线性分类模型的一个集合,即有:

H={ f|f(x)=sign(ωx+b)}

李航老师《统计学习方法》中的假设空间没有 sign 函数,个人觉得既然是感知机模型的假设空间,而不是超平面(包括点、直线和平面)的集合,就应该将sign加上

而我们要希望得到就是一个最佳的(能够完美划分训练集的)感知机 hoptH 。例如下图中的各种直线就是二维假设空间 H 中的一部分模型去掉符号函数 sign 后的直线(不可能画出所有的直线),而直线 a 就是一个完美的划分直线(要注意模型和超平面的区别,即有无 sign 函数的区别):

这里写图片描述

而其他直线(黑色)都不能把正例和反例完全分开。


1.4 感知机的几何意义

且先去掉感知机模型中用于输出分类结果的 sign 函数,如果我们有如下方程:

ωx+b=0

那么这个方程的几何意义是什么呢?其意义很简单:

  1. 方程 ωx+b=0 是一个超平面的方程
  2. ω 是这个超平面的法向量
  3. b 是这个超平面的截距

例如在三维空间坐标系内,平面的方程均可用三元一次方程 Ax+By+Cz+D=0 来表示,其中 ω=(A,B,C) x=(x,y,z) d=D 。很明显,如下图所示,这个三维空间中的平面把整个三维空间分成了两个部分。对于更高维度的平面我们可能想象不出来,但是它们的性质却是相同的。

这里写图片描述


1.5 感知机的输入和输出

总结一下目前用到的符号,我们需要知道以下数学符号的含义:

符号 含义
H 假设空间
f(x)H 感知机模型
XRn 特征空间
Y={ +1,1} 输出空间
Rn n 维向量空间
ω=(ω(1),ω(2),...,ω(n)) 超平面的法向量,或者说特征的参数向量
ω(i),(i=1,2,...,n) 超平面的法向量的分量,或者说某个参数
x=(x(1),x(2),...,x(n)) 输入向量,特征向量
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值