EM算法 实例讲解

        第一次接触EM算法,是在完成半隐马尔科夫算法大作业时。我先在网上下载了两份Baum-Welch算法的代码,通过复制粘贴,修修补补,用java实现了HMM算法(应用是韦小宝掷两种骰子的问题)。然后,参考有关半隐马尔科夫算法的论文,照着论文中的公式修改隐马尔科夫算法,完成了大作业。现在回想起来,就隐隐约约记得有一大堆公式。最近,我看到一篇很好的文章,对EM算法的计算有了进一步的了解,文章链接为http://159.226.251.229/videoplayer/em_tutorial.pdf?ich_u_r_i=5f2169937c008ed6744dff42d8b2ab80&ich_s_t_a_r_t=0&ich_e_n_d=0&ich_k_e_y=1545078905750963492497&ich_t_y_p_e=1&ich_d_i_s_k_i_d=5&ich_u_n_i_t=1

        文章中有个例子,能让人快速了解EM算法的使用方法,下图是例子的示意图,图b是EM算法的实例,图a是让我们预热的。

         这是一个抛硬币的例子,H表示正面向上,T表示反面向上,参数θ表示正面朝上的概率。硬币有两个,A和B,硬币是有偏的。本次实验总共做了5组,每组随机选一个硬币,连续抛10次。如果知道每次抛的是哪个硬币,那么计算参数θ就非常简单了,如上图所示。

         如果不知道每次抛的是哪个硬币呢?那么,我们就需要用EM算法,基本步骤为:1、给θA和θB一个初始值;2、(E-step)估计每组实验是硬币A的概率(本组实验是硬币B的概率=1-本组实验是硬币A的概率)。分别计算每组实验中,选择A硬币且正面朝上次数的期望值,选择B硬币且正面朝上次数的期望值;3、(M-step)利用第三步求得的期望值重新计算θA和θB;4、当迭代到一定次数,或者算法收敛到一定精度,结束算法,否则,回到第2步。

 

        稍微解释一下上图的计算过程。初始值θA=0.6,θB=0.5。

        图中的0.45是怎么得来的呢?由两个硬币的初始值0.6和0.5,容易得出投掷出5正5反的概率是pA=C(10,5)*(0.6^5)*(0.4^5),pB=C(10,5)*(0.5^5)*(0.5^5),  pA/(pA+pB)=0.449,  0.45就是0.449近似而来的,表示第一组实验选择的硬币是A的概率为0.45。图中的2.2H,2.2T是怎么得来的呢?  0.449 * 5H = 2.2H ,0.449 * 5T = 2.2T ,表示第一组实验选择A硬币且正面朝上次数的期望值是2.2。其他的值依次类推。

  • 41
    点赞
  • 105
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
模退火算法实例分析可以帮助我们更好地理解该算法的原理和应用。在实例分析中,通常会选择一个具体的问题,并结合模拟退火算法来解决该问题。 一个常见的实例是旅行商问题(Traveling Salesman Problem,TSP)。该问题要求在给定一系列城市和每对城市之间的距离的情况下,找到一条最短路径,使得每个城市只被访问一次,并最终返回起点城市。 在模拟退火算法实例分析中,我们首先定义一个初始解,即随机生成一个城市访问路径。然后,我们通过计算该路径的总距离作为目标函数来评估当前解的优劣。 接下来,我们通过模拟退火算法的核心步骤来逐步改进当前解。我们根据一定的温度参数和概率来决定是否接受新的解。通过迭代,我们逐渐调整温度参数,并在每个温度下尝试产生新的解,以期望找到更好的解。 在实例分析中,我们可以记录每个温度下得到的最优解,以及该解对应的路径和总距离。通过观察和分析这些结果,我们可以了解模拟退火算法在解决旅行商问题上的效果,并探讨算法的优缺点。 总结来说,模拟退火算法实例分析可以帮助我们深入理解算法的具体应用和优化过程,并通过观察实际结果来验证算法的有效性。在解决旅行商问题等类似优化问题时,模拟退火算法可以是一种有效的解决方案。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [模拟退火算法详细讲解(含实例python代码)](https://blog.csdn.net/weixin_48241292/article/details/109468947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [模拟退火算法介绍和实例实现](https://blog.csdn.net/weixin_45859485/article/details/125726418)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值