机器学习——EM和GMM(基于李航老师的推导)

EM算法推导可以根据Andrew NG的,他的推导逻辑性非常强,没有考虑概率模型,但是推导完了还是觉得云里雾里。李航老师的是根据概率模型过来,意义比较清晰,但是!!!书上有bug!吐血........还有就是书上的表达有点不适合我们通常的定义法。

感谢大牛为我解疑惑:

http://www.cnblogs.com/Determined22/p/5776791.html

1 EM算法

EM是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计。EM算法每次迭代由两步组成:(1)E步,求期望(expected)的下线;

(2)M步,求期望极大值。GMM是EM的一种应用。

如果没有隐变量,可直接用极大似然估计(最大熵模型),或极大后验概率(朴素贝叶斯)估计模型参数。

E步:计算期望

Q(\theta, \theta^{(i)})=\sum _{Z}log(Y,Z;\theta)P(Z|Y;\theta^{(i)})

P(Z|Y;\theta^{(i)})是个能求出来的值,表示给定了\theta^{(i)}和观测数据Y求出的。

M步:求使Q(\theta, \theta^{(i)})最大的参数\theta,确定第i+1次迭代的参数的估计是\theta^{(i+1)}

arg\ max_{\theta }\ Q(\theta, \theta^{(i)})

2 EM通俗理解

什么是含有隐变量的概率模型参数?

当输入的数据不是来源于一个概率分布模型的时候,就涉及到含有隐变量的概率模型。比如身高和性别问题,如果告诉你身高X=x=1.65,这个人是男还是女(y)?。因为这个是概率模型,所以如果p(男|X=1.65)>p(女|X=1.65),那这个就是男生可能性大。原来遇到这种问题,就是假设身高服从一定的分布规律,如正态分布,那我建立模型,根据极大似然估计估计出正态分布的均值和方差,然后把x带入求的概率。但这在这个问题中显然不合理,因为男生和女生的身高分布是不一样的,男生的身高是一个正态分布,女生的身高也是一个正态分布,二者的均值和方差肯定有区别。

所以我们不得不判断是来自于男生还是女生,确定来源于哪个模型,才能用极大似然的方法估计。ok,导出公式:

假设模型参数为\theta =(\pi ,p,q),Y为观测数据X =(x1,...,xn)^{T},未观测数据Z =(z1,...,zn)^{T},则观测数据的似然函数:

P(X;\theta )=\sum _{Z}P(X,Z;\theta)=\sum _{Z}P(Z;\theta)P(X|Z;\theta)

P(X;\theta )表示模型参数\theta下的联合概率值P(Y),P(X|Z;\theta)表示参数\theta下条件概率P(X|Z)

3 EM算法导出(基于极大似然估计的)

面对一个含有隐变量的概率模型,目标是极大化观测数据X关于参数\theta的对数似然函数:

L(\theta )=logP(X;\theta )=log\sum _{Z}P(X,Z=z;\theta )

L(\theta )=log\sum _{Z}P(z;\theta )P(X|Z=z;\theta )

3.1 建立L的下界(jensen不等式)

因为EM算法是迭代算法,我们希望每次迭代都能让L增大,即新估计的参数和第i次迭代估计的参数\theta^{i}做差值:L(\theta )-L(\theta^{i} )>0

L(\theta )-L(\theta^{i} ) = \sum_{X}log\sum_{Z}P(X|Z;\theta )P(Z;\theta )-\sum_{X}logP(X;\theta^{i} )

这里引入jensen不等式定理,对于凹函数f,f(E(x))\leq E(f(x)),凸函数则相反f(E(x))\geq E(f(x))

log是凸函数,然后根据jensen不等式,我们构造一下f(E(x))。

(这里插一句李航老师的那本书有点问题!!!想了半天总在想为什么是这样?后面才知道他那错了。)

ln\sum_{j}p_{j}x_{j}\geq\sum_{j} p_{j}ln x_{j}, p_{j}\geq 0, \sum_{j}p_{j}=1

为了构造f(E(x)),我们选择p_{j}=P(Z|X;\theta^{i} ),因为\sum _{Z}P(Z|X;\theta^{i} )=1,则:

L(\theta )-L(\theta^{i} ) =log \sum _{Z}P(Z|X;\theta^{i} )\frac{P(X|Z;\theta)P(Z;\theta)}{P(Z|X;\theta^{i} )} -logP(X,Z;\theta^{i} )

根据jensen不等式:

L(\theta )-L(\theta^{i} ) \geq \sum _{Z}P(Z|X;\theta^{i} )log\frac{P(X|Z;\theta)P(Z;\theta)}{P(Z|X;\theta^{i} )} -logP(X,Z;\theta^{i} )

又因为,

logP(X,Z;\theta^{i} )= \sum _{Z}P(Z|X;\theta^{i} )logP(X,Z;\theta^{i} )

所以

L(\theta )-L(\theta^{i} ) \geq \sum _{Z}P(Z|X;\theta^{i} )log\frac{P(X|Z;\theta)P(Z;\theta)}{P(Z|X;\theta^{i} )logP(X,Z;\theta^{i} )}

L(\theta )\geq L(\theta^{i} ) + \sum _{Z}P(Z|X;\theta^{i} )log\frac{P(X|Z;\theta)P(Z;\theta)}{P(Z|X;\theta^{i} )logP(X,Z;\theta^{i} )}

3.2 最大化下界

L(\theta )\geq B(\theta,\theta ^{i} )

B(\theta,\theta ^{i} )L(\theta )的下界。任何可以使B(\theta,\theta ^{i} )增大的\theta,也可以使L增大,为了让L尽可能大,就要让它的下界B尽可能大,即:

\theta ^{i+1}=arg\ max_{\theta }\ B(\theta,\theta ^{i} )

排除不含变量θ的表达式,定义Q函数:

Q(\theta,\theta^{i} ) = \sum _{Z}P(Z|X;\theta^{i} )logP(X|Z;\theta)P(Z;\theta)

这个时候可以用求导的方法来获得让Q最大的θ了。

4 EM的应用--GMM高斯混合模型

高斯混合模型:假设存在K个高斯模型(正态分布)的数据,如男女身高问题则K=2,数据来自第k个模型的概率为\alpha_{k},则GMM表示为:

p(y;\theta )=\sum_{k=1}^{K}\alpha _{k}\phi (y;\theta_{k})

\sum_{k=1}^{K}\alpha _{k}=1\phi (y;\theta_{k})是第k个高斯分布密度,\theta_{k}=(\upsilon _{k},\sigma _{k}^{2} )

\phi (y;\theta_{k})=\frac{1}{\sqrt{2\pi }\sigma _{k}}exp(-\frac{(y-\upsilon _{k})^{2}}{2\sigma _{k}^{2}})

步骤:

(1)明确隐变量,写出完全数据的对数似然函数:

(2)E步,确定Q函数

(3)M步,最大化Q函数

猜你喜欢

转载自blog.csdn.net/woshicao11/article/details/81506729
今日推荐