EM算法的主要步骤
对于一个存在隐状态的序列,假设存在一个已知的观测序列Y,未知的隐状态序列Z,未知参数集合θ;
θ的作用:给定参数θ的时候,可以求得下面这些量:
P(Z|θ) 实际上即求得Z在给定θ时的分布;
P(Y|Z,θ) 可求得给定θ和隐状态Z的情况下,出现现在Y序列的概率;
那么ΣP(Z|θ)P(Y|Z,θ) 就是给定θ时,出现目前观测序列Y的概率;
取对数似然表达式L(θ) = log ΣP(Z|θ)P(Y|Z,θ)
我们的目标是根据现在的观测序列,去估计一组参数,如果我们希望获得一个最优的参数序列,那么当然要使得在这组参数下当前观测序列出现的概率最大。
首先随机初始化一组θ记为θ(i),再假设一组我们未知的θ,对于这两组θ,求取L(θ) - L(θ(i))。我们希望未知组的表达式大于已知组的表达式,即前述式子大于0。(1)
(省略掉中间的算式——由琴生不等式变换可以求得这个式子的下限,并提取出其中和未知组θ有关的部分,就得到了我们下文中所说的Q函数)
Q(θ) = ΣP(Z|Y,θ(i))log P(Z|θ)P(Y|Z,θ); (此处不作进一步简化)(2)
有了这个式子,我们实际上就是要求Q函数的极大值所对应的θ;(3)
获得了这个θ之后,我们将它代回到(1)中,作为已知组的θ、被减数,然后重复(2)(3)步即可不断迭代优化。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构