1.1.2 判别模型与生成模型
为了避免读者对几个常见概念产生混淆,本节我们仅限于在监督学习的范围内介绍判别模型与生成模型。根据1.1.1节可知,监督学习是指学习一个模型,然后利用该模型对给定的输入预测相应的输出。我们可将模型写成函数形式Y=f(X)或条件概率分布形式p(Y|X),并根据条件概率分布的计算方式将其分为判别模型与生成模型。
在判别模型中,我们直接对p(Y|X)进行建模,试图描述在给定输入特征X的情况下标签信息Y的分布。典型的判别模型包括k近邻法、感知机、决策树、逻辑回归和条件随机场等。判别模型对条件概率模型直接建模,无法反映训练数据本身的概率特性,但是以分类问题为例,判别模型在寻找最优分类面的过程中,学习了不同类别数据之间的差异。另外,判别模型可以对数据进行各种程度上的抽象、降维,因此可以简化学习问题,提高学习准确率。
在生成模型中,对数据特征X和标签Y的联合分布p(X,Y)进行建模,然后利用条件概率公式,即可计算p(Y|X),如下所示:
实际上,我们通常将联合分布变换成易于求解的形式:
其中,p(Y)为标签信息Y的先验概率,描述了在对样本特征X一无所知的情况下Y的概率分布。p(Y|X)为标签Y的后验概率,描述了在明确样本特征X后Y的概率分布。典型的生成模型有朴素贝叶斯方法和隐马尔可夫模型等。在朴素贝叶斯方法中,我们通过训练集学习到先验概率分布p(Y)和条件概率分布p(X|Y),即可得到联合概率分布p(X,Y);在隐马尔可夫模型中,我们通过训练集学习到初始概率分布、状态转移概率矩阵和观测概率矩阵,即可得到一个表示状态序列与观测序列联合分布的马尔可夫模型。
生成模型直接学习联合分布,可以更好地表示数据的分布,反映同类数据的相似度。当样本数量比较大时,生成模型往往可以更快、更好地收敛到真实模型上。另外,生成模型可以处理含有隐变量的情况,而判别模型对此无能为力。生成模型也可以通过计算边缘分布P(X)来检测某些异常值。但在实践中,生成模型的计算开销一般比较大,而且多数情况下其效果不如判别模型。