跳转至

感知机⚓︎

约 1002 个字 预计阅读时间 3 分钟

李航《统计学习方法》

感知机模型是一种用于二分类问题的线性分类模型,它通过寻找一个线性决策边界将不同类别的样本分开。目标是寻找一个线性函数(即一个超平面),能够将两类数据点分开。

假设样本输入为向量 \(\mathbf{x} = (x_1, x_2, \dots, x_n)\),对应的标签为 \(y \in \{-1, +1\}\) 。也就是训练集为:\(T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{M}, y_{M}\right)\right\}\),我们希望找到一个权重向量 \(\mathbf{w}\) 和一个偏置 \(b\),使得感知机模型的输出满足:

\[f(\mathbf{x}) = \text{sign}(\mathbf{w} \cdot \mathbf{x} + b)\]

其中 \(\text{sign}\) 是符号函数,决定了输入样本属于哪一类。也就是:

\(\operatorname{sign}(x)=\left\{\begin{array}{ll}{+1,} & {x \geqslant 0} \\ {-1,} & {x<0}\end{array}\right.\)

在训练过程中,感知机通过调整权重 \(\mathbf{w}\) 和偏置 \(b\) 来使得误分类样本数最小。也就是极小化损失函数:

\[
\min _{w, b} L(w, b)=-\sum_{x_{i} \in M} y_{i}\left(w \cdot x_{i}+b\right)
\]

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

3. 感知机的训练算法⚓︎

训练过程中使用 随机梯度下降(SGD) 方法来更新权重和偏置,具体步骤如下:

  • 初始化权重向量 \(\mathbf{w}\) 和偏置 \(b\) 为零或小的随机值。
  • 对训练数据进行迭代,对于每个误分类样本 \(\mathbf{x}_i, y_i)\),按照以下规则更新权重和偏置:

\(\mathbf{w} = \mathbf{w} + \eta y_i \mathbf{x}_i\)

\(b = b + \eta y_i\)

其中 \(\eta\) 是学习率,用于控制步长大小。

当实例点被误分类,即位于分离超平面的错误侧,则调整\(w\), \(b\)的值,使分离超平面向该无分类点的一侧移动,直至误分类点被正确分类

总结⚓︎

  1. 对于线性可分的数据,感知机算法在有限次迭代内可以收敛到正确分类的解。
\[
f(x)=\operatorname{sign}(w \cdot x+b)
\]

感知机模型对应于输入空间(特征空间)中的分离超平面\(w \cdot x+b=0\)

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

  2. 当训练数据集线性可分时,感知机学习算法是收敛的。感知机算法在训练数据集上的误分类次数\(k\)满足不等式:

\[
k \leqslant\left(\frac{R}{\gamma}\right)^{2}
\]

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

提问:感知机和支持向量机的区别是什么?

感知机(Perceptron)和支持向量机(SVM)都是用于二分类的线性分类模型,但它们在模型构建和优化目标上存在一些关键区别。

  1. 决策边界的定义

  2. 感知机:感知机的目标是找到一个线性边界,将所有训练样本正确分类,主要关注的是让每个样本的分类正确。感知机不关心样本到决策边界的距离,只要样本被正确分开即可。

  3. 支持向量机:支持向量机的目标是找到一个最大间隔(margin)的线性边界,即不仅正确分类,还要使得分类间隔最大化。最大化间隔能够提高模型的泛化能力,帮助模型在未见过的数据上表现更好。
  4. 优化目标

  5. 感知机:感知机的损失函数基于误分类点的数量,模型通过最小化误分类数来调整参数。感知机算法采用随机梯度下降法,每次仅更新误分类的样本。

  6. 支持向量机:SVM 的优化目标是最大化间隔,通过优化如下目标函数来实现:
\[\min \frac{1}{2} \|\mathbf{w}\|^2\]

同时满足所有样本点的分类约束,即使得靠近决策边界的样本到边界的距离最大。SVM 是一个凸优化问题,通常通过拉格朗日对偶理论和二次规划(Quadratic Programming, QP)来解决。

  1. 对非线性数据的处理

  2. 感知机:传统感知机无法直接处理非线性可分的数据。对于非线性数据,感知机无法找到合适的线性边界。

  3. 支持向量机:SVM 引入了核函数(如线性核、RBF 核、高斯核等)来将数据映射到高维空间,使得原本在低维空间中非线性可分的数据在高维空间中变得线性可分。这种方法称为核技巧,它使得 SVM 能够处理更多种类的分类问题。

  4. 泛化能力

  5. 感知机:感知机没有最大间隔的概念,容易受到噪声的影响,因此其泛化能力不如 SVM 稳定。

  6. 支持向量机:SVM 通过最大化间隔的策略,提高了模型的鲁棒性和泛化能力,尤其在样本分布复杂或存在噪声的情况下,SVM 的表现往往优于感知机。

  7. 算法的收敛性

  8. 感知机:当数据线性可分时,感知机算法可以在有限次更新后收敛到正确分类的解。但如果数据不可分,感知机会出现不收敛的情况。

  9. 支持向量机:SVM 是一个凸优化问题,总能找到全局最优解,因此具有更好的收敛性和稳定性。

总结⚓︎

  • 感知机适用于简单的、线性可分的数据,优化目标是减少误分类。

  • 支持向量机优化目标是最大化分类间隔,引入了核函数以处理非线性数据,适合复杂数据集,且泛化能力更强。