前篇已经对EM过程,举了扔硬币和高斯分布等案例来直观认识了, 目标是参数估计, 分为 E-step 和 M-step, 不断循环, 直到收敛则求出了近似的估计参数, 不多说了, 本篇不说栗子, 直接来推导一波.

Jensen 不等式

在满足:

  • 一个 concave 函数, 即 形状为 "\(\bigcap\)" 的函数 \(f(x)\)

  • \(\lambda_j \ge 0\)
  • \(\sum \limits _j \lambda_j = 1\) 类似于随机变量的分布

的前提条件下, 则有不等式:

\(f(\sum \limits _j \lambda_j x_j) \ge \sum \limits _j \lambda_j f(x_j)\)

恒成立, 则该不等式称为 Jensen 不等式. 是有些不太直观哦, (sum 是最后哦, 有时候会犯晕).

为了更直观一点, 考虑 \(\lambda\) 只有两个值, 即:

\(\lambda_1 = 1-t \\ \lambda_2 = 1\)

\(其中, 0 \leqslant t \leqslant 1\)

"\(\bigcap\)" 函数 f(x) 中有一段区间 [a, b], 构造出该 范围内的一个点 \(x_t\)

当, \(x_t = (1+t)a + tb\) 则有:

\(f((1-t)a +tb) \ge (1-t)f(a) + tf(b)\)

这里跟之前写过的 convex 其实是一模一样的, 要是还不直观, 就自个画个草图就秒懂了.

左边是函数的值, 右边连接两个端点a,b的函数值的 直线, 因为是 "\(\bigcap 的\)", 故函数值必然在直线的上方.

用数学归纳法, 当 M > 2:

\(f(\sum \limits _{j=1}^M \lambda_j x_j) \ge \sum \limits _{j=1}^M \lambda_j f(x_j)\)

EM算法推导

假设给定一个包含 n 个独立的训练样本的数据集, \(D = \{ x_1, x_2, x_3...x_n) \}\) 希望拟合一个概率模型 \(p(x, z)\) , 其对数似然函数(log likelihood) 为:

为啥要 log, 乘法变加法, 不太想说了, 自己都重复吐血了

似然, 不加log 前是: \(l(\theta) = \prod \limits _{i=1}^n p(x; \theta)\) 的嘛, 样本的联合概率最大

\(l(\theta) = \sum \limits _{i=1}^n log \ p(x; \theta)\)

\(= \sum \limits _{i=1}^n log \ \sum \limits _{z} p(x, z; \theta)\)

理解

\(\sum \limits _{z} p(x, z; \theta)\) 给定 \(\theta\) 的前提下, 关于 x, z 的 联合概率

跟之前扔硬币是一样的, 对于每个独立数据的产生, 其实还有一个隐含的因素 z (扔硬币中,到底这次试验是来自于硬币A 还是硬币B

每个Z因素, 影响着 p(x,z) 的 联合概率分布. 考虑所有的 z, 则是全概率了呀.

  • 对于 \(p(x; \theta)\) 直接通过 x 来观测 \(\theta\) 比较难 (扔硬币中, 没有上帝视角, 不知道扔结果是哪个硬币产生的)
  • \(z^{(i)}\) 是一个隐变量(latent), 如果能观测到 \(z^{(i)}\) 则参数预测会容易很多, EM算法就是来解决这个问题的

EM 算法呢, 分为两个步骤:

  • 在 E 步中, 构建 \(l(\theta)\) 的下界函数 (给定 \(\theta\) 来找 z)
  • 在 M 步中, 最大化 这个下界函数

不太直观, 就回顾上篇扔硬币的栗子, 这里的 z 就是那个 来自哪里A 还是 B 的概率(每次试验)

设 \(Q_i\) 为关于 z 的概率分布, 即 \(\sum \limits _{z} Q_i(z) = 1\) (z 如是连续变量则 \(\sum \rightarrow \int_z\)) ,

则对于上面的对数似然函数:

\(= \sum \limits _{i=1}^n log \ \sum \limits _{z} p(x_i, z_i; \theta) \ (1)\)

对 p 的部分, 同时 乘上 和除以 \(Q_i(z_i)\) 不改变等式 , 这种技巧, 中学的 "配平方 或 数列裂项求和" 一样滴

\(= \sum \limits _i log \sum \limits _{z_i} Q_i(z_i) \frac {p(x_i, z_i; \theta)}{Q_i(z_i) } \ (2)\)

log 函数是 concave 的, 联想 jensen不等式

\(f(\sum \limits _j \lambda_j x_j) \ge \sum \limits _j \lambda_j f(x_j)\)

即 log 对于与 f(); \(\sum \limits _{z_i} Q_i(z_i) 对应于 \sum \limits _j \lambda_j\) ; 最后一项对 \(x_j\)

\(\ge \sum \limits_{i} \sum \limits_{z_i}Q_i(z_i) \ log \frac {p(x_i, z_i; \theta)}{Q_i(z_i) } \ (3)\)

就类似与, 把一个, 函数里面的参数, 提取到 函数外面来. 如还是不理解, 回看之前写的 convex 篇

什么时候会取到 等于?

即当 \(\frac {p(x_i, z_i; \theta)}{Q_i(z_i) } = c\) 是个常数的时候, (2) 和 (3) 是相等的.

即 \(p(x_i, z_i; \theta) = c \ * Q_i(z_i)\) 在 \(\theta\) 给定下, 关于 x, z 的联合概率分布 与 隐变量 z 的分布是一个线性关系

因为 \(\sum \limits_{z_i} Q_i(z_i) = 1\), 如果将 \(Q_i(z_i)\) 认为是 给定 \(x_i 和 z_i\) 的后验概率分布, 这样就得到了该似然函数的一个下界,

根据全概率(后验) 与贝叶斯公式:

\(Q_i(x_i) = \frac {p(x_i, z_i; \theta)}{\sum \limits _{z_i} p(x_i, z_i; \theta)}\)

\(=\frac {p(x_i, z_i; \theta)}{p(x; \theta)}\)

\(=p(z_i|x_i, \theta)\)

相当于求 给定 \(\theta 和 x_i\) 的情况下, 求 z_i 的条件概率, 果然, 深刻理解贝叶斯公式显得多么重要呀

再回顾一波贝叶斯公式:

设A1,A2,A3..构成完备事件组, 则对任意一事件B有:

\(P(A_i|B) = \frac {P(A_i)P(B|A_i)}{\sum \limits _{i=1}^n P(A_i)P(B|A_i)}\)

同上述, 只要当我们取 \(Q_i(z_i)\) 的值为 给定 \(\theta 和 x_i\) 的后验概率分布的时候, 就能保证:

\(\frac {p(x_i, z_i; \theta)}{Q_i(z_i) }\)

的值是一个常数 (反过来推的), 既然是个常数, 也就前面 (3) 的地方可以取 等号 啦, 即:

\(\sum \limits _{i=1}^n log \ \sum \limits _{z} p(x_i, z_i; \theta) = \sum \limits_{i} \sum \limits_{z_i}Q_i(z_i) \ log \frac {p(x_i, z_i; \theta)}{Q_i(z_i) }\)

这样一来, 相当于在 E 步得到了似然函数的一个下界, 然后在 M 步, 求解(3) 最大值时候的参数 \(\theta\) . 然后重复以上的 E, M 步骤:

E-步: For each i:

​ \(Q_i(z_i) = p(z_i | x_i; \theta)\)

M-步, 更新\(\theta\):

​ \(\theta = arg \ max _\theta \sum \limits_{i} \sum \limits_{z_i}Q_i(z_i) \ log \frac {p(x_i, z_i; \theta)}{Q_i(z_i) }\)

....

循环直到收敛, 则估计出了 参数 \(\theta\) 但, 万一不收敛呢?, so, 必须证明一波, EM算法是收敛的哦

证明EM算法会收敛

假设 \(\theta^{(t)} 和 \theta^{(t+1)}\) 为EM算法的连续两个步骤的参数值, 欲证\(l (\theta)\)收敛, 只需证:

\(l(\theta^{(t)}) \leq l(\theta^{(t+1)})\)

即可EM算法使得似然函数的值单调递增即可

根据前面关于用 jensen不等式的取等条件, 推导出, 取得 \(Q_i(z_i)^{(t)}\) 的方式是:

\(Q_i ^{(t)} (z_i) = p(z_i | x_i; \theta ^{(t)})\)

此条件下, 使得jensen不等式取等即:

\(l(\theta^{(t)}) = \sum \limits_{i} \sum \limits_{z_i}Q_i(z_i) \ log \frac {p(x_i, z_i; \theta ^t)}{Q_i(z_i) }\)

而参数 \(\theta^{(t+1)}\) 的取值方式, 是使得上面的这个等式的值最大, 则必然 \(l(\theta^{(t+1)}) \ge l(\theta^{(t)})\) 展开一波:

\(l(\theta^{(t+1)}) \ge \sum \limits_{i} \sum \limits_{z_i}Q_i^t(z_i) \ log \frac {p(x_i, z_i; \theta ^{(t+1)})}{Q_i^t(z_i) } \ (4)\)

\(\ge \sum \limits_{i} \sum \limits_{z_i}Q_i^t(z_i) \ log \frac {p(x_i, z_i; \theta^t)}{Q_i^t(z_i) }\ (5)\)

\(=l(\theta^{(t)}) \ (6)\)

  • (4) 源于不等式的性质, 必然成立嘛
  • (5) 就是取最大值的一个过程必然成立
  • (6) 取相等的方式去是应用了 Jensen不等式

即证明了\(l(\theta^{(t)}) \leq l(\theta^{(t+1)})\) , 即EM算法是收敛的呀.

小结

首先是要理解,参数估计的 是在干嘛, 需要回顾统计学的基础知识, 或理解上篇扔硬币的栗子

核心, 用到了一个jensen 不等式, 需要回顾凸函数的一些性质来理解一波

推导的方式呢, 依旧是极大似然估计, 带log (乘法边加法)

推导核心技巧是 全概率与贝叶斯公式, 真正理解太重要, 如LDA, 逻辑回归, 贝叶斯...这些算法都用到了.

证明收敛, 其实只是一些, 推理的技巧, 还是挺有意思的.

总体上, EM算法, 理解起来,我感觉不是很容易, 但, 也没有想象的那样难, 只要肯坚持, 正如爱因斯坦所说的那样嘛, 当然也为了自勉目前在经济和精神双重困境中的自己:

耐心和恒心, 总会获得收获的

EM算法-完整推导的更多相关文章

  1. EM算法简易推导

    EM算法推导 网上和书上有关于EM算法的推导,都比较复杂,不便于记忆,这里给出一个更加简短的推导,用于备忘. 在不包含隐变量的情况下,我们求最大似然的时候只需要进行求导使导函数等于0,求出参数即可.但 ...

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

    今天不太想学习,炒个冷饭,讲讲机器学习十大算法里有名的EM算法,文章里面有些个人理解,如有错漏,还请读者不吝赐教. 众所周知,极大似然估计是一种应用很广泛的参数估计方法.例如我手头有一些东北人的身高的 ...

  3. EM算法以及推导

    EM算法 Jensen不等式 其实Jensen不等式正是我们熟知的convex函数和concave函数性质,对于convex函数,有 \[ \lambda f(x) + (1-\lambda)f(y) ...

  4. Machine Learning系列--EM算法理解与推导

    EM算法,全称Expectation Maximization Algorithm,译作最大期望化算法或期望最大算法,是机器学习十大算法之一,吴军博士在<数学之美>书中称其为“上帝视角”算 ...

  5. 机器学习笔记(十)EM算法及实践(以混合高斯模型(GMM)为例来次完整的EM)

    今天要来讨论的是EM算法.第一眼看到EM我就想到了我大枫哥,EM Master,千里马.RUA!!!不知道看这个博客的人有没有懂这个梗的. 好的,言归正传.今天要讲的EM算法,全称是Expectati ...

  6. EM算法理论与推导

    EM算法(Expectation-maximization),又称最大期望算法,是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计(或极大后验概率估计) 从定义可知,该算法是用来估计参数的,这 ...

  7. NLP —— 图模型(零):EM算法简述及简单示例(三硬币模型)

    最近接触了pLSA模型,该模型需要使用期望最大化(Expectation Maximization)算法求解. 本文简述了以下内容: 为什么需要EM算法 EM算法的推导与流程 EM算法的收敛性定理 使 ...

  8. 概率图模型之EM算法

    一.EM算法概述 EM算法(Expectation Maximization Algorithm,期望极大算法)是一种迭代算法,用于求解含有隐变量的概率模型参数的极大似然估计(MLE)或极大后验概率估 ...

  9. python机器学习笔记:EM算法

    EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域的基础,比如隐式马尔科夫算法(HMM),LDA主题模型的变分推断算法等等.本文对于E ...

随机推荐

  1. mmap - 内存映射文件 - 减少一次内核空间内数据向用户空间数据拷贝的操作

    关于mmap 网上有很多有用的文章,我这里主要记录,日常使用到mmap时的理解: https://www.cnblogs.com/huxiao-tee/p/4660352.html 测试代码: htt ...

  2. Web服务器—IIS

    https://blog.csdn.net/qq_33323054/article/details/81628627 https://jingyan.baidu.com/article/67508eb ...

  3. qt 网络库使用介绍

    qt 网络库使用介绍 在.pro文件中,要手动添加network模块:QT += network 有三个核心类, QNetworkAccessManager: 发送get或者post请求. 用get方 ...

  4. Java学习笔记(4)--- 变量类型,修饰符

    1.变量类型: a.定义: 和C++差不多,就是: type identifier [ = value][, identifier [= value] ...]: type为Java数据类型.iden ...

  5. localStorage在不同页面之间的设置值与取值--加密 localStorage与解密localStorage

    在aa.vue页面 <template> <div> <h1>在aa页面设置值</h1> <button @click="shezhi& ...

  6. 【洛谷P1963】[NOI2009]变换序列(二分图匹配)

    传送门 题意: 现有一个\(0\)到\(n-1\)的排列\(T\),定义距离\(D(x,y)=min\{|x-y|,N-|x-y|\}\). 现在给出\(D(i, T_i)\),输出字典序最小的符合条 ...

  7. 元昊讲django框架

    一 什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. 对于所有 ...

  8. MySQL学习笔记4——DQL

    DQL(数据查询语言) 一.基本查询 1.字段(列)控制1)查询所有列SELECT * FROM 表名; ->"*"表示查询所有列 2)查询指定列SELECT 列1 [, 列 ...

  9. CF-1208 C.Magic Grid

    题目 大意:构造一个n行n列的矩阵,使得每一行,每一列的异或和都相等,n是4的倍数. 先看4*4的矩阵,我们很容易构造出符合要求的矩阵,比如 0    1    2    3 4    5    6  ...

  10. windows server 2008配置多用户远程连接

    打开开始菜单->管理工具->远程桌面服务->远程桌面会话主机配置 右键限制每个用户只能进行一个会话->常规->勾掉限制每个与用户只能进行一个会话 右键远程桌面授权模式-& ...