ML_Review_GMM(Ch10)
Note sth about GMM(Gaussian Mixtrue Model)
高斯混合模型的终极理解
高斯混合模型(GMM)及其EM算法的理解
这两篇博客讲得挺好,同时讲解了如何解决GMM参数问题的EM算法,其实GMM式子没有什么高深的地方,都是概率论的东西,主要是构思比较巧妙。
动机:
GMM是用来拟合某种分布的。哪种?任意一种!当然,前提是参数足够多的情况下,所以实作其实并非拟合任意模型。那么一般什么样的模型会被GMM较好拟合?首先,我们思考一下一维的高斯分布(即正态分布),然后我们思考一下二维的,三维的……会发现,高斯分布在二维类似椭圆,三维类似椭球,而这也是我理解它为什么说可以拟合任意分布的原因。因为椭圆(我们从二维来说),其实就是实轴(a)和虚轴(b)决定的一种图形,那么如果$a=b$就世缘,而如果$a \gg b$或者$a \ll b$,其实就非常得趋近于直线了。当然这是一个高斯分布的情况,而GMM本质就是混合(Mixtrue)了很多的高斯分布(Gaussian Model),然后保证权重和为1即可(单高斯分布也可看成是GMM的特殊情况,即某个权重为1,其余均为0)。
GMM算法过程没什么描述,流程就在公式里,本质就是用多个高斯分布的和去拟合我们目前拿到的样本数据(TrainingData)。
GMM算法公式概述:只打GMM的部分公式,EM的实在太长了,但强烈建议纸上手推
高斯混合模型的概率密度函数:
$$ p(y|\theta) = \sum_{k=1}^{K} \alpha\phi(y|\theta_k) $$
where
$$ \phi(y|\theta_k) \Leftrightarrow \phi(y|\theta_k) = \frac{1}{\sqrt{2\pi}\sigma_k} exp(-\frac{(y-\mu_k)^2}{2\sigma_k^2}) $$
$$ \alpha \geq 0 \quad and\quad \sum_{k=1}^{K}\alpha_k = 1, \qquad \theta_k = (\mu_k, \theta_k) $$
顺带写一写对其做极大似然估计的过程:
$$ p(x; \theta) = \sum_{k=1}^{K} \pi_kN(x;\mu_i,\sigma_k) \qquad s.t.\quad \sum_{k=1}^{K} \pi_k=1 $$
$$ P(x; \theta) = \prod_{i=1}^{N}p(x_i;\theta) $$
$$ lnP(x; \theta) = \sum_{i=1}^{N} ln( \sum_{k=1}^{K}\pi_kN(xi;\theta_k) ) $$
This formula, you will get ;_; if you try to caculate it's gradient, because it need reduction of fractions to a commomn denominator.It may make you mad,at least it made me mad.
细节理解:
1、为何$\sum_{k=1}{K} \alpha_k=1$,因为概率密度函数的定义域内积分要为1,显然GMM必须满足这个性质,而分配权重和为1,就可以满足这个性质,因为求积分可以分开求,最后累加,而每个分布的积分都是1,乘以和为1的权重,最后和才会为1。
2、为何需要EM算法,MLE不可以么?其实是先尝试过MLE,就会发现需要EM,因为在做MLE(手写)的时候会遇到一个问题(其实就是求出似然函数之后,取完对数发现需要求导的部分是$\sum ln (\sum)$这种形式,显然求导非常难算,可以简单想想,分式,或许需要通分,然后有N个式子。。。)。第一篇之中的“第二个细节”就是说的这个问题。
3、其实细想可以发现,在用EM的时候的一个假设很玄妙,他假设每个样本都是被GMM多个高斯分布结果中的某一个产生的,这样的假设合理么?合理——因为好算,因为我们可以加大参数让每个都拟合(可以拟合任意分布。。。)不合理——显然现实中决定某种事物出现的因素往往都是不唯一的。(虽然高斯分布已经是考虑了诸多微小影响之下的一种分布,我记得课本写过(大致意思):在譬如人的心情、人的操作失误、气温等一系列微小影响下,样本可以看作是服从正态分布的)。不得不说,GMM作为一种方法做到了很好的效果和深度(拟合任意分布),但是个人总觉得会遇一些极端情况。但是也想通了一点——本来就是预测,意外样本就是降低准确率的来源,哪有100%的预测。(不然不就每个人都去买股票致富了)
ML_Review_GMM(Ch10)的更多相关文章
- 20155211课下测试ch10补交
20155211课下测试ch10补交 1.假设下面代码中的foobar.txt中有6个ASCII字母,程序的输出是() A.c = f B.c = o C.c = b D.c = 随机数 答案:A 解 ...
- 2017-2018-1 20155331 课下测试(ch10)
2017-2018-1 20155331 课下测试(ch10) 假设下面代码中的foobar.txt中有6个ASCII字母,程序的输出是(A) Image 7.png A . c = f B . c ...
- CH10 泛型算法
概述 大多数算法都定义在algorithm头文件中. Note:算法永远不会执行容器操作 泛型算法本身不会执行容器的操作,而是通过迭代器来访问.修改等操作 10.1 题目要求读取数据存入vector, ...
- Hadoop 裡的 fsck 指令
Hadoop 裡的 fsck 指令,可檢查 HDFS 裡的檔案 (file),是否有 corrupt (毀損) 或資料遺失,並產生 HDFS 檔案系統的整體健康報告.報告內容,包括:Total blo ...
- 【JAVA并发编程实战】8、锁顺序死锁
package cn.study.concurrency.ch10; public class Account { private String staffAccount; //账号 private ...
- 网络分析之Pgrouting(转载)
网上关于Pgrouting的使用介绍太简单了,这里想详细的总结一下Pgrouting的使用,其实主要参照官方文档:http://workshop.pgrouting.org/ 第一步:配置环境 关于P ...
- 20145233 2016-2017 1 linux题目总结
20145233 2016-2017 1 linux题目总结 第一周考试知识汇总 判断:实验楼环境中所有的默认系统用户名和密码均为 shiyanlou.(x ). 填空:Linux Bash中,Ctr ...
- <<Numerical Analysis>>笔记
2ed, by Timothy Sauer DEFINITION 1.3A solution is correct within p decimal places if the error is l ...
- 转 Selenium+Python+Eclipse网页自动化集成环境配置(附简单的测试程序)
1 JDK.Python环境变量配置 下载JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html,直接双击安装, ...
随机推荐
- Matplotlib pyplot中title() xlabel() ylabel()无法显示中文(即显示方框乱码)的解决办法
有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/11020246.html 一.无法正常显示原因 ...
- 认识和学习redis
redis VS mysql """ redis: 内存数据库(读写快).非关系型(操作数据方便) mysql: 硬盘数据库(数据持久化).关系型(操作数据间关系) 大量 ...
- 【nodejs代理服务器二】nodejs webpack打包配置踩坑总结
接着上篇用Nodejs开发web代理,防止web渗透.如果部署到正式环境,需要进行打包配置. 我在用webpack打包配置中遇到了几个错误,总结如下: webpack环境变量问题 https://ww ...
- JAVA笔记整理(二),下载安装JDK
Windows平台 1.登录Oracle官方网站(http://www.oracle.com/index.html),找到下载 2.选择要下载的版本,点击JDK DOWNLOAD 3.下载文件,先勾选 ...
- C语言面试题目之指针和数组
说明:所有题目均摘录于网络以及我所见过的面试题目,欢迎补充! 无特殊说明情况下,下面所有题s目都是linux下的32位C程序. 先来几个简单的热热身. 1.计算以下sizeof的值. char str ...
- 【转】provisional headers are shown 知多少
前言 请求里面provisional headers are shown(显示临时报头) 出现的情况很多,但原因是多样的.如果你去直接匹配关键字搜索,得到的结果可能与你自己的情况大相径庭.网上大部分都 ...
- ASP.NET六大巨头——内置对象(2)
前面讲了三个内置对象,后面来探究一下另外三个内置对象Session.Server和Cookie,Session对象就是服务器给客户端的一个编号:Server对象提供对服务器上的方法和属性的访问:coo ...
- 一个s的力量——http与https
我们网络上有很多资源,那么我们怎么来访问呢?就拿一个小例子来说,我们都会用百度来搜索东西,就会在地址栏中输入这样的地址http://www.baidu.com这种访问方式就是通过URL来实现的,那么什 ...
- 【xsy1103】随机数表(RanMat)矩阵快速幂
题目大意:你生成了一个随机数表,生成机制是这样子的: $a[i]=A1a[i-1]+A2(2≤i≤m)$ $b[i]=B1b[i-1]+B2(2≤i≤m)$ $M[1][y]=a[y]%P,(1≤y≤ ...
- ORACLE数据库误操作执行了DELETE,该如何恢复数据?
ORACLE数据库误操作执行了DELETE,该如何恢复数据? 原创 2016年08月11日 17:23:04 10517 作为一个程序员,数据库操作是必须的,但是如果操作失误,一般都会造成比较严重的后 ...