高斯判别分析
高斯判别分析(Gaussian Discriminate Analysis, GDA),一种连续的软输出的概率生成模型。
概率生成模型
概率判别模型需要将p(y∣x)的值求出来,但是概率生成模型只关心更像谁,即属于0多一点还是属于1多一点。
这里问题转化为:
p(y∣x)=p(x)p(x∣y)×p(y)∝p(x∣y)×p(y)
p(y)是先验,p(x∣y)是似然,p(y∣x)是后验。
生成模型:
y^=argmaxy∈{0,1}p(y∣x)=argmaxyp(y)p(x∣y)
模型定义
- 把y看作一个伯努利分布:y∼Bernoulli(ϕ)。
- 假设似然满足高斯分布:x∣y=1∼N(μ1,Σ), x∣y=0∼N(μ0,Σ)

这里定义一个log似然函数:
log−likelihood:w0=logi=1Np(xi,yi)=i=1∑Nlog(p(xi∣yi)p(yi))=i=1∑N[logp(xi∣yi)+logp(yi)]=i=1∑N[logN(μ1zˉ)yi⋅N(μ2zˉ)1−yi+logϕyi(−ϕ)+yi]=i=1∑N[logN(μ1zˉ)yi+logN(μ2zˉ)1−yi+logϕyi(−ϕ)1−yi]=i=1∑N[1logN(M,Σ)+2logN(M,Σ)+3logϕyi(1−ϕ)−yi]
模型求解-求 ϕ
首先对 进行求解,将式子3对 ϕ 求偏导:
i=1∑Nϕyi+1−ϕyi−1=0⟹ϕ=Ni=1∑Nyi=NN1
模型求解-求 μ1
然后利用式子1求解 μ1:
μ1^=argmaxμ1i=1∑NyilogN(μ1,Σ)=argminμ1i=1∑Nyi(xi−μ1)TΣ−1(xi−μ1)
由于:
i=1∑Nyi(xi−μ1)TΣ−1(xi−μ1)=i=1∑NyixiTΣ−1xi−2yiμ1TΣ−1xi+yiμ1TΣ−1μ1
求微分左边乘以 Σ 可以得到:
i=1∑N−2yiΣ−1xi+2yiΣ−1μ1=0⟹μ1=i=1∑Nyii=1∑Nyixi=N1i=1∑Nyixi
模型求解-求μ0
求解 μ0,由于正反例是对称的,所以:
μ0=N0i=1∑N(1−yi)xi
模型求解-求协方差 Σ
最为困难的是求解 Σ,我们的模型假设对正反例采用相同的协方差矩阵,当然从上面的求解中我们可以看到,即使采用不同的矩阵也不会影响之前的三个参数。首先我们有:
i=1∑NlogN(μ,Σ)=i=1∑Nlog((2π)p/2∣Σ∣1/21)+(−21(xi−μ)TΣ−1(xi−μ))=Const−21Nlog∣Σ∣−21Trace((xi−μ)TΣ−1(xi−μ))=Const−21Nlog∣Σ∣−21Trace((xi−μ)(xi−μ)TΣ−1)=Const−21Nlog∣Σ∣−21NTrace(SΣ−1)
在这个表达式中,我们在标量上加入迹从而可以交换矩阵的顺序,对于包含绝对值和迹的表达式的导数,我们有:
∂A∂(∣A∣)∂A∂Trace(AB)=∣A∣A−1=BT
因此:
[i=1∑N((1−yi)logN(μ0,Σ)+yilogN(μ1,Σ)]′=Const−21Nlog∣Σ∣−21N1Trace(S1Σ−1)−21N2Trace(S2Σ−1)
其中,S1,S2 分别为两个类数据内部的协方差矩阵,于是:
NΣ−1−N1S1TΣ−2−N2S2TΣ−2=0⟹Σ=NN1S1+N2S2
这里应用了类协方差矩阵的对称性。
于是我们就利用最大后验的方法求得了我们模型假设里面的所有参数,根据模型,可以得到联合分布,也就可以得到用于推断的条件分布了。