将类别先验融入判别式分类的框架
立即解锁
发布时间: 2025-08-22 02:26:44 阅读量: 1 订阅数: 15 

### 将类别先验融入判别式分类的框架
#### 1. 引言
机器学习中的分类方法通常可分为判别式(或条件建模)和生成式两类。判别式分类直接对给定输入特征向量 $\mathbf{x}$ 时类别标签 $y$ 的条件分布 $p(y|\mathbf{x})$ 进行建模;而生成式方法则对联合分布 $p(y, \mathbf{x})$ 进行建模,将其拆分为类别先验 $p(y)$ 和类别条件密度 $p(\mathbf{x}|y)$,即 $p(y, \mathbf{x}) = p(y)p(\mathbf{x}|y)$。
两者的区别在于,条件模型通常只关注输入特征与类别标签之间的关系,而生成式模型不仅要解释输入数据是如何生成的,还要说明类别标签与输入数据的关联。一般来说,最先进的条件模型在分类问题上的表现优于生成式模型。
不过,与判别式方法相比,生成式方法的优势在于能够明确利用类别先验来预测类别标签。类别先验或比例的知识在以下几种情况下非常有用:
- 若训练数据中各类别的比例与测试数据不同,融入类别先验知识有助于构建一个能在测试数据上以正确概率预测类别的分类器。
- 当类别条件概率 $p(\mathbf{x}|y)$ 在训练数据和测试数据之间存在差异时(这种情况在实际中由于标注过程可能存在偏差而会出现),融入类别先验知识可使学习算法对从训练数据中获得的类别条件概率的不准确之处更具鲁棒性。在极端情况下,训练数据和测试数据的输入可能是完全随机的数字,只有类别先验在整个数据集中保持一致,此时预测测试数据类别标签的最佳策略是始终预测先验最高的类别。
然而,判别式模型专注于学习从输入数据到类别标签的映射 $p(y|\mathbf{x})$,而不表示输入密度 $p(\mathbf{x})$,因此大多数方法无法直接对边缘类别分布 $p(y)$ 进行建模或利用。
为解决这一问题,我们提出了一个框架,能够将类别先验信息明确融入判别式学习中。该框架基于类别先验能合理准确描述测试数据类别分布的假设。因此,从训练数据中学到的判别式模型不仅要能很好地解释训练数据的类别标签,还要以与类别先验一致的方式预测测试数据的类别标签。
这个框架在训练数据和测试数据具有相同类别先验但特征分布不完全相同的情况下非常有用。训练数据和测试数据的差异可能是由于训练数据的采样方式与测试数据不同,或者训练数据量过小无法很好地代表整个数据集。此外,该框架允许判别式模型使用训练数据和测试数据的混合,因此能够处理只有少量训练示例且大部分实例未标注的学习问题。
#### 2. 相关工作
本文的主要思想是将类别先验信息融入判别式学习,结合了判别式和生成式模型学习的某些方面。此前有研究利用生成式模型的信息改进判别式模型,其动机在于生成式模型有时能捕捉到对判别问题有意义的输入分布特性。例如,将支持向量机与从生成式模型导出的 Fisher 核相结合的方法,在分类问题上取得了显著改进。与这些工作不同,我们的框架不改变核函数,仅将类别先验信息作为额外提示供判别式模型使用。
由于该框架同时利用了训练数据和测试数据,因此与从有标签和无标签数据的混合中学习的工作密切相关。许多关于此问题的工作假设某种形式的生成式模型,用于解释有标签数据(即输入和标签)和无标签数据(即仅输入)。当只有少量数据有标签时,从这些数据中学到的模型可能会有偏差,融入无标签数据可在一定程度上避免有标签数据的特殊性。与这些工作不同,我们的框架专注于将无标签数据融入判别式训练。还有一些工作利用无标签数据进行模型正则化和模型选择,例如直推式支持向量机(transductive SVM),其分类边界受有标签和无标签数据的影响。而在我们的框架中,仅通过检查无标签数据预测标签的类别分布与“真实”类别先验之间的差异来改进学习到的模型。
#### 3. 将类别先验融入判别式训练
该框架的基本逻辑如下:当测试数据的模式与训练数据有很大差异时(这种情况可能由于训练数据量极少,或者在许多实际应用中训练数据和测试数据来自不同来源),直接将从训练数据中学到的判别式模型应用于测试数据进行标签预测会有问题。如果我们对测试数据的类别分布有先验知识,通过检查类别先验与判别式模型预测的测试数据类别标签分布之间的差异,就可能发现测试数据存在噪声。若这两个分布之间存在显著差异,我们会怀疑学习到的模型可能不适用于测试数据,需要进行调整。
为了改进判别式模型,需要做两件事:
1. 调整从原始判别式模型计算得到的测试数据的类别概率,使测试数据预测类别标签的平均分布向类别先验靠拢。
2. 将调整了类别概率的测试数据纳入训练数据,并在“扩大的训练数据集”上重新训练判别式模型。
调整测试数据类别概率和重新训练判别式模型的过程将迭代进行,直到达到某个局部最大值。
##### 3.1 模型描述
判别式模型的本质是计算给定输入向量 $\mathbf{x}$ 时类别标签 $y$ 的条件概率 $p(y|\mathbf{x})$。判别式模型的学习可以形式化为寻找一个能最大化训练数据对数似然的模型,即:
\[L = \sum_{i \in Train} \log p(y_i|\mathbf{x}_i, \mathcal{M}) \quad (1)\]
其中,$\mathcal{M}$ 表示判别式模型,$\mathbf{x}_i$ 是第 $i$ 个训练数据点,$y_i$ 是其类别标签。
为了将类别先验信息融入模型,判别式模型不仅要能很好地解释训练数据,还要以与类别先验一致的方式预测测试数据的类别标签。因此,需要在公式 $(1)$ 中添加一个额外的项来衡量这两个分布之间的差异。
对于测试数据集中的每个实例,引入一个关于类别标签的未知分布,它表示估计的类别分布,将结合类别先验约束和模型预测。设 $r_{k,y}$ 是第 $k$ 个测试数据点属于类别 $y$ 的概率。为了强制训练数据和测试数据的类别先验一致,对估计的类别概率 $r_{k,y}$ 施加以下约束:
\[\forall y, \sum_{k \in Test} r_{k,y} = N_{test} p_y \quad (2)\]
接下来,需要将估计的类别概率 $r_{k,y}$ 与目标函数联系起来。我们希望模型 $\mathcal{M}$ 预测的类别标签分布 $p(y|\mathbf{x}_k, \mathcal{M})$ 与估计的类别分布 $r_{k,y}
0
0
复制全文
相关推荐







