【机器学习】GMM模型的直观推导(含中间步骤)
概率论和数理统计是一对兄弟:概率论负责在已知分布函数的情况下研究样本;数理统计负责在已知样本的情况下,反推分布函数的特性。假设我们获取了样本数据,同时知道分布函数的大概形式,只是不知道分布函数的参数,那么可以使用数理统计中的点估计方法来估计分布函数的参数。点估计包括矩估计和极大似然估计。极大似然估计是很重要的点估计方法。
GMM模型即高斯混合模型,根据大数定律,在日常生活中,很多概率事件都服从高斯分布,因此GMM模型可以应用在这些概率事件的分析上。GMM模型由K个独立的高斯分布混合而成。我们可以这样直观求解GMM模型:
1、定义GMM模型为 P(x,θ)=∑Kk=1pk12π√σke−|x−μk|22σ2k=∑Kk=1piN(x,μk,σk) P(x,\theta)=\sum_{k=1}^Kp_k\frac{1}{\sqrt{2\pi}\sigma_k }e^{-\frac{|x-\mu_k|^2}{2\sigma_k^2}}=\sum_{k=1}^Kp_iN(x,\mu_k,\sigma_k)其中 θ=p1,p2,...,μ1,μ2,...,σ1,σ2,... \theta=p_1,p_2,...,\mu_1,\mu_2,...,\sigma_1,\sigma_2,..., pi p_i是K个独立高斯分布的权重。我们需要求取这三类参数。它们可以随机分配初值。不同的初值可能有不同结果,都是满足条件的。
2、这里有个很不同的地方,就是优化要加约束条件 ∑Kk=1pk=1 \sum_{k=1}^K{p_k}=1,GMM的似然函数是
\log{\prod_{n=1}^N[\sum_{k=1}^Kp_kN(x_n|\mu_k,\sigma_k)]}+\lambda[\sum_{k=1}^K{p_k}-1]=\sum_{n=1}^N{\log{\sum_{k=1}^Kp_kN(x_n|\mu_k,\sigma_k)}}+\lambda[\sum_{k=1}^K{p_k}-1],其中 xn x_n是GMM曲线中第n个点的样本值。
3、对 μk \mu_k求导得到
\sum_{n=1}^N{\frac{p_kN(x_n|\mu_k,\sigma_k)\frac{1}{\sigma_k^2}(x_n-\mu_k)}{\sum_{k=1}^Kp_kN(x_n|\mu_k,\sigma_k)}}=0 \\ \sum_{n=1}^N{\frac{p_kN(x_n|\mu_k,\sigma_k)(x_n-\mu_k)}{\sum_{k=1}^Kp_kN(x_n|\mu_k,\sigma_k)}}=0因为我们这里不关心 σ \sigma,所以可以当做一个常数消去。令 γnk=pkN(xn|μk,σk)∑Kk=1pkN(xn|μk,σk) \gamma_{nk}=\frac{p_kN(x_n|\mu_k,\sigma_k)}{\sum_{k=1}^Kp_kN(x_n|\mu_k,\sigma_k)},则有
\sum_{n=1}^N{\gamma_{nk}x_n}=\mu_k\sum_{n=1}^N{\gamma_{nk}} \\ \rightarrow \mu_k=\frac{\sum_{n=1}^N{\gamma_{nk}x_n}}{\sum_{n=1}^N{\gamma_{nk}}} γnk \gamma_{nk}是根据当前的参数 θ \theta和样本 xn x_n算出来的数值,这是各个分量的统计量。很明显直接把当前的 μk \mu_k代入后,拿到了一个新的 μk \mu_k值,这个等式两边的 μk \mu_k并不是一个东西。数学家证明了这样更新参数可以最优化分布函数。
继续对 σk \sigma_k求导有
\sum_{n=1}^N{\frac{p_k[-1/\sigma N(x_n|\mu_k,\Sigma_k)+N(x_n|\mu_k,\Sigma_k)(x_n-\mu_k)^21/\sigma^3]}{\sum_{k=1}^Kp_kN(x_n|\mu_k,\Sigma_k)\cdot 2}}=0 \\ \sum_{n=1}^N{\gamma_{nk}[- 1+(x_n-\mu_k)^21/\sigma^2]}=0 \\ \rightarrow \sigma^2=\frac{\sum_{n=1}^N\gamma_{nk}(x_n-\mu_k)^2}{\sum_{n=1}^N\gamma_{nk}}注意由于 γnk \gamma_{nk}前面还有一个关于n的求和,所以不能约掉。
最后求导 pk p_k得到
\sum_{n=1}^N{\frac{N(x_n|\mu_k,\sigma_k)}{\sum_{k=1}^Kp_kN(x_n|\mu_k,\sigma_k)}}+\lambda=0 \\ \sum_{n=1}^N{\frac{p_kN(x_n|\mu_k,\sigma_k)}{\sum_{k=1}^Kp_kN(x_n|\mu_k,\sigma_k)}}=-\lambda p_k \\ \sum_{n=1}^N{\gamma_{nk}}=-\lambda p_k这里的技巧是,对k求和,等到
\sum_{k=1}^K{\sum_{n=1}^N{\gamma_{nk}}}=\sum_{n=1}^N{\frac{\sum_{k=1}^K{p_kN(x_n|\mu_k,\sigma_k)}}{\sum_{k=1}^Kp_kN(x_n|\mu_k,\sigma_k)}}=N=-\lambda \sum_{k=1}^K{p_k}=-\lambda \\ \lambda = -N代入原式得到
p_k=\frac{\sum_{n=1}^N{\gamma_{nk}}}{N}
不得不感叹,还没到证明部分,这些数学技巧都这么炫目啊。
【机器学习】GMM模型的直观推导(含中间步骤)相关推荐
- 机器学习图像分割——模型评价总结(含完整代码)
机器学习&图像分割--模型评价总结(含完整代码) 模型评价的方法指标有很多,如:PR-curve,MAE,ROC,Precision,Recall,AUC,AP,mAP,DSI,VOE,RVD ...
- 最白话的语音识别入门—GMM模型
最白话的语音识别入门-GMM模型-2021-01-04 前言 一.高斯混合模型? 二.训练思路 问题1.我要用多少个高斯分布去建立高斯混合模型呢? 问题2.每一个高斯分布在一个GMM中占据了多少分量? ...
- 【机器学习算法模型】1. SVR模型推导
[机器学习算法模型推导]1. SVR算法介绍与推导 文章目录 [机器学习算法模型推导]1. SVR算法介绍与推导 一.SVR算法 1.SVR简介 2.SVR数学模型 2.1 SVR目标函数 2.2 为 ...
- 机器学习--判别式模型与生成式模型
原文地址为:机器学习--判别式模型与生成式模型 一.引言 本材料参考Andrew Ng大神的机器学习课程 http://cs229.stanford.edu 在上一篇有监督学习回归模型中,我们利用训练 ...
- em算法 实例 正态分布_【机器学习】EM算法详细推导和讲解
今天不太想学习,炒个冷饭,讲讲机器学习十大算法里有名的EM算法,文章里面有些个人理解,如有错漏,还请读者不吝赐教. 众所周知,极大似然估计是一种应用很广泛的参数估计方法.例如我手头有一些东北人的身高的 ...
- logistic模型原理与推导过程分析(1)
从线性分类器谈起 给定一些数据集合,他们分别属于两个不同的类别.例如对于广告数据来说,是典型的二分类问题,一般将被点击的数据称为正样本,没被点击的数据称为负样本.现在我们要找到一个线性分类器,将这些数 ...
- 浅显易懂的GMM模型及其训练过程
高斯混合模型GMM是一个非常基础并且应用很广的模型.对于它的透彻理解非常重要.网上的关于GMM的大多资料介绍都是大段公式,而且符号表述不太清楚,或者文笔非常生硬.本文尝试用通俗的语言全面介绍一下GMM ...
- 【语音识别】EM算法和GMM模型
EM算法和GMM模型 本章主要从概率论方面讲述了GMM模型和EM算法的底层原理,即通过已知推测未知,再通过上次所得到的结果,来推导下一轮的结果,直到这个结果与上一轮的结果误差在我们设定的范围内,就视为 ...
- 机器学习理论 || GMM模型
EM算法的应用-- 高斯混合聚类模型 GMM模型 参考书籍: 周志华.机器学习 P206 李航.统计学习方法 P162 范明译.数据挖掘导论P368 李航.统计学习方法中高斯混合模型仅介绍一元高斯分布 ...
最新文章
- 快卷疯了!被面试官说我是今天第5个背八股文的。。。
- golang 获取 磁盘 内存 占用
- python中文叫什么意思-在python中%是什么意思
- boost::hana::tag_of_t用法的测试程序
- c语言 java append_C++中append函数的用法和函数定义。谢谢!
- power iso linux启动盘,Power ISO Maker/ISO燃烧到磁盘工具 V3.0版
- 应用虚拟化之规划篇二 项目流程规划
- 日常问题解决记录三:记一次Win10安装Oracle11g后遇到的问题
- lambda函数if_Python中lambda的使用,与它的三个好基友介绍
- C++多态的练习——编写一个计算器项目
- linux配置jupyterlab
- 卡巴斯基:揭开“火焰”病毒(Flame)的神秘面纱
- 实战项目-python库分析科比生涯数据
- 如何用Java和Kotlin实现高性能桌面条形码扫描
- 垃圾回收算法-标记清扫回收
- 普通显示器玩立体游戏|红蓝立体游戏|iZ3D设置办法
- 每次关机的时候总显示[742.602384]system halted,关不了机,只能强制关机,解决方法
- 2018年年中个人总结
- I.MX6U-ALPHA开发板(主频和时钟配置实验)
- ios 抓包工具 ios青花瓷charles