EM算法 大白话讲解

假设有一堆数据点
,它是由两个线性模型产生的。公式如下:

模型参数为a,b,n:a为线性权值或斜率,b为常数偏置量,n为误差或者噪声。
一方面,假如我们被告知这两个模型的参数,则我们可以计算出损失。
对于第i个数据点,第k个模型会预测它的结果
则,与真实结果
的差或者损失记为:

目标是最小化这个误差。
但是仍然不知道具体哪些数据由对应的哪个模型产生的。
另一方面,假设我们被告知这些数据对应具体哪个模型,则问题简化为求解约束条件下的线性方程解
(实际上可以计算出最小均分误差下的解,^-^)。

这两个假设,都只知道其中的一部分信息,所以求解困难。
EM算法就是重复迭代上述两步,固定因素A,放开因素B,然后固定因素B,再放开因素A,直到模型收敛,
如此迭代更新估计出模型的输出值以及参数值。
具体如下:
--------------------------------------------------------------------------------------------------------
在E步时,模型参数假定已知(随机初始化或者聚类初始化,后续不断迭代更新参数),
计算出每个点属于模型的似然度或者概率(软判决,更加合理,后续可以不断迭代优化,而硬判决不合理是因为之前的假定参数本身不可靠,判决准则也不可靠)。
根据模型参数,如何计算出似然度?
计算出模型输出值与真实值的残差:

已知残差,计算出i点属于k模型的似然度(残差与似然度建立关系):
贝叶斯展开

=
,假设残差与概率分布为高斯分布,残差距离度量 转换成 概率度量。
残差越小,则发生概率越大。
根据产生的残差,判断i属于模型k的归属概率
则,

完成点分配到模型的目的
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
进入M步,知道各个点属于对应模型的概率,利用最小均分误差,估计出模型参数
绝对值差*概率,误差期望最小化
最小化
求偏导:

置0,则上述两公式展开为

改写成 矩阵式:

完成计算出ak和bk参数
如此,反复迭代,收敛
EM算法对
敏感,每轮迭代它的更新推荐公式:

--------------------------------------------------------------------------------

同样地,在 GMM 中,我们就需要确定 影响因子pi(k)、各类均值pMiu(k) 和 各类协方差pSigma(k) 这些参数。 我们的想法是,找到这样一组参数,它所确定的概率分布生成这些给定的数据点的概率最大,而这个概率实际上就等于
,我们把这个乘积称作似然函数 (Likelihood Function)
没法直接用求导解方程的办法直接求得最大值。
不清楚这类数据是具体哪个高斯生成的,或者说生成的概率。
E步中,确定出数据xi属于第i个高斯的概率:通过计算各个高斯分量的后验概率,占比求得。


解决了点的归属。
M步中,重新计算出各个参数。
知道了各个点属于各个高斯的概率,可以重新计算求出 均值、方差、权重

如此EM重复。
参考:http://blog.csdn.net/abcjennifer/article/details/8198352
--------------------------------------------------------------------------------------------------------
EM算法 大白话讲解的更多相关文章
- 【机器学习】EM算法详细推导和讲解
今天不太想学习,炒个冷饭,讲讲机器学习十大算法里有名的EM算法,文章里面有些个人理解,如有错漏,还请读者不吝赐教. 众所周知,极大似然估计是一种应用很广泛的参数估计方法.例如我手头有一些东北人的身高的 ...
- 转载:EM算法的最精辟讲解
机器学习十大算法之一:EM算法.能评得上十大之一,让人听起来觉得挺NB的.什么是NB啊,我们一般说某个人很NB,是因为他能解决一些别人解决不了的问题.神为什么是神,因为神能做很多人做不了的事.那么EM ...
- 从数学角度看最大期望(EM)算法 I
[转载请注明出处]http://www.cnblogs.com/mashiqi 2014/11/18 更新.发现以前的公式(2)里有错误,现已改过来.由于这几天和Can讨论了EM算法,回头看我以前写的 ...
- 机器学习第三课(EM算法和高斯混合模型)
极大似然估计,只是一种概率论在统计学的应用,它是参数估计的方法之一.说的是已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值. ...
- 猪猪的机器学习笔记(十四)EM算法
EM算法 作者:樱花猪 摘要: 本文为七月算法(julyedu.com)12月机器学习第十次次课在线笔记.EM算法全称为Expectation Maximization Algorithm,既最大 ...
- 机器学习——EM算法
1 数学基础 在实际中,最小化的函数有几个极值,所以最优化算法得出的极值不确实是否为全局的极值,对于一些特殊的函数,凸函数与凹函数,任何局部极值也是全局极致,因此如果目标函数是凸的或凹的,那么优化算法 ...
- 学习笔记——EM算法
EM算法是一种迭代算法,用于含有隐变量(hidden variable)的概率模型参数的极大似然估计,或极大后验概率估计.EM算法的每次迭代由两步组成:E步,求期望(expectation):M步,求 ...
- K-Means聚类和EM算法复习总结
摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 6.适用场合 内容: 1.算法概述 k-means算法是一种得到最广泛使用的聚类算法. 它是将各个聚类子集内 ...
- EM算法总结
EM算法总结 - The EM Algorithm EM是我一直想深入学习的算法之一,第一次听说是在NLP课中的HMM那一节,为了解决HMM的参数估计问题,使用了EM算法.在之后的MT中的词对齐中也用 ...
随机推荐
- Linux的iptables常用配置范例(1)
以下是来自 http://wiki.ubuntu.org.cn/IptablesHowTo 上的配置说明 可以通过/sbin/iptables -F清除所有规则来暂时停止防火墙: (警告:这只适合在没 ...
- jquery中如何以逗号分割字符串_百度知道
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- (简单) POJ 1797 Heavy Transportation,Dijkstra。
Description Background Hugo Heavy is happy. After the breakdown of the Cargolifter project he can no ...
- ice grid 完整部署过程
待补充 一 理论准备 一个IceGrid集群有一个registry(注册表,用于定位)和多个node组成. IceGrid配置包括集群配置和应用配置: config.grid是集群配置,配置Regis ...
- Java设计模式遵循的七大原则
最近几年来,人们踊跃的提倡和使用设计模式,其根本原因就是为了实现代码的复用性,增加代码的可维护性.设计模式的实现遵循了一些原则,从而达到代码的复用性及增加可维护性的目的,设计模式对理解面向对象的三大特 ...
- wex5 实战 苹果左滑删除与长按编辑
用了多年苹果,习惯了苹果的左滑删除与长按编辑,特别是短信什么的,很多安卓界面也采用了类似方式. 我的想法突如其来,用wex5也设计一个这样的功能,可以吗? 那句广告词,没有什么不可能. 呵呵. 一 ...
- Python中下划线---完全解读
Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能用'from module import *'导入 __xxx__ 系统定义名字 __xxx 类中的私有变量名 核心风格:避免用下划 ...
- AForge.NET是一个专门为开发者和研究者基于C#框架设计的视频录像
AForge.NET是一个专门为开发者和研究者基于C#框架设计的,他包括计算机视觉与人工智能,图像处理,神经网络,遗传算法,机器学习,模糊系统,机器人控制等领域.这个框架由一系列的类库组成.主要包括有 ...
- Quartz2D 之 简单介绍
1. 概述 Quartz2D 是一个二维绘图引擎. 主要功能: 绘制图形:线.矩形.圆.弧 绘制文字 绘制图片 绘制PDF 裁截图片 自定义UI控件 2. 图形上下文 Graphics Context ...
- MySQL动态添删改列字段
动态增加列字段: ); 动态删除列字段: alter table TableName drop column field_id; 动态修改列字段: alter table TableName chan ...