机器学习 - 期望最大(EM)算法

机器学习 - 期望最大(EM)算法

      • 引述
      • 引例
      • 算法过程
      • 过程推导

  • 引述

    之前我们讲过 最大似然估计 与 最大后验概率估计,这两种方法都是根据已有的数据标签 y 对参数进行估计,适用于监督学习。但是当面对无监督学习时便无从下手,因为我们并不知道样本数据服从哪个类别标签的分布。而 期望最大(Expectation Maximization)法就可针对此种情况进行应用。

    EM 算法是一种迭代算法,用于含有 隐变量 的概率模型参数的极大似然估计,或极大后验概率估计(其中隐变量可视为类别标签)。我们可以将 EM 算法视为含有隐变量的概率模型参数的极大似然估计法。EM 算法的每次迭代由两步组成:E 步,求期望;M 步,求极大。

    稍微具体一点,EM 算法解决两个问题:

    (1)样本属于哪个分布;
    (2)并求出每一个分布的参数。

    下面看一个具体例子。

  • 引例

    问题:

    假设有 3 枚硬币 A、B、C. 这些硬币正面出现的概率分别为 π 、 p 、 q π、p、q πpq.
    进行如下抛硬币的实验,在每一次实验中:

    (1)先抛硬币 A,根据其结果,正面选择硬币 B,反面选择硬币 C;
    (2)而后抛选出的硬币,出现正面记作 1,反面记作 0.

    独立重复试验 n 次(这里,n=10),最终结果为:1, 1, 0, 1, 0, 0, 1, 0, 1, 1

    假设我们只能观测到结果 1 或 0,但无法观测硬币 A 的结果(即无法得知选择 B 或 C),问如何估计 3 硬币正面出现的概率 π 、 p 、 q π、p、q πpq


    解:

    三硬币的模型可写做(一次实验):

    P ( y ∣ θ ) = ∑ z ∈ { B , C } P ( y , z ∣ θ ) = ∑ z ∈ { B , C } P ( z ∣ θ ) P ( y ∣ z , θ ) = π p y ( 1 − p ) 1 − y + ( 1 − π ) q y ( 1 − q ) 1 − y \begin{aligned} P(y|θ) =& \sum_{z∈\{B,C\}}P(y,z|θ)=\sum_{z∈\{B,C\}}P(z|θ)P(y|z,θ)\\ =& πp^y(1-p)^{1-y}+(1-π)q^y(1-q)^{1-y}\\ \end{aligned} P(yθ)==z{B,C}P(y,zθ)=z{B,C}P(zθ)P(yz,θ)πpy(1p)1y+(1π)qy(1q)1y

    其中 y 是观测变量,表示实验结果 1 或 0;z 是隐变量,表示无法观测道德硬币 A 的结果; θ = ( π , p , q ) θ=(π,p,q) θ=(π,p,q) 是模型的参数。

    将观测数据表示为 Y=(y1,y2,…,yn),未观测数据表示为 Z=(z1,z2,…,zn),则观测数据的似然函数为:

    L ( y ; θ ) = ∏ j = 1 n P ( y j ∣ θ ) = ∏ j = 1 n [ π p y ( 1 − p ) 1 − y + ( 1 − π ) q y ( 1 − q ) 1 − y ] L(y;θ)=\prod_{j=1}^{n}P(y_j|θ)=\prod_{j=1}^{n}[πp^y(1-p)^{1-y}+(1-π)q^y(1-q)^{1-y}] L(y;θ)=j=1nP(yjθ)=j=1n[πpy(1p)1y+(1π)qy(1q)1y]

    对数似然函数的极大似然估计为:

    θ ‾ = θ a r g   m a x L ( y ; θ ) \overline θ=\mathop{}_{θ}^{arg~max }L(y;θ) θ=θarg maxL(y;θ)

    此问题是没有解析解的,只有通过迭代的方法求解。EM 方法就是可以用于求解这个问题的一种迭代算法。


    下面给出 EM 算法的 求解过程

    1)选取参数的初值,记作 θ ( 0 ) = ( π ( 0 ) , p ( 0 ) , q ( 0 ) ) θ^{(0)}=(π^{(0)},p^{(0)},q^{(0)}) θ(0)=(π(0),p(0),q(0))

    2)设第 i 次迭代的参数值为 θ ( i ) = ( π ( i ) , p ( i ) , q ( i ) ) θ^{(i)}=(π^{(i)},p^{(i)},q^{(i)}) θ(i)=(π(i),p(i),q(i)),则第 i+1 次的迭代如下:

    • E 步:计算在模型参数 π ( i ) , p ( i ) , q ( i ) π^{(i)},p^{(i)},q^{(i)} π(i),p(i),q(i) 下观测数据 y j y_j yj,来自抛硬币 B 的概率:

      μ j ( i + 1 ) = π ( i ) ( p ( i ) ) y j ( 1 − p ( i ) ) 1 − y j π ( i ) ( p ( i ) ) y j ( 1 − p ( i ) ) 1 − y j + ( 1 − π ) ( i ) ( q ( i ) ) y j ( 1 − q ( i ) ) 1 − y j μ_j^{(i+1)}=\frac{π^{(i)}(p^{(i)})^{y_j}(1-p^{(i)})^{1-y_j}}{π^{(i)}(p^{(i)})^{y_j}(1-p^{(i)})^{1-y_j} + (1-π)^{(i)}(q^{(i)})^{y_j}(1-q^{(i)})^{1-y_j}} μj(i+1)=π(i)(p(i))yj(1p(i))1yj+(1π)(i)(q(i))yj(1q(i))1yjπ(i)(p(i))yj(1p(i))1yj

      (可以这样理解:硬币 B 与 硬币 C 都可以得到观测数据 yj,所以产生 yj 的概率为二者概率的和,要求结果来自硬币 B 的概率,就应用 硬币 B 的概率除以和。)

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

      (1) π ( i + 1 ) = 1 n ∑ j = 1 n μ j ( i + 1 ) π^{(i+1)}=\frac{1}{n}\sum_{j=1}^{n}μ_j^{(i+1)} π(i+1)=n1j=1nμj(i+1)

      (硬币 B 出现的概率等于硬币 A 正面出现的概率 π π π,所以对 10 次实验所得的 μ 求均值(期望)即得 π π π


      (2) p ( i + 1 ) = ∑ j = 1 n μ j ( i + 1 ) y j ∑ j = 1 n μ j ( i + 1 ) p^{(i+1)}=\frac{\sum_{j=1}^{n}μ_j^{(i+1)}y_j}{\sum_{j=1}^{n}μ_j^{(i+1)}} p(i+1)=j=1nμj(i+1)j=1nμj(i+1)yj

      (分母为选择硬币 B 的概率,分子为选择硬币 B 且抛硬币 B 的结果为 正的概率;也可认为分母为选择硬币 B 的次数,分子为选择硬币 B 且抛硬币 B 的结果为正的次数;二者相比可得硬币 B 出现正面的概率 p)


      (3) q ( i + 1 ) = ∑ j = 1 n [ 1 − μ j ( i + 1 ) ] y j ∑ j = 1 n [ 1 − μ j ( i + 1 ) ] q^{(i+1)}=\frac{\sum_{j=1}^{n}[1-μ_j^{(i+1)}]y_j}{\sum_{j=1}^{n}[1-μ_j^{(i+1)}]} q(i+1)=j=1n[1μj(i+1)]j=1n[1μj(i+1)]yj

      (分母为选择硬币 C 的概率,分子为选择硬币 C 且抛硬币 C 的结果为 正的概率;也可认为分母为选择硬币 C 的次数,分子为选择硬币 C 且抛硬币 C 的结果为正的次数;二者相比可得硬币 C 出现正面的概率 q)


    根据观测结果 1, 1, 0, 1, 0, 0, 1, 0, 1, 1 进行代数计算:

    • 初始值 π ( 0 ) = 0.5 , p ( 0 ) = 0.5 , q ( 0 ) = 0.5 π^{(0)}=0.5,p^{(0)}=0.5,q^{(0)}=0.5 π(0)=0.5p(0)=0.5q(0)=0.5

    • 第 1 次 迭代:

      E 步: μ j ( 1 ) = 0.5 μ_j^{(1)}=0.5 μj(1)=0.5

      M 步: π ( 1 ) = 0.5 , p ( 1 ) = 0.6 , q ( 1 ) = 0.6 π^{(1)}=0.5,p^{(1)}=0.6,q^{(1)}=0.6 π(1)=0.5p(1)=0.6q(1)=0.6

    • 第 2 次 迭代:

      E 步: μ j ( 2 ) = 0.5 , j = 1 , 2 , . . . , 10 μ_j^{(2)}=0.5,j=1,2,...,10 μj(2)=0.5j=1,2,...,10

      M 步: π ( 2 ) = 0.5 , p ( 2 ) = 0.6 , q ( 2 ) = 0.6 π^{(2)}=0.5,p^{(2)}=0.6,q^{(2)}=0.6 π(2)=0.5p(2)=0.6q(2)=0.6

    • 结果

      因为 ||θ21||<ξ,其中 ξ 为较小的正数,所以迭代停止,于是得到模型参数 θ 的极大似然估计:

      π ∗ = 0.5 , p ∗ = 0.6 , q ∗ = 0.6 π^*=0.5,p^*=0.6,q^*=0.6 π=0.5p=0.6q=0.6

    • 注意

      当初始值为 π ( 0 ) = 0.4 , p ( 0 ) = 0.6 , q ( 0 ) = 0.7 π^{(0)}=0.4,p^{(0)}=0.6,q^{(0)}=0.7 π(0)=0.4p(0)=0.6q(0)=0.7 时,最终参数极大似然估计为: π ∗ = 0.4064 , p ∗ = 0.5368 , q ∗ = 0.6432 π^*=0.4064,p^*=0.5368,q^*=0.6432 π=0.4064p=0.5368q=0.6432,说明 EM 算法是 初始值敏感 的。

  • 算法过程

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

    输出:模型参数 θ

    • 选择参数的初值 θ(0),开始迭代

    • E 步:记 θ(i) 为第 i 次迭代参数 θ 的估计值,在第 i+1 次迭代的 E 步,计算:
      Q ( θ ∣ θ i ) = E z [ l o g P ( Y , Z ∣ θ ) ∣ Y , θ i ] = ∑ z l o g P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ i ) \begin{aligned} Q(θ|θ^i)=&E_z[log P(Y,Z|θ)|Y,θ^i]\\ =&\sum_{z}logP(Y,Z|θ)P(Z|Y,θ^i) \end{aligned} Q(θθi)==Ez[logP(Y,Zθ)Y,θi]zlogP(Y,Zθ)P(ZY,θi)

      其中, P ( Z ∣ Y , θ ( i ) ) P(Z|Y,θ^{(i)}) P(ZY,θ(i)) 是在给定观测数据 Y 和当前参数估计 θ(i) 下隐变量数据 Z 的条件概率分布。

    • M 步:求使 Q ( θ ∣ θ i ) Q(θ|θ^i) Q(θθi) 极大化的 θ,确定第 i+1 次迭代的参数的估计值 θi+1

      θ i + 1 = θ a r g m a x Q ( θ ∣ θ i ) θ^{i+1}=\mathop{}_{θ}^{arg max}Q(θ|θ^i) θi+1=θargmaxQ(θθi)

    • 重复 E 步与 M 步,直到收敛,停止条件 ∣ ∣ θ 2 − θ 1 ∣ ∣ < ξ 1 , 或 ∣ ∣ Q ( θ ∣ θ i + 1 ) − Q ( θ ∣ θ i ) ∣ ∣ < ξ 2 , 其 中 ξ 1 , ξ 2 为 较 小 的 正 数 ||θ^2-θ^1||<ξ_1,或 ||Q(θ|θ^{i+1})-Q(θ|θ^i)||<ξ_2,其中 ξ_1,ξ_2 为较小的正数 θ2θ1<ξ1Q(θθi+1)Q(θθi)<ξ2ξ1ξ2

    其中 Q ( θ ∣ θ i ) Q(θ|θ^i) Q(θθi) 是 EM 算法的核心,称为 Q 函数。

    • Q 函数定义:对数似然函数 P(Z|Y,θ) 关于在给定观测数据 Y 和当前参数 θ(i) 下对隐变量数据 Z 的条件概率分布 P(Z|Y,θi) 的期望称为 Q 函数,即:

      Q ( θ ∣ θ i ) = E z [ l o g P ( Y , Z ∣ θ ) ∣ Y , θ i ] Q(θ|θ^i)=E_z[log P(Y,Z|θ)|Y,θ^i] Q(θθi)=Ez[logP(Y,Zθ)Y,θi]

  • 过程推导

    对于含有隐变量的概率模型,目标是极大化观测数据 Y 关于参数 θ 的对数似然函数,即极大化:

    L ( θ ) = l o g P ( Y ∣ θ ) = l o g ∑ z P ( Y , Z ∣ θ ) = l o g ⟮ ∑ z P ( Y ∣ Z , θ ) P ( Z ∣ θ ) ⟯ \begin{aligned} L(θ)=&log P(Y|θ)=log\sum_{z}P(Y,Z|θ)\\ =&log\lgroup\sum_{z}P(Y|Z,θ)P(Z|θ)\rgroup\\ \end{aligned} L(θ)==logP(Yθ)=logzP(Y,Zθ)logzP(YZ,θ)P(Zθ)


    要对其进行极大似然估计,其困难点在于包含 未观测数据 以及包含 和的对数

    而 EM 算法是通过迭代逐步近似极大化 L(θ) 的。我们希望后一次的估计值 θ(i+1) 能使 L(θ) 增加,即 L(θ(i+1)) > L(θ(i)),并逐步达到极大值。所以我们可以考虑两次的差值:

    L ( θ i + 1 ) − L ( θ i ) = l o g ⟮ ∑ z P ( Y ∣ Z , θ i + 1 ) P ( Z ∣ θ i + 1 ) ⟯ − l o g ⟮ ∑ z P ( Y ∣ Z , θ i ) P ( Z ∣ θ i ) L(θ^{i+1})-L(θ^{i})=log\lgroup\sum_{z}P(Y|Z,θ^{i+1})P(Z|θ^{i+1})\rgroup-log\lgroup\sum_{z}P(Y|Z,θ^{i})P(Z|θ^{i}) L(θi+1)L(θi)=logzP(YZ,θi+1)P(Zθi+1)logzP(YZ,θi)P(Zθi)


    利用 Jensen 不等式: l o g ∑ j λ j y j ≥ ∑ j λ j l o g y j , 其 中 λ j ≥ 0 , ∑ j λ j = 1 log\sum_{j}λ_jy_j\ge\sum_{j}λ_jlogy_j,其中 λ_j\ge0,\sum_{j}λ_j=1 logjλjyjjλjlogyjλj0jλj=1

    L ( θ i + 1 ) − L ( θ i ) = log ⁡ ∑ z P ( Y , Z ∣ θ i + 1 ) − l o g ∑ z P ( Y , Z ∣ θ i ) = log ⁡ ⟮ ∑ z P ( Y , Z ∣ θ i + 1 ) P ( Y , Z ∣ θ i ) ⟯ = log ⁡ ⟮ ∑ z P ( Z ∣ Y , θ i ) P ( Y , Z ∣ θ i + 1 ) P ( Z ∣ Y , θ i ) P ( Y , Z ∣ θ i ) ⟯ ≥ ∑ z P ( Z ∣ Y , θ i ) log ⁡ P ( Y , Z ∣ θ i + 1 ) P ( Z ∣ Y , θ i ) P ( Y , Z ∣ θ i ) \begin{aligned} L(θ^{i+1})-L(θ^{i})=&\log\sum_{z}P(Y,Z|θ^{i+1})-log\sum_{z}P(Y,Z|θ^i)\\ =&\log\lgroup\sum_{z}\frac{P(Y,Z|θ^{i+1})}{P(Y,Z|θ^i)}\rgroup\\ =&\log\lgroup \sum_{z}P(Z|Y,θ^{i})\frac{P(Y,Z|θ^{i+1})}{P(Z|Y,θ^{i})P(Y,Z|θ^i)}\rgroup\\ \ge&\sum_{z}P(Z|Y,θ^{i}) \log \frac{P(Y,Z|θ^{i+1})}{P(Z|Y,θ^{i})P(Y,Z|θ^i)}\\ \end{aligned} L(θi+1)L(θi)===logzP(Y,Zθi+1)logzP(Y,Zθi)logzP(Y,Zθi)P(Y,Zθi+1)logzP(ZY,θi)P(ZY,θi)P(Y,Zθi)P(Y,Zθi+1)zP(ZY,θi)logP(ZY,θi)P(Y,Zθi)P(Y,Zθi+1)


    J ( θ i + 1 , θ i ) = L ( θ i ) + ∑ z P ( Z ∣ Y , θ ( i ) ) log ⁡ P ( Y , Z ∣ θ i + 1 ) P ( Z ∣ Y , θ ( i ) ) P ( Y , Z ∣ θ i ) J(θ^{i+1},θ^{i})=L(θ^{i})+\sum_{z}P(Z|Y,θ^{(i)}) \log \frac{P(Y,Z|θ^{i+1})}{P(Z|Y,θ^{(i)})P(Y,Z|θ^i)} J(θi+1,θi)=L(θi)+zP(ZY,θ(i))logP(ZY,θ(i))P(Y,Zθi)P(Y,Zθi+1)

    L ( θ i + 1 ) ≥ J ( θ i + 1 , θ i ) L(θ^{i+1})\ge J(θ^{i+1},θ^{i}) L(θi+1)J(θi+1,θi)


    所以此时函数 J ( θ i + 1 , θ i ) J(θ^{i+1},θ^i) J(θi+1,θi) 相当于 L ( θ i + 1 ) L(θ^{i+1}) L(θi+1) 的一个下界,且 L ( θ i ) = J ( θ i , θ i ) L(θ^i) = J(θ^i,θ^i) L(θi)=J(θi,θi),所以,任何可以使 J ( θ i + 1 , θ i ) J(θ^{i+1},θ^i) J(θi+1,θi) 增大的 θ,也可以使 L ( θ ) L(θ) L(θ) 增大。为了使 L ( θ ) L(θ) L(θ) 有尽可能大的增长,选择 θi+1 使 J ( θ i + 1 , θ i ) J(θ^{i+1},θ^i) J(θi+1,θi) 达到,即

    θ i + 1 = θ a r g m a x J ( θ i + 1 , θ i ) θ^{i+1}=\mathop{}_{θ}^{arg max}J(θ^{i+1},θ^i) θi+1=θargmaxJ(θi+1,θi)


    J ( θ i + 1 , θ i ) J(θ^{i+1},θ^i) J(θi+1,θi) 中对于 θi+1 是常数的项省去:

    θ i + 1 = ∑ z P ( Z ∣ Y , θ ( i ) ) P ( Y , Z ∣ θ i + 1 ) = θ a r g m a x Q ( θ i + 1 ∣ θ i ) \begin{aligned} θ^{i+1}=&\sum_{z}P(Z|Y,θ^{(i)})P(Y,Z|θ^{i+1})\\ =&\mathop{}_{θ}^{arg max}Q(θ^{i+1}|θ^i) \end{aligned} θi+1==zP(ZY,θ(i))P(Y,Zθi+1)θargmaxQ(θi+1θi)

    也就是说,极大化 Q 函数相当于极大化两次迭代的对数似然函数 L ( θ i + 1 ) − L ( θ i ) L(θ^{i+1})-L(θ^{i}) L(θi+1)L(θi) 的差值,也就相当于在逐步近似最大化 L ( θ ) L(θ) L(θ).

    且等价于 EM 算法中的一次迭代。

    • 一种形式化地理解

      EM 的算法的过程,相当于:

      先固定 θold,调整 Q 函数使下界上升至 L ( θ ) L(θ) L(θ) 的值;然后固定 Q 函数,调整 θ 使下届达到最大值,此时为新的 θ;而后重复上面两步,直至收敛。

    • 混合模型

      混合模型是由多个参数不同的相似分布函数(称为分模型)组成(相当于多个盒子),且每个分模型对应一个概率(相当于各盒子被选择的概率)。首先根据概率选出分模型(选出隐变量),而后依据分模型自身的概率分布生成观测,进行多次以生成观测序列。

    • 极大-极大算法(广义EM算法,GEM)

      由 Q 函数以及隐变量 z 的分布的熵构成 F 函数,首先固定 θ 以极大化 F 函数,而后固定隐变量 z 的分布以极大化 F 函数。

你可能感兴趣的:(机器学习,(ML),机器学习,期望最大算法,EM,算法,极大似然估计,Q,函数)