生成式算法与判别式算法

来源:互联网 发布:复杂网络的定义 编辑:程序博客网 时间:2024/06/06 02:49

前言:网易公开课机器学习 第五课 生成学习算法的观后感或者总结笔记

1. 区别

生成式算法:对p(x|y)和p(y)进行建模,也可以说是对p(x,y)进行建模,即求x,y的联合分布。比如GDA(Gaussian Discriminant Analysis),有两个类别0和1,分别对p(x|y=0)和p(x|y=1)进行建模,还有p(y=0)和p(y=1)进行建模,最终y^=argmaxip(x|y=i)p(y=i)

判别式算法:对p(y|x)进行建模,相当于一个黑箱,给定一个数据集,直接根据数据集得到决策函数或规则。比如逻辑回归,直接对p(y|x)进行建模。

2. 高斯判别分析

1. 一元高斯分布

p(x;μ,σ)=12πσe(xμ)22σ2

2. 多元高斯分布

p(x;μ,Σ)=1(2π)n/2|Σ|1/2e12(xμ)TΣ1(xμ)

其中μ为均值列向量,Σ为协方差矩阵,记作N(μ,Σ)

3. 参数求解

模型:

yBernoulli(ϕ)

x|y=0N(μ0,Σ)

x|y=1N(μ1,Σ)

分布:

p(y)=ϕy(1ϕ)1y

p(x|y=0)=1(2π)n/2|Σ|1/2e12(xμ0)TΣ1(xμ0)

p(x|y=0)=1(2π)n/2|Σ|1/2e12(xμ1)TΣ1(xμ1)

极大log似然函数:

L(ϕ,μ0,μ1,Σ)=logi=1mp(xi,yi;ϕ,μ0,μ1,Σ)=logi=1mp(xi|yi;μ0,μ1,Σ)p(yi;ϕ)

求参:

ϕ=mi=1yim

μ0=mi=1xiI(yi=0)mi=1I(yi=0)

μ1=mi=1xiI(yi=1)mi=1I(yi=1)

Σ=1mi=1m(xiμyi)(xiμyi)T

这里的xi为列向量.

3. 逻辑回归与高斯判别分析联系与区别

联系:

p(y=1|x;ϕ,μ0,μ1,Σ)=11+eΘTx

上式的意思是如果我们把高斯分布看成x的函数,那么我们可以找到合适的Θ(作为ϕ,μ0,μ1,Σ的函数)用逻辑回归的形式来表示高斯分布。事实上,不光是高斯分布,泊松分布以及一些与e的幂有关的分布都可以这样表示。但是反过来不成立,我们并不一定可以将逻辑回归表示成高斯分布,说明了高斯分布的假设是一种强假设,而逻辑回归的假设是一种弱假设。
GDA_logistic
区别:

高斯判别分析:高斯分布是一种强假设,如果数据确实是高斯分布,或者接近高斯分布,那么即使数据很少,高斯判别分析也可以得到比逻辑回归更好的效果。
逻辑回归:是一种弱假设,所以具有很好的鲁棒性,当数据不符合高斯分布时,逻辑回归可以得到比高斯判别分析更好的效果。

基于以上原因,因为实际应用中,我们并不知道数据的实际分布,所以逻辑回归比高斯判别分析使用的更多。

gda

原创粉丝点击