EM算法

参考资料:李航《统计学习方法2》;从最大似然到EM算法浅解
阅读本文需要有基本机器学习知识

背景

  • 问题:具有隐变量的MLE(极大似然估计)
  • 难点:隐变量的出现,导致普通求极值点的方法可能难以求解;如下,可以看到出现和或者积分的log以及未观测到的数据Z
    L ( θ ) = l o g P ( Y ∣ θ ) = l o g ∑ Z P ( Y , Z ∣ θ ) L(\theta) = logP(Y|\theta) =log\sum_ZP(Y,Z|\theta) L(θ)=logP(Yθ)=logZP(Y,Zθ)
  • 解决方法:既然解析解不好求,那么就考虑用迭代的方式求解( θ \theta θ),如果有个迭代的方向(如爬梯子),能让我们逐步找到更合适的解( θ i \theta_i θi-> θ i + 1 \theta_{i+1} θi+1可使 L ( θ ) L(\theta) L(θ)增大),那就持续迭代即可,直到满足终止条件停止(如 L ( θ ) L(\theta) L(θ)增益很少或者);

推导

  • 以下为公式推导(既然是寻找迭代递增的方向,那就通过做差来列公式;以离散形式举例)
    L ( θ ) − L ( θ i ) = l o g ∑ Z P ( Y , Z ∣ θ ) − l o g P ( Y ∣ θ i ) = l o g ∑ Z P ( Z ∣ Y , θ i ) P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ i ) − l o g P ( Y ∣ θ i ) ≥ ∑ Z P ( Z ∣ Y , θ i ) l o g P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ i ) − l o g P ( Y ∣ θ i ) ( 根 据 j e n s o n 不 等 式 ) = ∑ Z P ( Z ∣ Y , θ i ) l o g P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ i ) ∗ P ( Y ∣ θ i ) = B ′ ( θ , θ i ) ( 书 上 定 义 B ( θ , θ i ) = B ′ ( θ , θ i ) + L ( θ i ) , 显 然 B 为 L ( θ ) 的 下 界 ; 这 里 以 B ′ 推 导 ) − − − − − − − − − − − − − − − − − − − − − − 分 析 : 当 θ = θ i 时 , B ′ ( θ , θ i ) = 0 , 如 果 能 针 对 该 函 数 寻 找 关 于 θ 的 极 大 值 点 θ i + 1 , 可 使 B ′ ≥ 0 = > L ( θ i + 1 ) − L ( θ i ) ≥ 0 = > L ( θ i + 1 ) ≥ L ( θ i ) 由 此 , 令 − − − − − − − − − − − − − − − − − − − − − − θ i + 1 = arg max ⁡ θ B ′ ( θ , θ i ) = arg max ⁡ θ ∑ Z P ( Z ∣ Y , θ i ) l o g P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ i ) ∗ P ( Y ∣ θ i ) = arg max ⁡ θ ∑ Z P ( Z ∣ Y , θ i ) l o g P ( Y , Z ∣ θ ) ( 去 掉 与 θ 无 关 的 项 ) = arg max ⁡ θ Q ( θ , θ i ) \begin{aligned} &L(\theta) - L(\theta_{i}) \\ &= log\sum_ZP(Y,Z|\theta) - logP(Y|\theta_i) \\ &= log\sum_ZP(Z|Y,\theta_i) \frac {P(Y,Z|\theta)} {P(Z|Y,\theta_i)} - logP(Y|\theta_i) \\ &\ge \sum_ZP(Z|Y,\theta_i) log \frac{P(Y,Z|\theta)} {P(Z|Y,\theta_i)} - logP(Y|\theta_i)(根据jenson不等式) \\ &= \sum_ZP(Z|Y,\theta_i)log\frac{P(Y,Z|\theta)} {P(Z|Y,\theta_i)*P(Y|\theta_i)} \\ &= B'(\theta,\theta_i) \\ &(书上定义\textcolor{red}{B(\theta,\theta_i) = B'(\theta,\theta_i) + L(\theta_{i})},显然B为L(\theta)的下界;这里以B'推导) \\ &---------------------- \\ &分析:当\theta=\theta_i时,B'(\theta,\theta_i) = 0,如果能针对该函数寻找关于\theta的极大值点\theta_{i+1},可使B'\ge0 \\ &=> L(\theta_{i+1}) - L(\theta_{i}) \ge 0\\ &=> L(\theta_{i+1}) \ge L(\theta_{i}) \\ &由此,令 \\ &---------------------- \\ &\theta_{i+1} \\ &=\argmax_{\theta} B'(\theta, \theta_i) \\ &=\argmax_{\theta}\sum_ZP(Z|Y,\theta_i)log\frac{P(Y,Z|\theta)} {P(Z|Y,\theta_i)*P(Y|\theta_i)} \\ &=\argmax_{\theta}\textcolor{blue}{\sum_ZP(Z|Y,\theta_i)logP(Y,Z|\theta)}(去掉与\theta无关的项) \\ &=\argmax_{\theta}\textcolor{blue}{ Q(\theta, \theta_i) } \\ \end{aligned} L(θ)L(θi)=logZP(Y,Zθ)logP(Yθi)=logZP(ZY,θi)P(ZY,θi)P(Y,Zθ)logP(Yθi)ZP(ZY,θi)logP(ZY,θi)P(Y,Zθ)logP(Yθi)jenson=ZP(ZY,θi)logP(ZY,θi)P(Yθi)P(Y,Zθ)=B(θ,θi)B(θ,θi)=B(θ,θi)+L(θi)BL(θ)Bθ=θiB(θ,θi)=0θθi+1使B0=>L(θi+1)L(θi)0=>L(θi+1)L(θi)θi+1=θargmaxB(θ,θi)=θargmaxZP(ZY,θi)logP(ZY,θi)P(Yθi)P(Y,Zθ)=θargmaxZP(ZY,θi)logP(Y,Zθ)θ=θargmaxQ(θ,θi)
  • Q 函 数 ( 蓝 色 式 子 ) 的 意 义 : 完 全 数 据 ( 即 P ( Y , Z ∣ θ ) ) 的 对 数 似 然 关 于 特 定 时 刻 ( θ = θ i ) 隐 变 量 后 验 分 布 ( 即 P ( Z ∣ Y , θ i ) ) 的 期 望 ; \textcolor{red}{Q函数(蓝色式子)的意义:完全数据(即P(Y,Z|\theta))的对数似然关于特定时刻(\theta=\theta_i)隐变量后验分布(即P(Z|Y,\theta_i))的期望;} Q(P(Y,Zθ))(θ=θi)(P(ZY,θi))
  • 得到Q函数及计算 arg max ⁡ θ \argmax_{\theta} θargmax为EM算法里完整的一次参数迭代,通过如此反复迭代(对下界的不断提升)逼近MLE;
  • 迭代终止条件: θ i + 1 − θ i 足 够 小 , 或 者 Q 提 升 很 少 \theta_{i+1}-\theta_i足够小,或者Q提升很少 θi+1θiQ
  • 直观解释:图中B函数为上述红色式子对应的 B ( θ , θ i ) B(\theta,\theta_i) B(θ,θi)(图来自李书)EM算法_第1张图片
  • 算法其他说明:
  • 另一种推导方式(可能比上一种推导方式绕一点)
    • 直接从 L ( θ ) L(\theta) L(θ) 入手
      L ( θ ) = l o g ∑ Z P ( Y , Z ∣ θ ) = l o g ∑ Z Q ( Z ∣ Y , θ ) P ( Y , Z ∣ θ ) Q ( Z ∣ Y , θ ) ≥ ∑ Z Q ( Z ∣ Y , θ ) ∗ l o g P ( Y , Z ∣ θ ) Q ( Z ∣ Y , θ ) ( j e n s e n 不 等 式 ) = B ′ ( θ ) − − − − − − − − − − − − − − − − − − − − 分 析 1 : B ′ ( θ ) 称 为 L ( θ ) 的 下 界 ; 上 述 不 等 式 等 号 要 成 立 , 要 求 P ( Y , Z ∣ θ ) Q ( Z ∣ Y , θ ) = C ( C 为 一 个 常 数 ) = > P ( Y , Z ∣ θ ) = Q ( Z ∣ Y , θ ) ∗ C = > ∫ P ( Y , Z ∣ θ ) d Z = P ( Y ∣ θ ) = ∫ Q ( Z ∣ Y , θ ) ∗ C d Z = C = > Q ( Z ∣ Y , θ ) = P ( Y , Z ∣ θ ) / C = P ( Y , Z ∣ θ ) / P ( Y ∣ θ ) = P ( Z ∣ Y , θ ) 可 知 , 对 ∀ θ , Q ( Z ∣ Y , θ ) = P ( Z ∣ Y , θ ) 时 , B ′ ( θ ) = L ( θ ) 即 下 界 等 于 上 界 ; − − − − − − − − − − − − − − − − − − − − 分 析 2 : 上 述 Q 的 形 式 为 Q ( Z ∣ Y , θ ) , 只 是 为 了 和 第 一 种 推 导 方 法 保 持 一 致 ; 但 其 实 Q 的 形 式 可 以 是 任 意 关 于 Z ( 隐 变 量 ) 的 分 布 , 可 能 与 θ 无 关 ; 理 解 这 一 点 有 助 于 理 解 为 什 么 可 以 利 用 迭 代 逼 近 M L E 的 解 ; 所 以 更 一 般 的 , 我 们 把 Q 的 形 式 写 成 Q ( Z ) ; 以 下 开 始 说 明 如 何 迭 代 ; − − − − − − − − − − − − − − − − − − − − 假 设 t 时 刻 , θ = θ t , 则 B ′ ( θ ) = B ′ ( θ t ) = ∑ Z Q ( Z ) ∗ l o g P ( Y , Z ∣ θ t ) Q ( Z ) ≤ L ( θ t ) 当 且 仅 当 Q ( Z ) = P ( Z ∣ Y , θ t ) 时 , B ′ ( θ t ) = L ( θ t ) 令 Q t ( Z ) = P ( Z ∣ Y , θ t ) ∗ 之 所 以 引 入 Q t ( Z ) , 是 为 了 提 醒 读 者 应 将 P ( Z ∣ Y , θ t ) 视 为 只 关 于 Z 的 函 数 , ∗ 即 视 θ t 为 常 数 , P ( Z ∣ Y , θ t ) 只 是 Q ( Z ) 丰 富 形 式 中 的 一 种 ; 令 B ′ ( θ t , Q t ( Z ) ) = L ( θ t ) = > B ′ ( θ t , Q t ( Z ) ) = ∑ Z Q t ( Z ) ∗ l o g P ( Y , Z ∣ θ t ) Q t ( Z ) ( 1 ) 式 ( 1 ) 的 工 作 是 将 下 界 提 升 到 当 前 参 数 点 ( θ t ) 的 上 界 , 因 有 E x p e c t a t i o n 形 式 , 故 称 E 步 将 B ′ ( θ t , Q t ( Z ) ) 视 为 关 于 θ t 的 函 数 ( t 不 重 要 , 即 也 可 视 为 关 于 θ 的 函 数 ) , 则 存 在 θ t + 1 = > θ t + 1 = arg max ⁡ θ t B ′ ( θ t , Q t ( Z ) ) ( 2 ) 式 ( 2 ) 的 工 作 是 将 当 前 参 数 点 ( θ t ) 已 最 优 的 下 界 通 过 寻 找 新 的 参 数 点 ( θ t + 1 ) 进 一 步 提 升 , 因 有 M a x 故 称 M 步 ∗ 再 次 提 醒 Q t ( Z ) = P ( Z ∣ Y , θ t ) 中 的 θ t 需 当 做 常 数 对 待 , 不 参 与 上 面 的 a r g m a x ; = > L ( θ t ) = B ′ ( θ t , Q t ( Z ) ) ( 其 中 Q t ( Z ) = P ( Z ∣ Y , θ t ) ) ≤ ∑ Z Q t ( Z ) ∗ l o g P ( Y , Z ∣ θ t + 1 ) Q t ( Z ) = B ′ ( θ t + 1 , Q t ( Z ) ) ∗ ∗ 迭 代 ∗ ∗ : 如 上 , 通 过 θ t = > θ t + 1 , 我 们 使 下 界 B ′ ( θ t ) 在 最 优 的 点 B ′ ( θ t , Q t ( Z ) ) = L ( θ t ) 上 进 一 步 提 升 了 但 是 B ′ ( θ t + 1 , Q t ( Z ) ) ≤ ∑ Z Q t + 1 ( Z ) ∗ l o g P ( Y , Z ∣ θ t + 1 ) Q t + 1 ( Z ) ( 其 中 Q t + 1 ( Z ) = P ( Z ∣ Y , θ t + 1 ) ) = B ′ ( θ t + 1 , Q t + 1 ( Z ) ) = L ( θ t + 1 ) 即 θ t = > θ t + 1 虽 然 促 使 下 界 超 过 原 来 参 数 点 θ t 对 应 的 上 界 L ( θ t ) , 但 是 遇 到 了 新 的 参 数 点 θ t + 1 对 应 的 上 界 L ( θ t + 1 ) ∗ ∗ 迭 代 ∗ ∗ : 接 下 来 , 重 复 式 子 ( 1 ) 的 工 作 , 如 此 反 复 迭 代 寻 找 最 优 解 \begin{aligned} &L(\theta) \\ &= log\sum_ZP(Y,Z|\theta) \\ &= log\sum_ZQ(Z|Y,\theta) \frac {P(Y,Z|\theta)}{Q(Z|Y,\theta)} \\ &\ge \sum_ZQ(Z|Y,\theta)*log \frac {P(Y,Z|\theta)}{Q(Z|Y,\theta)} (jensen不等式)\\ &= B'(\theta) \\ & -------------------- \\ &分析1:\\ &B'(\theta)称为L(\theta) 的下界;\\ &上述不等式等号要成立,要求 \\ &\frac {P(Y,Z|\theta)}{Q(Z|Y,\theta)}=C(C为一个常数) \\ &=> P(Y,Z|\theta) = Q(Z|Y,\theta) * C \\ &=> \int P(Y,Z|\theta)dZ = P(Y|\theta) = \int Q(Z|Y,\theta) * CdZ = C \\ &=> Q(Z|Y,\theta) = P(Y,Z|\theta) / C = P(Y,Z|\theta) / P(Y|\theta) = P(Z|Y,\theta) \\ &可知,对\forall \theta,Q(Z|Y,\theta)=P(Z|Y,\theta)时,\\ & B'(\theta)=L(\theta) \\ & 即下界等于上界; \\ &-------------------- \\ & 分析2: \\ & 上述Q的形式为Q(Z|Y,\theta),只是为了和第一种推导方法保持一致;\\ & \textcolor{red}{但其实Q的形式可以是任意关于Z(隐变量)的分布,可能与\theta无关;} \\ & \textcolor{red}{理解这一点有助于理解为什么可以利用迭代逼近MLE的解;}\\ & 所以更一般的,我们把Q的形式写成Q(Z);\\ & 以下开始说明如何迭代;\\ & -------------------- \\ & 假设t时刻,\theta=\theta_t,则 \\ & B'(\theta) = B'(\theta_t) \\ & = \sum_ZQ(Z)*log \frac {P(Y,Z|\theta_t)}{Q(Z)}\\ & \le L(\theta_t)\\ & 当且仅当Q(Z)=P(Z|Y,\theta_t)时,B'(\theta_t)=L(\theta_t)\\ & 令\textcolor{blue}{Q_t(Z)=P(Z|Y,\theta_t)} \\ & *之所以引入Q_t(Z),是为了提醒读者应将P(Z|Y,\theta_t)视为只关于Z的函数,\\ & *即视\theta_t为常数,P(Z|Y,\theta_t)只是Q(Z)丰富形式中的一种; \\ & 令B'(\theta_t,Q_t(Z))=L(\theta_t)\\ & => B'(\theta_t,Q_t(Z))\\ & =\textcolor{blue}{ \sum_ZQ_t(Z)*log \frac {P(Y,Z|\theta_t)}{Q_t(Z)}} (1)\\ & \textcolor{red}{式(1)的工作是将下界提升到当前参数点(\theta_t)的上界,因有Expectation形式,故称E步} \\ & 将B'(\theta_t,Q_t(Z))视为关于\theta_t的函数(t不重要,即也可视为关于\theta的函数),\\ & 则存在\theta_{t+1} \\ & => \textcolor{blue}{\theta_{t+1} = \argmax_{\theta_t} B'(\theta_t,Q_t(Z))} (2)\\ & \textcolor{red}{式(2)的工作是将当前参数点(\theta_t)已最优的下界通过寻找新的参数点(\theta_{t+1})进一步提升,因有Max故称M步} \\ & * 再次提醒Q_t(Z)=P(Z|Y,\theta_t)中的\theta_t需当做常数对待,不参与上面的argmax; \\ & => L(\theta_{t}) \\ & =B'(\theta_{t},Q_t(Z)) (其中Q_t(Z)=P(Z|Y,\theta_{t}))\\ & \le \sum_ZQ_t(Z)*log \frac {P(Y,Z|\theta_{t+1})}{Q_t(Z)} \\ & = B'(\theta_{t+1},Q_t(Z)) \\ & \textcolor{red}{**迭代**:如上,通过\theta_t => \theta_{t+1},我们使下界B'(\theta_t)在最优的点B'(\theta_{t},Q_t(Z))=L(\theta_t)上进一步提升了} \\ & 但是 \\ & B'(\theta_{t+1},Q_t(Z)) \\ & \le \sum_ZQ_{t+1}(Z)*log \frac {P(Y,Z|\theta_{t+1})}{Q_{t+1}(Z)} (其中Q_{t+1}(Z)=P(Z|Y,\theta_{t+1}))\\ & = B'(\theta_{t+1},Q_{t+1}(Z)) \\ & = L(\theta_{t+1}) \\ & \textcolor{red}{即\theta_t => \theta_{t+1}虽然促使下界超过原来参数点\theta_t对应的上界L(\theta_{t}),但是遇到了新的参数点\theta_{t+1}对应的上界L(\theta_{t+1})} \\ & \textcolor{red}{**迭代**:接下来,重复式子(1)的工作,如此反复迭代寻找最优解}\\ \end{aligned} L(θ)=logZP(Y,Zθ)=logZQ(ZY,θ)Q(ZY,θ)P(Y,Zθ)ZQ(ZY,θ)logQ(ZY,θ)P(Y,Zθ)jensen=B(θ)1B(θ)L(θ)Q(ZY,θ)P(Y,Zθ)=CC=>P(Y,Zθ)=Q(ZY,θ)C=>P(Y,Zθ)dZ=P(Yθ)=Q(ZY,θ)CdZ=C=>Q(ZY,θ)=P(Y,Zθ)/C=P(Y,Zθ)/P(Yθ)=P(ZY,θ)θQ(ZY,θ)=P(ZY,θ)B(θ)=L(θ)2QQ(ZY,θ)QZθMLEQQ(Z)tθ=θtB(θ)=B(θt)=ZQ(Z)logQ(Z)P(Y,Zθt)L(θt)Q(Z)=P(ZY,θt)B(θt)=L(θt)Qt(Z)=P(ZY,θt)Qt(Z)P(ZY,θt)ZθtP(ZY,θt)Q(Z)B(θt,Qt(Z))=L(θt)=>B(θt,Qt(Z))=ZQt(Z)logQt(Z)P(Y,Zθt)1(1)θtExpectationEB(θt,Qt(Z))θttθθt+1=>θt+1=θtargmaxB(θt,Qt(Z))2(2)θtθt+1MaxMQt(Z)=P(ZY,θt)θtargmax=>L(θt)=B(θt,Qt(Z))Qt(Z)=P(ZY,θt)ZQt(Z)logQt(Z)P(Y,Zθt+1)=B(θt+1,Qt(Z))θt=>θt+1使B(θt)B(θt,Qt(Z))=L(θt)B(θt+1,Qt(Z))ZQt+1(Z)logQt+1(Z)P(Y,Zθt+1)Qt+1(Z)=P(ZY,θt+1)=B(θt+1,Qt+1(Z))=L(θt+1)θt=>θt+1使θtL(θt)θt+1L(θt+1)1
    • 上述(1)式即为E步,(2)式为M步
    • 直观解释EM算法_第2张图片

举例和实现

  • 高斯混合模型:完整推导过程较繁琐,可参考《统计学习方法2》CH9-9.3
  • 三硬币模型:推导思想类似高斯混合模型,但是简单一点
    • 题目:EM算法_第3张图片
    • 解析:
      隐 变 量 为 A 抛 掷 的 结 果 , 记 为 γ j k ∈ [ 0 , 1 ] , 其 中 j 、 k 为 整 数 且 j ∈ [ 0 , n − 1 ] , k ∈ [ 0 , 1 ] γ j k 表 示 第 j 条 观 察 数 据 来 自 第 k 个 硬 币 ( k = 1 表 示 B 对 应 A 的 正 面 , k = 0 表 示 C 对 应 A 反 面 ) ; 记 参 数 ( π , p , q ) = θ 1 ◯ E 步 : 明 确 Q ( Y , θ i , θ ) 的 具 体 形 式 Q ( Y , θ i , θ ) = ∑ γ P ( γ ∣ Y , θ i ) ∗ l o g P ( Y , γ ∣ θ ) = E P ( γ ∣ Y , θ i ) [ l o g P ( Y , γ ∣ θ ) ] l o g P ( Y , γ ∣ θ ) = l o g ∏ j n P ( y j , r j 0 , r j 1 ∣ θ ) = ∑ j n l o g [ P ( y j , r j 0 , r j 1 ∣ θ ) ] = ∑ j n l o g [ P ( y j ∣ γ j 0 , γ j 1 , θ ) ∗ P ( γ j 0 , γ j 1 ∣ θ ) ] = ∑ j n l o g { [ q y j ( 1 − q ) 1 − y j ( 1 − π ) ] γ j 0 ∗ [ p y j ( 1 − p ) 1 − y j π ] γ j 1 ] } = ∑ j n { γ j 0 l o g A + γ j 1 l o g B } ( ∗ ) = ∑ j n [ y j γ j 0 l o g q + ( 1 − y j ) γ j 0 l o g ( 1 − q ) + γ j 0 l o g ( 1 − π ) + y j γ j 1 l o g p + ( 1 − y j ) γ j 1 l o g ( 1 − p ) + γ j 1 l o g π ] ( ∗ ∗ ) 注 : ( ∗ ) 式 , A = q y j ( 1 − q ) 1 − y j ( 1 − π ) , B = p y j ( 1 − p ) 1 − y j π Q ( Y , θ i , θ ) = E P ( γ ∣ Y , θ i ) [ l o g P ( Y , γ ∣ θ ) ] = ∑ j n { E P ( γ ∣ Y , θ i ) ( γ j 0 ) ∗ l o g A + E P ( γ ∣ Y , θ i ) ( γ j 1 ) ∗ l o g B } ( 1 ) ( 根 据 ∗ 式 可 得 ) 而 E P ( γ ∣ Y , θ i ) ( γ j 1 ) = P ( γ j 1 = 1 ∣ y j , θ i ) ( 根 据 i i d 性 质 , 只 有 该 项 与 γ j 1 有 关 ) = P ( γ j 1 = 1 , y j ∣ θ i ) P ( γ j 1 = 1 , y j ∣ θ i ) + P ( γ j 0 = 1 , y j ∣ θ i ) = P ( y j ∣ γ j 1 = 1 , θ i ) ∗ P ( γ j 1 = 1 ∣ θ i ) P ( y j ∣ γ j 1 = 1 , θ i ) ∗ P ( γ j 1 = 1 ∣ θ i ) + P ( y j ∣ γ j 0 = 1 , θ i ) ∗ P ( γ j 0 = 1 ∣ θ i ) = p i y j ( 1 − p i ) 1 − y j ∗ π i p i y j ( 1 − p i ) 1 − y j ∗ π i + q i y j ( 1 − q i ) 1 − y j ∗ ( 1 − π i ) ( 2 ) 同 样 E P ( γ ∣ Y , θ i ) ( γ j 0 ) = q i y j ( 1 − q i ) 1 − y j ∗ ( 1 − π i ) p i y j ( 1 − p i ) 1 − y j ∗ π i + q i y j ( 1 − q i ) 1 − y j ∗ ( 1 − π i ) ( 3 ) 将 上 述 ( 2 ) 式 ( 3 ) 式 带 入 ( 1 ) 式 , 即 可 得 Q ( Y , θ i , θ ) 的 具 体 形 式 2 ◯ M 步 : 对 上 述 Q ( Y , θ i , θ ) 的 具 体 形 式 求 θ ( 或 具 体 各 参 数 a r g m a x ) 需 要 求 极 大 值 的 参 数 θ 包 括 ( π , p , q ) , 可 通 过 求 各 参 数 的 导 数 求 极 大 值 ; 对 π , 令 ∂ Q ( Y , θ i , θ ) ∂ π = 0 = > ∂ ∑ j n [ E γ j 0 ∗ l o g ( 1 − π ) + E γ j 1 ∗ l o g π ] ∂ π ( 利 用 ∗ ∗ 式 并 取 与 π 有 关 的 项 ) = ∑ j n ( E γ j 0 ∗ 1 π − 1 + E γ j 1 ∗ 1 π ) = 0 = > π i + 1 = 1 n ∑ j = 1 n E P ( γ ∣ Y , θ i ) ( γ j 1 ) ( 注 意 这 里 的 E P 即 ( 2 ) 式 , 已 知 ) 同 理 , 对 p , q , 令 { ∂ Q ( Y , θ i , θ ) ∂ p = 0 ∂ Q ( Y , θ i , θ ) ∂ p = 0 = > { p i + 1 = ∑ j n E P ( γ ∣ Y , θ i ) ( γ j 1 ) ∗ y j ∑ j n E P ( γ ∣ Y , θ i ) ( γ j 1 ) q i + 1 = ∑ j n [ 1 − E P ( γ ∣ Y , θ i ) ( γ j 1 ) ] ∗ y j ∑ j n [ 1 − E P ( γ ∣ Y , θ i ) ( γ j 1 ) ] 如 此 , 完 成 了 一 次 参 数 的 迭 代 , 后 续 重 复 迭 代 至 收 敛 即 可 \begin{aligned} & 隐变量为A抛掷的结果,记为\gamma_{jk} \in [0,1],其中j、k为整数且j\in[0,n-1],k\in[0, 1]\\ & \gamma_{jk}表示第j条观察数据来自第k个硬币(k=1表示B对应A的正面,k=0表示C对应A反面); \\ & 记参数(\pi,p,q)=\theta \\ & \text{\textcircled 1} E步:明确Q(Y,\theta_i,\theta)的具体形式 \\ & Q(Y,\theta_i, \theta) \\ & = \sum_\gamma P(\gamma|Y,\theta_i)*logP(Y,\gamma|\theta)\\ & = E_{P(\gamma|Y,\theta_i)}[logP(Y,\gamma|\theta)] \\ & \\ & logP(Y,\gamma|\theta) \\ & = log\prod_j^n P(y_j, r_{j0}, r_{j1}|\theta) \\ & = \sum_j^n log[P(y_j, r_{j0}, r_{j1}|\theta)] \\ & = \sum_j^n log[P(y_j|\gamma_{j0},\gamma_{j1},\theta)*P(\gamma_{j0},\gamma_{j1}|\theta)] \\ & =\sum_j^nlog \lbrace [q^{y_j} (1-q)^{1-y_j} (1-\pi)]^{\gamma_{j0}}*[p^{y_j} (1-p)^{1-y_j} \pi]^{\gamma_{j1}}] \rbrace \\ & = \sum_j^n\lbrace \gamma_{j0}logA + \gamma_{j1}logB \rbrace (*)\\ & = \sum_j^n[y_j\gamma_{j0}logq+(1-y_j)\gamma_{j0}log(1-q)+\gamma_{j0}log(1-\pi) + y_j\gamma_{j1}logp+(1-y_j)\gamma_{j1}log(1-p)+\gamma_{j1}log\pi] (**)\\ & 注:(*)式,A=q^{y_j} (1-q)^{1-y_j} (1-\pi),B=p^{y_j} (1-p)^{1-y_j} \pi\\ & \\ & Q(Y,\theta_i,\theta) \\ & = E_{P(\gamma|Y,\theta_i)}[logP(Y,\gamma|\theta)] \\ & = \sum_j^n\lbrace E_{P(\gamma|Y,\theta_i)}(\gamma_{j0})*logA + E_{P(\gamma|Y,\theta_i)}(\gamma_{j1})*logB \rbrace (1)(根据*式可得)\\ & 而 \\ & E_{P(\gamma|Y,\theta_i)}(\gamma_{j1}) \\ & = P(\gamma_{j1}=1|y_j,\theta_i) (根据iid性质,只有该项与\gamma_{j1}有关)\\ & = \frac {P(\gamma_{j1}=1,y_j|\theta_i)} {P(\gamma_{j1}=1,y_j|\theta_i)+P(\gamma_{j0}=1,y_j|\theta_i)} \\ & = \frac {P(y_j|\gamma_{j1}=1,\theta_i) * P(\gamma_{j1}=1|\theta_i)} {P(y_j|\gamma_{j1}=1,\theta_i) * P(\gamma_{j1}=1|\theta_i) + P(y_j|\gamma_{j0}=1,\theta_i) * P(\gamma_{j0}=1|\theta_i)} \\ & = \frac {p_i^{y_j}(1-p_i)^{1-y_j}*\pi_i} {p_i^{y_j}(1-p_i)^{1-y_j}*\pi_i + q_i^{y_j}(1-q_i)^{1-y_j}*(1-\pi_i)} (2) \\ & 同样 \\ & E_{P(\gamma|Y,\theta_i)}(\gamma_{j0}) \\ & = \frac {q_i^{y_j}(1-q_i)^{1-y_j}*(1-\pi_i)} {p_i^{y_j}(1-p_i)^{1-y_j}*\pi_i + q_i^{y_j}(1-q_i)^{1-y_j}*(1-\pi_i)} (3) \\ & \\ & 将上述(2)式(3)式带入(1)式,即可得Q(Y,\theta_i, \theta)的具体形式 \\ & \\ & \text{\textcircled 2} M步:对上述Q(Y,\theta_i, \theta)的具体形式求\theta(或具体各参数argmax) \\ & 需要求极大值的参数\theta包括(\pi, p, q),可通过求各参数的导数求极大值; \\ & 对\pi,令 \\ & \frac {\partial Q(Y,\theta_i,\theta)}{\partial \pi} = 0\\ & => \frac {\partial \sum_j^n[E\gamma_{j0}*log(1-\pi) + E\gamma_{j1}*log\pi] } {\partial \pi} (利用**式并取与\pi有关的项)\\ & = \sum_j^n(E\gamma_{j0} * \frac {1} {\pi-1} + E\gamma_{j1}* \frac {1} {\pi}) \\ & = 0 \\ & => \pi_{i+1} = \frac {1} {n} \sum_{j=1}^n E_{P(\gamma|Y,\theta_i)}(\gamma_{j1}) (注意这里的E_P即(2)式,已知)\\ & 同理,对p,q,令 \\ & \begin{dcases} \frac {\partial Q(Y,\theta_i,\theta)}{\partial p} = 0 \\ \frac {\partial Q(Y,\theta_i,\theta)}{\partial p} = 0 \end{dcases} \\ & => \begin{dcases} p_{i+1} = \frac {\sum_j^nE_{P(\gamma|Y,\theta_i)}(\gamma_{j1})*y_j} {\sum_j^n E_{P(\gamma|Y,\theta_i)}(\gamma_{j1})} \\ q_{i+1} = \frac {\sum_j^n[1-E_{P(\gamma|Y,\theta_i)}(\gamma_{j1})]*y_j} {\sum_j^n [1-E_{P(\gamma|Y,\theta_i)}(\gamma_{j1})]} \end{dcases} \\ & 如此,完成了一次参数的迭代,后续重复迭代至收敛即可 \\ & \\ \end{aligned} Aγjk[0,1]jkj[0,n1]k[0,1]γjkjkk=1BAk=0CA;(π,p,q)=θ1EQ(Y,θi,θ)Q(Y,θi,θ)=γP(γY,θi)logP(Y,γθ)=EP(γY,θi)[logP(Y,γθ)]logP(Y,γθ)=logjnP(yj,rj0,rj1θ)=jnlog[P(yj,rj0,rj1θ)]=jnlog[P(yjγj0,γj1,θ)P(γj0,γj1θ)]=jnlog{ [qyj(1q)1yj(1π)]γj0[pyj(1p)1yjπ]γj1]}=jn{ γj0logA+γj1logB}=jn[yjγj0logq+(1yj)γj0log(1q)+γj0log(1π)+yjγj1logp+(1yj)γj1log(1p)+γj1logπ]A=qyj(1q)1yj(1π)B=pyj(1p)1yjπQ(Y,θi,θ)=EP(γY,θi)[logP(Y,γθ)]=jn{ EP(γY,θi)(γj0)logA+EP(γY,θi)(γj1)logB}1EP(γY,θi)(γj1)=P(γj1=1yj,θi)iid,γj1=P(γj1=1,yjθi)+P(γj0=1,yjθi)P(γj1=1,yjθi)=P(yjγj1=1,θi)P(γj1=1θi)+P(yjγj0=1,θi)P(γj0=1θi)P(yjγj1=1,θi)P(γj1=1θi)=piyj(1pi)1yjπi+qiyj(1qi)1yj(1πi)piyj(1pi)1yjπi2EP(γY,θi)(γj0)=piyj(1pi)1yjπi+qiyj(1qi)1yj(1πi)qiyj(1qi)1yj(1πi)3231Q(Y,θi,θ)2MQ(Y,θi,θ)θargmaxθ(π,p,q)ππQ(Y,θi,θ)=0=>πjn[Eγj0log(1π)+Eγj1logπ]π=jn(Eγj0π11+Eγj1π1)=0=>πi+1=n1j=1nEP(γY,θi)(γj1)EP2pqpQ(Y,θi,θ)=0pQ(Y,θi,θ)=0=>pi+1=jnEP(γY,θi)(γj1)jnEP(γY,θi)(γj1)yjqi+1=jn[1EP(γY,θi)(γj1)]jn[1EP(γY,θi)(γj1)]yj
  • HMM(隐马尔可夫)参数估计

你可能感兴趣的:(技术问题,#,MachineLearning,#,深度学习,自然语言处理,算法,机器学习)