1. 基本概念
1.1 多分类学习问题
问题背景:
在现实中,我们经常会遇到多分类学习任务。有些二分类学习方法可以直接推广到多分类问题,但在更多情况下,我们是基于一些基本策略,利用二分类学习器来解决多分类问题。
核心思想:
多分类学习的基本思路是拆解法(decomposition method),即将多分类任务拆解为若干个二分类任务求解。具体来说:
- 先对问题进行拆分
- 然后为拆出的每个二分类任务训练一个分类器
- 在测试时,对这些分类器的预测结果进行集成以获得最终的多分类结果
关键问题:
- 如何对多分类任务进行拆分?
- 如何对多个分类器进行集成?
1.2 拆解策略
三种经典策略:
- 一对一(One vs. One,简称OvO)
- 一对其余(One vs. Rest,简称OvR)
- 多对多(Many vs. Many,简称MvM)
2. 多分类学习方法
2.1 一对一(OvO)
方法:
给定数据集 D = {(x₁, y₁), (x₂, y₂), ..., (xₘ, yₘ)},其中 yᵢ ∈ {C₁, C₂, ..., Cₙ}。
OvO将这 N 个类别两两配对,从而产生 N(N-1)/2 个二分类任务。例如,OvO会为区分类别 Cᵢ 和 Cⱼ 训练一个分类器,该分类器把 D 中的 Cᵢ 类样例作为正例,Cⱼ 类样例作为反例。
测试阶段:
在测试时,新样本将同时提交给所有 N(N-1)/2 个分类器,于是我们将得到 N(N-1)/2 个分类结果,最终结果可通过投票产生:把被预测得最多的类别作为最终分类结果。
特点:
- 分类器数量 :需要训练
N(N-1)/2个分类器 - 存储和测试开销:一般比OvR大
- 训练开销:OvO的每个分类器只用到两个类的样例,而OvR的每个分类器需用到所有训练样例。因此,当类别数很多时,OvO的训练开销通常比OvR小
- 预测性能:预测性能取决于数据分布,但在多数情况下两者差不多
2.2 一对其余(OvR)
方法:
OvR则是每次将一个类的样例作为正例、所有其他类的样例作为反例来训练 N 个分类器。
测试阶段:
在测试时,若仅有一个分类器预测为正类,则对应的类别标记作为最终分类结果。若有多个分类器预测为正类,则通常考虑各分类器的预测置信度,选择置信度最大的类别标记作为分类结果。
特点:
- 分类器数量 :需要训练
N个分类器 - 存储和测试开销:一般比OvO小
- 训练开销:每个分类器需用到所有训练样例,当类别数很多时,训练开销通常比OvO大
- 预测性能:预测性能取决于数据分布,但在多数情况下与OvO差不多
2.3 多对多(MvM)
方法:
MvM是每次将若干个类作为正类,若干个其他类作为反类。显然,OvO和OvR是MvM的特例。
关键问题:
MvM的正、反类构造必须有特殊的设计,不能随意选取。
常用技术:
纠错输出码(Error Correcting Output Codes,简称ECOC)是一种最常用的MvM技术。
2.4 纠错输出码(ECOC)
基本思想:
ECOC将编码的思想引入类别拆分,并让它在解码过程中具有容错性。
编码阶段:
对 N 个类别做 M 次划分,每次划分将一部分类别划为正类,另一部分划为反类,从而形成一个二分类训练集。这样一共产生 M 个训练集,可训练出 M 个分类器。
解码阶段:
M 个分类器分别对测试样本进行预测,这些预测标记组成一个编码。将这个预测编码与每个类别各自的编码进行比较,返回其中距离最小的类别作为最终预测结果。
编码矩阵:
类别划分通过编码矩阵(coding matrix)指定。编码矩阵有两种常见形式:
- 二元码:每个类别被指定为正例或反例
- 三元码:除了正例、反例,还有"停用类"(即该分类器不使用该类别的样本)
为什么叫"纠错输出码"?
在测试阶段,ECOC编码对分类器的错误有一定的容忍和修正能力。例如,即使某个分类器预测错误,只要其他分类器的预测正确,最终仍可能得到正确的分类结果。
特点:
- 纠错能力:对于同一个学习任务,ECOC编码越长,纠错能力越强
- 计算开销:编码越长,意味着需要训练的分类器越多,计算、存储开销都会增大
- 理论最优性:对于有限类别数,可能的组合数目是有限的,码长超过一定范围后就失去了意义
- 编码距离:理论上,对同等长度的编码,理论上任意两个类别之间的编码距离越远,则纠错能力越强
实际考虑:
学习问题涉及很多因素,例如将多个类拆解为两个"类别子集",不同拆解方式所形成的两个类别子集的区分难度往往不同。于是,一个理论纠错性质很好、但导致的二分类问题较难的编码,与另一个理论纠错性质差一些、但导致的二分类问题较简单的编码,最终产生的模型性能孰强孰弱很难说。因此,在实际应用中,往往不需要获得理论最优编码,因为非最优编码在实践中往往也能产生足够好的结果。
3. 总结
多分类学习是机器学习中的重要问题。当遇到多分类任务时,通常采用拆解法,将多分类任务拆解为若干个二分类任务求解。
三种经典拆解策略:
- OvO (一对一):将
N个类别两两配对,产生N(N-1)/2个二分类任务,通过投票决定最终结果 - OvR (一对其余):每次将一个类作为正例,其余类作为反例,训练
N个分类器 - MvM(多对多):每次将若干个类作为正类,若干个其他类作为反类,常用ECOC技术
方法选择:OvO和OvR在预测性能上通常差不多,但OvO的训练开销通常更小,OvR的存储和测试开销通常更小。ECOC具有纠错能力,但计算开销较大。在实际应用中,应根据具体任务的特点、类别数、样本量等因素选择合适的方法。