前面的二分类器(感知机、逻辑回归、SVM)只能区分两类。实际中更常见的是 C>2 类的问题。处理多分类有两种思路:将多分类拆成多个二分类,或者直接构造多类模型。
基本概念#
在进入具体方法之前,统一几个术语:
| 术语 | 符号 | 含义 |
|---|
| 判别函数 | gj(x) | 第 j 类的打分函数,值越大表示模型越倾向于将该样本判为第 j 类 |
| 决策准则 | y^=argmaxjgj(x) | 从判别函数到类别的映射规则 |
| 决策边界 | gi(x)=gj(x) | 类别 i 和 j 之间的分界面,两侧各判一类 |
| 拒识 | — | 当最大判别值低于某个阈值 T 时放弃分类,避免高风险错误 |
本章沿用 Bayes 章的符号约定:x 是加粗的特征向量,ωj 是第 j 个类别,P(⋅) 表示概率。分类器统一表示为:
gj(x)=wjTx+bj多类决策准则统一为 ω^=argmaxjgj(x),不同方法的不同之处在于如何训练得到 wj 和 bj。
一对多(One-vs-Rest, OvR)#
对每个类别 ωk 训练一个二分类器 gk(x),将该类视为正类(+1),其余所有类视为负类(−1)。总共训练 C 个分类器。
决策准则:计算所有 gk(x),若存在唯一 k 使得 gk(x)>0 且所有其他 gj(x)<0,则判为 ωk。若多个分类器输出正类或全部输出负类,可设拒识。
实用变体:用 ω^=argmaxkgk(x) 替代硬阈值,此时 OvR 退化为一个直接的多类决策。但这个做法要求不同分类器的输出值可比——逻辑回归和 SVM 的输出尺度不同,不能直接混用。
优点:分类器数量少(C 个),预测速度快。
缺点:每类的负类样本是其他所有类之和,类别不平衡严重;不同分类器输出不可比。
一对一(One-vs-One, OvO)#
每对类别 (ωi,ωj) 之间训练一个二分类器 gij(x),共 C(C−1)/2 个。训练时只使用 ωi 和 ωj 的样本,其他类不参与。
决策准则:每个分类器 gij 投一票给 ωi 或 ωj,统计所有分类器的投票结果,得票最多的类别获胜:
ω^=argkmaxj=k∑I[gkj(x)>0]其中 I[⋅] 是指示函数。表示为 I[gkj(x)>0]=1 表示 gkj 投票给 ωk,否则投给 ωj。
优点:每个分类器只接触两类数据,训练快;无类别不平衡问题。
缺点:分类器数量随 C 平方增长,预测时需运行 C(C−1)/2 个分类器,速度慢。
Softmax 回归(多项逻辑回归)#
前两种方法将多分类拆成多个二分类,Softmax 回归则直接构造一个多类模型。
模型定义#
将逻辑回归的 Sigmoid 替换为 Softmax 函数:
P(ωk∣x)=∑j=1Cexp(wjTx+bj)exp(wkTx+bk),k=1,2,…,CSoftmax 将 C 个实数得分 {wjTx+bj} 归一化为一个概率分布——所有输出在 [0,1] 之间且和为 1。当 C=2 时,Softmax 退化为逻辑回归。
损失函数#
沿用逻辑回归的 MLE 框架。对于数据集 {(xi,yi)}i=1N,yi∈{1,…,C},记 pik=P(ωk∣xi),负对数似然为:
J({wj,bj})=−i=1∑Nlnpi,yi=−i=1∑N(wyiTxi+byi−lnj=1∑Cexp(wjTxi+bj))这称为多类交叉熵损失(categorical cross-entropy)。
梯度推导#
对第 k 类的权重向量 wk 求梯度。利用 Softmax 的导数 ∂pik/∂(wkTxi)=pik(1−pik) 以及 ∂pij/∂(wkTxi)=−pikpij(j=k),可得:
∂wk∂J=i=1∑N(pik−I[yi=k])xi这个形式与二分类逻辑回归的梯度 (pi−yi)xi 完全一致——唯一的区别是现在对每个类别 k 独立计算,每个样本对梯度的贡献取决于它是否属于该类。
与 MLE 的对应#
Softmax + 交叉熵 = MLE for 多项分布(categorical distribution),正如:
- 线性回归 + 均方误差 = MLE for 高斯分布
- 逻辑回归 + 二分类交叉熵 = MLE for 伯努利分布
三种模型的损失函数都可以统一到”MLE + 数据分布假设”的框架下。
多类感知机 / 多类SVM(Crammer-Singer)#
直接构造 C 个权重向量 w1,…,wC,决策函数为 gk(x)=wkTx+bk,预测类别 argmaxkgk(x)。
训练时要求正确类别的得分比其他类别至少大一个间隔(通常取 1),损失函数为:
{wj,bj}mini=1∑N[k=yimax(wkTxi+bk−(wyiTxi+byi)+1)]+其中 [⋅]+=max(0,⋅) 是合页损失(hinge loss)。这个损失鼓励正确类的得分高出所有错误类至少 1,对不满足约束的样本惩罚,满足的样本不产生损失。
多类 SVM 直接优化多类目标,理论上比 OvR/OvO 更一致,但变量数量为 C×(d+1),优化更复杂。
方法对比#
| 方法 | 分类器数量 | 输出形式 | 训练复杂度 | 适用场景 |
|---|
| OvR | C | 得分(不可比) | 低 | 类别多、追求速度 |
| OvO | C(C−1)/2 | 投票数 | 中 | 类别少、样本量大 |
| Softmax | 1 | 概率 | 中 | 需要概率输出、类别数中等 |
| 多类SVM | 1 | 得分 | 高 | 追求精度、计算资源充足 |
选择策略没有绝对最优:类别数少且需要概率时 Softmax 是自然选择;类别数很多(如 >100)时 OvR 更实用;类别数很少(如 3-5)且追求精度时 OvO 值得一试。