似然函数

常说的概率是指给定参数后,预测即将发生的事件的可能性。拿硬币这个例子来说,我们已知一枚均匀硬币的正反面概率分别是0.5,要预测抛两次硬币,硬币都朝上的概率:

H代表Head,表示头朝上

p(HH | pH = 0.5) = 0.5*0.5 = 0.25.

这种写法其实有点误导,后面的这个p其实是作为参数存在的,而不是一个随机变量,因此不能算作是条件概率,更靠谱的写法应该是 p(HH;p=0.5)。

而似然概率正好与这个过程相反,我们关注的量不再是事件的发生概率,而是已知发生了某些事件,我们希望知道参数应该是多少。

现在我们已经抛了两次硬币,并且知道了结果是两次头朝上,这时候,我希望知道这枚硬币抛出去正面朝上的概率为0.5的概率是多少?正面朝上的概率为0.8的概率是多少?

如果我们希望知道正面朝上概率为0.5的概率,这个东西就叫做似然函数,可以说成是对某一个参数的猜想(p=0.5)的概率,这样表示成(条件)概率就是

L(pH=0.5|HH) = P(HH|pH=0.5) = (另一种写法)P(HH;pH=0.5).

为什么可以写成这样?我觉得可以这样来想:

似然函数本身也是一种概率,我们可以把L(pH=0.5|HH)写成P(pH=0.5|HH); 而根据贝叶斯公式,P(pH=0.5|HH) = P(pH=0.5,HH)/P(HH);既然HH是已经发生的事件,理所当然P(HH) = 1,所以:

P(pH=0.5|HH)  = P(pH=0.5,HH) = P(HH;pH=0.5).

右边的这个计算我们很熟悉了,就是已知头朝上概率为0.5,求抛两次都是H的概率,即0.5*0.5=0.25。

所以,我们可以safely得到:

L(pH=0.5|HH) = P(HH|pH=0.5) = 0.25.

这个0.25的意思是,在已知抛出两个正面的情况下,pH = 0.5的概率等于0.25。

如果考虑pH = 0.6,那么似然函数的值也会改变。

注意到似然函数的值变大了。这说明,如果参数pH 的取值变成0.6的话,结果观测到连续两次正面朝上的概率要比假设pH = 0.5时更大。也就是说,参数pH 取成0.6 要比取成0.5 更有说服力,更为“合理”。总之,似然函数的重要性不是它的具体取值,而是当参数变化时函数到底变小还是变大。对同一个似然函数,如果存在一个参数值,使得它的函数值达到最大的话,那么这个值就是最为“合理”的参数值。

在这个例子中,似然函数实际上等于:

, 其中

如果取pH = 1,那么似然函数达到最大值1。也就是说,当连续观测到两次正面朝上时,假设硬币投掷时正面朝上的概率为1是最合理的。

类似地,如果观测到的是三次投掷硬币,头两次正面朝上,第三次反面朝上,那么似然函数将会是:

, 其中T表示反面朝上,

这时候,似然函数的最大值将会在的时候取到。也就是说,当观测到三次投掷中前两次正面朝上而后一次反面朝上时,估计硬币投掷时正面朝上的概率是最合理的。

那么最大似然概率的问题也就好理解了。

最大似然概率,就是在已知观测的数据的前提下,找到使得似然概率最大的参数值。

极大似然估计

如果总体X为离散型

假设分布率为P=p(x;θ)P=p(x;θ),x是发生的样本,θθ是代估计的参数,p(x;θ)p(x;θ)表示估计参数为θθ时,发生x的的概率。

那么当我们的样本值为:x1,x2,...,xnx1,x2,...,xn时,

其中L(θ)L(θ)成为样本的似然函数。

假设

有 θ̂ θ^ 使得 L(θ)L(θ) 的取值最大,那么 θ̂ θ^就叫做参数 θθ 的极大似然估计值。

如果总体X为连续型

基本和上面类似,只是概率密度为f(x;θ)f(x;θ),替代p。

解法

  1. 构造似然函数L(θ)L(θ)
  2. 取对数:lnL(θ)lnL(θ)
  3. 求导,计算极值
  4. 解方程,得到θ

解释一下,其他的步骤很好理解,第二步取对数是为什么呢?

因为根据前面你的似然函数公式,是一堆的数字相乘,这种算法求导会非常麻烦,而取对数是一种很方便的手段:

  • 由于ln对数属于单调递增函数,因此不会改变极值点
  • 由于对数的计算法则:lnab=blnalnab=blna、lnab=lna+lnblnab=lna+lnb ,求导就很方便了

EM算法

https://blog.csdn.net/zouxy09/article/details/8537620 (讲得很详细)

参考资料:

[1] https://en.wikipedia.org/wiki/Likelihood_function

[2] https://www.cnblogs.com/zhsuiy/p/4822020.html(似然函数)

[3] https://blog.csdn.net/fangbingxiao/article/details/78878141(似然函数)

[4] https://blog.csdn.net/expleeve/article/details/50466602(似然函数)

[5] https://www.cnblogs.com/xing901022/p/8418894.html(极大似然估计法)

[6] https://blog.csdn.net/zouxy09/article/details/8537620(从最大似然到EM算法浅解) 非常好!!!

[7] http://www.cnblogs.com/wjy-lulu/p/7010258.html

[8] http://www.ituring.com.cn/article/497545 (一文详解高斯混合模型原理)

[9] https://blog.csdn.net/jinping_shi/article/details/59613054 (高斯混合模型(GMM)及其EM算法的理解)

[10] http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006924.html (混合高斯模型(Mixtures of Gaussians)和EM算法)

[11] https://blog.csdn.net/jasonzhoujx/article/details/81947663 (高斯混合模型(GMM)应用:分类、密度估计、生成模型)

机器学习基础知识笔记(一)-- 极大似然估计、高斯混合模型与EM算法的更多相关文章

  1. SIGAI机器学习第二十三集 高斯混合模型与EM算法

    讲授高斯混合模型的基本概念,训练算法面临的问题,EM算法的核心思想,算法的实现,实际应用. 大纲: 高斯混合模型简介实际例子训练算法面临的困难EM算法应用-视频背景建模总结 高斯混合模型简写GMM,期 ...

  2. 机器学习之高斯混合模型及EM算法

    第一部分: 这篇讨论使用期望最大化算法(Expectation-Maximization)来进行密度估计(density estimation). 与k-means一样,给定的训练样本是,我们将隐含类 ...

  3. 机器学习 : 高斯混合模型及EM算法

    Mixtures of Gaussian 这一讲,我们讨论利用EM (Expectation-Maximization)做概率密度的估计.假设我们有一组训练样本x(1),x(2),...x(m),因为 ...

  4. 【ML数学知识】极大似然估计

    它是建立在极大似然原理的基础上的一个统计方法,极大似然原理的直观想法是,一个随机试验如有若干个可能的结果A,B,C,... ,若在一次试验中,结果A出现了,那么可以认为实验条件对A的出现有利,也即出现 ...

  5. B-概率论-极大似然估计

    [TOC] 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblogs.com/nickchen121/ ...

  6. LR为什么用极大似然估计,损失函数为什么是log损失函数(交叉熵)

    首先,逻辑回归是一个概率模型,不管x取什么值,最后模型的输出也是固定在(0,1)之间,这样就可以代表x取某个值时y是1的概率 这里边的参数就是θ,我们估计参数的时候常用的就是极大似然估计,为什么呢?可 ...

  7. JS基础知识笔记

    2020-04-15 JS基础知识笔记 // new Boolean()传入的值与if判断一样 var test=new Boolean(); console.log(test); // false ...

  8. Java多线程基础知识笔记(持续更新)

    多线程基础知识笔记 一.线程 1.基本概念 程序(program):是为完成特定任务.用某种语言编写的一组指令的集合.即指一段静态的代码,静态对象. 进程(process):是程序的一次执行过程,或是 ...

  9. javascript基础知识笔记-自用

    笔记内容根据个人基础知识不足不明白之处做的记录.主要看的:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript 1.变量,变量的名字又叫标识符 ...

随机推荐

  1. 汇编:模拟C语言实现break与continue

    ;=============================== ;循环程序设计 ;模拟C语言实现break 与continue DATAS SEGMENT i dw sum dw DATAS end ...

  2. Asp.Net Core 使用Docker进行容器化部署(一)

    前几篇文章介绍了Liunx下的环境搭建,今天来分享一下.Net Core在Liunx上的部署. 我采用的方案是使用Dokcer作为运行虚拟机,Nginx作为Http服务器来进行反向代理,你可以理解为D ...

  3. QQ兴趣部落 大批量引流实战技巧

    兴趣部落,犹如pc端贴吧,除去盔甲,几乎大同小异. 在文章<QQ运动,新楛的马桶还在香,营销人不应摒弃>中,阿力推推对稍微僻静的平台做过简述,和QQ运动一样,兴趣部落稍显“僻静”,执行到位 ...

  4. Go web表单验证

    开发Web的一个原则就是,不能信任用户输入的任何信息,所以验证和过滤用户的输入信息就变得非常重要 必填字段 if len(r.Form["username"][0])==0{ // ...

  5. 密码发生器 南阳acm519

    密码发生器 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全:如 ...

  6. ListView学习

    ListView类 常用的基本属性 FullRowSelect:设置是否行选择模式.(默认为false)提示:只有在Details视图,该属性有效. GridLines:设置行和列之间是否显示网格线. ...

  7. OpenCV代码提取:transpose函数的实现

    OpenCV中的transpose函数实现图像转置,公式为: 目前fbc_cv库中也实现了transpose函数,支持多通道,uchar和float两种数据类型,经测试,与OpenCV3.1结果完全一 ...

  8. 用mapreduce读取hdfs数据到hbase上

    hdfs数据到hbase过程 将HDFS上的文件中的数据导入到hbase中 实现上面的需求也有两种办法,一种是自定义mr,一种是使用hbase提供好的import工具 hbase先创建好表   cre ...

  9. html页面导出word文档

    1.加入两个外部js 1)FileSaver.js /* FileSaver.js * A saveAs() FileSaver implementation. * 1.3.2 * 2016-06-1 ...

  10. MySQL源码中的String

    适用于离开作用域就销毁的字符串.