本文先介绍生成模型(generative model)和判别模型(discriminative model)的区别,然后重点介绍生成模型中的两个例子:高斯判别分析(Gaussian discriminant analysis)和朴素贝叶斯方法(Naive Bayes)
生成模型和判别模型
监督学习一般学习的是一个决策函数:
y=f(x)
或者是条件概率分布:
p(y|x)
判别模型直接用数据学习这个函数或分布,例如Linear Regression和Logistic Regression。
生成模型是用数据先学习联合概率分布 p(x,y) ,然后根据贝叶斯公式求 p(y|x) :
p(y|x)=p(x,y)p(x)=p(x|y)p(y)p(x)
预测数据x的时候,当 p(y|x) 最大时,此时的y即预测结果:
argmaxyp(y|x)=argmaxyp(x|y)p(y)p(x)=argmaxyp(x|y)p(y)(因为y的取值不影响p(x)的大小,所以可以忽略p(x)的值)
这里用了期望风险最小化准则(Empirical Minimization Principle),具体可以查看《统计学习方法》的chapter4.1.2。
1.Gaussian Discriminant Analysis
在生成模型中,我们需要知道的就是 p(x|y) 和 p(y) 的分布( (p(x)=∑mi=1p(x|y=i)p(y=i) )。
如果我们观察到样本的X大致服从多维正态分布,那么这时候我们可以使用GDA模型来预测数据。
1、首先在GDA中假设:
yx|y=0x|y=1∼Bernoulli(ϕ)∼N(μ0,Σ)∼N(μ1,Σ)
也就是:
p(y)p(x|y=0)p(x|y=1)=ϕy(1−ϕ)1−y=12πn/2|Σ|1/2exp(−12(x−μ0)TΣ−1(x−μ0))=12πn/2|Σ|1/2exp(−12(x−μ1)TΣ−1(x−μ1))
这里的x是所有特征 x1,x2,⋅⋅,xn 组成的向量;n为x的维数; μ0,μ1 是正态分布的均值向量; Σ 是协方差矩阵,考虑到x特征的协方差不会受到y的种类的很大影响,还为了计算方便性,所以我们可以使用同个 Σ 。
2.极大似然估计4个参数: ϕ,μ0,μ1,Σ
对数化似然函数
ℓ=log∏i=1mp(x(i),y(i))=log∏i=1mp(x(i)|y(i))p(y(i))=∑i=1m[y(i)logϕ+(1−y(i))log(1−ϕ)−12(x−μy(i))TΣ−1(x−μy(i))+log12πn/2