1 笨笨的孩子慢慢学stay hungry stay foolish 2 学习,思考,实践,改变

0%

EM算法

1 简介

EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计。

E步:求期望;M步,求极大。

1.1 例子

P176三硬币模型:

y是观测变量,表示一次试验结果是1或0;

z(随机变量)是隐变量,表示未观测到的抛硬币A的结果

$\theta = (\pi,p,q)$ 是模型参数。

这个模型是以上数据的生成模型

1.2 模型

观测数据是$Y=\left(Y_{1}, Y_{2}, \cdots, Y_{n}\right)^{\mathrm{T}}$,未观测数据表示为$Z=(Z_1,Z_2…Z_n)^{\mathrm{T}}$,则观测数据的似然函数是:

即:

求模型参数 $\theta = (\pi,p,q)$的极大似然估计是:

1.3 迭代算法

这个问题只能通过迭代的方法求解,EM算法就是用于求解这个问题的一种迭代算法。

1,选取参数的初值,记作 $\theta^0 = (\pi^0,p^0,q^0)$,然后迭代计算参数的估计值,直至收敛为止。第i次迭代的参数估计值是 $\theta^i = (\pi^i,p^i,q^i)$

2, E步,计算在模型参数$\theta^i$下观测数据$y_i$来自硬币B的概率:

M步计算模型参数的新估计值(n是独立重复n次实验):

P177的计算例子,不同的初值得到不同的参数估计值。

2 EM算法

Y表示观测随机变量的数据,Z表示隐随机变量的数据。Y和Z连到一起称为完全数据。不完全数据Y的似然函数是$P(Y|\theta)$,Y和Z的联合概率分布是$P(Y,Z|\theta)$,完全数据的对数似然函数是$logP(Y,Z|\theta)$,EM算法通过迭代求$L(\theta) = logP(Y|\theta)$

(1) 选择参数初始值$\theta^{(0)}$,开始迭代。

(2) E步,记$\theta^i$是第i次迭代参数$\theta$的估计值,在第i+1次迭代的E步,计算:

这离的$P(Z|Y,\theta^{(i)})$是在给定观测数据Y和当前参数估计$\theta^{(i)}$下隐变量数据Z的条件分布。

(3) M步,求使得$Q\left(\theta, \theta^{(i)}\right)$ 极大化的$\theta$,确定第i+1次迭代的参数估计值$\theta^{(i+1)}$。

(4) 重复2、3步直到收敛。Q函数是EM算法的核心。

EM算法也是要先假设数据分布的。EM算法就是当抽取得到的每个样本都不知道是从哪个分布来的时候,通过迭代计算的方法来近似实现对观测数据的极大似然估计。EM 算法解决这个的思路是使用启发式的迭代方法,既然我们无法直接求出模型分布参数,那么我们可以先猜想隐含参数(EM 算法的 E 步),接着基于观察数据和猜测的隐含参数一起来极大化对数似然,求解我们的模型参数(EM算法的M步)。

3 Reference

1,知乎 EM算法

2,《李航 统计学习方法》