在解决分类问题时,生成模型(generative model)和判别模型(discriminative model)是常用的两类模型。生成模型从数据中学习特征和标签的联合概率分布p(x,y),而判别模型则学习条件概率分布p(y|x)。本文主要介绍两类模型中常见的几种算法以及它们的内在联系。
生成模型
1.高斯生成模型
假设一个二分类任务中含有类别 Ck,k=1,2 ,样本特征向量为x。概率生成模型的主要思想是先从样本中学习联合概率分布 p(x,Ck) ,然后通过边缘化(marginalization) 得到 p(x) ,最后由贝叶斯公式得到 p(Ck|x) ,从而可以根据 p(Ck|x) 将样本划入概率最大的类。
举例来说,假设样本特征向量的类条件概率(class-conditional probability)服从高斯分布,即
p(x|Ck)=N(μk,Σ)
。设
t
为样本标签,若样本属于
所以联合概率:
整个样本集的联合概率:
通过极大似然估计法我们可以得到各分布参数的估计值:
其中 N1 为 C1 中包含的样本个数, N2 为 C2 中包含的样本个数。
有了所有的分布参数,我们就可以通过边缘化和贝叶斯公式求解 p(t|x) ,从而对样本进行分类。
2.朴素贝叶斯
在面对离散特征时,我们可以将高斯分布改为其他多元离散分布。但是这么做仍然存在一个问题。假设样本有M个二元离散特征,那么M维的特征向量就会有
2M
种取值。为了拟合分布函数
p(x|t)
,我们就需要
2M−1
个参数。当M很大时,参数的数量就会变得超级庞大,这不但意味着问题的求解变得很耗时,而且需要的训练样本数量也会变大非常巨大。朴素贝叶斯很好地解决了这个问题。
朴素贝叶斯做了一个很naive的假设,它假设所有的特征都是条件独立的,即
p(x1,x2,...,xM|Ck)=p(x1|Ck)p(x2|Ck)⋅⋅⋅p(xM|Ck),k=1,2
。这样一来,由于所有特征都是二元变量,所以我们只需要一个参数来拟合每个条件概率分布,总共2M个参数,大大减少了任务复杂度,尤其是在M很大的时候。
朴素贝叶斯的求解步骤:
1. 拟合
p(xi|t),i=1,...,M,t=0,1
和
p(t),t=0,1
,拟合的方法就是直接从样本计算对应频率;
2. 由
p(x,t)=p(x1|t)p(x2|t)⋅⋅⋅p(xM|t)p(t)
得出联合概率分布。
3. 由
p(t|x)=p(t,x)p(t=0,x)+p(t=1,x)
得出后验概率,通过后验概率进行分类。
进一步地思考,当特征空间既包含离散变量又包含连续变量的时候该怎么办呢?
一种做法是把连续变量离散化,从而回到只包含离散特征的分类问题。但是这么做有的时候会把有用信息抹掉。举个例子,一个二分类任务含有一个连续特征
x
,
一种更好的做法是拟合连续分布 p(xi|Ck) ,然后将连续分布概率密度代入上述步骤2中。从而求解后验概率。
判别模型
3.逻辑回归
我们将二分类中的后验概率变换一下形式:
p(C1|x)=p(x|C1)p(C1)p(x|C1)p(C1)+p(x|C2)p(C2)
=11+p(x|C2)p(C2)p(x|C1)p(C1)
=11+e−a(x)=σ(a(x))
其中:
σ(⋅) 就是大名鼎鼎的逻辑函数。
按照之前高斯生成模型中的假设,样本特征向量的类条件概率(class-conditional probability)服从高斯分布,即
p(x|Ck)=N(μk,Σ)
,有:
代入上述
a(x)
中,我们得到:
其中:
从这里,一方面我们可以发现,由生成模型可以推导出判别模型。另一方面,当假设所有的类条件概率是协方差矩阵相同的高斯分布时, a(x) 是 x 的线性函数。既然如此,当我们的目的只是分类而不需要知道样本的联合分布时,我们就可以直接学习参数 w 和 w0 ,而不用再去学习之前那些复杂的分布参数了。假设一共M个特征,在之前的概率生成模型中,我们需要学习两个 μ 和一个 Σ ,每个 μ 中包含M个参数, Σ 中包含 M(M+1)/2 个参数,一共 2M+M(M+1)/2=M(M+5)/2 个参数,而在逻辑回归模型中我们只需要学习 M+1 个参数,即逻辑回归系数,大大简化了计算。当类条件概率的协方差矩阵不同时,分界面变为非线性,我们可以通过核函数将非线性分类转化为线性分类问题。
为了求解模型中的未知参数,首先想到的是用极大似然估计法。
令
则
如果采用常规做法,对 p(t|x) 取对数然后求导试图找到极值点的话,是无法得到解析解的。所以我们采用一种数值解法:Newton-Raphson迭代法。
首先我们定义损失函数
E(w) 被称为交叉熵(cross-entropy),是二分类任务中常用的损失函数之一。利用关系式 ∂σ∂a=σ(1−σ) 和链式法则,对 E(w) 求梯度可得:
令
其中R为 N×N 对角矩阵,
0<yn<1 ,故 Rnn>0 ,对于任意M维向量u,M为特征个数, uTHu=uTXTRXu=uTXTR−−√R−−√Xu=vTv ,其中 v=R−−√Xu 为一个N维向量,故 uTHu>0 ,H为正定矩阵。故 E(w) 为凹函数,有唯一最小值。且H可逆。
Newton-Raphson的迭代式为:
其中z是一个N维向量:
参考资料:Pattern Recognition And Machine Learning, Bishop, 2006