uniform机器学习极简入门5—EM算法

上一节我们介绍了高斯混合模型(GMM),这个模型在求解的时候我们提到了EM算法,本节我们详细介绍下EM算法的基本流程,其实在KMeans中也有EM的思想,EM算法在很多概率求解中都有用到,我们也会在后续中一一提到。

1 EM算法概述

我们先简单描述EM算法

EM算法就是用来解决存在隐变量的参数估计问题

在GMM模型中,我们在利用样本估计每个高斯分量模型的参数之前,需要先确定每个样本的所属类别,然后才能根据类别对应的样本利用最大似然函数来求解。具体步骤可以拆成如下

  1. 先给每个样本估计一个类别概率
  2. 根据样本所属类别概率求解各个类别对应的参数,利用最大似然估计的方法

这里的类别就是EM中提到的隐变量,传统的似然函数估计是
\{x_1, x_2,...\} ->\theta
现在似然函数变得更复杂
\{x_1, x_2,...\} -> {z_1, z_2, ...} -> \theta
下面我们就推导下这个更加泛化的过程

2 EM算法推导

首先我们先假设某个样本的概率
P(x_j;\theta)
这里的样本x对应的概率参数还由隐变量z决定,我们可以根据联合概率和边际概率得到
P(x_j;\theta)=\sum_{z_j}P(z_j)P(x_j|z_j;\theta)
=\sum_{z_j}P(x_j,z_j;\theta)\ \ \ (1)

我们的目标还是希望似然函数最大化,那么对应样本集合,我们有
L = \prod_{j=1}^mP(x_j;\theta)

logL = \sum_{j=1}^mlogP(x_j;\theta)
=\sum_{j=1}^mlog[\sum_{z_j}P(x_j,z_j;\theta)] \ \ \ \ (2)
上面我们把公式1带入到最大似然求解中,可以得到公式2,但是这里有个很麻烦的log,无法直接求解极值,下面对P()进行转换,表示成期望
logL=\sum_{j=1}^mlog\sum_{z_J}Q(z_j)\frac{P(x_j,z_j;\theta)}{Q(z_j)} \ \ \ \ (3)
这里Q(z)是z的分布,由Jensen不等式我们知道,对于凸函数有

凸函数

E[f(x)]>=f[E(x)]

凹函数则相反。

公式3中,log正好是凹函数根据Jensen不等式可以得到
logL>=\sum_{j=1}^m\sum_{z_j}Q(z_j)log\frac{P(x_j,z_j;\theta)}{Q(z_j)} \ \ \ \ \ (4)
Jensen不等式使得等号成立的条件是x为常数
\frac{P(x_j,z_j;\theta)}{Q(z_j)}=c \ \ \ \ \ (5)
已知Q(z)属于概率分布,有如下条件
\sum_{z_j}Q(z_j)=1 \ \ \ \ (6)
根据公式(5)(6)得到
Q(z_j)=\frac{P(x_j,z_j;\theta)}{\sum_{z_j} {P(x_j,z_j;\theta)}}
=P(z_j|x_j;\theta)
得到Q(z)之后,我们就可以求解公式(4)。

所以这里的EM步骤可以归纳为

  1. E步(expctation)
    根据参数初始值或者上一轮的迭代参数结果来计算隐变量的后验概率,即隐变量的期望
    Q(z_j)=p(x_j|x_j;\theta)
  2. M步,求解使得似然函数最大化的参数
    argmax_{\theta}\sum_j\sum_{z_j}{Q(z_j)}log(\frac{P(x_j,z_j;\theta)}{Q(z_j)})

大白话解释就是:

  1. 先根据分布参数计算每个样本属于各个隐变量的概率
  2. 利用各个样本所属的类别概率,然后最大化似然函数,更新分布的参数
  • kmeans

kmeans计算就是这样,我们先随机初始化各个类别的中心向量,然后根据中心向量计算各个样本的所属类别(E步骤),然后根据各个样本所属类别来更新各个类别的参数(中心向量;M步骤)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 EM算法,在学术界的重视程度,要高于在工业界。它是一个做数据优化的方法。比如现在如果遇到问题,如果想对问题做...
    blade_he阅读 3,472评论 1 53
  • 以西瓜书为主线,以其他书籍作为参考进行补充,例如《统计学习方法》,《PRML》等 第一章 绪论 1.2 基本术语 ...
    danielAck阅读 4,694评论 0 5
  • 这一节开始我们讨论非监督学习(Unsupervised Learning)的算法。在监督学习算法中,训练数据既包含...
    secondplayer阅读 4,962评论 1 2
  • 别让等待成为等待 等待不分年龄的限制,谁都有等待的时候,等待爱人到来,等待工作顺利,等待想要等待的一切…等待即是好...
    爱吃糖阅读 1,319评论 0 7
  • 我突然觉得有时人性挺可怕的 有时你自觉和他无甚关系 可是别人能上来就责问你 我为了你放弃了出国的机会 我为了你两个...
    66happy阅读 230评论 1 1