极大似然估计和EM算法



title: 最大似然估计和EM算法

date: 2018-06-01 16:17:21

tags: [算法,机器学习]

categories: 机器学习

mathjax: true

---

本文是对最大似然估计和EM算法做的一个总结。

一般来说,事件A发生的概率与某个未知参数$\theta?$有关,$\theta?$取值不同,则事件A发生的概率$p(A|\theta)?$也不同。当我们在一次实验中事件A发生了,则认为此时的$\theta?$值应是t的一切可能取值中使$p(A|\theta)?$最大的那个。最大似然估计就是要选取这样的t值作为参数t的估计值,使所选取的样本在被选的总体中出现的可能性为最大。

EM算法是在有潜变量的情况下,通过不断进行最大似然估计来求解参数的过程。

最大似然估计

最大似然估计/极大似然估计(Maximum Likelihood Estimation,简称MLE)

前言

利用已知的样本的结果,在使用某个模型的基础上,反推出最有可能导致这种结果的模型参数值。是一种参数估计方法。

例子:

定义有些绕口,下面我们通过例子来理解一下。

我们知道,现实中的硬币是均匀的,即抛出后正面朝上和反面朝上的概率是一样的。

但是现在假设有两枚不均匀的硬币,这两枚硬币正面朝上的概率都不是0.5,分别记为$p_1$和$p_2$

记每选用一枚硬币抛5次为一个实验,得到实验结果如下:

实验所选硬币 实验结果
1 3正、2反
1 1正、4反
1 2正、3反
2 2正、3反
2 1正、4反

好!那么我现在问,根据实验结果你可以得到$p_1$和$p2$的值吗?你应该会这样算:

$p1=(3+1+2)/15=0.4$

$p2=(2+1)/10=0.3$

然后你就说了,$p1$最有可能是0.4,$p2$最有可能是0.3。

现在我们就完成了一次最大似然估计!


  • 什么是似然估计?---根据实验结果,反推出实验参数。
  • 什么是最大似然估计?---根据实验结果,反推出最有可能导致这个结果的实验参数。
  • 什么是概率?---根据参数,推出可能的实验结果。

用数学的语言来描述就是:

概率:$p(x|\theta)$ 在参数$\theta$确定的情况下,$x$出现的概率

似然:$L(\theta|x_1,x_2,...)$ 根据结果,反推参数

定义

最大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。

假设我们要统计全国人口的身高,首先假设这个身高服从正态分布,但是该分布的均值与方差未知。一种解决办法是:通过采样,获取部分人的身高,然后通过最大似然估计来获取上述假设中的正态分布与均值。

最大似然估计中采样需要满足:所有的采样都是独立同分布的。下面具体描述最大似然估计:

首先,假设$x_1,x_2,...,x_n$是独立同分布的采样,$\theta$是模型的参数,$f$为我们使用的模型。所以,参数为$\theta$的模型产生上述采样可以表示为:

$f(x_1,x_2,...,x_n)=f(x_1|\theta)\times f(x_2|\theta)\times ... \times f(x_n|\theta)$

回到上面“模型已定,参数未知”的说法,此时,我们已知的为$x_1,x_2,...,x_n$,未知参数$\theta$,所以似然定义为:

$L(\theta|x_1,x_2,...,x_n)=f(x_1,x_2,...,x_n)=\prod\limits_{i=1}^nf(x_i|\theta)$

最大似然估计就是求上式的极值点。所以自然想到求导了,因为右边是连乘,为了计算简便,同时对等号两边取对数,有:

$\ln L(\theta|x_1,...,x_n)=\sum\limits_{i=1}^n\ln f(x_i|\theta)$ $\hat l = \frac 1n\ln L$

其中 $\ln L(\theta|x_1,...,x_n)$称为对数似然,$\hat l$为平均对数似然。通常所说的最大似然指的是最大的平均对数似然:

$\hat{\theta}{mle}=\arg\limits{\theta\in\Theta}\max\hat l(\theta|x_1,...,x_n)$

例子1

举一个在很多博客都看到过的例子:

盒子里总共有若干个除颜色外均相同的球,进行100次有放回的随机摸球实验,摸到红球和白球的次数分别是30和70。用最大似然估计法求盒子中红球和白球比例。

解:

设红球比例为p,则白球为(1-p)。

则出现题目中结果(30次红,70次白)的概率可以写成:

$f(x_1,x_2,...,x_{100}|\theta)=f(x_1|\theta)\times f(x_2|\theta)\times ...\times f(x_{100}|\theta)$

$=p^{30}(1-p)^{70}$---------------------------式1

其中$x_i$代表第i次实验结果。

ps: 我一直觉得上面这个式子有问题....这是问题不考虑红球白球取出的次序,计算概率时不是应该再乘以一个$C_{100}^{30}$吗? 因为常数系数不影响之后的求导结果,所以这个问题不影响下面计算,但还是很想知道为什么。。。

好,实验结果(抽100次,有30次红70次白)我们已经知道了,所以当理论上这个概率(上式的值)越大,说明实际情况发生的可能性也越大,实验结果符合预期岂不是美滋滋:happy:。

So,我们希望式1的值尽可能大。即让式1取最大值时,此时参数p的取值就时我们对p的最大似然估计。

那么,直接对式1求导就行了:$f^{‘} =0\Longrightarrow p =0.3 $。也就是说当p=0.3时,出现这种实验结果(30,70)的可能性最大。这和我们常识的推测一致。所以0.3是我们求得的参数p的最大似然值。

例子2 正态分布

假如有一组采样值$(x_1,x_2,...,x_n)$,我们知道其服从正态分布,且标准差已知。当这个正态分布的期望为多少时,产生这个采样数据的概率为最大?

这个例子中正态分布就是模型M,而期望就是前文提到的未知参数$\theta$。

似然:$L(\theta|x_1,x_2,...,x_n)=f(x_1,x_2,...,x_n|\theta)=\prod\limits_{i=1}^nf(x_i|\theta)$

正态分布的公式:$M=f(x)=\frac1{\sqrt{2\pi}\sigma}\exp \left(-\frac{(x-\mu)^2}{2\sigma^2}\right)$ $N(\mu,\sigma^2)$

似然值:$f(x_1,x_2,...,x_n|\theta)=\left(\frac1{\sqrt{2\pi}\sigma}\right)^n\exp\left(-\frac1{2\sigma^2}\sum\limits_{i=1}^n(x-\mu)^2\right)$

对上面式子求导可得:$l^{‘}=0\Longrightarrow \sum\limits_{i=1}^n(x_i-\mu)=0\Longrightarrow\mu=\frac1n\sum\limits_{i=1}^nx_i$

最大似然算法推导出的正态分布的期望和我们尝试算出来的一样。

总结

我们可以得到最大似然估计的算法步骤如下:

  1. 写出似然函数;
  2. 如果直接求导困难,则两边同时取$\ln$对数,化成对数似然函数;
  3. 求导;
  4. 根据导数=0,求出极值点。

EM算法

EM(Expectation Maximal)算法,也称最大期望算法。

很接地气的EM算法解读

强烈推荐看上面这篇博客看,我觉得算法就是需要这种通俗的讲解才能真正吃透。这里就不累述了。

原文地址:https://www.cnblogs.com/Elaine-DWL/p/9425993.html

时间: 2024-08-28 22:50:39

极大似然估计和EM算法的相关文章

EM 算法 理论

EM算法的基本思想 极大似然估计–示例 极大似然估计步骤 极大似然估计求解 EM算法 EM算法步骤 EM算法推导 EM算法的高斯混合模型应用 高斯混合模型参数估计的EM算法 E步 M步 两个模型均值估计结果

EM算法 - 1 - 介绍

声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了弄懂其中的内容查阅了很多资料,所以里面应该会有引用其他帖子的小部分内容,如果原作者看到可以私信我,我会将您的帖子的地址付到下面. 3,如果有内容错误或不准确欢迎大家指正. 4,如果能帮到你,那真是太好了. 在开始之前需要准备些预备知识,如果你已经全部掌握那就直接向下翻到EM算法这一章吧. 极大似然估计 由于E

统计学习方法c++实现之八 EM算法与高斯混合模型

EM算法与高斯混合模型 前言 EM算法是一种用于含有隐变量的概率模型参数的极大似然估计的迭代算法.如果给定的概率模型的变量都是可观测变量,那么给定观测数据后,就可以根据极大似然估计来求出模型的参数,比如我们假设抛硬币的正面朝上的概率为p(相当于我们假设了概率模型),然后根据n次抛硬币的结果就可以估计出p的值,这种概率模型没有隐变量,而书中的三个硬币的问题(先抛A然后根据A的结果决定继续抛B还是C),这种问题中A的结果就是隐变量,我们只有最后一个硬币的结果,其中的隐变量无法观测,所以这种无法直接根

极大似然估计、贝叶斯估计、EM算法

参考文献:http://blog.csdn.net/zouxy09/article/details/8537620 极大似然估计 已知样本满足某种概率分布,但是其中具体的参数不清楚,极大似然估计估计就是把待估参数看做是确定性的量,只是其取值未知.最佳估计就是使得产生当前样本的概率最大下的参数值. 贝叶斯估计 已知样本满足某种概率分布,但参数未知.贝叶斯估计把待估参数看成符合某种先验概率分布的随机变量.对样本进行观测的过程就是把先验概率密度转化为后验概率密度,这样就利用样本信息修正了对参数的初始估

EM算法及其推广的要点

1.EM算法是含有隐变量的变量的概率模型极大似然估计或极大后验概率估计的迭代算法,含有隐变量的概率模型的数据表示为$P(Y,Z|\theta)$.这里,$Y$是观测变量的数据,$Z$是隐变量的数据,$\theta$是模型参数.EM算法通过迭代求解观测数据的对数似然函数$L(\theta)=logP(Y|\theta)$的极大化,实现极大似然估计.每次迭代包括两步:E步,求期望,即求$logP(Y|\theta)$关于$P(Y|\theta^{(i)})$的期望: $Q(\theta,\theta

【转载】(EM算法)The EM Algorithm

(EM算法)The EM Algorithm EM是我一直想深入学习的算法之一,第一次听说是在NLP课中的HMM那一节,为了解决HMM的参数估计问题,使用了EM算法.在之后的MT中的词对齐中也用到了.在Mitchell的书中也提到EM可以用于贝叶斯网络中. 下面主要介绍EM的整个推导过程. 1. Jensen不等式 回顾优化理论中的一些概念.设f是定义域为实数的函数,如果对于所有的实数x,,那么f是凸函数.当x是向量时,如果其hessian矩阵H是半正定的(),那么f是凸函数.如果或者,那么称f

EM算法求高斯混合模型参数估计——Python实现

EM算法一般表述: 当有部分数据缺失或者无法观察到时,EM算法提供了一个高效的迭代程序用来计算这些数据的最大似然估计.在每一步迭代分为两个步骤:期望(Expectation)步骤和最大化(Maximization)步骤,因此称为EM算法. 假设全部数据Z是由可观测到的样本X={X1, X2,--, Xn}和不可观测到的样本Z={Z1, Z2,--, Zn}组成的,则Y = X∪Z.EM算法通过搜寻使全部数据的似然函数Log(L(Z; h))的期望值最大来寻找极大似然估计,注意此处的h不是一个变量

【机器学习】K-means聚类算法与EM算法

初始目的 将样本分成K个类,其实说白了就是求一个样本例的隐含类别y,然后利用隐含类别将x归类.由于我们事先不知道类别y,那么我们首先可以对每个样例假定一个y吧,但是怎么知道假定的对不对呢?怎样评价假定的好不好呢? 我们使用样本的极大似然估计来度量,这里就是x和y的联合分布P(x,y)了.如果找到的y能够使P(x,y)最大,那么我们找到的y就是样例x的最佳类别了,x顺手就聚类了.但是我们第一次指定的y不一定会让P(x,y)最大,而且P(x,y)还依赖于其他未知参数,当然在给定y的情况下,我们可以调

从最大似然到EM算法浅解

原文在这里 机器学习十大算法之一:EM算法.能评得上十大之一,让人听起来觉得挺NB的.什么是NB啊,我们一般说某个人很NB,是因为他能解决一些别人解决不了的问题.神为什么是神,因为神能做很多人做不了的事.那么EM算法能解决什么问题呢?或者说EM算法是因为什么而来到这个世界上,还吸引了那么多世人的目光. 我希望自己能通俗地把它理解或者说明白,但是,EM这个问题感觉真的不太好用通俗的语言去说明白,因为它很简单,又很复杂.简单在于它的思想,简单在于其仅包含了两个步骤就能完成强大的功能,复杂在于它的数学