2026/1/21 10:28:36
网站建设
项目流程
山东省监理建设协会网站,移动端下载,xp做网站服务器,网站评论管理怎么做图解说明#xff1a;
#x1f4ca; 灰色直方图#xff1a;代表我们看到的观测数据#xff08;混在一起#xff0c;分不清谁是谁#xff09;。#x1f535; 蓝色虚线/实线#xff1a;代表我们猜测的分布 A#xff08;比如男生身高#xff09;。#x1f534; 红色虚线…图解说明灰色直方图代表我们看到的观测数据混在一起分不清谁是谁。蓝色虚线/实线代表我们猜测的分布 A比如男生身高。红色虚线/实线代表我们猜测的分布 B比如女生身高。中间过程一开始猜得很离谱图1通过不断调整图2最后完美拟合了数据图3。今天我们要挑战一个稍微有点“烧脑”但非常有用的算法——EM 算法 (Expectation-Maximization)中文叫期望最大化算法。别被名字吓跑了它的核心逻辑其实非常像我们生活中的**“猜谜游戏”**。如果你完全不懂算法没关系。想象一下你是一个侦探。1. 它是解决什么问题的(举个栗子)假设你手里有一张纸条上面写着100 个人的身高数据比如 175, 162, 180, 158…。你知道这群人里既有男生也有女生。一般来说男生的平均身高要高一些女生的平均身高要矮一些。但是这张纸条上没有标注性别你只看到一堆数字完全不知道哪个是男哪个是女。你的任务是根据这堆混乱的数字推算出男生和女生的平均身高分别是多少。遇到的死结这就陷入了一个**“鸡生蛋蛋生鸡”**的死循环要想算出男生的平均身高我得先知道哪些数据是男生的。要想知道哪些数据是男生的我得先知道男生的平均身高比如这个数是 180离男生平均值近我才敢说他是男的。两个都不知道怎么办EM 算法说“别管那么多先瞎猜一个然后慢慢调整”2. EM 算法的“两步走”策略EM 算法就像是一个不断反悔的侦探它通过两个步骤循环操作直到找到真相。第一步E 步 (Expectation) —— 先瞎猜算期望既然不知道男生女生的平均身高那我就先随便假设一个假设男生平均 170cm女生平均 160cm。有了这个假设我就可以去推测每一个身高数据属于谁了。数据 180cm离男生平均值 (170) 更近离女生 (160) 远。那它大概率是男生比如 90% 可能是男10% 可能是女。数据 165cm这就不好说了卡在中间可能一半一半吧。没错我们要对这 100 个数据每一个都这样算一遍概率这时候我们不再是“非黑即白”地说是男是女而是给每个数据分配一个**“身份概率”**权重。第二步M 步 (Maximization) —— 根据猜测更新参数现在我们假装刚才猜的“身份概率”就是真的。既然 180cm 主要是男生那在算男生平均身高时它的发言权就很大。既然 165cm 是一半一半那它对男女平均身高的贡献就各占一半。根据这个重新分配好的权重我们重新计算男生和女生的平均身高。怎么算呢用“加权平均”新的男生平均把所有人的身高乘上他是男生的概率再加起来除以总权重。计算公式(180×0.9 165×0.5 ...) ÷ (0.9 0.5 ...)结果可能变成了175cm因为高个子在男生这边的权重更大。新的女生平均把所有人的身高乘上她是女生的概率再加起来除以总权重。计算公式(180×0.1 165×0.5 ...) ÷ (0.1 0.5 ...)结果可能变成了158cm。循环往复有了新的平均值 (175, 158)我们再回到E 步重新评估每个身高数据是男是女这时候判断会更准170cm 以前可能被当成男生现在离 175 远了可能被当成女生。然后再进M 步更新平均值。就这样E - M - E - M一直转圈直到最后参数不再变化为止。3. 为什么叫“期望最大化”E (Expectation)计算期望。就是在参数已知的情况下猜测数据隐含的类别填补缺失数据。M (Maximization)最大化似然函数。就是在数据补全的情况下寻找最能解释这些数据的参数。简单说就是猜数据 - 算参数 - 再猜数据 - 再算参数。4. EM 算法的优缺点✅ 优点 (为什么它厉害)解决缺失数据它最擅长处理这种“含有隐变量”也就是有一部分信息你看不到的问题。自动聚类著名的高斯混合模型 (GMM) 就是用 EM 算法训练的它可以把数据自动分成几个正态分布的波峰。❌ 缺点 (也要注意)容易陷入局部最优如果你一开始瞎猜的参数太离谱它可能最后收敛到一个错误的结果走进了死胡同而不是全局最好的结果。收敛慢有时候要转很多圈才能停下来。5. 总结EM 算法就是一个**“试错法”大师**面对一团乱麻既不知道类别也不知道参数。它先随便给个初始值。E步根据参数猜类别心里有个底。M步根据类别算参数修正模型。反复横跳直到找到最合理的解释。就像你在大雾天开车看不清路隐变量你只能先凭感觉开E步看到路标后再修正方向M步一点点逼近目的地️