911 字
5 分钟
模式识别与机器学习:线性分类器-多分类问题
2026-05-28
无标签

多分类问题不能直接用二分类器(如感知机、SVM)处理,因为决策面只能分开两类。主要有以下几种策略和模型。

TIP

核心:正判是,负判否,面上不定义,决策边界是线性的


一、将多分类拆解为多个二分类#

1. 一对多(One-vs-Rest, OvR)#

  • 对于 CC 个类别,训练 CC 个二分类器 gk,k=1,2,,Cg_k,k=1,2,\ldots,C
  • kk 个分类器:将第 kkωk\omega_k 视为正类(+1),其余所有类视为负类(-1)。

判别函数

gi(x)=wiTx=j=0dwijxj,x0=1g_i(\mathbf{x}) = \mathbf{w}_i^T \mathbf{x}= \sum_{j=0}^{d} w_{ij} x_j,x_0=1

判别准则1:若存在 ii 使得 gi(x)>0,gothers exclude i<0g_i(\mathbf{x}) > 0,g_{others\ exclude\ i}<0,则预测 xx 为第 ii 类。其他情况(如多个分类器输出正类或全部输出负类)拒绝识别。

判别准则2(无拒识区域):gi(x)=argmaxjgj(x)g_i(\mathbf{x}) = \arg\max_{j} g_j(\mathbf{x}) ,如果 gi(x)g_i(\mathbf{x}) 大于某一预先设定的值 TT,则判别 x\mathbf{x} 属于 ωi\omega_i 类;如果 gi(x)g_i(\mathbf{x}) 小于等于某一预先设定的值 TT ,拒识

优点:训练 CC 个分类器,预测时只需计算 CC 次。
缺点:类别不平衡(负类样本远多于正类);不同分类器的输出可能不可比(SVM的得分可能需校准)。

2. 一对一(One-vs-One, OvO)#

  • 每两个类别之间训练一个二分类器,共 C(C1)/2C(C-1)/2 个。
  • iijj 类之间的分类器 gijg_{ij}:将 ωi\omega_i 视为正类(+1),ωj\omega_j 视为负类(-1),其他类别样本不参与训练。

判别函数

gij(x)=wijTx=k=0dwijkxk,x0=1,ijg_{ij}(\mathbf{x}) = \mathbf{w}_{ij}^T \mathbf{x}= \sum_{k=0}^{d} w_{ijk} x_k,x_0=1,i\neq j

判别准则1gij(x)>0g_{ij}(\mathbf{x}) > 0 则判别 x\mathbf{x} 属于 ωi\omega_i 类,否则属于 ωj\omega_j 类。其他情况(如多个分类器输出正类或全部输出负类)拒绝识别。

判别准则2i=argmaxkjkCsgn(gkj(x))i = \arg\max_{k}\sum_{j\neq k}^C \operatorname{sgn}(g_{kj}(\mathbf{x})),如果 ii 大于某一预先设定的值 TT,则判别 x\mathbf{x} 属于 ωi\omega_i 类;其他情况拒绝识别。

优点:每个分类器只处理相关两类,训练快;无类别不平衡问题。
缺点:分类器数量随 CC 平方增长,预测时需运行所有分类器,耗时。

二、直接构造多类线性分类器#

1. 多类感知机 / 多类SVM(Crammer & Singer)#

  • 定义 CC 个权重向量 w1,w2,,wCw_1, w_2, \dots, w_C
  • 决策函数:gk(x)=wkTx+bkg_k(x) = w_k^T x + b_k,预测类别 argmaxkgk(x)\arg\max_k g_k(x)
  • 训练时,希望正确类别的输出比其他所有类别的输出至少大一个间隔(如1)。

损失函数(多类SVM合页损失):

minwi=1N[maxkyi(wkTxi+bk(wyiTxi+byi)+1)]+\min_{w} \sum_{i=1}^{N} \left[ \max_{k \neq y_i} (w_k^T x_i + b_k - (w_{y_i}^T x_i + b_{y_i}) + 1) \right]_+

通常加正则化 kwk2\sum_k \|w_k\|^2

优点:直接优化多类目标,理论上更一致。
缺点:优化更复杂,变量多(C×(d+1)C \times (d+1))。

2. Softmax 回归(多项逻辑回归)#

  • 输出概率:

    P(y=kx)=exp(wkTx+bk)j=1Cexp(wjTx+bj)P(y=k|x) = \frac{\exp(w_k^T x + b_k)}{\sum_{j=1}^C \exp(w_j^T x + b_j)}
  • 训练:最大化对数似然(等价于最小化交叉熵损失)。

优点:给出概率估计;损失函数光滑凸,可用梯度下降。
缺点:仍为线性分类器(决策边界是线性的);对线性不可分数据效果有限。

三、非线性多分类器(扩展)#

  • kNN:直接支持多类,投票即可。
  • 神经网络:输出层使用 softmax,自动处理多类。
  • 核方法:将核技巧应用于 OvR 或 OvO,也可直接用多类核SVM。

四、如何选择?#

情况推荐策略
类别数少(<10),样本量中等OvO 或 多类SVM
类别数多(>10),样本量小OvR(线性SVM或逻辑回归)
类别数多,需要概率输出Softmax 回归
追求简单、快速原型OvR 逻辑回归
线性不可分核方法(OvR 或 OvO)或神经网络
极度大规模类别(如ImageNet)神经网络 + softmax,或使用层次分类

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