统计学习方法——第9章 EM算法及其推广(个人笔记)

统计学习方法——第9章 EM算法及其推广(个人笔记)

参考《统计学习方法》(第二版)李航

EM算法是一种迭代算法,每次迭代由两步完成:E步,求期望;M步,求极大。

9.1 EM算法的引入

概率模型有观测变量,又含有隐变量或潜在变量。

EM算法就是含有隐变量的概率模型参数的极大似然估计法,或极大后验概率估计法。

9.1.1 EM算法

例子

(三硬币模型)假设有三枚硬币,分别记作A,B,C,这些硬币正面出现的概率分别是\pi,p,q

进行如下掷硬币实验:先掷硬币A,根据其结果选出硬币B或C,正面选B,反面选C;然后掷选出的硬币,掷硬币的结果,出现正面记作1,出现反面记作0;独立地重复n次实验(n=10),观测结果如下:

1,1,0,1,0,0,1,0,1,1

假设只能观测到掷硬币的结果,不能观测掷硬币的过程。问如何估计三硬币出现正面的概率,即三硬币模型的参数。

解:三硬币模型

P(y|\theta )=\sum_zP(y,z|\theta)=\sum_zP(z|\theta)P(y|z,\theta)\\ =\pi p^y(1-p)^{1-y}+(1-\pi)q^y(1-q)^{1-y}

这里,y是观测变量,表示一次试验观测的结果是1或0,随机变量z是隐变量,表示未观测到的硬币A的结果;\theta =(\pi,p,q)是模型参数。

将观测数据表示为Y=(Y_1,Y_2,\cdots,Y_n)^T,未观测数据表示为Z=(Z_1,Z_2,\cdots,Z_n)^T

则观测数据的似然函数为

P(Y|\theta)=\sum_ZP(Z|\theta)P(Y|Z,\theta)

P(Y|\theta)=\prod_{j=1}^n \left [ \pi p^{y_j}(1-p)^{1-y_j}+(1-\pi)q^{y_j}(1-q)^{1-y_j} \right ]

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

\hat{\theta}=\arg \max_\theta \log P(Y|\theta)

EM算法首先选取参数的初值,记作\theta^{(0)}=(\pi^{(0)},p^{(0)},q^{(0)}),然后通过下面的步骤迭代计算参数的估计值,直至收敛为止。

第i次迭代参数的估计值为\theta^{(i)}=(\pi^{(i)},p^{(i)},q^{(i)})

EM算法第i+1次迭代如下。

E步:计算在模型参数\theta^{(i)}=(\pi^{(i)},p^{(i)},q^{(i)})下观测数据y_j来自掷硬币B的概率

\mu _j^{(i+1)}=\frac{\pi^{(i)}(p^{(i)})^{y_j}(1-p^{(i)})^{1-y_j}}{\pi^{(i)}(p^{(i)})^{y_j}(1-p^{(i)})^{1-y_j}+(1-\pi)^{(i)}(q^{(i)})^{y_j}(1-q^{(i)})^{1-y_j}}

M步:计算模型参数的新估计值

\pi^{(i+1)}=\frac{1}{n}\sum_{j=1}^{n}\mu_j^{(i+1)}

p^{(i+1)}=\frac{\sum_{j=1}^{n}\mu_j^{(i+1)}y_j}{\sum_{j=1}^{n}\mu_j^{(i+1)}}

q^{(i+1)}=\frac{\sum_{j=1}^{n}(1-\mu_j^{(i+1)})y_j}{\sum_{j=1}^{n}(1-\mu_j^{(i+1)})}

算法9.1(EM算法)

输入:观测变量数据Y,隐变量数据Z,联合分布P(Y,Z|\theta),条件分布P(Z|Y,\theta)

输出:模型参数\theta

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

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

Q(\theta,\theta^{(i)})=E_z[\log P(Y,Z|\theta)|Y,\theta^{(i)}]\\=\sum_Z\log P(Y,Z|\theta)P(Z|Y,\theta^{(i)})

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

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

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

(4)重复第(2)步和第(3)步,直至收敛

 

你可能感兴趣的:(机器学习,算法,学习,概率论)