标签(空格分隔): 机器学习


(最近被一波波的笔试+面试淹没了,但是在有两次面试时被问到了同一个问题:K-Means算法的收敛性。在网上查阅了很多资料,并没有看到很清晰的解释,所以希望可以从K-Means与EM算法的关系,以及EM算法本身的收敛性证明中找到蛛丝马迹,下次不要再掉坑啊。。)

EM算法的收敛性

1.通过极大似然估计建立目标函数:

\(l(\theta) = \sum_{i=1}^{m}log\ p(x;\theta) = \sum_{i=1}^{m}log\sum_{z}p(x,z;\theta)\)

通过EM算法来找到似然函数的极大值,思路如下:
希望找到最好的参数\(\theta\),能够使最大似然目标函数取最大值。但是直接计算 \(l(\theta) = \sum_{i=1}^{m}log\sum_{z}p(x,z;\theta)\)比较困难,所以我们希望能够找到一个不带隐变量\(z\)的函数\(\gamma(x|\theta) \leq l(x,z;\theta)\)恒成立,并用\(\gamma(x|\theta)\)逼近目标函数。
如下图所示:

  • 在绿色线位置,找到一个\(\gamma\)函数,能够使得该函数最接近目标函数,
  • 固定\(\gamma\)函数,找到最大值,然后更新\(\theta\),得到红线;
  • 对于红线位置的参数\(\theta\):
  • 固定\(\theta\),找到一个最好的函数\(\gamma\),使得该函数更接近目标函数。
    重复该过程,直到收敛到局部最大值。

2. 从Jensen不等式的角度来推导

令\(Q_{i}\)是\(z\)的一个分布,\(Q_{i} \geq 0\),则:

$l(\theta) = \sum_{i=1}^{m}log\sum_{z^{(i)}}p(x^{(i)},z^{(i)};\theta) $
$ = \sum_{i=1}^{m}log\sum_{z^{(i)}}Q_{i}(z^{(i)})\frac{p(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})}$
\(\geq \sum_{i=1}^{m}\sum_{z^{(i)}}Q_{i}(z^{(i)})log\frac{p(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})}\)

(对于log函数的Jensen不等式)

3.使等号成立的Q

尽量使\(\geq\)取等号,相当于找到一个最逼近的下界:也就是Jensen不等式中,\(\frac{f(x_{1})+f(x_{2})}{2} \geq f(\frac{x_{1}+x_{2}}{2})\),当且仅当\(x_{1} = x_{2}\)时等号成立(很关键)

对于EM的目标来说:应该使得\(log\)函数的自变量恒为常数,即:
\(\frac{p(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})} = C\)
也就是分子的联合概率与分母的z的分布应该成正比,而由于\(Q\)是z的一个分布,所以应该保证\(\sum_{z}Q_{i}(z^{(i)}) = 1\)
故\(Q = \frac{p}{p对z的归一化因子}\)

\(Q_{i}(z^{(i)}) = \frac{p(x^{(i)},z^{(i)};\theta)}{\sum_{z}p(x^{(i)},z^{(i)};\theta)}\)
\(= \frac{p(x^{(i)},z^{(i)};\theta)}{p(x^{(i)};\theta)} = p(z^{(i)}|x^{(i)};\theta)\)

4.EM算法的框架

由上面的推导,可以得出EM的框架:

回到最初的思路,寻找一个最好的\(\gamma\)函数来逼近目标函数,然后找\(\gamma\)函数的最大值来更新参数\(\theta\):

  • E-step: 根据当前的参数\(\theta\)找到一个最优的函数\(\gamma\)能够在当前位置最好的逼近目标函数;
  • M-step: 对于当前找到的\(\gamma\)函数,求函数取最大值时的参数\(\theta\)的值。

K-Means的收敛性

通过上面的分析,我们可以知道,在EM框架下,求得的参数\(\theta\)一定是收敛的,能够找到似然函数的最大值。那么K-Means是如何来保证收敛的呢?

目标函数

假设使用平方误差作为目标函数:
\(J(\mu_{1},\mu_{2},...,\mu_{k}) = \frac{1}{2}\sum_{j=1}^{K}\sum_{i=1}^{N}(x_{i}-\mu_{j})^{2}\)

E-Step

固定参数\(\mu_{k}\), 将每个数据点分配到距离它本身最近的一个簇类中:
\[ \gamma_{nk} = \begin{cases} 1, & \text{if $k = argmin_{j}||x_{n}-\mu_{j}||^{2}$ } \\ 0, & \text{otherwise} \end{cases} \]

M-Step

固定数据点的分配,更新参数(中心点)\(\mu_{k}\):
\(\mu_{k} = \frac{\sum_{n}\gamma_{nk}x_{n}}{\sum_{n}\gamma_{nk}}\)

所以,答案有了吧。为啥K-means会收敛呢?目标是使损失函数最小,在E-step时,找到一个最逼近目标的函数\(\gamma\);在M-step时,固定函数\(\gamma\),更新均值\(\mu\)(找到当前函数下的最好的值)。所以一定会收敛了~

转载于:https://www.cnblogs.com/little-YTMM/p/5885153.html

再论EM算法的收敛性和K-Means的收敛性相关推荐

  1. EM算法讲推导原理讲的懂了的,表达清晰易懂的, 收藏cnblog上的大牛的

    博客1长于理论推导 https://zhuanlan.zhihu.com/p/149810914 EM算法的十重境界 https://www.zhihu.com/question/40797593/a ...

  2. (EM算法)The EM Algorithm

    EM是我一直想深入学习的算法之一,第一次听说是在NLP课中的HMM那一节,为了解决HMM的参数估计问题,使用了EM算法.在之后的MT中的词对齐中也用到了.在Mitchell的书中也提到EM可以用于贝叶 ...

  3. em算法怎么对应原有分类_EM算法原理

    转自:https://www.cnblogs.com/Gabby/p/5344658.html 我讲EM算法的大概流程主要三部分:需要的预备知识.EM算法详解和对EM算法的改进. 一.EM算法的预备知 ...

  4. 【转载】(EM算法)The EM Algorithm

    (EM算法)The EM Algorithm EM是我一直想深入学习的算法之一,第一次听说是在NLP课中的HMM那一节,为了解决HMM的参数估计问题,使用了EM算法.在之后的MT中的词对齐中也用到了. ...

  5. EM算法学习笔记与三硬币模型推导

    最近接触了pLSA模型,由于该模型中引入了主题作为隐变量,所以需要使用期望最大化(Expectation Maximization)算法求解. 本文简述了以下内容: 为什么需要EM算法 EM算法的推导 ...

  6. em算法怎么对应原有分类_机器学习系列之EM算法

    我讲EM算法的大概流程主要三部分:需要的预备知识.EM算法详解和对EM算法的改进. 一.EM算法的预备知识 1.极大似然估计 (1)举例说明:经典问题--学生身高问题 我们需要调查我们学校的男生和女生 ...

  7. 机器学习系列之EM算法

    机器学习系列之EM算法 我讲EM算法的大概流程主要三部分:需要的预备知识.EM算法详解和对EM算法的改进. 一.EM算法的预备知识 1.极大似然估计 (1)举例说明:经典问题--学生身高问题 我们需要 ...

  8. em算法python代码_EM 算法求解高斯混合模型python实现

    注:本文是对<统计学习方法>EM算法的一个简单总结. 1. 什么是EM算法? 引用书上的话: 概率模型有时既含有观测变量,又含有隐变量或者潜在变量.如果概率模型的变量都是观测变量,可以直接 ...

  9. (转载)机器学习知识点(十四)EM算法原理

    1.引言 以前我们讨论的概率模型都是只含观测变量(observable variable), 即这些变量都是可以观测出来的,那么给定数据,可以直接使用极大似然估计的方法或者贝叶斯估计的方法:但是当模型 ...

最新文章

  1. Android View篇之自定义验证码输入框
  2. 我理解的session和cookie
  3. django2中关于时间处理策略
  4. java 并发测试main方法_Java并发测试
  5. HTTP请求上下文之终结:HttpContext类
  6. HttpUtility.UrlEncode 方法
  7. 常用python内置函数_python常用内置函数
  8. Win10系统msvcr120.dll丢失解决
  9. 九曲黄河万里沙,浪淘风簸自天涯 — 正则表达式
  10. Windows API——SHFileOperation——文件操作
  11. 用火箭送快递?淘宝宣布联合蓝箭航天起启动“宝箭”计划
  12. AppStore SDK
  13. 计算机毕业设计的步骤
  14. 为了相同的前缀-麦迪时刻
  15. redirect_uri域名与后台配置不一致
  16. eas上传文件到服务器,金蝶eas要使用云服务器
  17. 078 周期函数定积分性质及定积分三大性质总结
  18. ICC 图文学习——LAB2:Design Planning 设计规划
  19. 数学运算符“异或”的妙用
  20. 2000年英语一真题及答案

热门文章

  1. java me基础教程 pdf_Java ME手机应用开发技术与案例详解 PDF
  2. 【OpenGL从入门到精通(二)】绘制一个点
  3. python求偏度系数_用 Python 讲解偏度和峰度
  4. java构造器_Java构造器就是这么简单!
  5. linux nat冲突,Linux系统下的NAT及防火墙的混合应用
  6. Tensorflow-gpu的方式
  7. 工业级光纤收发器的选用方法
  8. 光纤交换机的配置 光纤交换机的由来是什么
  9. 选购工业交换机时,工业交换机的IP等级多少比较合适?
  10. 【渝粤教育】电大中专新媒体营销实务 (6)作业 题库