EM(Expectation Maximization)算法

  在现实数据中,我们经常会遇到一些“不完整”的样本,如某些样本的属性值未知,某些样本的标签未知,这些未知的属性值统称为隐变量。由于隐变量的存在,我们不能直接通过极大似然估计求出模型的参数,而EM算法在这些为观测属性的情况下仍能对模型参数进行估计。EM算法是一种迭代优化策略,在每一次迭代过程中都包含两部:1. 求期望 2. 最大化。
  EM算法的基本思想是:首先根据已经给出的观测数据(无缺失数据),估计出模型参数的值;然后依据上一步估计出的参数值估计缺失数据的值,再依据估计出的缺失数据加上之前已经观测到的数据重新对参数值进行估计;反复迭代,直到最后收敛。
  其基本思想换句话而言,即:若参数 θ 已知,则可根据训练数据推断出最优隐变量 Z 【E步,求Z的期望】;若Z的值已知,则可方便对参数 θ 做极大似然估计(M步)。

预备知识

Jensen不等式

  设 f 是定义域为实数的函数,若 x R f 0 ,那么 f 是凸函数。
  Jensen不等式定义如下:若 f 是凸函数,X是随机变量,则有 E [ f ( X ) ] f ( E [ X ] ) 。当且仅当 X 是常量时,上式取等号。
  当Jensen不等式应用于凹函数时,不等式方向反向。当且仅当 X 是常量时,Jensen不等式等号成立。

EM算法推导

  样本集 X = { x 1 . . . x m } ,包含 m 个单独的样本;其中每个样本 x i 对应的类别 z i 是未知的(即每个样本属于哪个分布式未知的);我们需要估计概率模型 p ( x , z ) 的参数 θ ,即寻找适合的 θ l o g L ( θ ) = i l o g p ( x ( i ) ; θ ) 最大。但是,由推导可知该对数似然函数不能直接求得,因为 z ( i )

(1) i l o g p ( x ( i ) θ ) = i l o g z ( i ) p ( x ( i ) z ( i ) θ ) (2) = i l o g z ( i ) Q i ( z ( i ) ) p ( x ( i ) z ( i ) θ ) Q i ( z ( i ) ) (3) i z ( i ) Q i ( z ( i ) ) l o g p ( x ( i ) z ( i ) θ ) Q i ( z ( i ) )
  这里介绍上式后面的不等式交换 Q i ( z ( i ) ) [ p ( x ( i ) z ( i ) θ ) Q i ( z ( i ) ) ] p ( x ( i ) z ( i ) θ ) Q i ( z ( i ) ) 的期望,且 l o g ( x ) 为凹函数,故按照Jensen不等式,有 E [ f ( X ) ] f ( E [ X ] )
  由上式,我们得到了对数似然函数 l o g L ( θ ) 的下界。

算法步骤

  因此EM算法分为两步:

  • 固定 θ ,得到 Q ( Z ) 的分布。按照 Jensen不等式成立的条件,当且仅当条件 x 为常数时,等式成立。即 p ( x ( i ) z ( i ) θ ) Q i ( z ( i ) ) = c 。由于该等式不依赖于 z ( i ) ,故有
    (4) Q i ( z ( i ) ) = p ( x ( i ) z ( i ) θ ) z p ( x ( i ) z ( i ) θ ) (5) = p ( x ( i ) z ( i ) θ ) p ( x ( i ) θ ) (6) = p ( z ( i ) | x ( i ) θ )
    故在固定参数 θ 后, Q i ( z ( i ) ) 的计算就是后验概率。
  • 固定Q(Z),优化 θ ,去极大化对数似然函数 l o g L ( θ )

猜你喜欢

转载自blog.csdn.net/qq_19784349/article/details/79996486