EM算法(具体到抽象)
来源:互联网 发布:电台主播录音软件 编辑:程序博客网 时间:2024/06/09 16:53
还是例子
例子是最好的说明思想的利器,光有思想,如果不应用到实际中,那就是思想,是哲学家甚至是数学家研究的范畴。不过个人觉得,只有应用到实际中,思想才算落地,那就是找到最合适的例子和应用场景来说明算法和思想。 今天我们就用例子来解释EM算法(expectation maximization algorithm)。
掷硬币
场景: 假设有两枚硬币A,B,A投掷后朝上(head)的概率为
观察: 任意选一个硬币,投掷10次,观察到实验结果,如此重复做5次实验。
目标: 推断AB硬币朝上的概率
这里的隐藏变量是什么?
选择A/B的序列。
最大似然估计(含与不含隐变量)
maximum likelihood
如果知道每次选的是A还是B,那可以直接估计(a)。
如果不知道选的是A还是B(隐变量),只观测到5次循环共50次投币的结果,这时就没法直接估计A和B的正面概率。EM算法此时可起作用(图b)。所以说:EM算法用于含有隐变量的概率模型参数的极大似然估计。
接下来看如何E-M步骤迭代:
1. 初始化:将
2. E-Step: 第一次抛,结果为[HTTTHHTHTH], 利用最大似然该硬币为A的概率是:
该硬币为B的概率是0.55.
同理,求出其他的概率,从而得到隐变量的概率分布:
直到现在我们求解都是隐变量;还没到期望值。
根据隐变量的概率可以求解期望值:对A:0.45*5=2.2H, 2.2T; 对B而言, 0.55*5=2.8H,2.8T。
从而得到期望值:
至此我们求出了所有的期望值。
2. M-step
根据期望值,继续极大似然计算将得到新的参数。记住:M步就是求参数的分布的。
继续重复步骤1和2直到收敛。
看到这里估计有个大体印象。
总结
- 本质上是M步就是最大似然估计,找到一个最大概率的已知变量的概率分布,比如:A出现正面的概率。
- 那么E步,就是期望,观察的是5个朝上,5个朝下,根据参数分布和观测数据,可以推出期望值。所以求期望值的公式是核心和关键。里面利用了隐变量。
- A正面的概率p,B正面概率是q,假设10次里有3次朝上,那么隐变量为A的概率为:
公式如下:p3(1−p)7p3(1−p)7+q3(1−q)7
继续抽象。
EM算法原型
- 基于
θt推断隐变量Z的期望,记为Zt - 基于以观测变量
X和Zt对参数θ做极大似然估计,记作θt+1
EM算法
输入:
输出:
模型参数
(1) 选择参数的初始值
(2)E步:记
(3)M步:求使得
(4) 重复步骤2和3,直到收敛。
期望值的公式如何推导的
这就是EM算法的创新之处,推导过程利用了Jensen不等式,下界函数等。 保证了每次迭代,对数似然函数(目标函数)不断增大。否则迭代来迭代去,到处乱跑,那么目标函数不稳定就没意义了。详细的推导下次再补,可以参考资料1. 其实这才是EM算法的最精美的部分。
本质上是:通过不断求解下界的极大化来逼近求解对数似然函数极大化的算法。
参考资料
- 统计学习方法 第九章 EM算法及其推广
- Do C B, Batzoglou S. What is the expectation maximization algorithm?[J]. Nature biotechnology, 2008, 26(8): 897-899.
- https://wenku.baidu.com/view/360fdc9e4a7302768f99398e.html
- EM算法(具体到抽象)
- 从 GMM 到 EM 算法
- EM算法(转载)
- EM算法(2)
- (EM算法)The EM Algorithm
- (EM算法)The EM Algorithm
- (EM算法)The EM Algorithm
- (EM算法)The EM Algorithm
- (EM算法)The EM Algorithm
- (EM算法)The EM Algorithm
- (EM算法)The EM Algorithm
- (EM算法)The EM Algorithm
- (EM算法)The EM Algorithm
- (EM算法)The EM Algorithm
- (EM算法)The EM Algorithm
- (EM算法)The EM Algorithm
- (EM算法)The EM Algorithm
- (EM算法)The EM Algorithm
- Day 2:Android项目的目录结构详解
- maven感想
- 2017CCPC哈尔滨 B:K-th Number(二分)
- 【Leetcode】 Word Ladder
- 文章标题
- EM算法(具体到抽象)
- USB驱动(二)
- 学习笔记系列之SpringCloud | 第一章 服务注册中心(Eureka)
- js在span中最前面添加内容
- MySQL增加外键的两种方式和案例
- 猜拳游戏2.0函数分割
- win平台下持续集成
- 【JavaScript】jQuery中的$("#id")与document.getElementById("id")的区别
- Mono源码阅读--加载文件