统计学习方法——EM算法及其推广
EM算法及其推广(一)
EM算法(期望极大算法)是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计。主要包含两步:
- E步:求期望
- M步:求极大
EM算法引入
概率模型有时既含有观测变量,又含有隐变量(潜在变量)。
EM算法
- 输入:观测变量数据 Y Y Y,隐变量数据 Z Z Z,联合分布 P ( Y , Z ∣ θ ) P\left( {Y,Z\left| \theta \right.} \right) P(Y,Z∣θ),条件分布 P ( Z ∣ Y , θ ) P\left( {Z\left| {Y,\theta } \right.} \right) P(Z∣Y,θ)
- 输出:模型参数 θ \theta θ
- 流程:
- 选择参数的初始化 θ ( 0 ) \theta_{\left(0\right)} θ(0),开始迭代
- E步:记 θ ( i ) \theta_{\left(i\right)} θ(i)为第 i i i次迭代参数 θ \theta θ的估计值,在第 i + 1 i+1 i+1次迭代的E步,计算
Q ( θ , θ ( i ) ) = E Z [ log P ( Y , Z ∣ θ ) ∣ Y , θ ( i ) ] = ∑ Z log P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) Q\left( {\theta ,{\theta ^{\left( i \right)}}} \right) = {E_Z}\left[ {\log P\left( {Y,Z\left| \theta \right.} \right)\left| {Y,{\theta ^{\left( i \right)}}} \right.} \right] = \sum\limits_Z {\log P\left( {Y,Z\left| \theta \right.} \right)P\left( {Z\left| {Y,{\theta ^{\left( i \right)}}} \right.} \right)} Q(θ,θ(i))=EZ[logP(Y,Z∣θ)∣∣∣Y,θ(i)]=Z∑logP(Y,Z∣θ)P(Z∣∣∣Y,θ(i))
其中 P ( Z ∣ Y , θ ( i ) ) P\left( {Z\left| {Y,{\theta ^{\left( i \right)}}} \right.} \right) P(Z∣∣Y,θ(i))是在给定观测数据 Y Y Y和当前的参数估计 θ ( i ) \theta_{\left(i\right)} θ(i)下隐变量数据 Z Z Z的条件概率分布。 - M步:求使 Q ( θ , θ ( i ) ) Q\left( {\theta ,{\theta ^{\left( i \right)}}} \right) Q(θ,θ(i))最大化的 θ \theta θ,确定第 i + 1 i+1 i+1次迭代的参数的估计值 θ ( i + 1 ) \theta_{\left(i+1\right)} θ(i+1)
θ ( i + 1 ) = arg max θ Q ( θ , θ ( i ) ) \theta_{\left(i+1\right)}=\arg \mathop {\max }\limits_\theta Q\left( {\theta ,{\theta ^{\left( i \right)}}} \right) θ(i+1)=argθmaxQ(θ,θ(i)) - 重复上面两步直到收敛,一般是:
∥ θ ( i + 1 ) − θ ( i ) ∥ < ε 1 \left\| { {\theta ^{\left( {i + 1} \right)}} - {\theta ^{\left( i \right)}}} \right\| < {\varepsilon _1}