Part 4. 生成学习演算法(Generative Learning algorithms)

1.GDA(Gaussian discriminant analysis)

1.1先了解一下高斯分布

前面已经了解到一维高斯分布

现在了解一下多维高斯分布

由以上图示可知,μ 决定图像的位置,σ 和 Σ 决定图像的形状

1.2 GDA model

log-likelihood:

参数为: φ, Σ, μ0 and μ1

由极大似然估计,得:

模型如图:

直线表示等概率分界,直线两边的等高线图形相同,因为Σ相同。

1.3 GDA和logistic regression

GDA模型可以写成对数几率回归模型:

左高斯图为p(x|y=0),右高斯图为p(x|y=1),y~伯努利分布,拟合出p(y),可求出p(x)=p(x|y=0)p(y=0)+p(x|y=1)p(y=1),再利用贝叶斯公式求出p(y=1|x),描点绘图可以发现和logistic regression的sigmoid函数相似。

左高斯图为p(x|y=0),右高斯图为p(x|y=1),y~伯努利分布,拟合出p(y),可求出p(x)=p(x|y=0)p(y=0)+p(x|y=1)p(y=1),再利用贝叶斯公式求出p(y=1|x),描点绘图可以发现和logisticregression的sigmoid函数相似。

GDA VS. logistic regression:

GDA的条件更强,因此当训练集数据满足高斯分布时,GDA模型更好。但是当训练集数据不满足高斯分布,则对数几率回归比较好(泛化)。一般情况下,用对数几率回归。此处回答了part 2的问题:为什么选logistic function?

2.Naive Bayes

GDA的特征向量x是连续的,在NB中向量x是离散化的(每个元素用0,1表示)

以邮件过滤器为例,假设垃圾邮件有关键字:buy,price… 用一个特征向量表示(0,0,…,1,0,…)。向量维度为辞汇表大小,0表示非关键字,1表示关键字。假设辞汇表有5000个单词,那共有2^5000(指数级)个特征向量,同样,需要这么多的参数来拟合。

为此,我们假设在y条件下,x特征向量相互独立(这是一个强条件)即

第一个等号是根据条件概率公式,第二个等号是根据我们做出的条件独立性假设。

因此,我们的参数数量就减少到O(n)级,有: φi|y=1 = p(xi = 1|y = 1), φi|y=0 = p(xi = 1|y = 0), and φy = p(y = 1).

极大似然估计,得:

其实很好理解,如,φj|y=1 表示的就是出现单词 j 时垃圾文件占得比例。

当GDA模型不适用时,将特征向量离散化,用朴素贝叶斯法。

2.1Laplace smoothing

仍以邮件过滤器为例,当出现一个之前从未出现的单词,如nip,排在第3500个,就会出现 φ3500无论如何都等于0的情况。因为

所以,

为此,我们引入laplace smoothing,将 φ定义为

这样永远不会等于0.

其中,k为y的可能取值数量,即分类数目,

这样,原来邮件过滤器的参数改为:


推荐阅读:
相关文章