• EM算法


    EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。EM算法的每次迭代分两步:E步,求期望(Expectation);M步,求极大(Maximization)。

    EM算法

    这里也直接给出书上的例子,让还不了解的读者先上车...哦错了,先感受。不过这里阐述会简单些。

    (三硬币模型)假设有A,B,C三枚硬币,正面出现的概率分别为π,p,q。一次试验为:先抛A,如果出现正面则选择B,否则选择C,然后再抛选出的硬币,记录抛此枚硬币的结果,正面向上为1,反面向上为0。独立重复试验10次,观测结果为:

    1,1,0,1,0,0,1,0,1,1

    只能观测到上面这个结果,不能观测选择的是B还是C。设随机变量y表示观测变量,表示一次试验的观测结果为1或者0,随机变量z是隐变量表示抛A的结果,或者说选择的是B还是C,θ=(π,p,q)是模型参数,于是一次试验中观测结果为y的概率为

       (1)

    右端第一项对应z=1,第二项对应z=0

    假设观测数据为Y=(Y1,Y2,...,Yn),不可观测数据为Z=(Z1,Z2,...Zn),则观测数据的似然函数为

                            (2)

    由于是独立重复试验(n次),则

              (3)

    模型参数θ=(π,p,q)的极大似然估计

                         (4)

    然而上式没有解析解,只能通过迭代的方法求数值解,比如这里的EM算法。

    算法

    选取模型参数θ=(π,p,q)的初值,记作

    θ0=(π0,p0,q0)

    然后通过某种迭代更新参数,直至算法收敛。

    第i次迭代参数的估计值记作

    θi=(πi,pi,qi)

    第i+1次迭代方式如下,

    E步:计算观测数据yj来自硬币B(z=1)的概率

         (5)

    其中,分母为出现yj观测结果的概率(来自硬币B和来自硬币C的概率之和),分子是yj观测结果来自硬币B的概率。

    顺便一提,yj来自硬币C的概率自然就是1-μi+1(yj)

    M步:计算模型参数新估计值

                 (6)

              (7)

        (8)

    其实,A出现正面的概率π就是观测数据来自硬币B的概率,(6)是取了样本平均。(7)式中分母其实等于 nπi+1,此即n次试验中选择硬币B的次数,而分子则是n次试验中选择硬币B并且抛掷B出现正面的次数,从而得到硬币B的正面出现概率。类似的(8)则是计算硬币C出现正面的概率。yj表示第j次试验中的观测结果(为1或者0)。

    于是,我们假设参数初值为

    π0=0.5,p0=0.5,q0=0.5

    按照上述步骤进行迭代计算,直至收敛(每个参数均不再变化,或者每个参数的变化分别低于一个设定的阈值或者||θi+1i||小于一个设定的阈值),这里省去具体过程,得到结果为

    θ=(0.5,0.6,0.6)

    如果初值为

    π0=0.4,p0=0.6,q0=0.7

    迭代结果为

    θ=(0.4064,0.5368,0.6432)

     可见,不同的初值会导致不同的迭代结果

     假设观测数据Y,概率分布为P(Y|θ),其中θ为需要估计的模型参数,则,不完全数据Y的似然函数为P(Y|θ),对数似然函数为logP(Y|θ)。假设Y和隐随机变量Z的联合概率分布为P(Y,Z|θ),那么完全数据的对数似然函数为logP(Y,Z|θ)。EM算法通过迭代求L(θ)=logP(Y|θ)的极大似然估计。

    Q函数

    Q函数为完全数据的对数似然函数logP(Y,Z|θ)关于在给定观测数据Y和当前参数θi下对未观测数据Z的条件概率分布P(Z|Y,θi)的期望,即

         (9)

    上面这个定义可能说的不是很明白,这里稍微解释一下。我们知道Y和θi是已知的,令L(Z)=logP(Y,Z|θ),所以Q函数就是L(Z)在Y和θi下的条件期望

       (10)

    其中,P(Z|Y,θi)为已知Y和θi下的Z的条件概率,P(Y,Z|θ)为观测数据Y和隐数据Z的联合概率分布,根据(2)式,不难知道,

    P(Y,Z|θ)=P(Z|θ)P(Y|Z,θ)                        (11)

    而我们的目标就是logP(Y,Z|θ)(也就是L(Z))的极大似然估计,所以对logP(Y,Z|θ)的条件期望求极大值

                      (12)

    (11)式所对应的θ就是下一次迭代的θ的估计

      (13)

    步骤

    输入:观测变量数据Y,隐变量数据Z,联合分布P(Y,Z|θ),条件分布 P(Z|Y,θ)

    输出:模型参数θ

    1. 选择初始值θ0=(π0,p0,q0)
    2. E步:记θi为第i次迭代参数的估计值,在第i+1次迭代时,计算(10)式
    3. M步:根据(13)式计算第i+1次迭代参数的估计值
    4. 重复步骤2和3,直到收敛

    几点说明

    1. 参数的初值虽然可以任意选择,但不同的初值会影响最终的迭代结果
    2. M步求Q函数的极大值,可能是局部极值(也不难理解,如果是全局极大值,那最终迭代结果就与初值的选择无关了)
    3. 停止迭代的条件一般使用||θi+1i||<ε 或者||Q(θi+1, θi)-Q(θi,θi)||<ε, 其中 ε 是某个阈值

     ref

    统计学习方法,李航

  • 相关阅读:
    [LeetCode] 1268. Search Suggestions System
    [LeetCode] 907. Sum of Subarray Minimums
    [LeetCode] 2034. Stock Price Fluctuation
    [LeetCode] 792. Number of Matching Subsequences
    [LeetCode] 212. Word Search II
    [LeetCode] 828. Count Unique Characters of All Substrings of a Given String
    [LeetCode] 408. Valid Word Abbreviation
    [LeetCode] 1161. Maximum Level Sum of a Binary Tree
    [LeetCode] 1152. Analyze User Website Visit Pattern
    [LeetCode] 636. Exclusive Time of Functions
  • 原文地址:https://www.cnblogs.com/sjjsxl/p/6963328.html
Copyright © 2020-2023  润新知