• EM算法[转]


    最大期望算法:EM算法。

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

    最大期望算法经过两个步骤交替进行计算:

    第一步是计算期望(E),利用对隐藏变量的现有估计,计算其最大似然估计值;

    第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值。

    M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。

    总体来说,EM算法流程如下:

    1、初始化分布参数

    2、重复直到收敛:

             E步:估未知参数的期望值,给出当前的参数估计。

             M步:重新估计参数分布,以使得数据的似然性最大,给出未知变量的期望估计。
    EM算法就是这样,假设我们估计知道A和B两个参数,在开始状态下二者都是未知的,并且知道了A的信息就可以得到B的信息,反过来知道了B也就得到了A。可以考虑首先赋予A某种初值,以此得到B的估计值,然后从B的当前值出发,重新估计A的取值,这个过程一直持续到收敛为止。

    EM算法是一种求参数极大似然估计的方法,它可以从非完整数据集中对参数进行MLE估计,是一种非常简单实用的学习算法。

    假定集合Z=(X,Y)由观测数据X和为观测数据Y组成,X和Z=(X,Y)分别称为不完整数据和完整数据。假定Z的联合概率密度被参数化地定义为P(X,Y|Θ),其中Θ表示要被估计的参数。Θ的最大似然估计是求不完整数据的对数似然函数L(X,Θ)的最大值而得到的:

    L(Θ;X)=log p(X|Θ)=∫ log p(X,Y|Θ)dY;

    EM算法包括两个步骤:由E步和M步组成,它是通过迭代地最大化完整数据的对数似然函数Lc(X;Θ)的期望来最大化不完整数据的对数似然函数,其中:Lc(X;Θ)=log p(X,Y|Θ)

    假设在算法第t次迭代后Θ获得的估计记为Θ(t),则在(t+1)次迭代时,

         E步:计算完整数据的对数似然函数的期望,记为Q(Θ|Θ(t))=E{Lc(Θ;Z)|X;Θ(t) };

         M步:通过最大化Q(Θ |Θ(t) ) 来获得新的Θ 。

    通过交替使用这两个步骤,EM算法逐步改进模型的参数,使参数和训练样本的似然概率逐渐增大,最后终止于一个极大点。直观地理解EM算法,它也可被看作为一个逐次逼近算法:

    实现并不知道模型的参数,可以随机的选择一套参数或者事先粗略地给定某个初始参数λ0 ,确定出对应于这组参数的最可能的状态,计算每个训练样本的可能结果的概率,在当前的状态下再由样本对参数修正,重新估计参数λ,并在新的参数下重新确定模型的状态,这样,通过多次的迭代,循环直至某个收敛条件满足为止,就可以使得模型的参数逐渐逼近真实参数。

    EM算法的主要目的是提供一个简单的迭代算法计算后验密度函数,它的最大优点是简单和稳定,但容易陷入局部最优

    EM算法(expectation-maximization algorithm)

    1、简介

    EM算法的核心思想是:根据已有的数据,借助隐藏变量,通过期望值之间的迭代,估计似然函数。

    2、混合高斯模型与EM算法

        2.1、二分量混合高斯的EM算法

        假设有数据Y,现在用两个高斯分布来对密度建模,参数为。则Y的密度为:

                     (1)

    参数为:                               (2)

    基于N个训练数据的对数似然是:

                   (3)     

    由于需要求对数似然函数项的和,直接极大化似然函数很难。我们引入取值为0或1的潜变量,如果取自模型2,否则取自模型1。则对数似然函数可以写为:

    (4)

    那么的极大似然估计将是的那些数据的样本的均值和方差,的极大似然估计将是的那些数据的样本的均值和方差。

    由于诸的值是实际上是未知的,所以用迭代的方式处理,用下式的期望代替(4)式中的每个,即:(5)

    (5)式也称为模型2关于观测i的响应度。

    二分量高斯的EM算法

    1. 初始化参数,其中可以随机选择两个取样本的方差:。混合比例0.5
    2. 期望步:计算响应度:

    表征数据属于的概率。

    3. 极大化步:计算加权均值和方差:

    和混合概率,表示数据属于的概率总和。

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

    2.2 多分量混合高斯的EM算法

    多分量高斯的EM算法

    1. 初始化参数:均值,协方差矩阵和混合比例
    2. 期望步:计算响应度:

    其中k = 1,2…N.

    3. 极大化步:计算加权均值和协方差:

    其中:

    4. 计算log似然:

    检查参数和log似然是否已经收敛,如果没有收敛,重复步骤2.

     3、通用EM算法

    假设一个完整的样本集D,其中的样本是,都服从某个特定的分布,假定其中的一部分数据丢失了。完整的数据和丢失的数据分布标书为:,并且。定义函数:   (6)

    (6)式的左边是一个关于θ的函数,而θi假设已经取固定值;右边表示关于丢失的特征求对数似然函数的期望,其中假设θi是描述整个分布的参数。则通用EM算法可写为:

    4. EM算法总结

    (1)EM会收敛到局部极值,但不保证收敛到全局最优

    (2)对初值很敏感:通常需要一个好的、快速的初始化过程

    如矩方法得到的结果

    在GMM中,用K-means聚类

    (3)适合的情况

    缺失数据不太多时

    数据维数不太高时(数据维数太高的话,E步的计算很费时)

  • 相关阅读:
    MySQL server has gone away
    Python读取excel拼接为sql文件
    Android10_原理机制系列_事件传递机制
    Android10_原理机制系列_Activity窗口添加到WMS过程
    Android10_原理机制系列_Window介绍及WMS的启动过程
    UNI-APP使用云开发跨全端开发实战讲解
    借助小程序云开发创建微信卡券
    今天,你成为这1/1000000了吗
    如何在云托管中操作云开发数据库?
    用云开发整一个专属网盘,原来如此简单!
  • 原文地址:https://www.cnblogs.com/rong86/p/3745756.html
Copyright © 2020-2023  润新知