统计学习方法(一)--感知机(Perceptron)理解

感知机概述

感知机(perceptron)是二类分类的线性分类模型。

感知机对应于输入空间中将实例划分为正负两类的分离超平面,属于判别模型。

这里以模型,策略和算法三个部分做总结。

模型

感知机模型表示为由输入空间 χ ⊆ R n \chi \subseteq \R^n χRn到输出空间 y ∈ { − 1 , + 1 } y\in\{-1, +1\} y{1,+1}的如下函数:
f ( x ) = s i g n ( w ⋅ x + b ) f(x) = sign(w\cdot x + b) f(x)=sign(wx+b)
其中 w w w是权值, b b b是偏置, s i g n sign sign是符号函数,即:
y = { + 1 , x ≥ 0 − 1 , x < 0 y=\begin{cases} +1,\quad x\geq 0 \\ -1,\quad x< 0 \end{cases} y={+1,x01,x<0
感知机的几何解释是线性方程 w ⋅ x + b = 0 w\cdot x+b=0 wx+b=0对应与特征空间 R n \R^n Rn中的一个超平面 S S S w w w是超平面的法向量, b b b是超平面的截距。
在这里插入图片描述

学习策略

数据集线性可分的假设

感知机学习的前提假设是数据集为线性可分数据集。

若某个超平面 w ⋅ x + b w\cdot x+b wx+b能够将数据集的正负实例点完全正确地划分到其两侧,则该数据集线性可分。

学习策略

为了找到这样的超平面,需确定模型参数 w 和 b w和b wb。感知机的学习策略就是定义损失函数并选取损失函数最小化时的 w 和 b w和b wb

损失函数的一个自然选择是误分类点的总数。但是,这样的损失函数不是参数 w , b w,b w,b的连续可导函数,不易优化。

感知机采用的损失函数是误分类点到超平面的总距离,即
L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) L(w,b)=-\displaystyle\sum_{x_i\in M}y_{i}(w\cdot x_{i}+b) L(w,b)=xiMyi(wxi+b)

(以下是损失函数具体推导过程)

输入空间 R n \R^{n} Rn中任一点 x 0 x_{0} x0到超平面的距离:
1 ∣ ∣ w ∣ ∣ ∣ w ⋅ x 0 + b ∣ \frac{1}{||w||}|w\cdot x_{0}+b| w1wx0+b
这里, ∣ ∣ w ∣ ∣ ||w|| w L 2 L_{2} L2范数。

对误分类点 ( x i , y i ) (x_{i},y_{i}) (xi,yi),有
− y i ( w ⋅ x i + b ) > 0 -y_{i}(w\cdot x_{i}+b)>0 yi(wxi+b)>0
这是因为当 w ⋅ x i + b > 0 w\cdot x_{i}+b>0 wxi+b>0时, y i = − 1 y_{i}=-1 yi=1,当 w ⋅ x i + b < 0 w\cdot x_{i}+b<0 wxi+b<0 y i = 1 y_{i}=1 yi=1,故误分类点到超平面的距离是:
− 1 ∣ ∣ w ∣ ∣ ∑ x i ∈ M y i ( w ⋅ x 0 + b ) -\frac{1}{||w||}\sum\limits_{x_{i}\in M}y_{i}(w\cdot x_{0}+b) w1xiMyi(wx0+b)
不考虑 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} w1,就得到感知机学习的损失函数。

不考虑 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} w1的原因有以下两点:

  • 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} w1不影响 y i ( w ⋅ x i + b ) y_{i}(w⋅x_{i}+b) yi(wxi+b)正负的判断,即不影响学习算法的中间过程。因为感知机学习算法是误分类驱动的,这里需要注意的是所谓的“误分类驱动”指的是我们只需要判断 − y i ( w ⋅ x i + b ) -y_{i}(w⋅x_{i}+b) yi(wxi+b)的正负来判断分类的正确与否,而 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} w1并不影响正负值的判断。所以 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} w1对感知机学习算法的中间过程可以不考虑。
  • 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} w1不影响感知机学习算法的最终结果。因为感知机学习算法最终的终止条件是所有的输入都被正确分类,即不存在误分类的点。则此时损失函数为0。对应于 − y i ( w ⋅ x i + b ) -y_{i}(w⋅x_{i}+b) yi(wxi+b),即分子为0。则可以看出 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} w1对最终结果也无影响。

学习算法

感知机学习问题转化为损失函数最优化问题,学习算法采用随机梯度下降法进行最优化。具体算法包括原始形式和对偶形式。

原始形式

感知机学习算法是对以下损失函数极小化问题求解的算法:
min ⁡ w , b L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) \min_{w,b}L(w,b)=-\sum\limits_{x_{i}\in M} y_{i}(w\cdot x_{i}+b) w,bminL(w,b)=xiMyi(wxi+b)
其中 M M M为误分类点的集合。

首先,任意选取一个超平面 w 0 , b 0 w_{0},b_{0} w0,b0,然后用梯度下降法不断地极小化目标函数,极小化过程中不是一次使 M M M中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。

损失函数 L ( w , b ) L(w,b) L(w,b)的梯度为:
∇ w L ( w , b ) = − ∑ x i ∈ M y i x i \nabla_{w}L(w,b)=-\sum\limits_{x_{i}\in M}y_{i}x_{i} wL(w,b)=xiMyixi
∇ b L ( w , b ) = − ∑ x i ∈ M y i \nabla_{b}L(w,b)=-\sum\limits_{x_{i}\in M}y_{i} bL(w,b)=xiMyi
随机选取一个误分类点 ( x i , y i ) (x_{i},y_{i}) (xi,yi),对 w , b w,b w,b进行更新
w ← w + η y i x i w\leftarrow w+\eta y_{i}x_{i} ww+ηyixi
b ← b + η y i b\leftarrow b+\eta y_{i} bb+ηyi
其中 η ( 0 < η ≤ 1 ) \eta(0<\eta \leq 1) η(0<η1)为为学习率。

当一个实例点被误分类时,调整 w , b w,b w,b的值,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面之间的距离,直至超平面越过该误分类点使其被正确分类,这样通过迭代可以期待损失函数不断减小,直到为0。

对偶形式

w w w b b b表示为实例 x i x_{i} xi y i y_{i} yi的线性组合的形式,通过求解其系数而求得 w w w b b b。不失一般性,假设 w w w b b b的初始值均为0。对误分类点 ( x i , y i ) (x_{i},y_{i}) (xi,yi)通过
w ← w + η y i x i w\leftarrow w+\eta y_{i}x_{i} ww+ηyixi
b ← b + η y i b\leftarrow b+\eta y_{i} bb+ηyi
逐步更新 w , b w,b w,b,假设更新了n次,则 w , b w,b w,b关于 ( x i , y i ) (x_{i},y_{i}) (xi,yi)的增量分别是 α i y i x i \alpha_{i}y_{i}x_{i} αiyixi α i y i \alpha_{i}y_{i} αiyi,这里 α i = n i η \alpha_{i}=n_{i}\eta αi=niη。最后学习到的 w , b w,b w,b可以分别表示为
w = ∑ i = 1 N α i y i x i w=\sum\limits_{i=1}^{N}\alpha_{i}y_{i}x_{i} w=i=1Nαiyixi
b = ∑ i = 1 N α i y i b=\sum\limits_{i=1}^{N}\alpha_{i}y_{i} b=i=1Nαiyi
下面对照原始形式来叙述感知机学习算法的对偶形式。

感知机模型 f ( x ) = s i g n ( ∑ j = 1 N α j y j x j ⋅ x + b ) f(x)=sign(\sum\limits_{j=1}^{N}\alpha_{j}y_{j}x_{j}\cdot x+b) f(x)=sign(j=1Nαjyjxjx+b),其中 α = ( α 1 , α 2 , ⋯   , α N ) T \alpha=(\alpha_{1},\alpha_{2},\cdots,\alpha_{N})^{T} α=(α1,α2,,αN)T

(1)初始化 α \alpha α b b b为0
(2)在训练集中选取数据 ( x i , y i ) (x_{i},y_{i}) (xi,yi)
(3)如果 − y i ( ∑ j = 1 N α j y j x j ⋅ x + b ) -y_{i}(\sum\limits_{j=1}^{N}\alpha_{j}y_{j}x_{j}\cdot x+b) yi(j=1Nαjyjxjx+b)是误分类点则:
α i ← α i + η \alpha_{i}\leftarrow \alpha_{i}+\eta αiαi+η
b ← b + η y i b\leftarrow b+\eta y_{i} bb+ηyi
(4)转至(2)直到没有误分类点

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

感知机学习算法的原始形式和对偶形式迭代都是收敛的,存在多个解。

参考:
https://www.cnblogs.com/huangyc/p/9706575.
https://blog.csdn.net/wkj1026639175/article/details/79827923.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值