高斯判别分析

全称是Gaussian Discriminant Analysis (GDA)。大家不要被名字所误导,这是一种概率生成模型。

原理

对联合概率进行建模,我们假设y∼Bernoulli(Φ)y \sim Bernoulli(\Phi)y∼Bernoulli(Φ),且x∣y=1∼N(μ1,Σ)x|y=1 \sim N(\mu_1, \Sigma)x∣y=1∼N(μ1​,Σ),x∣y=0∼N(μ0,Σ)x|y=0 \sim N(\mu_0, \Sigma)x∣y=0∼N(μ0​,Σ)

输入

训练集数据D=(x1,y1)...(xM,yM)D = {(x_1,y_1) ... (x_M,y_M)}D=(x1​,y1​)...(xM​,yM​),xi∈X⊆Rnx_i \in \mathcal{X} \subseteq R^nxi​∈X⊆Rn,yi∈Y⊆RKy_i \in \mathcal{Y} \subseteq R^Kyi​∈Y⊆RK,二分类yi∈{−1,+1}y_i \in \{-1, +1\}yi​∈{−1,+1}

Xi,μi,ΣiX_i, \mu_i, \Sigma_iXi​,μi​,Σi​ 分别表示第i类样例的集合、均值向量、协方差矩阵。

输出

各分类的概率。如果是二分类就是{+1, -1}的概率。

损失函数

令θ=(μ0,μ1,σ,Φ)\theta = (\mu_0, \mu_1, \sigma, \Phi)θ=(μ0​,μ1​,σ,Φ)。计算似然
L(θ)=∑i=1Mlog[P(xi∣yi)P(yi)]=∑i=1MlogP(xi∣yi)+logP(yi)=∑i=1Mlog[N(μ1∣Σ)yiN(μ0∣Σ)1−yi]+log[Φyi(1−Φ)1−yi]=∑i=1Mlog[N(μ1∣Σ)yi]+log[N(μ0∣Σ)1−yi]+log[Φyi(1−Φ)1−yi]L(\theta) = \sum_{i=1}^M log[P(x_i|y_i)P(y_i)] \\\\ = \sum_{i=1}^M log P(x_i|y_i) + log P(y_i) \\\\ = \sum_{i=1}^M log[N(\mu_1|\Sigma)^{y_i} N(\mu_0|\Sigma)^{1-y_i}] + log [\Phi^{y_i}(1-\Phi)^{1-y_i}] \\\\ = \sum_{i=1}^M log[N(\mu_1|\Sigma)^{y_i}] + log[N(\mu_0|\Sigma)^{1-y_i}] + log [\Phi^{y_i}(1-\Phi)^{1-y_i}] \\\\ L(θ)=i=1∑M​log[P(xi​∣yi​)P(yi​)]=i=1∑M​logP(xi​∣yi​)+logP(yi​)=i=1∑M​log[N(μ1​∣Σ)yi​N(μ0​∣Σ)1−yi​]+log[Φyi​(1−Φ)1−yi​]=i=1∑M​log[N(μ1​∣Σ)yi​]+log[N(μ0​∣Σ)1−yi​]+log[Φyi​(1−Φ)1−yi​]
对Φ\PhiΦ进行求偏导,
∂L(θ)∂Φ=∑i=1MyiΦ+1−yi1−Φ=0∑i=1MΦ(1−yi)−(1−Φ)yi=0∑i=1M[yi−Φ]=0Φ=1M∑i=1Myi\frac{\partial L(\theta)}{\partial \Phi} = \sum_{i=1}^M \frac{y_i} {\Phi} + \frac {1-y_i} {1-\Phi} = 0\\\\ \sum_{i=1}^M {\Phi}(1-y_i) - (1-\Phi)y_i = 0 \\\\ \sum_{i=1}^M [y_i-\Phi] = 0 \\\\ \Phi = \frac {1} {M} \sum_{i=1}^M y_i \\\\ ∂Φ∂L(θ)​=i=1∑M​Φyi​​+1−Φ1−yi​​=0i=1∑M​Φ(1−yi​)−(1−Φ)yi​=0i=1∑M​[yi​−Φ]=0Φ=M1​i=1∑M​yi​
对μ1\mu_1μ1​进行求偏导,

∑i=1Mlog[N(μ1∣Σ)yi]=∑i=1Myilog[exp(−12(xi−μ1)TΣ−1(xi−μ1))(2π)p/2(Σ)1/2]=0μ1∗=argmaxμ1∑i=1Myi(−12(xi−μ1)TΣ−1(xi−μ1))=−12∑i=1M(xiTΣ−1−μ1TΣ−1)(xi−μ1)∂L(θ)∂μ1=∑i=1Myi(−Σ−1xi+Σ−1μ1T)=0μ1∗=∑i=1Myixi∑i=1Myi\sum_{i=1}^M log[N(\mu_1|\Sigma)^{y_i}] = \sum_{i=1}^M y_i log[\frac {exp(- \frac 1 2 (x_i-\mu_1)^T \Sigma^{-1} (x_i-\mu_1))} {(2\pi)^{p/2}(\Sigma)^{1/2}} ] = 0 \\\\ \mu_1^* = argmax_{\mu_1} \sum_{i=1}^M y_i (- \frac 1 2 (x_i-\mu_1)^T \Sigma^{-1} (x_i-\mu_1)) \\\\ = - \frac 1 2 \sum_{i=1}^M (x_i^T \Sigma^{-1} - \mu_1^T \Sigma^{-1})(x_i-\mu_1) \\\\ \frac{\partial L(\theta)}{\partial \mu_1} = \sum_{i=1}^M y_i(-\Sigma^{-1}x_i + \Sigma^{-1}\mu_1^T) = 0 \\\\ \mu_1^* = \frac{\sum_{i=1}^M y_i x_i} {\sum_{i=1}^M y_i} i=1∑M​log[N(μ1​∣Σ)yi​]=i=1∑M​yi​log[(2π)p/2(Σ)1/2exp(−21​(xi​−μ1​)TΣ−1(xi​−μ1​))​]=0μ1∗​=argmaxμ1​​i=1∑M​yi​(−21​(xi​−μ1​)TΣ−1(xi​−μ1​))=−21​i=1∑M​(xiT​Σ−1−μ1T​Σ−1)(xi​−μ1​)∂μ1​∂L(θ)​=i=1∑M​yi​(−Σ−1xi​+Σ−1μ1T​)=0μ1∗​=∑i=1M​yi​∑i=1M​yi​xi​​
类似的,我们可以推导出
μ0∗=∑i=1M(1−yi)xi∑i=1M(1−yi)\mu_0^* = \frac{\sum_{i=1}^M (1-y_i) x_i} {\sum_{i=1}^M (1-y_i)} μ0∗​=∑i=1M​(1−yi​)∑i=1M​(1−yi​)xi​​
用SSS记录矩阵的方差,我们先对L(θ)L(\theta)L(θ)与之相关的部分进行化简,
L(θ)=∑i=1Mlog[N(μ1∣Σ)yi]+log[N(μ0∣Σ)1−yi]+log[Φyi(1−Φ)1−yi]=∑k=1log[N(μ1∣Σ)]+∑k=0log[N(μ0∣Σ)]+∑i=1Mlog[Φyi(1−Φ)1−yi]−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−∑i=1MlogN(μ,Σ)=∑i=1Mlog[exp(−12(xi−μ1)TΣ−1(xi−μ1))(2π)p/2∣Σ∣1/2]=log[1(2π)p/2]+log[∣Σ∣−12]−12(xi−μ1)TΣ−1(xi−μ1)=∑i=1MC−12log∣Σ∣−12(xi−μ1)TΣ−1(xi−μ1)=C−12∑i=1Mlog∣Σ∣−12∑i=1M(xi−μ1)TΣ−1(xi−μ1)=C−M2log∣Σ∣−12∑i=1Mtr[(xi−μ1)TΣ−1(xi−μ1)]=C−M2log∣Σ∣−12∑i=1Mtr[(xi−μ1)T(xi−μ1)Σ−1]=C−M2log∣Σ∣−12tr[∑i=1M(xi−μ1)T(xi−μ1)Σ−1]=C−M2log∣Σ∣−M2tr[S∗Σ−1]L(\theta) = \sum_{i=1}^M log[N(\mu_1|\Sigma)^{y_i}] + log[N(\mu_0|\Sigma)^{1-y_i}] + log [\Phi^{y_i}(1-\Phi)^{1-y_i}] \\\\ = \sum_{k=1} log[N(\mu_1|\Sigma)] + \sum_{k=0} log[N(\mu_0|\Sigma)] + \sum_{i=1}^M log [\Phi^{y_i}(1-\Phi)^{1-y_i}] \\\\ -------------------------------------- \\\\ \sum_{i=1}^M log N(\mu, \Sigma) = \sum_{i=1}^Mlog[\frac {exp(- \frac 1 2 (x_i-\mu_1)^T \Sigma^{-1} (x_i-\mu_1))} {(2\pi)^{p/2}|\Sigma|^{1/2}} ] \\\\ = log[\frac 1 {(2\pi)^{p/2}}] + log[|\Sigma|^{- \frac 1 2}] - \frac 1 2 (x_i-\mu_1)^T \Sigma^{-1} (x_i-\mu_1) \\\\ = \sum_{i=1}^M C -\frac 1 2 log|\Sigma| -\frac 1 2 (x_i-\mu_1)^T \Sigma^{-1} (x_i-\mu_1) \\\\ = C - \frac 1 2 \sum_{i=1}^M log|\Sigma| -\frac 1 2 \sum_{i=1}^M (x_i-\mu_1)^T \Sigma^{-1} (x_i-\mu_1) \\\\ = C - \frac M 2 log|\Sigma| -\frac 1 2 \sum_{i=1}^M tr[(x_i-\mu_1)^T \Sigma^{-1} (x_i-\mu_1)] \\\\ = C - \frac M 2 log|\Sigma| -\frac 1 2 \sum_{i=1}^M tr[(x_i-\mu_1)^T (x_i-\mu_1) \Sigma^{-1}] \\\\ = C - \frac M 2 log|\Sigma| -\frac 1 2 tr[\sum_{i=1}^M (x_i-\mu_1)^T (x_i-\mu_1) \Sigma^{-1}] \\\\ = C - \frac M 2 log|\Sigma| -\frac M 2 tr[S*\Sigma^{-1}] \\\\ L(θ)=i=1∑M​log[N(μ1​∣Σ)yi​]+log[N(μ0​∣Σ)1−yi​]+log[Φyi​(1−Φ)1−yi​]=k=1∑​log[N(μ1​∣Σ)]+k=0∑​log[N(μ0​∣Σ)]+i=1∑M​log[Φyi​(1−Φ)1−yi​]−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−i=1∑M​logN(μ,Σ)=i=1∑M​log[(2π)p/2∣Σ∣1/2exp(−21​(xi​−μ1​)TΣ−1(xi​−μ1​))​]=log[(2π)p/21​]+log[∣Σ∣−21​]−21​(xi​−μ1​)TΣ−1(xi​−μ1​)=i=1∑M​C−21​log∣Σ∣−21​(xi​−μ1​)TΣ−1(xi​−μ1​)=C−21​i=1∑M​log∣Σ∣−21​i=1∑M​(xi​−μ1​)TΣ−1(xi​−μ1​)=C−2M​log∣Σ∣−21​i=1∑M​tr[(xi​−μ1​)TΣ−1(xi​−μ1​)]=C−2M​log∣Σ∣−21​i=1∑M​tr[(xi​−μ1​)T(xi​−μ1​)Σ−1]=C−2M​log∣Σ∣−21​tr[i=1∑M​(xi​−μ1​)T(xi​−μ1​)Σ−1]=C−2M​log∣Σ∣−2M​tr[S∗Σ−1]

用MkM_kMk​表示各类数据的个数,对Σ\SigmaΣ进行求偏导,
L(θ)=−M12[log∣Σ∣−tr(S1∗Σ−1)]−M02[log∣Σ∣−tr(S0∗Σ−1)]=−M2log∣Σ∣−M12tr(S1∗Σ−1)−M02tr(S0∗Σ−1)−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−∂L(θ)∂Σ=−12[(MΣ−1)−M0S0TΣ−2−M1S1TΣ−2]=0MΣ=M1S0+M1S1Σ∗=M1S0+M1S1ML(\theta) = - \frac {M_1} 2 [log|\Sigma| - tr(S_1 * \Sigma^{-1})] - \frac {M_0} 2 [log|\Sigma| - tr(S_0 * \Sigma^{-1})] \\\\ = - \frac {M} 2 log|\Sigma| - \frac {M_1} 2 tr(S_1 * \Sigma^{-1}) - \frac {M_0} 2 tr(S_0 * \Sigma^{-1}) \\\\ -------------------------------\\\\ \frac {\partial L(\theta)}{\partial \Sigma} = - \frac {1} 2 [(M \Sigma^{-1}) - M_0 S_0^T\Sigma^{-2} - M_1 S_1^T\Sigma^{-2}] = 0 \\\\ M \Sigma = M_1 S_0 + M_1 S_1 \\\\ \Sigma^* = \frac {M_1 S_0 + M_1 S_1} {M} L(θ)=−2M1​​[log∣Σ∣−tr(S1​∗Σ−1)]−2M0​​[log∣Σ∣−tr(S0​∗Σ−1)]=−2M​log∣Σ∣−2M1​​tr(S1​∗Σ−1)−2M0​​tr(S0​∗Σ−1)−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−∂Σ∂L(θ)​=−21​[(MΣ−1)−M0​S0T​Σ−2−M1​S1T​Σ−2]=0MΣ=M1​S0​+M1​S1​Σ∗=MM1​S0​+M1​S1​​

适用场景

无。

优点

  1. 鲁棒性较好

缺点

  1. 需要数据服从分布(具有严格假设)
  2. 参数较多,计算相对比较复杂

Reference

  • 白板推导系列,shuhuai007

机器学习基础专题:高斯判别分析相关推荐

  1. 经典机器学习算法:高斯判别分析GDA

    高斯判别分析介绍 高斯判别分析 GDA GDA模型 模型求解 具体计算 高斯判别分析 GDA GDA:Guassian Discrimant Analysis 高斯判别分析属于两分类.软分类.概率生成 ...

  2. 机器学习基础专题:高斯混合模型和最大期望EM算法以及代码实现

    高斯混合模型 混合模型是潜变量模型的一种,是最常见的形式之一.而高斯混合模型(Gaussian Mixture Models, GMM)是混合模型中最常见的一种.zzz代表该数据点是由某一个高斯分布产 ...

  3. 机器学习基础专题:特征工程

    特征工程 特征提取 将原始数据转化为实向量之后,为了让模型更好地学习规律,对特征做进一步的变换.首先,要理解业务数据和业务逻辑. 其次,要理解模型和算法,清楚模型需要什么样的输入才能有精确的结果. 探 ...

  4. 机器学习基础专题:分类

    线性分类 分类方式 硬分类 使用的是非概率模型,分类结果是决策函数的决策结果. 代表:线性判别分析.感知机 软分类 分类结果是属于不同类别的概率. 生成式 通过贝叶斯定理,使用MAP比较P(Y=0∣X ...

  5. 机器学习基础专题:线性判别器

    线性判别分析 全称是Linear Discriminant Analysis (LDA). 原理 给定训练样例集,通过降维的思路进行分类.将样例投影到一条直线上,使得同类样例的投影点接近,异类样例的投 ...

  6. 机器学习笔记:高斯判别分析

    1 模型概述 假设有如下数据: 其中样本数据的类别y在给定的情况下服从伯努利分布 不同类别的样本数据又分别服从不同的多元高斯分布(这里假设两个高斯分布具有同样的方差) 2 损失函数 高斯判别模型的损失 ...

  7. 机器学习基础专题:随机变量

    术语 样本空间(sample space):Ω\OmegaΩ,包含了所有可能出现的结果的集合.比如在掷一次骰子的样本空间可以用{1,2,3,4,5,6}表示. 事件集(event space): FF ...

  8. 机器学习基础专题:逻辑回归

    逻辑回归 广义线性模型. 原理 输入 训练集数据T=(x1,y1)...(xM,yM)T = {(x_1,y_1) ... (x_M,y_M)}T=(x1​,y1​)...(xM​,yM​),xi∈X ...

  9. 机器学习基础专题:感知机

    感知机 原理 思想是错误驱动.一开始赋予w一个初始值,通过计算被错误分类的样本不断移动分类边界. 输入 训练集数据D=(x1,y1)...(xM,yM)D = {(x_1,y_1) ... (x_M, ...

最新文章

  1. 来说一下Ansible的简明教程
  2. 输入参数的数目不足 matlab_哈工大被禁用MATLAB,工科学生慌了,论文至上间接导致软件依赖?...
  3. 2020年快手母婴生态报告
  4. ps图片如何实现渐变
  5. Eclipse导出APK文件报错 android lint problem
  6. Nginx关于日志记录实例应用
  7. python3.7.2安装步骤-python安装升级详细步骤 Python2 升级 Python3
  8. ROS安装教程(ubuntu20.04安装ROS Noetic Ninjemys)
  9. 小时候很喜欢看的一些卡通片的主题曲(绝对经典)
  10. AI芯片发展的前世今生
  11. matlab中muw,matlab – 获取属于凸包的点
  12. WeX5制作的app,界面模仿b站(哔哩哔哩弹幕视频网)客户端
  13. 谈谈DDD(领域驱动设计)
  14. 透透彻彻IoC(你没有理由不懂!)
  15. 两年工作经验的后端开发的工作方法小结
  16. 网络对抗 Exp8 Web基础 20154311 王卓然
  17. 第一章:pycharm、anaconda、opencv、pytorch、tensorflow、paddlex等环境配置大全总结【图像处理py版本】
  18. 步进电机-STM32单片机定时器正弦波输出
  19. Xvid 视频压缩编码器设置指南
  20. 关于oracle 11g自动分区+分区改名+定时任务综合使用实现自动分区后可以进行分区查询

热门文章

  1. 在linux安装mysql重启提示You must SET PASSWORD before executing this statement的解决方法
  2. 机房监控系统解说--发电机篇
  3. hexdump——Linux系统的二进制文件查看工具
  4. combobox的使用
  5. ACE_Task::putq(转)
  6. 软件架构设计-五视图方法论
  7. LDAPserver的安装
  8. EDM营销中HTML邮件设计的技巧
  9. [常见错误]-bash: pg_config: command not found
  10. Jquery 选择器大全 【转载】