生成模型与判别式模型的区别

看了JerryLead大神的博客,茅塞顿开!所以把他的文章转载过来,希望在之后对相关知识模糊的时候能够看看,加深理解。原始链接原始链接地址


1判别模型与生成模型

上篇报告中提到的回归模型是判别模型,也就是根据特征值来求结果的概率。形式化表示为,在参数确定的情况下,求解条件概率。通俗的解释为在给定特征后预测结果出现的概率。

比如说要确定一只羊是山羊还是绵羊,用判别模型的方法是先从历史数据中学习到模型,然后通过提取这只羊的特征来预测出这只羊是山羊的概率,是绵羊的概率。换一种思路,我们可以根据山羊的特征首先学习出一个山羊模型,然后根据绵羊的特征学习出一个绵羊模型。然后从这只羊中提取特征,放到山羊模型中看概率是多少,再放到绵羊模型中看概率是多少,哪个大就是哪个。形式化表示为求(也包括,y是模型结果,x是特征。

利用贝叶斯公式发现两个模型的统一性:

由于我们关注的是y的离散值结果中哪个概率大(比如山羊概率和绵羊概率哪个大),而并不是关心具体的概率,因此上式改写为:

其中称为后验概率,称为先验概率。

由,因此有时称判别模型求的是条件概率,生成模型求的是联合概率。

常见的判别模型有线性回归、对数回归、线性判别分析、支持向量机、boosting、条件随机场、神经网络等。

常见的生产模型有隐马尔科夫模型、朴素贝叶斯模型、高斯混合模型、LDA、Restricted Boltzmann Machine等。

这篇博客较为详细地介绍了两个模型:

http://blog.sciencenet.cn/home.php?mod=space&uid=248173&do=blog&id=227964

2高斯判别分析(Gaussian discriminant analysis)

1) 多值正态分布

多变量正态分布描述的是n维随机变量的分布情况,这里的变成了向量,也变成了矩阵。写作。假设有n个随机变量X1,X2,…,Xn。的第i个分量是E(Xi),而。

概率密度函数如下:

其中|是的行列式,是协方差矩阵,而且是对称半正定的。

当是二维的时候可以如下图表示:

其中决定中心位置,决定投影椭圆的朝向和大小。

如下图:

对应的都不同。

2) 模型分析与应用

如果输入特征x是连续型随机变量,那么可以使用高斯判别分析模型来确定p(x|y)。

模型如下:

输出结果服从伯努利分布,在给定模型下特征符合多值高斯分布。通俗地讲,在山羊模型下,它的胡须长度,角大小,毛长度等连续型变量符合高斯分布,他们组成的特征向量符合多值高斯分布。

这样,可以给出概率密度函数:

最大似然估计如下:

注意这里的参数有两个,表示在不同的结果模型下,特征均值不同,但我们假设协方差相同。反映在图上就是不同模型中心位置不同,但形状相同。这样就可以用直线来进行分隔判别。

求导后,得到参数估计公式:

是训练样本中结果y=1占有的比例。

是y=0的样本中特征均值。

是y=1的样本中特征均值。

是样本特征方差均值。

如前面所述,在图上表示为:

直线两边的y值不同,但协方差矩阵相同,因此形状相同。不同,因此位置不同。

3) 高斯判别分析(GDA)与logistic回归的关系

将GDA用条件概率方式来表述的话,如下:

y是x的函数,其中都是参数。

进一步推导出

这里的是的函数。

这个形式就是logistic回归的形式。

也就是说如果p(x|y)符合多元高斯分布,那么p(y|x)符合logistic回归模型。反之,不成立。为什么反过来不成立呢?因为GDA有着更强的假设条件和约束。

如果认定训练数据满足多元高斯分布,那么GDA能够在训练集上是最好的模型。然而,我们往往事先不知道训练数据满足什么样的分布,不能做很强的假设。Logistic回归的条件假设要弱于GDA,因此更多的时候采用logistic回归的方法。

例如,训练数据满足泊松分布,

,那么p(y|x)也是logistic回归的。这个时候如果采用GDA,那么效果会比较差,因为训练数据特征的分布不是多元高斯分布,而是泊松分布。

这也是logistic回归用的更多的原因。


你可能感兴趣的:(生成模型与判别式模型的区别)