美文网首页
极大似然估计和EM算法初步

极大似然估计和EM算法初步

作者: shenghaishxt | 来源:发表于2019-05-15 23:37 被阅读0次

    本文来自我的个人博客 https://www.zhangshenghai.com/posts/1422/

    极大似然估计是在知道结果的情况下,寻求使该结果出现可能性极大的条件,以此作为估计值。在维基百科中,极大似然估计的定义是这样的:

    给定一个概率分布D,已知其概率密度函数(连续分布)或概率质量函数(离散分布)为f_D,以及一个分布参数\theta,我们可以从这个分布中抽出一个具有n个值的采样X_1, X_2, ..., X_n,计算出其似然函数
    L(\theta|x_1, ..., x_n) = f_{\theta}(x_1, ..., x_n)
    D是离散分布,f_{\theta}即是在参数为\theta时观测到这一采样的概率。若其是连续分布,f_{\theta}则为X_1, X_2, ..., X_n联合分布的概率密度函数在观测值处的取值。一旦我们获得X_1, X_2, ..., X_n,我们就能求得一个关于\theta的估计。最大似然估计会寻找关于\theta的最可能的值。从数学上说,我们可以在\theta的所有可能取值中寻找一个值使得似然函数取到最大值。这个使可能性最大的\hat \theta值即称为\theta的极大似然估计。由定义,极大似然估计是样本的函数。

    极大似然估计

    问题描述

    首先从一个例子入手,假设我们需要调查某个地区的人群身高分布,那么先假设这个地区人群身高服从正态分布N(\mu, \sigma ^2)。注意,极大似然估计的前提是要假设数据总体的分布,不知道数据分布是无法使用极大似然估计的。假设的正态分布的均值和方差未知,这个问题中极大似然估计的目的就是要估计这两个参数。

    根据概率统计的思想,可以依据样本估算总体,假设我们随机抽到了1000个人,根据这1000个人的身高来估计均值\mu和方差\sigma^2

    将其翻译成数学语言:为了统计该地区的人群身高分布,我们独立地按照概率密度p(x|\theta)抽取了1000个样本组成样本集X = x_1, ..., x_N,我们想通过样本集X来估计总体的未知参数\theta。这里概率密度p(x|\theta)服从高斯分布N(\mu, \sigma ^ 2),其中的未知参数是\theta = [\mu, \sigma]^T

    那么怎样估算\theta呢?

    估算参数

    这里每个样本都是独立地从p(x|\theta)中抽取的,也就是说这1000个人之间是相互独立的。若抽到i的概率是p(x_i|\theta),抽到j的概率是p(x_j|\theta),那么同时抽到它们的概率就是p(x_i|\theta)×p(x_j|\theta)。同理,同时抽到这1000个人的概率就是他们各自概率的乘积,即为他们的联合概率,这个联合概率就等于这个问题的似然函数:
    L(\theta) = L(x_1, x_2, ..., x_n;\theta) = \Pi ^n_{i=1} p(x_i|\theta), \quad \theta \in \Theta
    对 L 取对数,将其变成连加的,称为对数似然函数,如下式:
    H(\theta) = ln L(\theta) = ln \Pi ^n_{i=1} p(x_i|\theta) = \sum^n_{i=1} ln p(x_i|\theta)

    为什么要取对数?

    • 取对数之后累积变为累和,求导更加方便
    • 概率累积会出现数值非常小的情况,比如1e-30,由于计算机的精度是有限的,无法识别这一类数据,取对数之后,更易于计算机的识别(1e-30以10为底取对数后便得到-30)。

    对似然函数求所有参数的偏导数,然后让这些偏导数为0,假设有n个参数,就可以得到n个方程组成的方程组,方程组的解就是似然函数的极值点了,在似然函数极大的情况下得到的参数值\theta即为我们所求的值:
    \hat \theta = argmax \ L(\theta)
    极大似然估计是建立在这样的思想上:已知某个参数能使这个样本出现的概率极大,我们当然不会再去选择其他小概率的样本,所以干脆就把这个参数作为估计的真实值。

    极大似然估计的步骤

    1. 写出似然函数;
    2. 对似然函数取对数,并整理;
    3. 求导数,令导数为 0,得到似然方程;
    4. 解似然方程,得到的参数。

    EM算法初步

    和极大似然估计一样,EM算法的前提也是要假设数据总体的分布,不知道数据分布是无法使用EM算法的

    概率模型有时既含有观测变量,又含有隐变量。如果概率模型的变量都是观测变量,那么给定数据,可以直接用极大似然估计法,或贝叶斯估计法估计模型参数。但是,当模型含有隐变量时,就不能简单地使用这些估计方法。EM算法就是含有隐变量的概率模型参数的极大似然估计法,或极大后验概率估计法。

    Q函数:完全数据的对数似然函数\log P \left( Y , Z | \theta \right)关于在给定观测数据Y和当前参数\theta_{\left( i \right)}下对未观测数据Z的条件概率分布P \left( Z | Y, \theta_{\left( i \right)} \right)的期望
    \begin{align*} & Q \left( \theta, \theta_{\left( i \right)} \right) = E_{Z} \left[ \log P \left( Y, Z | \theta \right) | Y , \theta_{\left( i \right)} \right] \end{align*}
    含有隐变量Z的概率模型,目标是极大化观测变量Y关于参数\theta的对数似然函数,即
    \begin{align*} & \max L \left( \theta \right) = \log P \left( Y | \theta \right) \\ & = \log \sum_{Z} P \left( Y,Z | \theta \right) \\ & = \log \left( \sum_{Z} P \left( Y|Z,\theta \right) P \left( Z| \theta \right) \right)\end{align*}

    EM算法的步骤

    输入:观测随机变量数据Y,隐随机变量数据Z,联合分布P\left(Y,Z|\theta\right),条件分布P\left(Y|Z,\theta\right)
    输出:模型参数\theta

    1. 初值\theta^{\left(0\right)}

    2. E步:
      \begin{align*} & Q\left(\theta,\theta^\left(i\right)\right)=E_{Z}\left[\log P\left(Y,Z|\theta\right)|Y,\theta^{\left(i\right)}\right] \\ & = \sum_{Z} \log P\left(Y,Z|\theta \right) \cdot P\left(Z|Y, \theta^\left(i\right)\right)\end{align*}

    3. M步:
      \begin{align*} & \theta^{\left( i+1 \right)} = \arg \max Q\left(\theta, \theta^\left( i \right) \right)\end{align*}

    4. 重复2. 3.,直到收敛。

    相关文章

      网友评论

          本文标题:极大似然估计和EM算法初步

          本文链接:https://www.haomeiwen.com/subject/bemvaqtx.html