最大似然估计

  一个栗子:假如去赌场,但是不知道能不能赚钱,你就在门口堵着出来一个人就问一个赚了还是赔了,如果问了5个人都说赚了,那么你就会认为,赚钱的概率肯定是非常大的。

  已知:(1)样本服从分部的模型,(2)观测到的样本

  求解:模型的参数

  总的来说:极大似然估计就是用来估计模型参数的统计学方法

最大似然的数学问题(100名学生的身高问题)

  样本集X = {x1, x2 ,...,xN} N = 100

  概率密度:p(xi|θ)抽到男生i(的身高)的概率

  θ是服从分部的参数

  独立同分布:同时抽到这100个男生的概率就是他们各自概率的乘积

  最大似然函数:

   (对数是为了乘法转加法)

  什么样的参数θ能够使得出现当前这批样本的概率最大

  已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值。

问题又难了一步

  现在这100个人中,不光有男生,还有女生(2个类别,2种参数)

  男生和女生的身高都服从高斯分布,但是参数不同(均值,方差)

  用数学的语言描述:抽取得到的每个样本都不知道是从哪个分布抽取的

  求解目标:男生和女生对应的身高的高斯分布的参数是多少

  加入隐变量

    用Z = 0或Z = 1标记样本来自哪个分部,则Z就是隐变量

    最大似然函数:

      

    求解:在给定初始值情况下进行迭代求解

EM算法

  EM算法推导:

  问题:样本集{x(1),...,x(m)},包含m个独立的样本。其中每个样本i对应的类别z(i)是未知的,所以很难用最大似然求解。

  

  上式中,要考虑每个样本在各个分布中的情况。本来正常求偏导就可以了,但是现在log后面还有求和,这就难解了!

  右式分子分母同时乘:

    

  这么做就是为了凑Jensen不等式(Q(z)是Z的分布函数)

Jensen不等式

  设f是定义域为实数的函数,如果对于所有的实数x。

  如果对于所有的实数x,f(x)的二次导数大于等于0,那么f是凸函数。

  如果f是凸函数,X是随机变量,那么:E[f(X)] > = f(E[X])

  

  实线f是凸函数,X有0.5的概率是a,有0.5的概率是b,X的期望值就是a和b的中值了

  Jensen不等式应用于凹函数时,不等号方向反向

  由于:

    是 的期望

  假设则:

  可得:

    

  结论:

    

  下届比较好求,所以我们要优化这个下界来使得似然函数最大

  优化下届,迭代到收敛

    

  Jensen中等式成立的条件是随机变量是常数:

    

  Q(z)是z的分部函数:

    

  所有的分子和等于常数C(分母相同)

Q(z)求解

  

  由上式可得C就是p(xi,z)对z求和

  

  Q(z)代表第i个数据是来自zi的概率

EM算法流程

  初始化分布参数Θ

  E-step:根据参数Θ计算每个样本属于zi的概率(也就是Q)

  M-step:根据Q,求出含有Θ的似然函数的下界并最大化它,得到新的参数Θ

  不断的迭代更新

GMM(高斯混合模型)

  数据可以看作是从数个Gaussian Distribution中生成出来的

  GMM由K个Gaussian分布组成,每个Gaussian称为一个“Component”

  类似k-means方法,求解方式跟EM一样

  不断的迭代更新 

EM算法——Expectation-Maximization的更多相关文章

  1. EM算法(Expectation Maximization Algorithm)

    EM算法(Expectation Maximization Algorithm) 1. 前言   这是本人写的第一篇博客(2013年4月5日发在cnblogs上,现在迁移过来),是学习李航老师的< ...

  2. EM算法(Expectation Maximization)

    1 极大似然估计     假设有如图1的X所示的抽取的n个学生某门课程的成绩,又知学生的成绩符合高斯分布f(x|μ,σ2),求学生的成绩最符合哪种高斯分布,即μ和σ2最优值是什么? 图1 学生成绩的分 ...

  3. EM算法(Expectation Maximization Algorithm)初探

    1. 通过一个简单的例子直观上理解EM的核心思想 0x1: 问题背景 假设现在有两枚硬币Coin_a和Coin_b,随机抛掷后正面朝上/反面朝上的概率分别是 Coin_a:P1:-P1 Coin_b: ...

  4. 简单理解EM算法Expectation Maximization

    1.EM算法概念 EM 算法,全称 Expectation Maximization Algorithm.期望最大算法是一种迭代算法,用于含有隐变量(Hidden Variable)的概率参数模型的最 ...

  5. EM 算法 Expectation Maximization

  6. EM(Expectation Maximization)算法

    EM(Expectation Maximization)算法  参考资料: [1]. 从最大似然到EM算法浅解 [2]. 简单的EM算法例子 [3]. EM算法)The EM Algorithm(详尽 ...

  7. 最大期望算法 Expectation Maximization概念

    在统计计算中,最大期望(EM,Expectation–Maximization)算法是在概率(probabilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Lat ...

  8. 机器学习-EM算法

    最大期望算法 EM算法的正式提出来自美国数学家Arthur Dempster.Nan Laird和Donald Rubin,其在1977年发表的研究对先前出现的作为特例的EM算法进行了总结并给出了标准 ...

  9. 数据挖掘十大经典算法(5) 最大期望(EM)算法

    在统计计算中,最大期望(EM,Expectation–Maximization)算法是在概率(probabilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法观测的隐藏变量(Lat ...

  10. EM算法及其推广

    概述 EM算法是一种迭代算法,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计. EM算法的每次迭代由两步组成:E步,求期望(expectation): ...

随机推荐

  1. Promise的简单用法

    众所周知的,Javascript是一种单线程的语言,所有的代码必须按照所谓的“自上而下”的顺序来执行.本特性带来的问题就是,一些将来的.未知的操作,必须异步实现.本文将讨论一个比较常见的异步解决方案— ...

  2. Linux下输出 excel文件

    Linux下输出 excel文件 今日提供给产品需求,需excel文件,故总结要点如下: 1.默认间隔是space_20 2.修改为TAB \t _09 awk '  BEGIN { OFS=&quo ...

  3. 使用nosql实现页面静态化的一个小案列

    页面静态化,其实就是将动态生成的php页面,变成静态的HTML页面,让用户直接访问.有一下几方面好处: 1,首先就是访问速度,不需要去访问数据库,或者缓存来获取哪些数据,浏览器直接加载渲染html页即 ...

  4. mysql用户的增删与密码丢失问题

    为root用户设置初始密码 mysqladmin -u root password 密码(单实例) mysqladmin -u root password 密码 -S /data/3306/mysql ...

  5. P3243 [HNOI2015]菜肴制作(拓扑排序)

    P3243 [HNOI2015]菜肴制作 题目误导你正着做拓扑排序,然鹅你可以手造数据推翻它.于是就只能倒着做 我们开个优先队列,每次把可填的最大的编号取出来搞,最后倒着输出拓扑序就好辣 #inclu ...

  6. 【题解】Luogu P2257 YY的GCD

    原题传送门 这题需要运用莫比乌斯反演(懵逼钨丝繁衍) 显然题目的答案就是\[ Ans=\sum_{i=1}^N\sum_{j=1}^M[gcd(i,j)=prime]\] 我们先设设F(n)表示满足\ ...

  7. 《C Elements of Style》 书摘

    <C Elements of Style> 书摘 学完C语言和数据结构后,虽然能解决一些问题,但总觉得自己写的程序丑陋,不专业.这时候看到了Steve Oualline写的<C El ...

  8. hdu 4366 Successor - CDQ分治 - 线段树 - 树分块

    Sean owns a company and he is the BOSS.The other Staff has one Superior.every staff has a loyalty an ...

  9. git初学

    git在团队合作开发时是很有用的,SVN是集中式的代表,而git是分布式的代表,它分为代码区.暂存区.和本地库.在同一个团队中开发时,在代码存储中心(例如,码云.github)上创建一个库,用于储存和 ...

  10. topcoder srm 350 div1

    problem1 link 满足$a^{b}\leq5000000,b>1$的数字不多,有2000多个,直接暴力计算能组成哪些数字即可. import java.util.*; import j ...