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步中,重新计算出各个参数。

根据似然概率最大化,可以推出均值、方差、权重更新公式。

另外知道了各个点属于各个高斯的概率,也可以直接计算求出 均值、方差、权重

如此E步和M步重复。

参考:http://blog.csdn.net/abcjennifer/article/details/8198352

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

时间: 2024-12-08 23:02:17

EM算法 大白话讲解的相关文章

【机器学习】EM算法详细推导和讲解

[机器学习]EM算法详细推导和讲解 今天不太想学习,炒个冷饭,讲讲机器学习十大算法里有名的EM算法,文章里面有些个人理解,如有错漏,还请读者不吝赐教. 众所周知,极大似然估计是一种应用很广泛的参数估计方法.例如我手头有一些东北人的身高的数据,又知道身高的概率模型是高斯分布,那么利用极大化似然函数的方法可以估计出高斯分布的两个参数,均值和方差.这个方法基本上所有概率课本上都会讲,我这就不多说了,不清楚的请百度. 然而现在我面临的是这种情况,我手上的数据是四川人和东北人的身高合集,然而对于其中具体的

转载:EM算法的最精辟讲解

机器学习十大算法之一:EM算法.能评得上十大之一,让人听起来觉得挺NB的.什么是NB啊,我们一般说某个人很NB,是因为他能解决一些别人解决不了的问题.神为什么是神,因为神能做很多人做不了的事.那么EM算法能解决什么问题呢?或者说EM算法是因为什么而来到这个世界上,还吸引了那么多世人的目光. 我希望自己能通俗地把它理解或者说明白,但是,EM这个问题感觉真的不太好用通俗的语言去说明白,因为它很简单,又很复杂.简单在于它的思想,简单在于其仅包含了两个步骤就能完成强大的功能,复杂在于它的数学推理涉及到比

EM算法 - 1 - 介绍

声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了弄懂其中的内容查阅了很多资料,所以里面应该会有引用其他帖子的小部分内容,如果原作者看到可以私信我,我会将您的帖子的地址付到下面. 3,如果有内容错误或不准确欢迎大家指正. 4,如果能帮到你,那真是太好了. 在开始之前需要准备些预备知识,如果你已经全部掌握那就直接向下翻到EM算法这一章吧. 极大似然估计 由于E

EM算法 - 2 - EM算法在高斯混合模型学习中的应用

声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了弄懂其中的内容查阅了很多资料,所以里面应该会有引用其他帖子的小部分内容,如果原作者看到可以私信我,我会将您的帖子的地址付到下面. 3,如果有内容错误或不准确欢迎大家指正. 4,如果能帮到你,那真是太好了. 在开始讲解之前,我要先给看这篇文章的你道个歉,因为<2012.李航.统计学习方法.pdf>中

猪猪的机器学习笔记(十四)EM算法

EM算法 作者:樱花猪   摘要: 本文为七月算法(julyedu.com)12月机器学习第十次次课在线笔记.EM算法全称为Expectation Maximization Algorithm,既最大期望算法.它是一种迭代的算法,用于含有隐变量的概率参数模型的最大似然估计和极大后验概率估计.EM算法经常用于机器学习和机器视觉的聚类领域,是一个非常重要的算法.而EM算法本身从使用上来讲并不算难,但是如果需要真正的理解则需要许多知识的相互串联. 引言:      EM算法是机器学习十大经典算法之一.

机器学习第三课(EM算法和高斯混合模型)

EM算法,这是cv界比较有名的一种算法了,虽然很早就听说过,但真正深究还是最近几天看斯坦福公开课笔记的时候.之所以EM和MoG放在一起,是因为我们在求解MoG模型的时候需要用到EM算法,所以这里我们先来介绍下EM算法. 在介绍EM算法的之前,我们先来普及下Jensen不等式的知识.首先我们来给出Jensen不等式的定义: 定理很简单,总结下来就是这么几点.如果f是一个凸函数并且二阶导数大于零(上文中有提出),则有.进一步, 若二阶导数恒大于 0,则不等式等号成立当且仅当 x=E[x],即 x 是

极大似然估计和EM算法

title: 最大似然估计和EM算法 date: 2018-06-01 16:17:21 tags: [算法,机器学习] categories: 机器学习 mathjax: true --- 本文是对最大似然估计和EM算法做的一个总结. 一般来说,事件A发生的概率与某个未知参数$\theta?$有关,$\theta?$取值不同,则事件A发生的概率$p(A|\theta)?$也不同.当我们在一次实验中事件A发生了,则认为此时的$\theta?$值应是t的一切可能取值中使$p(A|\theta)?$

EM算法(1):K-means 算法

目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法详解 EM算法(1) : K-means算法 1. 简介 K-means算法是一类无监督的聚类算法,目的是将没有标签的数据分成若干个类,每一个类都是由相似的数据组成.这个类的个数一般是认为给定的. 2. 原理 假设给定一个数据集$\mathbf{X} = \{\mathbf{x}_1, \mathbf{x}_2,...,\mathbf{x}_N \}$, 和类的个数K.我们的每个类都用一个中心点$

EM算法(3):EM算法详解

目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法详解