机器学习优化算法之EM算法

本文总字数:702,阅读预计需要:2分钟

EM算法简介

EM算法其实是一类算法的总称。EM算法分为E-Step和M-Step两步。EM算法的应用范围很广,基本机器学习需要迭代优化参数的模型在优化时都可以使用EM算法。

EM算法的思想和过程

E-Step:E的全称是Expectation,即期望的意思。E-step也是获取期望的过程。即根据现有的模型,计算各个观测数据输入到模型中的计算结果。这个过程称为期望值计算过程,即E过程。

M-Step:M的全称是Maximization,即最大化的意思。M-step也是期望最大化的过程。得到一轮期望值以后,重新计算模型参数,以最大化期望值。这个过程为最大化过程,即M过程。

最大化的意思是我们在使用这个模型时希望我们定义的函数能使得到的结果最大化,而结果越大越接近我们希望得到的结果。我们优化的目标也就是这些能得到最大值的函数。

常见的EM算法有:隐含马尔科夫模型的训练方法Baum-Welch算法;最大熵模型的训练方法GIS算法等。

EM算法结果

EM算法不一定能保证获得全局最优解,但如果我们优化的目标函数是一个凸函数,那么一定能保证得到全局最优解。否则可能获得局部最优解。因为如果优化的目标函数有多个峰值点,则如果优化到某个不是最高的峰值点处,则会无法再继续优化下去,这样获得的是局部最优解。

总结

EM算法只需要输入一些训练数据,同时定义一个最大化函数,接下来经过若干次迭代,就可以训练出我们需要的模型了。

参考

吴军《数学之美》
————————————————
原文链接:https://blog.csdn.net/lihaitao000/article/details/51894496

posted @   北极星!  阅读(541)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
历史上的今天:
2020-09-08 C语言杂谈
点击右上角即可分享
微信分享提示