生成模型和判别模型
- discriminative learning algorithms,也就是根据特征值来求结果的概率。
- 可以表示为P(y∣x;θ),在参数确定的条件下,直接求得在当前样本feature下的y的概率
- 实际上是求条件概率
- 常见的判别模型有线性回归、对数回归、线性判别分析、支持向量机、boosting、条件随机场、神经网络等。
- generative learning algorithms,根据y不同来学习不同的模型,然后取概率较大的那个
- 可以表示为P(x∣y),很容易看出,使用贝叶斯公式可将两个模型进行统一:
- P(y∣x)=p(x)p(x∣y)p(y)
- 由p(x∣y)∗p(y)=p(x,y)可得,实际上生成模型是在求联合概率
- 常见的生产模型有隐马尔科夫模型、朴素贝叶斯模型、高斯混合模型、LDA、Restricted Boltzmann Machine 等。
- 这篇博客较为详细地介绍了两个模型。
Gaussian discriminant analysis
- 首先定义了multivariate normal distribution,实际上就是在单变量正态分布上进行了一点点直观的变换
- p(x;μ,∑)=(2π)n/2∣∑∣1/21exp(−21(x−μ)T∑−1(x−μ))
- 很容易得到,E(X)=μCov(X)=∑
- 现在假设输入特征x是连续性随机变量,因此假设:
- y∼Bernoulli(ϕ)
- x∣y=0∼N(μ0,∑)
- x∣y=1∼N(μ1,∑)
- 需要注意的是,在y不同的条件下,其均值不相同,但方差是相同的。
- 因此,我们可以用likelihood得到参数μ0,μ1,ϕ的估计值
Difference between GDA&logistic
- 如果我们根据贝叶斯公式对GDA求后验概率,可以得到就是sigmoid函数的形式
- 同时,我们可以发现,只要假设是指数族的形式,后验概率都可是写成sigmoid函数的形式
- 但是,如果是sigmoid函数形式的后验分布,并不能得到GDA
- 因此,GDA有着更强的假设
- 在模型符合该假设的前提下,效果比logistic更好
- logistic模型的robust更好
- 可以发现,如果x的条件概率不满足正态分布,而是posisson分布,也能得到sigmoid函数
Naive Bayes
- 朴素贝叶斯是一种生成式模型,根据现有的数据,使用likelihood计算条件概率的估计,从而得到模型参数。当需要进行预测时,就使用贝叶斯rule进行预测,取最大的那个y
- 朴素贝叶斯方法有个致命的缺点就是对数据稀疏问题过于敏感
- 当样本中的数据量不够多,不能包含预测的信息时,这时候所有的概率都为0,无法进行预测
- 因此需要使用平滑的方法,常用的就是laplace平滑
- ϕj=m+k∑1{zi=j}+1
- notes 中还介绍了在文本分类中,multi-variate Bernoulli event model 和multinomial event model的区别,如果从词典入手,那么该词在不在这个text中是两点分布;而从text入手,这个位置是某个词是多项分布。
- multinomial event model 考虑到了词在邮件中的数量,效果更好。
- 由于在Naive Bayes中,我们是基于Generative model,同时,用bernoulli或者multinomial分布进行估计(都是指数族分布),因此其充分统计量改写后依然为sigmoid函数。