<统计学习方法>2 感知机(Perceptron)

来源:互联网 发布:python sleep 微秒 编辑:程序博客网 时间:2024/05/16 03:24
  • 是二类分类的线性分类模型,属于判别模型
  • 目的:求出将训练数据进行线性划分的分离超平面
  • 输入:实例的特征向量
  • 输出:实例的类别,有+1,-1两种值
  • 两种形式:原始形式,对偶形式

感知机模型

  • 假设输入空间(特征空间)是XRn, 输出空间是 Y={+1,1}, 输入xX 表示实例的特征向量,对应于输入空间(特征空间)的点;输出yY表示实例的类别。那么由输入空间到输出空间的如下函数:
    f(x)=sign(wx+b)

    称为感知机。
    • w 和 b 为感知机模型参数,w 为权值(weight)或权值向量(weight vector),b 为偏置(bias)
    • sign(x)={+1,x01,x<0
    • 几何解释:线性方程 wx+b=0 对应于特征空间的一个超平面,其中 w 是超平面的法向量, b 是超平面的截距。这个超平面将特征空间划分为两个部分,位于两部分的点被分为正负两类。超平面S称为分离超平面(separating hyperplane)

感知机学习策略

  • 数据集的线性可分性:若存在上面的那种超平面能够将数据集的实例点完全正确地划分到超平面的两侧,则说该数据集是线性可分数据集,否则为不可分
  • 学习策略的假设前提是:训练数据集是线性可分的。这个策略就是定义(经验)损失函数并将损失函数极小化。
  • 损失函数的选择:
    • 需要是参数 w, b 的连续可导函数,便于优化。
    • 选择:误分类点到超平面 S 的总距离:
  • 任意一点 x0 到超平面的距离表示为:
    1||w|||wx0+b|

    • ||w||wL2范数
    • 假设超平面 S 的误分类点集合为M,那么所有误分类点到超平面 S 的总距离为
      1||w||xiMyi(wxi+b)
    • 不考虑前面的系数,感知机sign(wx+b)学习的损失函数定义为:
      L(w,b)=xiMyi(wxi+b)
    • 这个损失函数就是感知机学习的经验风险函数

感知机学习算法

  • 通过以上的分析,感知机学习的问题就转化到如果优化损失函数的问题了。最优化方法是随机梯度下降法(stochastic gradient descent)。具体算法包括原始形式和对偶形式。
  • 感知机学习算法的原始形式
    minw,bL(w,b)=xiMyi(wxi+b)

    • 首先,任意选取一个超平面 w0,b0,使用梯度下降法极小化以上目标函数,极小化过程中不是一次使 M 所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降
    • 假设误分类点集合 M 固定,则损失函数 L(w,b) 的梯度为:
      wL(w,b)=xiMyixi

      bL(w,b)=xiMyi
    • 随机选择一个误分类点(xi,yi), 对 w, b 进行更新:
      ww+ηyixi

      bb+ηxi
    • η(0<η1) 为步长,又叫学习率(learning rate)
  • 感知机学习算法的对偶形式
    • 基本思想:将 w 和 b 表示为实例 xi 和标记 yi 的线性组合的形式,通过求解其系数而求得w和b.
    • 更新规则为:
      ww+ηyixi

      bb+ηyi
    • Gram 矩阵:对偶形式中训练实例仅以內积的形式出现,为了方便,可以预先将训练集中实例间的內积计算出来并以矩阵形式存储,该矩阵就是所谓的Gram矩阵
  • Summary:
    • 当训练数据集线性可分时,感知机学习算法是收敛的,感知机算法在训练数据集上的误分类次数 k 满足不等式:
      k(Rγ)2
    • 不可分时,算法存在无穷多个解,其解由于不同的初值或不同的迭代顺序而可能不同。
原创粉丝点击