感知机

感知机是是二分类线性分类模型,输入为实例的特征向量,输出为实例类别(1,+1-1,+1)。

感知机模型

感知机模型属于判别模型,目标是求出将训练样本进行线性划分的分离超平面

  • 感知机
    假设输入空间(特征空间)为X\mathcal{X},输出空间是Y\mathcal{Y}xXx\in \mathcal{X}是每个实例的特征向量,则从输入空间到输出空间的映射为:
    f(x)=sign(wx+b)f\left( x \right) = sign\left( {w \cdot x + b} \right)
    也称之为感知机。其中w,bw,b为模型参数,ww是特征属性的权值向量,bb为偏置项,signsign函数为
    sign(x)={+1x01x<0sign \left( x \right) = \left\{ \begin{array}{l} {+ 1}\quad x \ge 0\\ {- 1}\quad x < 0 \end{array} \right.
  • 感知机的几何解释
    线性方程wx+b=0w\cdot x+b=0对应特征空间中的一个超平面SS,其中ww是超平面的法向量,bb是超平面的截距,如下图所示:
    统计学习方法——感知机(一)

感知机学习策略

数据集的线性可分性

前面我们已经说过了,感知机处理数据的两个特性:二分类、线性。所以我们先来看一下数据的线性可分性。

  • 数据的线性可分性
    对于一个数据集T={(x1,y1),(x2,y2), ,(xN,yN)}T = \left\{ {\left( {{x_1},{y_1}} \right),\left( {{x_2},{y_2}} \right), \cdots ,\left( {{x_N},{y_N}} \right)} \right\},其中xiXx_i\in\mathcal{X}yiY={1,+1}y_i\in\mathcal{Y}=\left\{-1,+1\right\}【体现了二分类】,i=1,2, ,Ni=1,2,\cdots,N,如果存在一个超平面SS
    wx+b=0w\cdot x+b=0
    能够将聚集的正实例和负实例完全正确地划分,则称数据集为线性可分的,否则则是不可分的。

感知机学习策略

为了找到超平面,需要确定感知机模型参数w,bw,b,需要一个学习策略,也就是所谓的定义并最小化(经验)损失函数。

  • 损失函数的选择有两种:
    1. 误分类点的总数 (此损失函数关于w,bw,b参数不是连续可导的)
    2. 误分类点到超平面SS的总距离
  • 损失函数的定义
    • L2L_2范数:向量各元素的平方和然后求平方根,用\left\| {} \right\|表示。
    • 推导过程
      • 空间中任意点x0x_0到平面SS的距离:1wwx0+b\frac{1}{{\left\| w \right\|}}\left| {w \cdot {x_0} + b} \right|
      • 对误分类的点(xi,yi)\left( {{x_i},{y_i}} \right)则有:yi(wxi+b)>0- {y_i}\left( {w \cdot {x_i} + b} \right) > 0
        【因为被误分类,所以yiy_i(wxi+b)\left( {w \cdot {x_i} + b} \right)必然异号,所以yi(wxi+b)<0{y_i}\left( {w \cdot {x_i} + b} \right) < 0yi(wxi+b)>0- {y_i}\left( {w \cdot {x_i} + b} \right) > 0
      • 误分类点xix_iSS的距离为:1wyi(wxi+b)- \frac{1}{{\left\| w \right\|}}{y_i}\left( {w \cdot {x_i} + b} \right)
      • 所有误分类点到超平面SS的总距离为
        1wxiMyi(wxi+b)- \frac{1}{{\left\| w \right\|}}\sum\limits_{{x_i} \in M} {{y_i}\left( {w \cdot {x_i} + b} \right)}
    • 感知机学习的损失函数
      不考虑1w\frac{1}{{\left\| w \right\|}},就得到感知机学习的损失函数:
      L(w,b)=xiMyi(wxi+b)L\left(w,b\right)=-\sum\limits_{{x_i} \in M} {{y_i}\left( {w \cdot {x_i} + b} \right)}
      其中MM为误分类点的集合。

感知机学习算法

  • 感知机学习算法
    • 感知机学习算法的目标是(误分类驱动):
      minw,bL(w,b)=xiMyi(wxi+b)\mathop {\min }\limits_{w,b} L\left( {w,b} \right) = - \sum\limits_{{x_i} \in M} {{y_i}\left( {w \cdot {x_i} + b} \right)}
    • 具体算法
      • 随机梯度下降法:任取超平面w0,b0w_0,b_0,然后每次从MM中每次随机选择一个点进行梯度下降。
        1. 假定误分类点集合MM固定,则L(w,b)L\left( {w,b} \right)的梯度为
          wL(w,b)=xiMyixi{\nabla _w}L\left( {w,b} \right) = - \sum\limits_{{x_i} \in M} {{y_i}{x_i}}
          bL(w,b)=xiMyi{\nabla _b}L\left( {w,b} \right) = - \sum\limits_{{x_i} \in M} {{y_i}}
        2. 随机选取一个误分类点(xi,yi)\left( {{x_i},{y_i}} \right),对w,bw,b进行更新
          ww+ηyixiw \leftarrow w + \eta {y_i}{x_i}
          bb+ηyib \leftarrow b+\eta {y_i}
          其中η(0<η1)\eta \left( {0 < \eta \le 1} \right)是步长,在统计学习中又称为学习率。
        3. 通过迭代可以期待损失函数L(w,b)L\left( {w,b} \right)不断减小,直到为0。

【直观上说:当一个实例点被误分类则调整平面以减少该点到平面的距离,知直到全部分类正确】
不同的初值或选取不同的误分类点,解可以不同。
统计学习方法——感知机(一)

  • 算法的收敛性
    算法应该是收敛的,因为只有收敛才能经过有限次的迭代得到感知机模型

    • Novikoff
      设训练数据集T={(x1,y1),(x2,y2), ,(xN,yN)}T=\left\{ {\left( {{x_1},{y_1}} \right),\left( {{x_2},{y_2}} \right), \cdots ,\left( {{x_N},{y_N}} \right)} \right\}是线性可分的,则
    1. 存在满足条件w^opt=1\left\| {{{\hat w}_{opt}}} \right\| = 1的超平面w^optx^=woptx+bopt=0{{\hat w}_{opt}} \cdot \hat x = {w_{opt}} \cdot x + {b_{opt}} = 0将训练数据集完全正确分开;且存在γ=0\gamma = 0,对所有的样本有:
      yi(w^optx^i)=yi(woptxi+bopt)γ{y_i}\left( {{{\hat w}_{opt}} \cdot {{\hat x}_i}} \right) = {y_i}\left( {{w_{opt}} \cdot {x_i} + {b_{opt}}} \right) \ge \gamma
    2. R=max1iNx^iR = \mathop {\max }\limits_{1 \le i \le N} \left\| {{{\hat x}_i}} \right\|,则感知机算法在训练数据集上的误分类次数kk满足:
      k(Rγ)2k \le {\left( {\frac{R}{\gamma }} \right)^2}
  • 感知机学习算法的对偶形式

    • 对偶形式的基本想法
      wwbb表示为实例xix_iyiy_i的线性组合的形式,进一步求解wwbb
    • 详细过程
      • 假设初始w0=b0=0w_0=b_0=0,对误分类点(xi,yi)\left( {{x_i},{y_i}} \right)通过
        ww+ηyixiw \leftarrow w + \eta {y_i}{x_i}
        bb+ηyib \leftarrow b + \eta {y_i}
        逐步修改w,bw,b
      • 学到最后w,bw,b表示为
        w=i=1Nαiyixiw = \sum\limits_{i = 1}^N {{\alpha _i}{y_i}{x_i}}
        b=i=1Nαiyib = \sum\limits_{i = 1}^N {{\alpha _i}{y_i}}
        其中αi0,i=1,2,...,N\alpha_i \ge 0, i=1,2,...,N,当α=1\alpha=1时表示第ii个实例点由于误分而进行更新的次数。
    • 规范表述
      输入:线性可分数据集TT,学习率η\eta
      输出:α,b\alpha,b;感知机模型f(x)=sign(j=1Nαjyjxjx+b)f\left( x \right) = sign\left( {\sum\limits_{j = 1}^N {{\alpha _j}{y_j}{x_j} \cdot x + b} } \right),其中α=(α1,α2, ,αN)T\alpha = {\left( {{\alpha _1},{\alpha _2}, \cdots ,{\alpha _N}} \right)^T}
      (1)α0,b0\alpha \leftarrow 0,b \leftarrow 0
      (2)在训练集中选取数据(xi,yi)\left( {{x_i},{y_i}} \right)
      (3)如果yi(j=1Nαjyjxjxi+b)0{y_i}\left( {\sum\limits_{j = 1}^N {{\alpha _j}{y_j}{x_j} \cdot {x_i} + b} } \right) \le 0
      αiαi+η{\alpha _i} \leftarrow {\alpha _i} + \eta
      bb+ηyib \leftarrow b + \eta {y_i}
      (4)直到无误分类数据。
参考文献

《机器学习》
《统计学习方法》

相关文章: