《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第 2章感知机

65 阅读1分钟

第 2章感知机

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

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

  感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,

  • 导入基于误分类的损失函数,
  • 利用梯度下降法对损失函 数进行极小化,求得感知机模型。

  感知机学习算法具有简单而易于实现的优点,分为 原始形式对偶形式。

2.1 感知机模型

  感知机是一种线性分类模型,属于判别模型。

  感知机模型的假设空间是定义在特征空间中的所有线性分类模型(linear classification modeD 或线性分类器 (linear classifier) ,即函数集合

ff(x)=ωx+b{{f|f(x) = ω • x + b}}

几何解释:线性方程

ωx+b=0ω\cdot x+b=0

  对应于特征空间 RnR^n 中的一个超平面 S , 其中 ω超平面的法向量b超平面的截距

屏幕截图 2024-01-23 100040.png

  这个超平面将特征空间划分为两个部分。位于两部分的点(特征向量)分别被分为 正、负两类。因此,超平面 S称为分离超平面 (separating hyperplane) ,如图 2.1 所示。

2.2 感知机学习策略

2.2.1 数据集的线性可分性

  给定一个数据集T:

    T=(xl,y1),(x2,y2),,(xn,yn)T = {(x_l ,y_1), (x_2 ,y_2) ,… , (x_n,y_n)}

  其中 , xiX=Rn,yiY=(+1,1)i=12nx_i \in X = R^n, y_i \in Y=(+1 ,-1) , i= 1 , 2,… , n

  如果存在某个超乎面 S

    ωx+b=0ω\cdot x+b=0

  能够将数据集的正实例点和负实例点完全正确地划分到超平面的两侧,则称数据集 T 为线性可分数据集( linearly separable data set ) ;否则,称数据集 T 线性不可分

2.2.2 感知机学习策略

  假设训练数据集是线性可分的,感知机学习的目标是求得一个能够将训练集正实例点和负实例点完全正确分开分离超平面

  损失函数的一个自然选择是误分类点的总数。但是,这样的损失函数不是连续可导函数,不易优化。损失函数的另一个选择是误分类点到超平面 S 的总距离

  • 输入空间 RnR^n 中任一xox_o 到超平面 SS 的 距离:

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

  • 对于误分类的数据 (xi,xi)(x_i,x_i) 来说,

    yi(ωxi+b)>O-y_i(ω \cdot x_i+b)>O

  • ωxi+b>0ω • x_i + b > 0 时 , yi=1y_i = -1
  • ωxi+b<0ω • x_i + b < 0 时, xi=+1x_i = +1
  • 所有误分类点超平面 S总 距离

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

感知机 sign(wx+b)sign(w • x + b) 学习的损失函数定义为:

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

其中 M 为误分类点的集合。

这个损失函数就是感知机学习的经验风险函数。

2.3 感知机学习算法

  感知机学习问题转化为求解损失函数式的最优化问题,最优化的方法是随 机梯度下降法。

2.3.1 感知机学习算法的原始形式

  求参数 wbw, b , 使其为以下损失函数极小化问题的解:

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

其中 M 为误分类点的集合。

求解思路:

  • 感知机学习算法是误分类驱动的,具体采用随机梯度下降法 (stochastic gradient descent)。
  • 首先,任意选取一个超平面w0,b0w_0,b_0 , 然后用梯度下降法不断地极小化目标函数(损失函数)
  • 极小化过程中不是一次使M 中所有误分类点的梯度下降,而是一次随机 选取一个误分类点使其梯度下降
  • 假设误分类点集合 M 是固定的,那么损失函数 L(w,b)L(w,b)梯度由下式给出:

    wL(w,b)=xiMyixi\nabla_w L(w,b)=-\sum_{x_i\in M}{y_ix_i}

    bL(w,b)=xiMyi\nabla *b L(w,b)=-\sum*{x_i\in M}{y_i}

  • 随机选取一个误分类点xi,yi(x_i,y_i)ωbω, b 进行更新:

    ww+ηyixiw\leftarrow w+ηy_ix_i

    bb+ηyib \leftarrow b+ηy_i

  式中 η(0<η1)η(0 <η\leq1) 是步长,在统计学习中又称为学习率(learning rate) 。

屏幕截图 2024-01-23 104100.png

  这种学习算法直观上有如下解释:

  当一个实例点被误分类,即位于分离超平面的 错误一侧时,则调整 ω, b 的值,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面间的距离,直至超平面越过该误分类点使其被正确分类。

2.3.2 算法的收敛性

屏幕截图 2024-01-23 104345.png 定理表明,误分类的次数 k 是有上界的,经过有限次搜索可以找到将训练数据完 全正确分开的分离超平面。也就是说,当训练数据集线性可分时,感知机学习算法原 始形式迭代是收敛的。

2.3.3 感知机学习算法的对偶形式

对偶形式的基本想法是,将 ωωbb 表示为实例 xix_i标记 yiy_i线性组合的形式, 通过求解其系数而求得 ωωbb

屏幕截图 2024-01-23 104832.png

  对偶形式中训练实例仅以内积的形式出现。

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

    G=[xixi]N×NG=[x_i \cdot x_i]_{N \times N}