EM算法通用形式(ESL 8.5.2)
来源:互联网 发布:中国地名数据库下载 编辑:程序博客网 时间:2024/06/05 15:03
8.5.2的EM算法的描述比较晦涩,这里总结一下EM算法的general形式。EM算法主要用于最大化似然函数。某些似然函数要最大化可能比较困难,但如果可以引入某些隐变量(latent data),那么这个最大化问题可能会变得简单一些。在The Element of Statistical Learning这本书里面这叫做data augmentation。需要注意的是,一般机器学习里面(尤其深度学习)说的data augmentation指的是对原来的数据进行一定的变换(比如计算机视觉里面把图片旋转拉伸放缩)再加入到原始数据里面,这样数据量大了,一定程度上面可以减少泛化误差,或者增加训练样本的量。可以参见巨著Deep Learning里面7.4节。还要注意,EM算法本质上是一个优化算法。从机器学习算法的三大构成(模型,目标函数,优化方法)来看,假定的数据分布是模型,最大似然是目标函数,而EM算法是用以优化出结果的方法。用形式化的方法来说,如果假定的数据分布的具有参数
很多人可能对于那个分号有点懵逼,其实就是表示给定参数
8.5.2对EM算法通用形式的描述有点不太好懂,先从吴恩达的比较好懂的版本开始说起。理解EM算法需要一个数据工具,Jensen不等式。
Theorem 如果
如果
证明这个不等式也不难,需要用到凸函数的性质。如果
即
因为
回到最大似然的问题,假设我们额外增加的latant variable隐变量是
最后一行用了Jensen不等式,
根据Jensen不等式,如果
因此
因此,当
接下来是ESL上面8.5.2的版本,稍微不一样的使得问题复杂的就是一开始上述的
因此
取对数,那么就是
如果对于上式取对
这个已经很像是上面的
然而只有两式相等的情形是不够的,需要知道如何迭代使得
接下来是证明只需要优化
因此对于任意
以上两个版本是对EM的不同解读。共同之处都是需要额外的隐变量使得问题简化。第一个版本是用Jensen不等式求出一个过当前解的下界函数,通过优化这个相对简单的函数来迭代解。而第二个版本则是直接把似然函数变成两个部分来看,第二部分必然减少但是因为负号而增加,因而只需要优化第一部分。相对来说第二版本,即ESL书上的版本,相对比较晦涩。
可能有人会发现在这个版本里面,在对数log里面分母的一项是
ESL上面8.5.3节的本质和第一个版本是一回事。这里也间接解决了课本习题8.1和8.2。吴恩达版本也是习题8.7的一个说明。
熟悉非负矩阵分解算法的人可能一下子就觉得很熟悉,其实NMF的paper里面也说到用了EM-like的方法。而且NMF里面也是通过不断放缩找到过当前解的一个上界函数来优化以迭代,思路本质上是一样的。
- EM算法通用形式(ESL 8.5.2)
- ESL-chapter8-EM算法2
- EM算法(2)
- ESL-chapter8-EM算法介绍1-混合高斯的例子
- 总结STL的通用算法基本形式
- 《统计学习》笔记(2)-- EM算法
- EM算法介绍2
- EM算法【2】
- EM算法(转载)
- (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
- window 安装thrift
- jxbrowser-6.14 jxbrowser破解版
- WPF头像裁剪
- 【脚本语言系列】关于PythonWeb客户端标准库requests,你需要知道的事情
- 79-Word Search
- EM算法通用形式(ESL 8.5.2)
- 51Nod 1046 A^B Mod C
- MongoDB--架构搭建 分片+副本集
- Codeforces Maximum in Table
- python脚本实现git commit hooks钩子
- 高性能 DOM & 重排重绘
- 88-Merge Sorted Array
- 【Docker】Centos7使用docker下安装MySQL
- 静态测试与动态测试