精华内容
下载资源
问答
  • 2018-06-26 15:33:36

    概念:

    在统计学中,最大期望(EM)算法是在概率(probabilistic)模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐藏变量(Latent Variable)

    1)计算期望(E),利用概率模型参数的现有估计值,计算隐藏变量的期望;
    2)最大化(M),利用E 步上求得的隐藏变量的期望,对参数模型进行最大似然估计。
    3)M 步上找到的参数估计值被用于下一个 E 步计算中,这个过程不断交替进行。
    总体来说,EM的算法流程如下:
    1.初始化分布参数
    2.重复直到收敛:
    E步骤:估计未知参数的期望值,给出当前的参数估计。
    M步骤:重新估计分布参数,以使得数据的似然性最大,给出未知变量的期望估计。

    预备知识

    • 1 极大似然估计
      (1)举例说明:经典问题——学生身高问题
        我们需要调查我们学校的男生和女生的身高分布。 假设你在校园里随便找了100个男生和100个女生。他们共200个人。将他们按照性别划分为两组,然后先统计抽样得到的100个男生的身高。假设他们的身高是服从正态分布的。但是这个分布的均值μ和方差σ2我们不知道,这两个参数就是我们要估计的。记作θ=[μ,σ]T。
        问题:我们知道样本所服从的概率分布的模型和一些样本,需要求解该模型的参数。如图
        
      这里写图片描述
    我们已知的有两个:样本服从的分布模型、随机抽取的样本;我们未知的有一个:模型的参数。根据已知条件,通过极大似然估计,求出未知参数。总的来说:极大似然估计就是用来估计模型参数的统计学方法。 (2)如何估计   问题数学化:设样本集X=x1,x2,…,xN,其中N=100 ,p(xi|θ)为概率密度函数,表示抽到男生xi(的身高)的概率。由于100个样本之间独立同分布,所以我同时抽到这100个男生的概率就是他们各自概率的乘积,也就是样本集X中各个样本的联合概率,用下式表示:
    ![这里写图片描述](https://img-blog.csdn.net/20180626151732748?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQyNTgzNjI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)   
    这个概率反映了,在概率密度函数的参数是θ时,得到X这组样本的概率。 我们需要找到一个参数θ,使得抽到X这组样本的概率最大,也就是说需要其对应的似然函数L(θ)最大。满足条件的θ叫做θ的最大似然估计量,记为
    θ^=argmaxL(θ)
    (3)求最大似然函数估计值的一般步骤   首先,写出似然函数:
    ![这里写图片描述](https://img-blog.csdn.net/20180626151959655?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQyNTgzNjI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
      然后,对似然函数取对数:
    ![这里写图片描述](https://img-blog.csdn.net/20180626152013618?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQyNTgzNjI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
    接着,对上式求导,令导数为0,得到似然方程; 最后,求解似然方程,得到的参数θ即为所求。 - **2 Jensen不等式** 设f是定义域为实数的函数,如果对于所有的实数x,f(x)的二次导数大于等于0,那么f是凸函数。   Jensen不等式表述如下:如果f是凸函数,X是随机变量,那么:E[f(X)]≥f(E[X])。当且仅当X是常量时,上式取等号。其中,E[x]表示x的数学期望。   例如,图2中,实线f是凸函数,X是随机变量,有0.5的概率是a,有0.5的概率是b。X的期望值就是a和b的中值了,图中可以看到E[f(X)]≥f(E[X])成立。   注:   1、Jensen不等式应用于凹函数时,不等号方向反向。当且仅当X是常量时,Jensen不等式等号成立。   2、关于凸函数,百度百科中是这样解释的——“对于实数集上的凸函数,一般的判别方法是求它的二阶导数,如果其二阶导数在区间上非负,就称为凸函数(向下凸)”。关于函数的凹凸性,百度百科中是这样解释的——“中国数学界关于函数凹凸性定义和国外很多定义是反的。国内教材中的凹凸,是指曲线,而不是指函数,图像的凹凸与直观感受一致,却与函数的凹凸性相反。只要记住“函数的凹凸性与曲线的凹凸性相反”就不会把概念搞乱了”。关于凹凸性这里,确实解释不统一,博主暂时以函数的二阶导数大于零定义凸函数,此处不会过多影响EM算法的理解,只要能够确定何时E[f(X)]≥f(E[X])或者E[f(X)]≤f(E[X])就可以。   
    ![这里写图片描述](https://img-blog.csdn.net/20180626152257580?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQyNTgzNjI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
      

    EM算法详解

    • 1 问题描述
       我们目前有100个男生和100个女生的身高,共200个数据,但是我们不知道这200个数据中哪个是男生的身高,哪个是女生的身高。假设男生、女生的身高分别服从正态分布,则每个样本是从哪个分布抽取的,我们目前是不知道的。这个时候,对于每一个样本,就有两个方面需要猜测或者估计: 这个身高数据是来自于男生还是来自于女生?男生、女生身高的正态分布的参数分别是多少?EM算法要解决的问题正是这两个问题。如图
      这里写图片描述

      - 2 EM算法推导
       样本集X={x1,…,xm},包含m个独立的样本;每个样本xi对应的类别zi是未知的(即上文中每个样本属于哪个分布是未知的);我们需要估计概率模型p(x,z)的参数θ,即需要找到适合的θ和z让L(θ)最大。根据上文2.1 极大似然估计中的似然函数取对数所得logL(θ),可以得到如下式:
    ![这里写图片描述](https://img-blog.csdn.net/20180626152847544?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQyNTgzNjI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)  
      其中,(1)式是根据xi的边缘概率计算得来,(2)式是由(1)式分子分母同乘一个数得到,(3)式是由(2)式根据Jensen不等式得到。   这里简单介绍一下(2)式到(3)式的转换过程:由于∑Qi(z(i))[p(x(i),z(i);θ)Qi(z(i))]为p(x(i),z(i);θ)Qi(z(i))的期望,且log(x)为凹函数,根据Jensen不等式(当f是凸函数时,E[f(X)]≥f(E[X])成立;当f是凹函数时,E[f(X)]≤f(E[X])成立)可由(2)式得到(3)式。此处若想更加详细了解,可以参考博客the EM algorithm。   上述过程可以看作是对logL(θ)(即L(θ))求了下界。对于Qi(z(i))的选择,有多种可能,那么哪种更好呢?假设θ已经给定,那么logL(θ)的值就取决于Qi(z(i))和p(x(i),z(i))]了。我们可以通过调整这两个概率使下界不断上升,以逼近logL(θ)的真实值,那么什么时候算是调整好了呢?当不等式变成等式时,说明我们调整后的概率能够等价于logL(θ)了。按照这个思路,我们要找到等式成立的条件。根据Jensen不等式,要想让等式成立,需要让随机变量变成常数值,这里得到: p(x(i),z(i);θ)Qi(z(i))=c c为常数,不依赖于z(i)。对此式做进一步推导:由于∑z(i)Qi(z(i))=1,则有∑z(i)p(x(i),z(i);θ)=c(多个等式分子分母相加不变,则认为每个样例的两个概率比值都是c),因此得到下式:
    ![这里写图片描述](https://img-blog.csdn.net/20180626152908548?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQyNTgzNjI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)  
     至此,我们推出了在固定其他参数θ后,Qi(z(i))的计算公式就是后验概率,解决了Qi(z(i))如何选择的问题。这一步就是E步,建立logL(θ)的下界。接下来的M步,就是在给定Qi(z(i))后,调整θ,去极大化logL(θ)的下界(在固定Qi(z(i))后,下界还可以调整的更大)。这里读者可以参考文章EM算法。 3.3 EM算法流程   初始化分布参数θ; 重复E、M步骤直到收敛:   E步骤:根据参数θ初始值或上一次迭代所得参数值来计算出隐性变量的后验概率(即隐性变量的期望),作为隐性变量的现估计值:
    ![这里写图片描述](https://img-blog.csdn.net/20180626152925203?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQyNTgzNjI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
      M步骤:将似然函数最大化以获得新的参数值:
    ![这里写图片描述](https://img-blog.csdn.net/20180626152932755?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTQyNTgzNjI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

    EM算法优缺点以及应用

    优点:稳定上升的步骤能非常可靠地找到“最优的收敛值”。 有时候缺失数据并非是真的缺少了,而是为了简化问题而采取的策略,这时EM算法被称为数据添加技术,所添加的数据通常被称为“潜在数据”,复杂的问题通过引入恰当的潜在数据,能够有效地解决我们的问题。
    缺点:对初始值敏感:EM算法需要初始化参数θ,而参数θ的选择直接影响收敛效率以及能否得到全局最优解。
    EM算法的应用:k-means算法是EM算法思想的体现,E步骤为聚类过程,M步骤为更新类簇中心。GMM(高斯混合模型)也是EM算法的一个应用,感兴趣的小伙伴可以查阅相关资料。

    文章参考
    https://blog.csdn.net/zhihua_oba/article/details/73776553

    更多相关内容
  • 机器学习报告,解释期望最大值原理,内含python小程序,逻辑通顺,内容充实
  • 实现期望最大算法EM,对混合模型进行参数估计,得到参数的具体
  • 此提交实现了期望最大算法并在简单的 2D 数据集上对其进行了测试。 期望最大化(EM)算法是一种迭代方法,用于在统计模型中依赖于未观察到的潜在变量的情况下,找到参数的最大似然或最大后验(MAP)估计。 EM 迭代...
  • EM算法(期望最大值算法

    千次阅读 2019-03-22 23:47:55
    (3)M-step:根据期望值反推模型的 参数值,用于更新初始化的参数分布。 硬币A投正的期望和/(硬币A投正的期望和 + 硬币A投反的期望和) 硬币B投正的期望和/(硬币B投正的期望和 + 硬币B投反的期望和) 用以上...

    一、问题提出: 身高问题

    假如我们现在手头上有200个学生的身高合集,其中有男生和女生,而且男生、女生分别服从不同的高斯分布。如果把这个数据集的概率密度画出来,大致可能像这样:

    提出问题: 求解这两种身高的概率分布参数。

    这个图形所对应的便是混合高斯模型(GMM)概率分布函数,表示其由两个高斯模型混合而成。即:

    \large P(x_i;\theta)=\sum_{i=1}^{k}\alpha_k\Phi(x;\theta_k)

    其中,\large \Phi(x;\theta_k)是第k个分高斯模型的概率密度函数,其可以定义如下:

    \large \theta_k=(\mu_k,\sigma_k^2)

     \large \phi(y|\theta_k)=\frac{1}{\sqrt{2\pi}\sigma_k}\;exp(-\frac{(y-\mu_k)^2}{2\sigma_k^2})

    \large \alpha_k是第K个分模型的权重系数,且满足\large \alpha_k\geq 0\large \sum_{k=1}^{K}\alpha_k=1

    对GMM模型的参数估计,就要用EM算法。更一般的讲,EM算法适用于带有隐变量的概率模型的估计。在我们上面的问题中,某一个身高样本可能来自男学生或女学生,假设某样本来自男生的概率分布,设Z=1,反之则设Z=0,这个Z就是引入的隐变量。

    那么极大似然函数可写为:

    l(\theta)=\sum_{i=1}^{k}log\;p(x_i;\theta)=\sum_{i=1}^{k}log\;\sum_{Z}p(x_i;Z;\theta)

    Z取值有两种情况(=0,=1),而这两种情况都需要考虑,因此在上式中,额外产生了一个求和的操作。

    因为这个似然函数的log后面还有求和操作,用求偏导的方式来求解比较困难,因此往往采用迭代求解的方式。

    二、迭代求解

    首先,初始化参数θ

    (1)E-Step:根据参数θ计算每个样本属于Z的概率,即这个身高样本来自男生或女生的概率,这个概率就是Q

    (2)M-Step:根据计算得到的Q,求出含有θ的似然函数的下界并最大化它,得到新的参数θ

    重复(1)和(2)直到收敛

    三、实例:硬币问题

    (1)有两个硬币A和B,假设出现正面的概率分别为0.6,0.5,即初始化参数。

    (2)E-step:根据样本估算隐变量Z分别来自A或B的概率

    开始观察第一个样本:投掷10次,5次正面。

    考虑隐变量Z,可能是A可能是B,现在分别计算俩硬币投出5正5反的概率:

    pA=C_{10}^5 \;*\;0.6^5\;*\;0.4^5

    pB=C_{10}^5 \;*\;0.5^5\;*\;0.5^5

    以pA为例,C(10,6)表示10次投掷6次为正的组合数;0.6的6次方表示6次为正的概率,0.4的4次方表示4次为反的概率,相乘表示6次正4次反的概率。

    那么选择硬币A的概率=pA/(pA+pB)=0.45,选择硬币B的概率为1-选硬币A的概率=0.55。

    那么硬币A投掷正的期望=0.45*5=2.2,投掷反的期望=0.45*5=2.2

    那么硬币B投掷正的期望=0.55*5=2.8,投掷反的期望=0.55*5=2.8

    以上,对第一个样本的期望计算完毕;

    按照以上的方法继续计算剩下所有样本的期望,并将所有样本计算出来的期望相加,如下:

    硬币A投掷正的期望累加和;

    硬币A投掷反的期望累加和;

    硬币B投掷正的期望累加和;

    硬币B投掷反的期望累加和;

    (3)M-step:根据期望值反推模型的\theta参数值,用于更新初始化的参数分布。

    \hat{\theta_A}=硬币A投正的期望和/(硬币A投正的期望和 + 硬币A投反的期望和)

    \hat{\theta_B}=硬币B投正的期望和/(硬币B投正的期望和 + 硬币B投反的期望和)

    用以上的两个参数替换开始的假设的参数,并重复以上步骤直至收敛,即两个参数不再发生大的变化为止。

    4、图例: 以下图说明了第三步的过程。

     

     

     

    展开全文
  • 为了提高光谱数据的空间分辨率, 将计算机断层图像复原中的期望值最大化(EM)算法应用到降质图像预处理中, 可在对图像模糊降质程度估计不准确时进行运算, 利用迭代求解逐次逼近最终收缩于原始目标。实验结果表明, 该...
  • (最大期望)EM算法案例详解

    千次阅读 2019-09-08 08:57:18
    EM算法全称为Exception Maximization Algorithm,即最大期望算法,以下简称EM算法。它是一种迭代的算法,主要用于含有隐变量的概率参数模型的极大似然和极大后验概率估计。EM算法也经常用于机器学习和计算机视觉的...

    一、EM算法简介

    EM算法全称为Exception Maximization Algorithm,即最大期望算法,以下简称EM算法。它是一种迭代的算法,主要用于含有隐变量的概率参数模型的极大似然和极大后验概率估计。EM算法也经常用于机器学习和计算机视觉的聚类领域,是一个非常重要的算法。

     

     

    二、EM算法原理

    要了解EM算法,就必须先了解极大似然估计,因为整个的EM算法的演算、推导,都是以极大似然估计为基础。

    2.1 极大似然估计

    2.1.1 两点分布

    首先我们来看一个简单的例子:假设我们现在有一个抛硬币的实验,10次抛硬币的结果是:正正反正正正反反正正,记p为每次抛硬币的结果为正的概率,那么这次实验的结果发生的概率记为P:

    得到了上述的等式,那么当小p取何值时大P能够取得最大值呢?也就是当小p取何值时,这次实验的结果最容易发生。对此我们利用极大似然估计,反过来当大P取最大值时,我们就可以求得此时的小p值。

    目标函数:

    最优解是:

    一般形式:

    将上述的实验化成一般形式,即假设有X次实验,实验结果的概率为p(x),分布为\overline{p}(x),则其一般形式为:

    2.1.2 高斯分布

    进一步考察:

    若给定一组样本x1 ,x2 …xn ,已知它们来自于高斯分布N(μ,σ),试估计参数μ,σ?高斯分布的均值为μ,方差为σ,仍使用刚开始的极大似然估计来求解这个过程。

    按照MLE的过程分析:

    1.高斯分布的概率密度函数:

    2.将Xi的样本值xi带入上述极大似然估计(MLE)的一般形式,得到极大似然函数:

    3.化简对数似然函数得到目标函数:

    • \sum_{i=1}^{n}\log_{e}\frac{1}{\sqrt{2\pi }\sigma }e^{\frac{-(xi-\mu )^2}{2\sigma ^{2}}}  

    • \sum_{i=1}^{n}\log_{e}\frac{1}{\sqrt{2\pi }\sigma }-\frac{1}{2\sigma ^{2}}\sum_{i=1}^{n}(xi-\mu )^{^{2}}

    • =-\frac{n}{2}\log_{e}(2\pi \sigma ^{2}) - \frac{1}{2\sigma ^{2}}\sum_{i=1}^{n}(xi-\mu )^{2}

     

    4.将目标函数对参数μ,σ分别求偏导,求极值得到μ,σ的式子:

     

    可以对上述的两个公式进行分析:

    • 针对   \mu =\frac{1}{n}\sum xi  ,等式右边对所有的样本值求和、取均值,即用样本的均值来代替总体的均值。
    • 针对\sigma ^{2} = \frac{1}{n}\sum (xi-\mu )^{2},等式右边是对样本求方差(真实的方差应该是除n-1,因此称之为伪方差),用样本方差来代替总体的方差。

    上述的两个公式是后面分析的基础,可以直接当作结论引用。

     

    2.2 引入隐变量

    2.2.1 样本含有隐变量

    例子:若在某商场随机挑选100位顾客,测量这100 位顾客的身高,假设这100个样本服从正态分布N(μ,σ),试估计参数μ,σ。

    正态分布的概率密度值已知,又有样本值,结合上述的分析,极大似然估计、求偏导、求极值,联合方程组得到μ,σ。我们也可以直接使用上面的结论直接得到参数μ,σ。

    引入隐变量:

    若样本中存在男性顾客和女性顾客,服从N(μ1,σ1) 和 N(μ2,σ2)的分布,试估计μ1,σ1,μ2,σ2。

    刚刚的样本值是可以直接观察到的,加入隐变量使得样本无法完全观测到。现在只知道身高数据,但是不知道这个身高样本的性别,即不知道每个样本值是来自女性还是男性。针对这种无法完全观察或不完全的数据,用EM算法是很合适的。

     

    2.3 EM算法

    2.3.1 混合高斯模型

    混合高斯模型求参问题:

    将上述的实例再进一步延申,化成更一般的形式,随机变量X是有K个正态分布混合而成,取各个正态分布的概率为π 1 π 2 ... π K ,第i个正态分布的均值为μ i ,标准差为Σ i 。若观测到随机变量X的一系列样本x 1 ,x 2 ,...,x n ,试估计参数 π, μ, Σ。

    同理将样本值代入到一般形式,再化简,得到对数似然函数:

    第一步:估算数据来自的组分

    估计数据是由每个组分生成的概率,对于每个样本xi,它由第k个组分生成的概率。(这里可能有的讲法不一样,有的说是第k个组分对样本xi的贡献度有多少,但是实质一样的)。

    上述公式是EM算法的核心思想,\pi _{k}N(xi | \mu _{k},\varepsilon _{k})指的是第k个组分对样本xi的贡献度,除分母进行归一化,得到结果\gamma (i,k)第i个样本xi来自组分k的概率。

    由于式子里的μ,Σ需要我们估计的值,因此采用迭代法,在计算\gamma (i,k)的时候假定μ,Σ均已知,即根据先验知识给定μ,Σ,\pi

    第二步:估计每个组分的参数

    将我们的目标函数,取对数化简后得:

    \l _{\pi ,\mu ,\varepsilon } = \sum_{k=1}^{K}\log_{e}(\sum_{k=1}^{K}\pi _{k}N(x_{i}|\mu _{k},\varepsilon _{k}))

    1. 对于组分k而言,可以看做生成了{\gamma (i,k) * x_{i} | i=1,2,...N}这些点。组分k是一个标准得高斯分布,可以利用上面得公式:\mu = \frac{1}{n}\sum x_{i}\sigma ^{2} = \frac{1}{n}(x_{i} - \mu )^{2}直接估计出\mu _{k},\varepsilon _{k},N_{k},\pi _{k}
    2. 将得到的新的\mu _{k},\varepsilon _{k},N_{k},\pi _{k},再代入回去得到新的\mu _{k},\varepsilon _{k},N_{k},\pi _{k}
    3. 反复迭代上述的1,2步直到,收敛到某一可接受的误差值或达到某一设定的迭代次数。

    2.3.2 EM算法核心

    假定有训练集{x_{1},...x^{m}},包含有m个独立样本,求该组数据的模型p(x,z)的参数。

    通过极大似然估计建立目标函数,取对数化简得到对数似然函数:

    这里z是隐随机变量,直接找到参数的估计是很困难的。我们的策略是建立\l (\theta )的下界,并且求该下届的最大值,重复该过程直到收敛到局部的最大值。

    EM算法的推导过程:

    1. Q_{i}是z的某一个分布,Q_{i}\geq 0,将样本值代入一般形式,乘一个Q_{i}(z^{(i)} )再除一个Q_{i}(z^{(i)} ),接着再Jensen不等式的反向利用log函数为凹函数,前面加上负号得到凸函数,再利用凸函数的性质,使其收敛到局部最大值。 \sum \log \sum_{z^(i)}p(x^{(i)},z^{(i)};\theta )= \sum \log \sum_{z^(i)}Q_{i}(z^{(i)} )\frac{p(x^{(i)},z^{(i)};\theta )}{Q_{i}{(z^(i))}} \geq \sum \sum_{z^(i)}Q_{i}(z^{(i)} )\log \frac{p(x^{(i)},z^{(i)};\theta )}{Q_{i}{(z^(i))}} 
    2. 为了使等号成立:\frac{p(x^{(i)},z^{(i)};\theta )}{Q_{i}(z^{(i)})} = c,因为f(E(x)) = E(f(x))若想等号成立,f(x) = c即f(x)为常函数时等号成立。
    3. 进一步分析:Q_{i}(z^{(i)})\propto p(x^{(i)},z^{(i)};\theta )      \sum Q_{i}^{z^{(i)}} = 1(因为归一化)  联合概率求和得到边缘分布Q_{i}^{z^{(i)}} = \frac{p(x^{(i)},z^{(i)};\theta ) }{\sum p(x^{(i)},z^{(i)};\theta)}= \frac{p(x^{(i)},z^{(i)};\theta ) }{ p(x^{(i)};\theta)}=p(x^{(i)}|z^{(i)};\theta )
    4. 最终转化为用给定的样本的隐含变量的条件分布求期望。

     

     

    三、EM算法框架

    该步有点简洁,下次会更新该步...

    Repeat until convergence{
        (E-step)For each i,set:
                    Qi(z(i)) := p(z(i)|x(i);theat)
        (M-step) Set:
                    theat := argmax(objectFunction)
    
    }

     

    四、EM算法优缺点

    优点缺点
    聚类对初始化数据敏感(先验给出的初始均值、方差)
    算法计算结果稳定、准确EM算法计算复杂度高,收敛慢,不适用于大规模、高维度数据
    EM算法自收敛,既不需要事先设定类别,也不需要数据间的两两比较合并等操作当所要优化的函数不是凸函数时,EM算法容易给出局部最优解,而不是全局最优解

     

     

    五、EM算法案例

    针对2.2.1节的案例,某商场的100个样本,并引入隐含变量身高,估计男女样本的均值、方差。如下为程序、图像。

    展开全文
  • 最大期望(EM)算法

    千次阅读 2019-04-22 16:42:46
    一、最大期望(EM)算法: EM算法是在依赖于无法观测的隐藏变量的概率模型中,寻找参数最大似然估计或者最大后验估计的算法。 二、最大期望算法的两个步骤: 第一步是计算期望(E),利用概率模型参数的现有估计...

    一、最大期望(EM)算法:

    EM算法是在依赖于无法观测的隐藏变量的概率模型中,寻找参数最大似然估计或者最大后验估计的算法。

    二、最大期望算法的两个步骤:

    第一步是计算期望(E),利用概率模型参数的现有估计值,计算隐藏变量的期望。

    第二步是最大化(M),利用E 步上求得的隐藏变量的期望,对参数模型进行最大似然估计,M 步上找到的参数估计值被用于下一个 E 步计算中,这两个过程不断交替进行。

    三、EM算法流程:

    1.初始化分布参数

    2.重复直到收敛

    四、

    例子: 模拟两个正态分布的均值估计

    由于我们使用的是高斯分布,即p服从高斯分布。在上述M-step中,我们要最大化如下式子:

    这里的θ是我们要估计的均值。

    然后对这个求导:

    代码:

    #模拟两个正态分布的均值估计
    from numpy import *
    import numpy as np
    import random
    import copy
    
    
    SIGMA = 6
    EPS = 0.0001
    #生成方差相同,均值不同的样本
    def generate_data():
    	Miu1 = 20
    	Miu2 = 40
    	N = 1000
    	X = mat(zeros((N,1)))
    	for i in range(N):
    		temp = random.uniform(0,1)
    		if(temp > 0.5):
    			X[i] = temp*SIGMA + Miu1
    		else:
    			X[i] = temp*SIGMA + Miu2
    	return X
    
    #EM算法
    def my_EM(X):
    	k = 2
    	N = len(X)
    	Miu = np.random.rand(k,1)
    	Posterior = mat(zeros((N,2)))
    	dominator = 0
    	numerator = 0
    	#先求后验概率
    	for iter in range(1000):
    		for i in range(N):
    			dominator = 0
    			for j in range(k):
    				dominator = dominator + np.exp(-1.0/(2.0*SIGMA**2) * (X[i] - Miu[j])**2)
    				#print dominator,-1/(2*SIGMA**2) * (X[i] - Miu[j])**2,2*SIGMA**2,(X[i] - Miu[j])**2
    				#return
    			for j in range(k):
    				numerator = np.exp(-1.0/(2.0*SIGMA**2) * (X[i] - Miu[j])**2)
    				Posterior[i,j] = numerator/dominator
    		oldMiu = copy.deepcopy(Miu)
    		#最大化
    		for j in range(k):
    			numerator = 0
    			dominator = 0
    			for i in range(N):
    				numerator = numerator + Posterior[i,j] * X[i]
    				dominator = dominator + Posterior[i,j]
    			Miu[j] = numerator/dominator
    		print (abs(Miu - oldMiu)).sum()
    			#print '\n'
    		if (abs(Miu - oldMiu)).sum() < EPS:
    			print Miu,iter
    			break
    
    
    if __name__ == '__main__':
    	X = generate_data()
    	my_EM(X)

     

    转载自:https://blog.csdn.net/u010866505/article/details/77877345 

     

    展开全文
  • 高斯混合模型(Gaussian Mixture Model)通常简称GMM,是一种业界广泛使用的聚类算法,该方法使用了高斯分布作为参数模型,并使用了期望最大(Expectation Maximization,简称EM)算法进行训练。 实际上在特定约束...
  • 最大期望值EM算法PPT学习教案.pptx
  • 期望最大算法(EM算法

    千次阅读 2018-10-20 12:02:49
    期望最大算法(EM算法)   是一种以迭代的方式来解决一类特殊最大似然 (Maximum Likelihood) 问题的方法,这类问题通常是无法直接求得最优解。   Expectation-Maximization 算法是统计学中用来给带隐含变量的模型...
  • 机器学习之最大期望(EM)算法

    万次阅读 多人点赞 2018-05-10 22:41:09
    最大期望(Expectation Maximum)算法是一种迭代优化算法,其计算方法是每次迭代分为期望(E)步和最大(M)步。我们先看下最大期望算法能够解决什么样的问题。 假如班级里有50个男生和50个女生,且男生站左,女生站右。...
  • em算法代码matlab实现期望最大化 Matlab中的期望最大化(EM)算法 此代码实现了Expectation-Maximization(EM)算法,并在简单的2D数据集上对其进行了测试。 期望最大化(EM)算法是一种迭代方法,用于在统计模型中...
  • 期望值最大算法

    千次阅读 2015-12-12 19:54:36
    在参数估计中常常通过最大似然函数进行估计,由于隐变量的存在,不能直接求解这个最大似然函数,期望值最大算法就是将这个最大似然函数的求解问题转化为求解其下界的最大值的问题,通过一个求隐变量的分布的“期望...
  • 最大期望算法(EM)详解

    万次阅读 多人点赞 2018-07-30 09:15:53
    我们知道最大似然估计的根本目的是根据抽样的到的样本(即数据),反推出最有...这个时候就要依靠最大期望(EM)算法了。 简单的说,EM算法是在依赖于无法观测的隐藏变量的概率模型中,寻找参数最大似然估计或者...
  • EM算法-最大期望算法(使用C++编写)

    热门讨论 2009-02-08 23:09:06
    使用C++编写的最大期望算法(EM),包含一个算法的实现类cEm以及main函数。本人对EM算法不太熟悉,希望大家以批评的眼光来参看这个程序。
  • 本文分析基于量子绝热近似的不同顶点的最大割问题求解. 该算法将无向图的顶点等效为... 由此推测超过13个顶点的完全无向图在用量子绝热算法求解最大割问题时, 可将量子比特耦合强度归一化到0.75左右, 使期望值有效收敛.
  • 下面介绍两种密度聚类算法:DBSCAN算法、密度最大值算法。 DBSCAN算法  它将簇定义为密度相连的点的最大集合,于是能够把具有足够高密度的区域划分为簇,并可在有“噪声”的数据中发现任意形状的聚类。 ...
  • 期望最大化贝努利高斯(BG)近似信息传递(EM-BG-AMP)算法中的BG模型因为具有对称性,在逼近实际信号先验分布时会受到限制;而期望最大化高斯混合近似信息传递(EM-GM-AMP)算法中的GM模型是BG模型的高阶形式,复杂度较高。...
  • 在期望最大算法的求期望步骤中,所求的期望值通过求容积规则获得,用较少的采样点保证了估计精度; 在期望最大算法最大化步骤中,未知量的最优值以解析解形式给出,减小了计算量。仿真结果说明,该算法在飞行器...
  • EM最大期望算法

    千次阅读 2015-01-20 18:43:37
    参考资料:http://blog.csdn.net/zouxy09/article/details/8537620 ... 我的数据挖掘算法代码实现:https://github.com/linyiqun/DataMiningAlgorithm 介绍 em算法是一种迭代
  • EM算法是一种迭代算法,用于含有隐变量(hidden variable)或缺失数据(incomplete-data)的概率模型参数的极大似然估计。...每次迭代分为两步:E步,求期望;M步,求极大。概率模型有时既包含观测变量(observab...
  • EM(期望最大化)聚类算法详解

    千次阅读 2020-09-28 15:33:39
    今天来学习一个新的聚类算法,叫EM聚类,这个算法本质上来说跟K-Means很像,但比K-Means全面更深入的描述一个聚类,因为除了利用均值(质心),还有方差(为了得到椭圆聚类),以及权重(聚类的size)。 为了更好...
  • 最大期望算法 (EM算法

    千次阅读 2018-10-21 16:54:05
    最大期望算法(Exception Maximization Algorithm,后文简称EM算法)是一种启发式的迭代算法,用于实现用样本对含有隐变量的模型的参数做极大似然估计。已知的概率模型内部存在隐含的变量,导致了不能直接用极大...
  • 在统计计算中,最大期望(EM)算法是在概率(probabilistic)模型中寻找...最大期望算法经过两个步骤交替进行计算,第一步是计算期望(E),利用对隐藏变量的现有估计,计算其最大似然估计;第二步是最大化(M),
  • 当然,最大值也可以通过n−1n-1n−1次比较找出来。 这的确就是我们能得到的最好结果吗。对于确定最小值问题,我们可以得到其下界就是O(n)O(n)O(n)次比较。对于任意一个确定最小值的算法,可以把它看成是在各元素之间...
  • 计算机博弈大赛中 期望搜索算法是极大极小算法的一种优化,主要针对“不完备信息”游戏的博弈 预备知识: 广度优先搜索(BFS) 深度优先搜索(DFS) 极大极小算法(MaxMin算法) 介绍 这个其实就是把原来无权重的树编程有...
  • 最大期望算法(Expectation Maximization Algorithm,又译期望最大化算法),是一种迭代算法,用于含有隐变量(latent variable)的概率参数模型的最大似然估计或极大后验概率估计。 极大似然估计只是一种概率论在...
  • 一.概念 最大期望算法,也就是著名的em算法,他起源于一条dog……

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 103,705
精华内容 41,482
关键字:

最大期望值算法

友情链接: miniQQprogram.rar