感知机

感知机模型

感知机是用于二分类的线性分类模型,属于判别模型,其输入空间是样本实例地特征向量,输出是集合 Y = [ + 1 , − 1 ] Y=[+1, -1] Y=[+1,1]。从几何视角出发,感知机旨在特征空间中学习一个将正负样本分开的分离超平面。确定模型地形式之后,引入经验风险和结构风险,将分类问题转变为最优化问题,利用梯度下降的算法求得参数向量,获取感知机模型。感知机模型是神经网络和支持向量机的基础
下面将二分类问题抽象到代数层面上来,如下:
假设输入空间是 X ∈ R n X∈R^n XRn,输出空间是 Y = [ + 1 , − 1 ] Y=[+1, -1] Y=[+1,1] x i ∈ X x_i∈X xiX表示输入空间中的实例,对应输出空间的 y i ∈ Y y_i∈Y yiY是实例 x i x_i xi对应的类别,则设定
f ( x ) = s i g n ( ω × x + b ) f(x) = sign(ω×x+b) f(x)=sign(ω×x+b)
为感知机模型。
其中 ω ω ω为权值向量, ω ω ω为实例的特征向量, b b b为偏置,此处 ω × x ω×x ω×x表示的是 ω ω ω x x x的内积。 s i g n sign sign是符号函数。
经过以上抽象之后,我们便可以完成统计学习方法第一步(确定假设空间,也就是模型集合)。其中假设空间为:
[ f ∣ f ( x ) = ω × x + b ] [{f|f(x)=ω×x+b}] [ff(x)=ω×x+b]
更形象一些,我们再把感知机模型从代数域抽象到几何域。上边我们得到代数方程:
ω × x + b = 0 ω×x+b=0 ω×x+b=0
先从二维说起,如果 ω ω ω x x x都是常数,则 ω × x + b = 0 ω×x+b=0 ω×x+b=0表示的是一条直线;在三维里呢, ω ω ω x x x都是一个二维向量,则 ω × x + b = 0 ω×x+b=0 ω×x+b=0表示的是一个平面;在这里我们的 ω ω ω x x x分别是高维权值向量和高维特征向量,那么 ω × x + b = 0 ω×x+b=0 ω×x+b=0表示的是高维空间的一个超平面。该超平面可以在特征空间内将正负两类样本分开来,达到分类的目的。下图在二维空间中给我们展示了感知机模型的几何机制。
二维空间示例

感知机学习策略

确定感知机模型之后,我们的第二个任务就是制定学习策略,即确定一个评价标准在假设空间中选出性能最好的模型。那么怎么确定这个评价标准呢?其实就是定义一个包含经验风险和结构风险的函数,并将该函数极小化。
在感知机模型中,如果直接用误分类的样本数来作为评价标准,无法对 ω ω ω b b b应用梯度下降法求得最佳参数。所以在这里我们采用误分类点到超平面的距离总和。首先定义以下输入空间 R n R^n Rn中任意一点 x i x_i xi到超平面的距离为:
1 ∣ ∣ ω ∣ ∣ ∣ ω × x i + b ∣ \frac{1}{||ω||}|ω×x_i + b| ω1ω×xi+b
其中 ∣ ∣ ω ∣ ∣ ||ω|| ω ω ω ω L 2 L_2 L2范数。
当样本点 y i y_i yi=-1时,被误分类之后 ω × x i + b ω×x_i + b ω×xi+b > 0;
当样本点 y i y_i yi=1时,被误分类之后 ω × x i + b ω×x_i + b ω×xi+b < 0;
即被误分类之后,- y i y_i yi ( ω × x i + b ) (ω×x_i + b) (ω×xi+b)> 0。
那么误分类点到超平面的距离总和为:
− 1 ∣ ∣ ω ∣ ∣ ∑ i = 1 M y i ( ω × x i + b ) -\frac{1}{||ω||}\sum_{i=1}^{M}y_i(ω×x_i + b) ω1i=1Myi(ω×xi+b)
因为 1 ∣ ∣ ω ∣ ∣ \frac{1}{||ω||} ω1是常数,所以无关紧要,我们去掉它,那么剩下的就是经验风险:
− ∑ i = 1 M y i ( ω × x i + b ) -\sum_{i=1}^{M}y_i(ω×x_i + b) i=1Myi(ω×xi+b)
可以看到,误分类点越少,经验风险越小,误分类点到超平面的距离越近,经验风险越小。正好可以衡量模型的分类性能好坏。
**注:上述经验风险函数是ω和b的连续可导函数。**强调这点的目的是我们下边的算法使用的是梯度下降法,要用经验风险对 ω ω ω x x x求导。

感知机学习算法

经过上述确定假设空间、评价准则两步之后,就到了设计算法的时候了。感知机学习算法采用随机梯度下降法,这也是各种神经网络使用的算法。在感知机模型中,我们分为两种形式:原始形式和对偶形式。

原始形式

给定输入:训练数据集 T = [ ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) , ] T=[(x_1, y_1), (x_2, y_2), ... , (x_n, y_n),] T=[(x1,y1),(x2,y2),...,(xn,yn),],其中 x i ∈ R n , y i ∈ [ + 1 , − 1 ] , i = 1 , . . . , n x_i∈R^n, y_i∈[+1, -1],i=1, ... ,n xiRn,yi[+1,1]i=1,...,n,学习率 η ∈ [ 0 , 1 ] η∈[0, 1] η[0,1]
输出: ω , b ω, b ω,b
学习步骤:

  1. 选取初始值 ω 0 , b 0 ω_0,b_0 ω0b0;
  2. 在训练集T中选取数据 ( x i , y i ) (x_i, y_i) (xi,yi),计算 y i ( ω × x i + b ) y_i(ω×x_i + b) yi(ω×xi+b)
  3. 如果 y i ( ω × x i + b ) y_i(ω×x_i + b) yi(ω×xi+b) ≤ 0,则进行如下迭代更新:
    ω = ω + η y i x i ; b = b + η y i ω = ω + ηy_ix_i ; b = b + ηy_i ω=ω+ηyixib=b+ηyi
  4. 跳到步骤2,直到数据集中所有数据点都被正确分类;

注:感知机模型有很多解,最终模型依赖于初始值的选取,也依赖于迭代过程中选取样本的顺序,还有就是当训练数据集线性不可分时,算法会一直迭代,陷入死循环。

对偶形式

从原始形式步骤3中的迭代中观察到,我们可以将 ω 和 b ω和b ωb看作实例 x i 和 y i x_i和y_i xiyi的线性组合,那么我们只需要求解出该线性组合的系数,便可求得 ω 和 b ω和b ωb
公式化表示为:
ω = ∑ i = 1 n α i y i x i ; b = ∑ i = 1 n α i y i ω = \sum_{i=1}^{n}α_iy_ix_i ; b = \sum_{i=1}^{n}α_iy_i ω=i=1nαiyixib=i=1nαiyi
这里 α i = N i η α_i=N_iη αi=Niη,其中当 η = 1 η=1 η=1时, N i N_i Ni就是该样本迭代的次数。
给定输入:训练数据集 T = [ ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) , ] T=[(x_1, y_1), (x_2, y_2), ... , (x_n, y_n),] T=[(x1,y1),(x2,y2),...,(xn,yn),],其中 x i ∈ R n , y i ∈ [ + 1 , − 1 ] , i = 1 , . . . , n x_i∈R^n, y_i∈[+1, -1],i=1, ... ,n xiRn,yi[+1,1]i=1,...,n,学习率 η ∈ [ 0 , 1 ] η∈[0, 1] η[0,1]
输出: N i N_i Ni求得$N_i之后,我们就可以根据上边的公式计算出ω和b

  1. 初始化 α = 0 和 b = 0 α=0和b=0 α=0b=0
  2. 在训练集中选择样本 ( x i , y i ) (x_i, y_i) (xi,yi),计算 y i ( ∑ j = 1 n α j y j x j x i + b ) y_i (\sum_{j=1}^{n}α_jy_jx_jx_i+b) yi(j=1nαjyjxjxi+b)
  3. 如果 y i ( ∑ j = 1 n α j y j x j x i + b ) ≤ 0 y_i (\sum_{j=1}^{n}α_jy_jx_jx_i+b)≤0 yi(j=1nαjyjxjxi+b)0,则更新如下:
    α i = α i + η ; b = b + η y i α_i = α_i + η;b = b + ηy_i αi=αi+ηb=b+ηyi
    4.重复步骤2,直到所有的样本都被正确分类。

对偶形式中训练实例仅以内积的形式出现,为了方便,可以预先将训练集中实例间的内积计算出来以矩阵的形式存储起来,这个矩阵就是所谓的 G r a m Gram Gram矩阵。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值