李航机器学习 | (2) 统计学习方法(第2版)笔记 --- 感知机

感知机是2分类线性分类模型,输入是样本/实例的特征向量,输出为其类别{+1,-1}.感知机对应于将输入空间/特征空间中的实例划分为正负两类的分离超平面,属于判别模型。

感知机学习基于误分类损失函数,利用梯度下降法对其极小化,更新参数,求得感知机模型(对应一组最优的参数)。

感知机学习算法PLA简单且易于实现,分为原始形式和对偶形式。

感知机预测是使用学习得到的感知机模型对新的输入实例进行分类。

目录

 

1. 感知机模型

2. 感知机学习策略

3. 感知机学习算法

4. 总结


1. 感知机模型

输入空间:X \subseteq R^{n}

输入变量:x \in X,表示实例的特征向量

输出空间:Y = \{+1,-1\}

输出变量:y \in \{+1,-1\} +1表示实例为正类,-1表示实例为负类

感知机:f(x) = sign(w\cdot x+b)  表示输入空间到输出空间的映射。其中w \in R^n叫权向量(权重参数),b \in R叫偏置(偏置参数)。

符号函数:

假设空间/假设集:\{f|f(x)=w\cdot x+b\},表示定义在特征空间中的所有线性分类模型或线性分类器。由于参数w,b有不同的取值,每个取值对应一个假设,构成假设空间。我们基于训练集训练,利用梯度下降法极小化损失,不断更新w,b,在假设空间中找到一个最好的假设,对应一组最好的参数,可以使得损失最小。

  • 感知机的几何解释

线性方程w\cdot x+b=0,对应特征空间R^n中的一个超平面,w为超平面的法向量,b是其截距,该超平面把特征空间中的点分为两部分。位于两部分的点(实例特征向量)分别被分为正类和负类。下图是2维空间中的一个示例:

空间中的点到超平面的距离公式推导:

因此,上图中原点到超平面的距离为\frac{|b|}{||w||},他在超平面的负方向-\frac{b}{||w||}

感知机学习通过,由训练集(实例的特征向量及类别)T = {(x_1,y_1),(x_2,y_2),...,(x_N,y_N)},其中x_i \in X = R^n,y_i \in Y=\{+1,-1\},i=1,2,...,N,求得模型参数w,b。

感知机预测通过学习得到的感知机模型对新输入的实例给出他对应的类别。

 

2. 感知机学习策略

  • 数据集的线性可分性

给定数据集T = {(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}x_i \in X = R^n,y_i \in Y=\{+1,-1\},i=1,2,...,N,如果存在超平面S:w\cdot x+b=0,对于所有y_i=+1的实例x_i,有w\cdot x_i+b>0,对于所有y_i=-1的实例x_i,有w\cdot x_i+b < 0,则数据集T是线性可分的,否则是线性不可分的。

学习策略

假设数据集是线性可分的(PLA的前提条件),感知机学习的目标是找到一个超平面(对应最好的参数w,b)能将训练集中的所有正负实例完全分开。我们需要定义一个损失函数,通过梯度下降法极小化该损失函数,更新参数w,b,从而最终得到该超平面。

我们把损失函数定义为误分类点到超平面S的总距离,R^n中的任意一点x_0到S的距离公式为:

                                                                \frac{|w\cdot x_0+b|}{||w||}

其中||w||为权向量w的模长或L2范数。

对于误分类点(x_i,y_i),有-y_i(w\cdot x_i+b) > 0成立,误分类点x_i到S的距离为:

                                                            -\frac{y_i(w\cdot x_i+b)}{||w||}

假设超平面S的误分类点的集合为M,所有误分类点到S的总距离为:

                                                          -\sum_{x_i \in M}\frac{y_i(w\cdot x_i+b)}{||w||}

不考虑\frac{1}{||w||}我们就得到了感知机学习的损失函数(经验风险函数):

                                                      L(w,b) = -\sum_{x_i \in M} y_i(w\cdot x_i+b)

显然L(w,b)是非负的,如果没有误分类点,损失函数值为0.而且误分类点越少,误分类点距离超平面越近,损失函数值越小。一个特定样本点的损失函数,在误分类时是参数w,b的线性函数,正确分类时为0.因此,给定训练集T,损失函数L(w,b)是w,b的连续可导函数。

感知机学习的策略在假设空间中找到一组参数w,b使得损失函数值最小。

 

3. 感知机学习算法

  • 原始形式

给定数据集T = {(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}x_i \in X = R^n,y_i \in Y=\{+1,-1\},i=1,2,...,N,求参数w,b使其为下面损失函数极小化的解:

                                       min_{w,b} L(w,b) = -\sum_{x_i \in M} y_i(w\cdot x_i+b)

感知机学习算法是误分类驱动的,具体使用随机梯度下降法(每次使用一个误分类点进行更新)。

假设误分类点集合M是固定的,那么损失函数L(w,b)对w,b的梯度如下:

随机选择一个误分类点(x_i,y_i),对w,b进行更新:

其中\eta(0<\eta \leq 1)为学习率。

感知机学习算法原始形式:

输入:训练集T = {(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}x_i \in X = R^n,y_i \in Y=\{+1,-1\},i=1,2,...,N;学习率\eta(0<\eta \leq 1)

输出:w,b;感知机模型:f(x) = sign(w\cdot x+b)

直观解释:当一个实例点被误分时,即位于分离超平面错误的一侧时,则调整w,b,使分离超平面向该误分类点一侧移动,减小误分类点到分离超平面的距离,直到超平面越过该误分类点使其正确分类。

例题:

 

此时的分离超平面为x^{(1)}+x^{(2)}-3=0.

感知机模型: f(x) = sign(x^{(1)}+x^{(2)}-3)

上述过程中,我们计算是按顺序计算误分点x_1,x_3,x_3,x_3,x_1,x_3,x_3来得到超平面和感知机模型。但是如果随机选择误分点或者依次取x_1,x_3,x_3,x_3,x_2,x_3,x_3,x_3,x_1,x_3,x_3那么得到的超平面是2x^{(1)}+x^{(2)}-5=0

对于感知机学习算法采用不同的初始值或选取不同的误分类点,得到的解是不同的。

  • 算法收敛性证明

注意为了让\hat{w}_{opt}表示唯一,对其进行约束,使得其长度等于单位长度||\hat{w}_{opt}||=1

从而证明了误分类次数k有上界,也就是说当数据集线性可分时,感知机学习算法原始形式迭代是可以收敛的。

感知机学习算法存在很多解,这些解依赖于初始值的选择和误分类点的选取顺序。为了得到唯一的超平面,需要对分离超平面添加约束条件,这就是之后要学习的线性支持向量机的想法。

当数据集线性不可分时,感知机学习算法不会收敛,迭代结果会发生振荡。 

考虑定理中的两个结论:

第一个结论说明\hat{w_k}和 \hat{w_{opt}}的内积不断增大,因为k在不断增大,内积增大,一种可能是二者的夹角变小,说明此时\hat{w_k}在更新过程中和 \hat{w_{opt}}不断接近;另一种可能是\hat{w_k}的模长在增大,而结论2说明\hat{w_k}的模长是可以被限制住的。综上,\hat{w_k}在更新过程中和 \hat{w_{opt}}不断接近。

  • 对偶形式

对偶形式的基本想法是:把w,b表示为实例x_i和标签y_i的线性组合的形式,通过求解组合系数,从而求得w,b。

我们设w_0=0,b_0=0,对于误分类点(x_i,y_i)通过下式更新:

逐步修改w,b,设修改了n次,则w,b关于(x_i,y_i)的增量分别为\alpha _iy_ix_i\alpha _iy_i,其中\alpha _i = \eta n_i.

最终学习得到的w,b可以表示为:

每个实例都有一个对应的 \alpha _i,其中\alpha_i\geq 0,i=1,...,N,当\eta=1时,表示第i个实例由于误分被更新的次数。

实例点更新次数越多,意味着它离分离超平面越近,也就越难正确分类。即这样的实例对学习结果影响最大。

感知机学习算法对偶形式:

输入:训练集T = {(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}x_i \in X = R^n,y_i \in Y=\{+1,-1\},i=1,2,...,N;学习率\eta(0<\eta \leq 1)

输出:\alpha ,b;感知机模型:f(x) = sign(\sum_{i=1}^{N}\alpha _iy_ix_i\cdot x+b)其中\alpha = (\alpha _1,\alpha _2,...,\alpha _N).

对偶形式中训练实例仅以内积形式出现,可以预先把训练实例间的内积全都算出来存在一个矩阵里,称为Gram矩阵:

 

例题:题面与之前的例题相同,用对偶形式求解。

  • 两种形式的对比

对偶形式每次只会更新两个数\alpha _i,b,而原始形式每次需要更新一个向量w和一个数b,需要更新的更多,而且每次都要计算一次w\cdot x_i内积,计算量相对大,虽然对偶形式也需要计算内积x_i\cdot x_j,但是可以预先把所有实例间的内积算出来存在一个矩阵里。整体来说,对偶形式相比原始形式计算量少一点。

4. 总结

1)感知机是根据输入实例的特征向量x对其进行2分类的线性分类模型:

                                               f(x) = sign(w\cdot x+b)

感知机模型对应特征空间中的分离超平面为w\cdot x+b=0.

2)感知机学习的策略是极小化损失函数:

                            min_{w,b} L(w,b) = -\sum_{x_i \in M} y_i(w\cdot x_i+b)

损失函数对应于误分类点到分离超平面的总距离。

3)感知机学习算法是基于随机梯度下降法对损失函数的最优化算法,有原始形式和对偶形式。算法简单易于实现。原始形式中,首先任取一个超平面,然后利用随机梯度下降法不断极小化目标函数。在这个过程中一次随机选取一个误分类点计算梯度,进行梯度下降,更新参数。

4)当训练数据集线性可分时,感知机算法是可以收敛的。感知机算法在训练数据集上的误分类次数k满足:

当训练数据集线性可分时,感知机学习算法存在无穷多个解,其解由于不同的初始值或不同迭代顺序而可能有所不同。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值