1280 字
6 分钟
模式识别与机器学习:线性分类器
2026-05-28
无标签

线性分类器#

TIP

想象二维平面上有两类点(比如红点和蓝点),线性分类器就是用一条直线把它们分开。 在三维空间里,就是用一个平面分开;更高维空间里,用一个超平面分开。

核心假设:数据点可以通过一个线性函数(超平面)来分割成不同的类别。

定义:对于输入空间 Rd\mathbb{R}^d 中的一个dd 维原始特征向量 x=(x1,x2,,xd)T\mathbf{x}=(x_1, x_2, \ldots, x_d)^T,线性分类器通过一个线性函数 g(x)=wTx+bg(\mathbf{x}) = \mathbf{w}^T \mathbf{x} + b 来进行分类,其中 w=(w1,w2,,wd)T\mathbf{w}=(w_1, w_2, \ldots, w_d)^T 是权重向量,bb 是偏置项。

  • 如果 g(x)>0g(\mathbf{x}) > 0,则 x\mathbf{x} 被分类为正类(例如类别+1)。
  • 如果 g(x)<0g(\mathbf{x}) < 0,则 x\mathbf{x} 被分类为负类(例如类别-1)。
  • 如果 g(x)=0g(\mathbf{x}) = 0,则 x\mathbf{x} 位于决策边界上。
  • 从几何意义上看,决策边界是一个超平面,由 wT\mathbf{w}^T 是法向量,bb 是偏移量。
TIP

推导:

对于两类 yi{1,1i=1,2}y_i\in\{-1,1|i=1,2\} 训练数据:y1{x1,x2,,xn1}y_1\{\mathbf{x}_1, \mathbf{x}_2, \ldots, \mathbf{x}_{n_1}\}, y2{xn1+1,xn1+2,,xn1+n2}y_2\{\mathbf{x}_{n_1+1}, \mathbf{x}_{n_1+2}, \ldots, \mathbf{x}_{n_1+n_2}\} 目标:找到一个 w\mathbf{w}bb 使得:

{wTxi+b>0,for i=1,2,,n1(wTxj+b)>0,for j=n1+1,n1+2,,n1+n2\begin{cases} \mathbf{w}^T \mathbf{x}_i + b > 0, & \text{for } i=1,2,\ldots,n_1 \\ -(\mathbf{w}^T \mathbf{x}_j + b) > 0, & \text{for } j=n_1+1,n_1+2,\ldots,n_1+n_2 \end{cases}

写成矩阵形式,把两类训练数据合到一个矩阵中,并且纳入偏置项1,称为增广矩阵,后文的推导中均以增广矩阵为基础:

[x1T1x2T1xn1T1xn1+1T1xn1+2T1xn1+n2T1][w1w2wdb]>0    [x11x12x1d1x21x22x2d1xn11xn12xn1d1xn1+11xn1+12xn1+1d1xn1+21xn1+22xn1+2d1xn1+n21xn1+n22xn1+n2d1][w1w2wdb]>0Xw>0\begin{bmatrix} \mathbf{x}_1^T & 1 \\ \mathbf{x}_2^T & 1 \\ \vdots & \vdots \\ \mathbf{x}_{n_1}^T & 1 \\ -\mathbf{x}_{n_1+1}^T & -1 \\ -\mathbf{x}_{n_1+2}^T & -1 \\ \vdots & \vdots \\ -\mathbf{x}_{n_1+n_2}^T & -1 \\ \end{bmatrix} \begin{bmatrix} w_1 \\ w_2 \\ \vdots \\ w_d \\ b \end{bmatrix} > \mathbf{0}\iff \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1d} &1\\ x_{21} & x_{22} & \cdots & x_{2d} & 1\\ \vdots & \vdots & \ddots & \vdots & \vdots \\ x_{n_1 1} & x_{n_1 2} & \cdots & x_{n_1 d} & 1\\ -x_{n_1+1 1} & -x_{n_1+1 2} & \cdots & -x_{n_1+1 d} & -1\\ -x_{n_1+2 1} & -x_{n_1+2 2} & \cdots & -x_{n_1+2 d} & -1\\ \vdots & \vdots & \ddots & \vdots & \vdots \\ -x_{n_1+n_2 1} & -x_{n_1+n_2 2} & \cdots & -x_{n_1+n_2 d} & -1\\ \end{bmatrix} \begin{bmatrix} w_1 \\ w_2 \\ \vdots \\ w_d \\ b \end{bmatrix} > \mathbf{0}\\[1ex] \mathbf{X}\mathbf{w}>0

X\mathbf{X} 是增广矩阵(d+1列),w\mathbf{w} 是增广权重向量。

这个解不唯一,定义一个准则函数 J(w)J(\mathbf{w}),当 w\mathbf{w} 是解向量时,J(w)J(\mathbf{w}) 为最小;

采用最优化方法求解标量函数 J(w)J(\mathbf{w}) 的极小值。

最优化方法采用最多的是梯度下降法,设定初始权值向量 w(1)\mathbf{w}^{(1)},然后沿梯度的负方向迭代计算。

感知机#

定义标签 yi{1,1i=1,2}y_i\in\{1,-1|i=1,2\} ,定义输入d维特征向量 x=(x1,x2,,xd)T\mathbf{x}=(x_1, x_2, \ldots, x_d)^T,增广特征向量 x=(x1,x2,,xd,1)T\mathbf{x}=(x_1, x_2, \ldots, x_d, 1)^T,权重向量 w=(w1,w2,,wd,b)T\mathbf{w}=(w_1, w_2, \ldots, w_d, b)^T

决策函数(x经过增广处理):g(x)=wTxg(\mathbf{x}) = \mathbf{w}^T \mathbf{x}

  • 一个样本 xi\mathbf{x}_i 到决策面的 有符号距离g(xi)w\dfrac{g(\mathbf{x}_i)}{\|\mathbf{w}\|},其中 w\|\mathbf{w}\| 是权重向量的范数,忽略。符号表示点位于哪一侧,大小表示离平面多远。
  • 分类正确:yig(xi)>0y_i g(\mathbf{x}_i) > 0 即真实标签与预测值同号。
  • 分类错误:yig(xi)<0y_i g(\mathbf{x}_i) < 0 即真实标签与预测值异号。

准则函数(批量下降):设错分类的样本集合为 X\mathcal{X}

Jp(w)=xX(yig(xi))=xXwTxi=xXxiTwJp(w)=xXxiarg minwJp(w)J_p(\mathbf{w})=\sum_{x\in\mathcal{X}} -(y_i g(\mathbf{x}_i))=\sum_{x\in \mathcal{X}} -\mathbf{w}^T \mathbf{x}_i=\sum_{x\in \mathcal{X}} -\mathbf{x}_i^T \mathbf{w}\\[1ex] \nabla J_p(\mathbf{w})=\sum_{x\in \mathcal{X}} -\mathbf{x}_i\\ \argmin_{\mathbf{w}} J_p(\mathbf{w})
TIP
  1. choice1 :用分类错误的个数来定义,但是不可导
  2. choice2 :只考虑错分样本,并让它们到决策面的距离之和最小化。

这里取符号转化为最小化优化问题,yiy_i 是确定的常量,可以直接去掉。

迭代更新权重(批量下降):

w(t+1)=w(t)+ηxXx\mathbf{w}^{(t+1)} = \mathbf{w}^{(t)} + \eta \sum_{x\in \mathcal{X}} \mathbf{x}

感知器算法的特点如下:

  • 当样本线性可分情况下,学习率合适时,算法具有收敛性。
  • 收敛速度较慢。
  • 当样本线性不可分情况下,算法不收敛,且无法判断样本是否线性可分。

LMSE 最小均方误差线性分类器#

LMSE将求解线性不等式组的问题转化为求解线性方程组。我们希望每个不等式都是大于0的,既然这样,LMSE设定了任意的正常数b,将不等式转化为等式,只要等式成立,那左边的多项式一定是大于0的。

Xw=b\mathbf{X} \mathbf{w} = b

X\mathbf{X} 是增广矩阵(d+1列),w\mathbf{w} 是增广权重向量。

这一坨实际往往无解,X不是方阵。只能求一个近似解

决策函数g(x)=wTxg(\mathbf{x}) = \mathbf{w}^T \mathbf{x} (和感知器一样)

准则函数(批量下降):让所有样本的输出尽可能接近预设的目标值 bb, 避免离决策面太近

Js(w)=12i=1n(wTxib)2Js(w)=i=1n(wTxib)xiJ_s(\mathbf{w}) = \frac{1}{2}\sum_{i=1}^n (\mathbf{w}^T \mathbf{x}_i - b)^2\\ \nabla J_s(\mathbf{w}) = \sum_{i=1}^n (\mathbf{w}^T \mathbf{x}_i - b) \mathbf{x}_i

迭代更新权重(批量下降):

w(t+1)=w(t)ηi=1n(wTxib)xi\mathbf{w}^{(t+1)} = \mathbf{w}^{(t)} - \eta \sum_{i=1}^n (\mathbf{w}^T \mathbf{x}_i - b) \mathbf{x}_i

LMSE算法的特点如下:

  • 算法的收敛程度依赖于学习率的衰减。

  • 算法对于线性不可分的训练样本也能够收敛于一个均方误差最小解。

  • 取b=1时,当样本数趋于无穷多时,算法的解以最小均方误差逼近贝叶斯判别函数。

  • 当训练样本线性可分的情况下,算法未必收敛于一个分类超平面。

  • LMSE在线性可分的问题中,得到的效果不是很好,举例如下

模式识别与机器学习:线性分类器
https://biscuit0613.github.io/posts/ml/linearclf/
作者
Biscuit
发布于
2026-05-28
许可协议
CC BY-NC-SA 4.0