版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Hemk340200600/article/details/88084947
高斯判别分析
高斯判别分析(Gaussian discriminative analysis )是一个较为直观的模型,属于生成模型的一种,采用一种软分类的思路,所谓软分类就是我们对一个样本决定它的类别时使用概率模型来决定,而不是直接由函数映射到某一类上。生成模型通过求解联合概率来求解
P(y∣x)。它假设
y∼Bernoulli(ϕ)x∣y=1∼N(μ1,Σ)x∣y=0∼N(μ2,Σ)
则有
P(y)=ϕy(1−ϕ)1−yP(x∣y)=N(μ1,Σ)y⋅N(μ2,Σ)1−y
模型的参数为
θ=(μ1,μ2,Σ,ϕ)
对于生成模型,我们要求解的目标函数是
y^=argy∈{0,1}maxp(y∣x)=argymaxp(y)p(x∣y)
定义似然函数,则
θ^=argθmaxl(θ)=argθmaxlogi=1∏Np(xi,yi)=argθmaxlogi=1∏Np(yi)p(xi∣yi)=argθmaxi=1∑N(logN(μ1,Σ)yi+logN(μ2,Σ)1−yi+logϕyi(1−ϕ)1−yi)
- 求
ϕ:
∂ϕ∂l(θ)=i=1∑Nyiϕ1−(1−yi)1−ϕ1=0⟺i=1∑Nyi(1−ϕ)−(1−yi)ϕ=0⟺i=1∑N(yi−ϕ)=0⟺i=1∑Nyi−Nϕ=0⟺ϕ^=N1i=1∑Nyi=NN1
- 求
μ1,μ2:
两个的求解过程其实是相同的,所以我们直接求解
μ1,由于我们只对
μ1求解,所以原式可以化简为
i=1∑Nyilog(2π)2p∣Σ∣211exp(−21(xi−μ1)TΣ−1(xi−μ1))=i=1∑Nyilog(2π)2p∣Σ∣211exp(−21(xiTΣ−1−μ1TΣ−1)(xi−μ1))=i=1∑Nyilog(2π)2p∣Σ∣211exp(−21(xiTΣ−1xi−2μ1TΣ−1xi+μ1TΣ−1μ1))
对上式求导并令导数为0,有
−21i=1∑Nyi(−2Σ−1xi+2Σ−1μ1)=0⟺i=1∑Nyi(Σ−1μ1−Σ−1xi)=0⟺i=1∑Nyi(μ1−xi)=0⟺i=1∑Nyiμ1=i=1∑Nyixi⟺μ^1=i=1∑Nyii=1∑Nyixi=N1i=1∑Nyixi
同理可得
μ^2=i=1∑N(1−yi)i=1∑N(1−yi)xi=N2i=1∑N(1−yi)xi
- 求
Σ:
尝试对通项
logN(μ,Σ)进行化简,有
i=1∑NlogN(μ,Σ)=i=1∑Nlog(2π)2p∣Σ∣211exp(−21(xi−μ)TΣ−1(xi−μ))=i=1∑N(log(2π)2p1+∣Σ∣−21−21(xi−μ)TΣ−1(xi−μ))=i=1∑N(C−21log∣Σ∣−21(xi−μ)TΣ−1(xi−μ))=C−21Nlog∣Σ∣−21tr(i=1∑N(xi−μ)TΣ−1(xi−μ))=C−21Nlog∣Σ∣−21tr(i=1∑N(xi−μ)(xi−μ)TΣ−1)=−21Nlog∣Σ∣−21tr(SΣ−1)+C
由于只需要对
Σ求解,所以对似然函数化简为
i=1∑N(yilogN(μ1,Σ)+(1−yi)logN(μ2,Σ))=xi∈c1∑logN(μ1,Σ)+xi∈c2∑logN(μ2,Σ)=−21N1log∣Σ∣−21tr(S1Σ−1)−21N2log∣Σ∣−21N2tr(S2Σ−1)+C=−21(N1log∣Σ∣+N1tr(S1Σ−1)+N2log∣Σ∣+N2tr(S2Σ−1))+C
根据tr的求导公式
∂A∂tr(AB)=B−1∂A∂tr(∣A∣)=∣A∣⋅A−1tr(AB)=tr(BA)
对上面化简后的式子进行求导并令导数为0,有
−21(N∣Σ∣1∣Σ∣Σ−1+N1∂Σ−1∂tr(Σ−1S1)∂Σ∂tr(Σ−1)+N2∂Σ−1∂tr(Σ−1S2)∂Σ∂tr(Σ−1))=0⟺N∣Σ∣1∣Σ∣Σ−1−N1S1TΣ−2−N1S2TΣ−2=0⟺NΣ−1−N1S1Σ−2−N1S2Σ−2=0⟺NΣ−N1S1−N1S2=0⟺NΣ−N1S1−N1S2=0⟺Σ^=N1(N1S1+N2S2)