目录

  • 概率生成式模型
  • 高斯判别模型原理
  • 高斯判别模型的参数估计

概率生成式模型

概率判别式模型直接对条件概率p(Y∣X)p(Y|X)p(Y∣X)建模,比如逻辑回归,先计算p(y=1∣x)p(y=1|x)p(y=1∣x)和p(y=0∣x)p(y=0|x)p(y=0∣x)的概率值,再通过概率值判断分类结果取0还是1;
概率生成式模型关心的是p(y=0∣x)p(y=0|x)p(y=0∣x)和p(y=1∣x)p(y=1|x)p(y=1∣x)两个概率哪个更大,只是比较二者的大小,不是一味地求p(y∣x)p(y|x)p(y∣x)的具体值;引入贝叶斯公式:
p(y∣x)=p(x∣y)p(y)p(x)p(y|x)=\frac{p(x|y)p(y)}{p(x)}p(y∣x)=p(x)p(x∣y)p(y)​
分母p(x)p(x)p(x)是样本的概率,一般为常数,因此有p(y∣x)p(y|x)p(y∣x)正比于p(x∣y)p(y)p(x|y)p(y)p(x∣y)p(y),即正比于联合概率;所以有生成式模型的表达:
y=argmaxy∈{0,1}p(y∣x)=argmaxy∈{0,1}p(x∣y)p(y)y=argmax_{y\in\left\{0,1\right\}}p(y|x)=argmax_{y\in\left\{0,1\right\}}p(x|y)p(y)y=argmaxy∈{0,1}​p(y∣x)=argmaxy∈{0,1}​p(x∣y)p(y)

高斯判别模型原理

对p(y)p(y)p(y)进行研究,yyy的取值为1或0,是一个二分类问题,随机变量yyy服从伯努利分布:

yyy 111 000
ppp ϕ\phiϕ 1−ϕ1-\phi1−ϕ

即有:p(y=1)=ϕyp(y=1)=\phi^{y}p(y=1)=ϕy 和 p(y=0)=(1−ϕ)1−yp(y=0)=(1-\phi)^{1-y}p(y=0)=(1−ϕ)1−y;联立为一个式子:
p(y)=ϕy(1−ϕ)1−yp(y)=\phi^{y}(1-\phi)^{1-y}p(y)=ϕy(1−ϕ)1−y
再对p(x∣y)p(x|y)p(x∣y)进行研究,先做出一个强假设:当确定样本类别时,样本存在的概率服从高斯分布,这也是高斯判别模型中具有"高斯"二字的原因;即有:
p(x∣y=1)=N(μ1,Σ),p(x∣y=0)=N(μ0,Σ)p(x|y=1)=N(\mu_{1},\Sigma),p(x|y=0)=N(\mu_{0},\Sigma)p(x∣y=1)=N(μ1​,Σ),p(x∣y=0)=N(μ0​,Σ)
可以进一步描述模型的假设:基于不同分类的条件概率满足高斯分布,他们具有不同的均值(或者均值向量),但是其方差(或者协方差矩阵)是一致的。现在,将两个条件概率写成一个式子进行表达:
p(x∣y)=N(μ1,Σ)yN(μ0,Σ)1−yp(x|y)=N(\mu_{1},\Sigma)^{y}N(\mu_{0},\Sigma)^{1-y}p(x∣y)=N(μ1​,Σ)yN(μ0​,Σ)1−y

高斯判别模型的参数估计

根据p(y)p(y)p(y)和p(x∣y)p(x|y)p(x∣y),针对p(x∣y)p(y)p(x|y)p(y)p(x∣y)p(y)建立似然函数,利用极大似然估计方法估计高斯判别模型的参数;模型的对数似然函数为:
L(θ)=log∏i=1N(p(xi∣yi)p(yi))=∑i=1Nlog(p(xi∣yi)p(yi))=∑i=1N(log[p(xi∣yi)]+log[p(yi)])L(\theta)=log\prod_{i=1}^{N}(p(x_{i}|y_{i})p(y_{i}))=\sum_{i=1}^{N}log(p(x_{i}|y_{i})p(y_{i}))=\sum_{i=1}^{N}(log[p(x_{i}|y_{i})]+log[p(y_{i})])L(θ)=logi=1∏N​(p(xi​∣yi​)p(yi​))=i=1∑N​log(p(xi​∣yi​)p(yi​))=i=1∑N​(log[p(xi​∣yi​)]+log[p(yi​)])
代入假设的分布为:
L(θ)=∑i=1N(log[N(μ1,Σ)yiN(μ0,Σ)1−yi]+log[ϕyi(1−ϕ)1−yi])L(\theta)=\sum_{i=1}^{N}(log[N(\mu_{1},\Sigma)^{y_{i}}N(\mu_{0},\Sigma)^{1-y_{i}}]+log[\phi^{y_{i}}(1-\phi)^{1-y_{i}}])L(θ)=i=1∑N​(log[N(μ1​,Σ)yi​N(μ0​,Σ)1−yi​]+log[ϕyi​(1−ϕ)1−yi​])
待估计参数为θ=(ϕ,μ1,μ0,Σ)\theta=(\phi,\mu_{1},\mu_{0},\Sigma)θ=(ϕ,μ1​,μ0​,Σ),假设y=1y=1y=1的样本数为N1N_{1}N1​,y=0y=0y=0的样本数为N0N_{0}N0​,则N0+N1=NN_{0}+N_{1}=NN0​+N1​=N;

先估计参数ϕ\phiϕ,其只与对数似然的第二项有关,因此有:
ϕmle=argmaxϕ∑i=1Nlog[ϕyi(1−ϕ)1−yi]=argmaxϕ∑i=1N(yilog(ϕ)+(1−yi)log(1−ϕ))\phi_{mle}=argmax_{\phi}\sum_{i=1}^{N}log[\phi^{y_{i}}(1-\phi)^{1-y_{i}}]=argmax_{\phi}\sum_{i=1}^{N}(y_{i}log(\phi)+(1-y_{i})log(1-\phi))ϕmle​=argmaxϕ​i=1∑N​log[ϕyi​(1−ϕ)1−yi​]=argmaxϕ​i=1∑N​(yi​log(ϕ)+(1−yi​)log(1−ϕ))
计算偏导数,令偏导数为0,得到:
∂(∑i=1N(yilog(ϕ)+(1−yi)log(1−ϕ)))∂ϕ=0⇒ϕmle=N1N\frac{\partial(\sum_{i=1}^{N}(y_{i}log(\phi)+(1-y_{i})log(1-\phi)))}{\partial\phi}=0\Rightarrow \phi_{mle}=\frac{N_{1}}{N}∂ϕ∂(∑i=1N​(yi​log(ϕ)+(1−yi​)log(1−ϕ)))​=0⇒ϕmle​=NN1​​
估计参数μ1\mu_{1}μ1​,它只与对数似然的第一项有关,第一项又可分解为:
∑i=1N(log[N(μ1,Σ)yiN(μ0,Σ)1−yi])=∑i=1N(log[N(μ1,Σ)yi]+log[N(μ0,Σ)1−yi])\sum_{i=1}^{N}(log[N(\mu_{1},\Sigma)^{y_{i}}N(\mu_{0},\Sigma)^{1-y_{i}}])=\sum_{i=1}^{N}(log[N(\mu_{1},\Sigma)^{y_{i}}]+log[N(\mu_{0},\Sigma)^{1-y_{i}}])i=1∑N​(log[N(μ1​,Σ)yi​N(μ0​,Σ)1−yi​])=i=1∑N​(log[N(μ1​,Σ)yi​]+log[N(μ0​,Σ)1−yi​])
因此,只需考虑上式第一项:
μ1=argmaxμ1∑i=1Nlog[N(μ1,Σ)yi]=argmaxμ1∑i=1Nyilog1(2π)D/2∣Σ∣1/2exp(−12(xi−μ1)TΣ−1(xi−μ1))\mu_{1}=argmax_{\mu_{1}}\sum_{i=1}^{N}log[N(\mu_{1},\Sigma)^{y_{i}}]=argmax_{\mu_{1}}\sum_{i=1}^{N}y_{i}log\frac{1}{(2\pi)^{D/2}|\Sigma|^{1/2}}exp(-\frac{1}{2}(x_{i}-\mu_{1})^{T}\Sigma^{-1}(x_{i}-\mu_{1}))μ1​=argmaxμ1​​i=1∑N​log[N(μ1​,Σ)yi​]=argmaxμ1​​i=1∑N​yi​log(2π)D/2∣Σ∣1/21​exp(−21​(xi​−μ1​)TΣ−1(xi​−μ1​))
其中,NNN是一个DDD维高斯分布,去除无关项后,化简为:
μ1=argmaxμ1∑i=1Nyi(−12(xi−μ1)TΣ−1(xi−μ1))\mu_{1}=argmax_{\mu_{1}}\sum_{i=1}^{N}y_{i}(-\frac{1}{2}(x_{i}-\mu_{1})^{T}\Sigma^{-1}(x_{i}-\mu_{1}))μ1​=argmaxμ1​​i=1∑N​yi​(−21​(xi​−μ1​)TΣ−1(xi​−μ1​))
同样,计算偏导数:
∂(∑i=1Nyi(−12(xi−μ1)TΣ−1(xi−μ1)))∂μ1=∂(−12∑i=1Nyi(xiTΣ−1xi−xiTΣ−1μ1−μ1TΣ−1xi+μ1TΣ−1μ1))∂μ1\frac{\partial(\sum_{i=1}^{N}y_{i}(-\frac{1}{2}(x_{i}-\mu_{1})^{T}\Sigma^{-1}(x_{i}-\mu_{1})))}{\partial\mu_{1}}=\frac{\partial(-\frac{1}{2}\sum_{i=1}^{N}y_{i}(x_{i}^{T}\Sigma^{-1}x_{i}-x_{i}^{T}\Sigma^{-1}\mu_{1}-\mu_{1}^{T}\Sigma^{-1}x_{i}+\mu_{1}^{T}\Sigma^{-1}\mu_{1}))}{\partial\mu_{1}}∂μ1​∂(∑i=1N​yi​(−21​(xi​−μ1​)TΣ−1(xi​−μ1​)))​=∂μ1​∂(−21​∑i=1N​yi​(xiT​Σ−1xi​−xiT​Σ−1μ1​−μ1T​Σ−1xi​+μ1T​Σ−1μ1​))​
其中,xiTΣ−1xix_{i}^{T}\Sigma^{-1}x_{i}xiT​Σ−1xi​相对μ1\mu_{1}μ1​为常数,在计算偏导时为0,因此可以忽略;xiTΣ−1μ1x_{i}^{T}\Sigma^{-1}\mu_{1}xiT​Σ−1μ1​ 和 μ1TΣ−1xi\mu_{1}^{T}\Sigma^{-1}x_{i}μ1T​Σ−1xi​ 互为转置,而且两项都表示一个数,即二者相等;所以,上式等价于:
∂(−12∑i=1Nyi(−2μ1TΣ−1xi+μ1TΣ−1μ1))∂μ1=−12∑i=1Nyi(−2Σ−1xi+2Σ−1μ1)=0\frac{\partial(-\frac{1}{2}\sum_{i=1}^{N}y_{i}(-2\mu_{1}^{T}\Sigma^{-1}x_{i}+\mu_{1}^{T}\Sigma^{-1}\mu_{1}))}{\partial\mu_{1}}=-\frac{1}{2}\sum_{i=1}^{N}y_{i}(-2\Sigma^{-1}x_{i}+2\Sigma^{-1}\mu_{1})=0∂μ1​∂(−21​∑i=1N​yi​(−2μ1T​Σ−1xi​+μ1T​Σ−1μ1​))​=−21​i=1∑N​yi​(−2Σ−1xi​+2Σ−1μ1​)=0
即有:
∑i=1Nyi(μ1−xi)=0⇒μ1=∑i=1NyixiN1\sum_{i=1}^{N}y_{i}(\mu_{1}-x_{i})=0\Rightarrow\mu_{1}=\frac{\sum_{i=1}^{N}y_{i}x_{i}}{N_{1}}i=1∑N​yi​(μ1​−xi​)=0⇒μ1​=N1​∑i=1N​yi​xi​​
参数μ0\mu_{0}μ0​的估计推导过程与之类似,最后估计协方差矩阵Σ\SigmaΣ,首先考虑各类别样本的集合:
C1={xi∣yi=1,i=1,2,...,N1},∣C1∣=N1C_{1}=\left\{x_{i}|y_{i}=1,i=1,2,...,N_{1}\right\},|C_{1}|=N_{1}C1​={xi​∣yi​=1,i=1,2,...,N1​},∣C1​∣=N1​
C0={xi∣yi=0,i=1,2,...,N0},∣C1∣=N0C_{0}=\left\{x_{i}|y_{i}=0,i=1,2,...,N_{0}\right\},|C_{1}|=N_{0}C0​={xi​∣yi​=0,i=1,2,...,N0​},∣C1​∣=N0​
因此可以化简对数似然的各项为:
∑i=1Nlog[N(μ1,Σ)yi]=∑i=1Nyilog[N(μ1,Σ)]=∑xi∈C1log[N(μ1,Σ)]\sum_{i=1}^{N}log[N(\mu_{1},\Sigma)^{y_{i}}]=\sum_{i=1}^{N}y_{i}log[N(\mu_{1},\Sigma)]=\sum_{x_{i}\in C_{1}}log[N(\mu_{1},\Sigma)]i=1∑N​log[N(μ1​,Σ)yi​]=i=1∑N​yi​log[N(μ1​,Σ)]=xi​∈C1​∑​log[N(μ1​,Σ)]
同理有:
∑i=1Nlog[N(μ0,Σ)1−yi]=∑xi∈C0log[N(μ0,Σ)]\sum_{i=1}^{N}log[N(\mu_{0},\Sigma)^{1-y_{i}}]=\sum_{x_{i}\in C_{0}}log[N(\mu_{0},\Sigma)]i=1∑N​log[N(μ0​,Σ)1−yi​]=xi​∈C0​∑​log[N(μ0​,Σ)]
计算关于协方差矩阵的偏导数(梯度):
∂(∑xi∈C1log[N(μ1,Σ)]+∑xi∈C0log[N(μ0,Σ)])∂Σ\frac{\partial(\sum_{x_{i}\in C_{1}}log[N(\mu_{1},\Sigma)]+\sum_{x_{i}\in C_{0}}log[N(\mu_{0},\Sigma)])}{\partial\Sigma}∂Σ∂(∑xi​∈C1​​log[N(μ1​,Σ)]+∑xi​∈C0​​log[N(μ0​,Σ)])​
下面对通用的形式进行化简:
∑i=1NlogN(μ,Σ)=∑i=1Nlog1(2π)D/2∣Σ∣1/2exp(−12(x−μ)TΣ−1(x−μ))\sum_{i=1}^{N}logN(\mu,\Sigma)=\sum_{i=1}^{N}log\frac{1}{(2\pi)^{D/2}|\Sigma|^{1/2}}exp(-\frac{1}{2}(x-\mu)^{T}\Sigma^{-1}(x-\mu))i=1∑N​logN(μ,Σ)=i=1∑N​log(2π)D/2∣Σ∣1/21​exp(−21​(x−μ)TΣ−1(x−μ))
=−∑i=1ND2log(2π)−∑i=1N12log∣Σ∣−∑i=1N12(x−μ)TΣ−1(x−μ)=-\sum_{i=1}^{N}\frac{D}{2}log(2\pi)-\sum_{i=1}^{N}\frac{1}{2}log|\Sigma|-\sum_{i=1}^{N}\frac{1}{2}(x-\mu)^{T}\Sigma^{-1}(x-\mu)=−i=1∑N​2D​log(2π)−i=1∑N​21​log∣Σ∣−i=1∑N​21​(x−μ)TΣ−1(x−μ)


此处引入线性代数中的概念:迹;对于一个nnn阶方阵AAA,方阵的迹为tr(A)tr(A)tr(A),为方阵对角线上所有元素之和,而(x−μ)TΣ−1(x−μ)(x-\mu)^{T}\Sigma^{-1}(x-\mu)(x−μ)TΣ−1(x−μ)的结果为一个数值,数值可以看作是一个1×11\times 11×1的方阵,因此有:
(x−μ)TΣ−1(x−μ)=tr((x−μ)TΣ−1(x−μ))(x-\mu)^{T}\Sigma^{-1}(x-\mu)=tr((x-\mu)^{T}\Sigma^{-1}(x-\mu))(x−μ)TΣ−1(x−μ)=tr((x−μ)TΣ−1(x−μ))
而关于方阵的迹存在特性:tr(AB)=tr(BA)tr(AB)=tr(BA)tr(AB)=tr(BA);


利用方阵迹的性质,得到:
∑i=1N(xi−μ)TΣ−1(xi−μ)=tr[Σ−1∑i=1N(xi−μ)T(xi−μ)]\sum_{i=1}^{N}(x_{i}-\mu)^{T}\Sigma^{-1}(x_{i}-\mu)=tr[\Sigma^{-1}\sum_{i=1}^{N}(x_{i}-\mu)^{T}(x_{i}-\mu)]i=1∑N​(xi​−μ)TΣ−1(xi​−μ)=tr[Σ−1i=1∑N​(xi​−μ)T(xi​−μ)]
注意,结合方差的表达:
S=1N∑i=1N(xi−μ)T(xi−μ)S=\frac{1}{N}\sum_{i=1}^{N}(x_{i}-\mu)^{T}(x_{i}-\mu)S=N1​i=1∑N​(xi​−μ)T(xi​−μ)
因此:
∑i=1N(xi−μ)TΣ−1(xi−μ)=Ntr(SΣ−1)\sum_{i=1}^{N}(x_{i}-\mu)^{T}\Sigma^{-1}(x_{i}-\mu)=Ntr(S\Sigma^{-1})i=1∑N​(xi​−μ)TΣ−1(xi​−μ)=Ntr(SΣ−1)
代入通式:
∑i=1NlogN(μ,Σ)=C−N2log∣Σ∣−Ntr(SΣ−1)\sum_{i=1}^{N}logN(\mu,\Sigma)=C-\frac{N}{2}log|\Sigma|-Ntr(S\Sigma^{-1})i=1∑N​logN(μ,Σ)=C−2N​log∣Σ∣−Ntr(SΣ−1)
将通式代入协方差矩阵的似然项:
∑xi∈C1log[N(μ1,Σ)]+∑xi∈C0log[N(μ0,Σ)]=−12Nlog∣Σ∣−12N1tr(S1Σ−1)−12N0tr(S0Σ−1)+C\sum_{x_{i}\in C_{1}}log[N(\mu_{1},\Sigma)]+\sum_{x_{i}\in C_{0}}log[N(\mu_{0},\Sigma)]=-\frac{1}{2}Nlog|\Sigma|-\frac{1}{2}N_{1}tr(S_{1}\Sigma^{-1})-\frac{1}{2}N_{0}tr(S_{0}\Sigma^{-1})+Cxi​∈C1​∑​log[N(μ1​,Σ)]+xi​∈C0​∑​log[N(μ0​,Σ)]=−21​Nlog∣Σ∣−21​N1​tr(S1​Σ−1)−21​N0​tr(S0​Σ−1)+C


以下是关于矩阵求导的常用公式:


对协方差矩阵的似然项求导得到:
∂(Nlog∣Σ∣+N1tr(S1Σ−1)+N0tr(S0Σ−1))∂Σ=NΣ−N1S1−N0S0=0\frac{\partial(Nlog|\Sigma|+N_{1}tr(S_{1}\Sigma^{-1})+N_{0}tr(S_{0}\Sigma^{-1}))}{\partial\Sigma}=N\Sigma-N_{1}S_{1}-N_{0}S_{0}=0∂Σ∂(Nlog∣Σ∣+N1​tr(S1​Σ−1)+N0​tr(S0​Σ−1))​=NΣ−N1​S1​−N0​S0​=0
即有:
Σ=1N(N1S1+N2S2)\Sigma=\frac{1}{N}(N_{1}S_{1}+N_{2}S_{2})Σ=N1​(N1​S1​+N2​S2​)

第五课.高斯判别分析相关推荐

  1. 线性分类(四)-- 高斯判别分析 GDA

    高斯判别分析(Gaussian Discriminant analysis,GDA),与之前的线性回归和Logistic回归从方法上讲有很大的不同,GDA是一种生成学习算法(Generative Le ...

  2. 生成学习算法.高斯判别分析(GDA).GDA与Logistic模型

    http://blog.csdn.net/v1_vivian/article/details/52190572 <Andrew Ng 机器学习笔记>这一系列文章文章是我再观看Andrew ...

  3. [CS229学习笔记] 5.判别学习算法与生成学习算法,高斯判别分析,朴素贝叶斯,垃圾邮件分类,拉普拉斯平滑

    本文对应的是吴恩达老师的CS229机器学习的第五课.这节课介绍了判别学习算法和生成学习算法,并给出了生成学习算法的一个实例:利用朴素贝叶斯进行垃圾邮件分类. 判别学习(Discriminative L ...

  4. NeHe OpenGL第三十五课:播放AVI

    NeHe OpenGL第三十五课:播放AVI 在OpenGL中播放AVI: 在OpenGL中如何播放AVI呢?利用Windows的API把每一帧作为纹理绑定到OpenGL中,虽然很慢,但它的效果不错. ...

  5. 【Linux探索之旅】第二部分第五课:用户和权限,有权就任性

    内容简单介绍 1.第二部分第五课:用户和权限,有权就任性 2.第二部分第六课预告:Nano,刚開始学习的人的文本编辑器 用户和权限.有权就任性 今天的标题也挺任性的啊,虽说小编是一个非常本分的人(真的 ...

  6. 第五课.Linux开发基础

    第五课目录 GCC用法参考 GCC的常用用法 make与Makefile Makefile的规则 Makefile的语法 Makefile实例 调试 GDB 设置断点 虽然已经有很多优秀的IDE可以化 ...

  7. Emojify - v2 吴恩达老师深度学习第五课第二周编程作业2

    吴恩达老师深度学习第五课第二周编程作业2,包含答案! Emojify! Welcome to the second assignment of Week 2. You are going to use ...

  8. Operations on word vectors-v2 吴恩达老师深度学习课程第五课第二周编程作业1

    吴恩达老师深度学习课程第五课(RNN)第二周编程作业1, 包含答案 Operations on word vectors Welcome to your first assignment of thi ...

  9. Linux 探索之旅 | 第三部分第五课:延时执行,唯慢不破

    -- 作者 谢恩铭 转载请注明出处 内容简介 第三部分第五课:延时执行,唯慢不破 第三部分第六课预告:第三部分测验题 延时执行,唯慢不破 上一课 Linux探索之旅 | 第三部分第四课:后台运行及合并 ...

最新文章

  1. QT的QListIterator类的使用
  2. 一个女程序员征男友的需求说明书
  3. Robot Framework中经常用的第三方库的安装方法
  4. 《Fortran95程序设计》(彭国伦)
  5. 勤哲Excel服务器在图书出版企业管理系统中的应用
  6. PMP课程笔记:第5章 项目范围管理
  7. JS中的innerHTML和outerHTML区别
  8. 标准数独解题之旅(用一道数独题讲解最基本的5种解题技巧)
  9. 一行代码统计文本中指定字符串出现的次数
  10. vs2012运行c语言出现:无法查找或打开 PDB 文件
  11. 系统开发方法和开发模型
  12. PaddleSeg快速开始之 人像分割
  13. keil C语言编程 位地址定义,Keil C编写下位机程序的小技巧和注意点
  14. https网站打不开如何解决
  15. NISP二级题库总结
  16. 解决IDEA中pom.xml中不能自动加载jar包
  17. 阿里高层大调整,集团CEO张勇兼任阿里云总裁,CTO鲁肃卸任
  18. 大一新生的pta错题归纳
  19. 杜克大学计算机统计学,杜克大学的统计学专业怎么样?
  20. CCNA精品学习资料汇总(学习手册+笔记+题库)

热门文章

  1. ZooKeeper演示案例
  2. 手写Redis服务端,从设计者的角度聊一聊Redis本身
  3. 入职一周了,发现自己来了假阿里?
  4. Redis 主库宕机如何快速恢复?面试必问!
  5. 精心为你准备的最全的20道Mysql面试题。
  6. 面试官:会玩牌吧?给我讲讲洗牌算法和它的应用场景吧!
  7. 这才是微服务拆分的正确姿势,值得学习!
  8. 太赞了!副业月入3W的技术大佬的公众号,学起来!
  9. 遭遇“生活天花板”,如何用 OKR 弯道超车?
  10. 如何在Leangoo中,为企业创建项目